Open teto opened 8 years ago
The problem is in check_dependencies (ns3waf/_init.py) where I fixed the problem via resetting match_pkg to None:
this fix should be fine.
for the myscripts
case, is this a documentation or error message issue ?
I guess if a user want to check the dependencies, he/she can write his own wscript in myscript/abc directory.
With my previous fix (i.e. configure correctly detects missing modules) available https://github.com/direct-code-execution/ns-3-dce/pull/29, configure keeps stopping without explanation:
CXX="g++" CXXFLAGS=" -g -Wno-reorder -Wno-unused-variable -std=c++11 " ./waf configure --with-ns3=$HOME/ns3off/install --enable-kernel-stack=$HOME/mptcpoff/arch --prefix=$HOME/dce/build
Setting top to : /home/teto/dce
Setting out to : /home/teto/dce/build
Checking for 'gcc' (c compiler) : /usr/bin/gcc
Checking for 'g++' (c++ compiler) : g++
Checking for program pkg-config : /usr/bin/pkg-config
Checking for pkg-config version >= '0.0.0' : yes
Checking for -Wl,--soname=foo : yes
Checking for ns3-core (ns3-dev) : yes
Checking for ns3-network (ns3-dev) : yes
Checking for ns3-internet (ns3-dev) : yes
Checking for ns3-point-to-point (ns3-dev) : yes
Checking for ns3-tap-bridge (None) : not found
Checking for ns3-netanim (None) : not found
Checking for ns3-wifi (ns3-dev) : yes
Checking for ns3-csma (ns3-dev) : yes
Checking for ns3-mobility (ns3-dev) : yes
Checking for ns3-point-to-point-layout (ns3-dev) : yes
Checking for ns3-mpi (ns3-dev) : yes
Checking for ns3-lte (None) : not found
Checking for ns3-visualizer (None) : not found
Checking for ns3-applications (ns3-dev) : yes
Checking for ns3-fd-net-device (ns3-dev) : yes
Checking for header stdint.h : yes
Checking for header inttypes.h : yes
Checking for header sys/inttypes.h : not found
Checking for header sys/types.h : yes
Checking for header sys/stat.h : yes
Checking for header dirent.h : yes
Checking for library dl : yes
Checking for glibc get_cpu_features : yes
Checking for glibc __secure_getenv : no
Checking for header valgrind/valgrind.h : yes
Checking for header valgrind/memcheck.h : yes
Checking for header sim.h : yes
Checking for ns3-netanim (None) : not found
The configuration failed
(complete log in /home/teto/dce/build/config.log)
I believe DCE should be able to work without ns3-netanim, hence it should be able to keep the configuration going ?
Here is last lines of config.log:
------------------------------------------------
Checking for ns3-netanim (None)
['/usr/bin/pkg-config', 'None', '--cflags', '--libs']
err: Package None was not found in the pkg-config search path.
Perhaps you should add the directory containing `None.pc'
to the PKG_CONFIG_PATH environment variable
No package 'None' found
not found
from /home/teto/dce/myscripts/ccn-exp1: The configuration failed
I believe DCE should be able to work without ns3-netanim, hence it should be able to keep the configuration going ?
I think that netanim package dependency can be non-mandatory.
I still see this same problem (requirement for 'netanim') in DCE 1.10.
Checking for header sim.h : yes Checking for ns3-netanim (None) : not found The configuration failed
I am not spotting where this dependency is creeping in, unless it is by the inclusion of netanim in many module requirements; e.g. module.add_example(needed = ['core', 'internet', 'dce', 'point-to-point', 'netanim', 'csma'],
(p.s. if I fix the 'netanim' problem by including 'netanim' in my ns-3 build, my configure next fails on missing tap-bridge, so it is not specific to netanim).
or build_a_script():
./myscripts/dce-emu-ping/wscript: bld.build_a_script('dce', needed = ['core', 'internet', 'point-to-point', 'fd-net-device', 'dce', 'netanim' ]
IMO we should fix this and then remove the many netanim dependencies from script requirements as a second step (including 'netanim' pulls in many other modules).
There is a problem in package detection when some modules are missing, waf is checking for a module different than the one it should, thus giving wrong results as in:
Checking for ns3-netanim (ns3-dev) : 00:54:27 runner ['/usr/bin/pkg-config', 'libns3-dev-point-to-point-debug', '--cflags', '--libs'] yes
Here is a full log
The problem is in _check_dependencies (ns3waf/init.py) where I fixed the problem via resetting match_pkg to None:
There is a 2nd problem, "mandatory" is set to True for "myscripts/" files and it apparently stops waf when a dependancy is not met, without any explanation. I dunno how to solve that, I mean those should not be built but I don't think they should be mandatory, waf should just warn the user.