0

I have downloaded a framework F2MD from git repository https://github.com/josephkamel/F2MD.git which integrates VEINS framework. I am using Sumo 1.5.0 and Omnet++ 5.6.1 on Ubuntu 18.04. This framework had some submodules. I am getting an error while building the one of the submodules veins-f2md by using the following command:

./configure && make -j$(nproc) MODE=release all**

This command gives an error message:

Creating Makefile in /home/rukhsar/F2MD-master/F2MD/veins-f2md/src...

/home/rukhsar/Downloads/omnetpp-5.6.1/bin/opp_makemake: error: too many subdirs for --deep
Traceback (most recent call last):
 File "./configure", line 78, in <module>
subprocess.check_call(['env', 'opp_makemake'] + makemake_flags, cwd='src')
File "/usr/lib/python3.6/subprocess.py", line 311, in check_call
raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['env', 'opp_makemake', '-f', '--deep', '--no-deep-includes', '--make-so', '-I', '.', '-o', 'veins', '-O', 'out', '-p', 'VEINS']' returned non-zero exit status 1.

The following is a part of code written in opp_makemake file from where this error occurs:

# collect source files
if ($isDeep) {
    my @allExcludedDirs = ();
    push(@allExcludedDirs, $outDir);
    push(@allExcludedDirs, @exceptSubdirs);
    push(@allExcludedDirs, @submakeDirs);
    @sourceDirs = collectDirs(".", \@allExcludedDirs);
    error("too many subdirs for --deep") if (@sourceDirs > 1000);
} else {
    @sourceDirs = ();
    if (isGoodDir(".", \@exceptSubdirs)) {
        @sourceDirs = (".");
    }
}

I am unable to understand that which directories or files are for --deep. I have not used these frameworks and simulators before. Please give a solution so that I can fixed this issue and build the framework successfully.

tripleee
  • 175,061
  • 34
  • 275
  • 318
  • 1
    Welcome to Stack Overflow! Please don't post links to images in your question. Images are not searchable and they are not quotable. Instead, cut and paste the error messages into your question and use proper StackOverflow formatting to ensure it is readable. Also it's a good idea to include information about your environment. – MadScientist Sep 05 '20 at 12:22
  • The error message comes from a Python script, not from `make`. Please also [edit] to include a link to the software (download or ideally public Github repository or similar). – tripleee Sep 05 '20 at 13:57
  • The code you added looks like Perl. It's not clear how the Python traceback figures into this but with the link you added it should hopefully be possible to figure out. I edited to replace the [tag:python] tag with [tag:perl]. Perhaps ultimately both will be relevant. – tripleee Sep 06 '20 at 17:34
  • according to the `README.md` of this project, you are supposed to run `./buildF2MD` for building the project. You've said you instead ran `./configure && make -j$(nproc) MODE=release all**`, which is almost(!) identical to one of the lines in the script you are supposed to be running, but not exactly the same. – Christoph Sommer Sep 07 '20 at 17:11
  • @ChristophSommer When I used ./buildF2MD command, it gave errors for each of the submodules (inet, veins-f2md and simulte-f2md). So I was trying to build them separately. I have fixed the error for inet and it was configured successfully. Now the errors are coming while I am building the veins-f2md. According to error message, if some files are not included into the sourceDirs, the number of sourceDirs will not exceed than 1000. If it is possible, then how to delete those unimportant files like temp? – Rukhsar Sultana Sep 08 '20 at 05:46
  • This sounds like a very important point: after downloading the source code, you needed to make some changes to fix some errors, then you received errors somewhere else. Can you be specific about what changes you made? – Christoph Sommer Sep 08 '20 at 12:40
  • When I was building the inet module, the error was something like: unable to find header file (.hpp files ) in the directory "/home/rukhsar/F2MD-master/F2MD/veins-f2md/src/veins/modules/application/f2md/mdApplications". So I included a boost library in this directory. This boost library boost_1_74_0.tar.gz was downloaded from the link https://www.boost.org/users/download/ .After this the error was fixed. – Rukhsar Sultana Sep 09 '20 at 07:40
  • @ChristophSommer Thank you for your response. I have fixed that error. The error was occurring because of a lot of subdirectories and header files in the downloaded boost library. So I have kept only required subdirectories and header files, and deleted the unwanted files and subdirectories. I have put this boost library in the F2MD/veins-f2md/src directory. Now, the framework is working correctly. – Rukhsar Sultana Sep 11 '20 at 17:59
  • Glad to hear it - and thank you for posting a follow-up with a solution! If you don’t mind, could you please also add this solution as an answer to this question (and mark it as correct)? This way, other users will be able to quickly and easily find a solution if they have a similar problem. – Christoph Sommer Sep 13 '20 at 07:32

1 Answers1

0

At the time of building f2md, there should be a boost library in the "F2MD/veins-f2md/src" directory containing required header files. The error was occurring because of too many subdirectories and header files (more than 1000) in the downloaded boost library. So I deleted the unwanted header files and subdirectories from that library. After that, the framework was built correctly.