3 ααΆαα
αΆααααααΎα
3.1 αα·αααααΆαααΌαα
3.2 αααααΌαααΆαααΆαα»α
3.2.1 ααΆαααΆαααααΆαα
ααααααΆα ns-3 ααΆααααααΆαααααα
3.3 ααΆαααΆααα ns-3 αααααααΎ Git
3.3.1 αααα»ααααα»α ns-3 αααααααΎ Bake
3.4 αααΆ ns-3
3.4.1 α’αΆααΆαααΆαα½α build.py
3.4.2 α’αΆααΆαααΆαα½ααα»ααα
3.4.3 αααααΎαααΆαα½α Waf
3.5 ααΆαααααΎααααα ns-3
3.6 ααααΎαααΆαααααααΈα
3.6.1 α’αΆαα»ααααααααααΆααααΆααααααααΆ
3.6.2 ααΆαααααΆααααα α»α
3.6.3 ααααΆαααΆα
ααααΌαααΈ 3
ααΆαα αΆααααααΎα
ααααΌααααααΆαααααααααααα αα’αααα’αΆαα±ααα αΆααααααΎαααΆαα½ααα»αααααΌαααααααααα ααααΆαα·ααααααα‘αΎα ns-3 ααα ααΆααααααααααααΎαααα·ααΆαααααΆαααα αααααΌαααΆαααΆαα»α ααααααα½αααΆα ns-3 αααααααααΎα ns-3 αα·αααααααΆαααααααΆααααΆα αα·αααααΎαααΆααααααα·ααΈααΆααααααααα’αααα
3.1 αα·αααααΆαααΌαα
α§ααααααααααααααΎ ns-3 ααααΌαααΆααααααΎαα‘αΎαααΆαααααααααααααααΆααααααααα·ααΈαα ααΆαα ααα‘α»αααααα½αααααα»αααααΆ ααΌααααααααα·ααΈα’αααααααΎααααΆααααααΌαααΆαααααΆααααΆαα½ααααααΆαααααΆαααααα ααΆααΆααααααααααα·ααΈ C++ α¬ Python ααααΌαααΆαααααΎααΎααααΈααααααααααα·ααΈααααΆαααααα½αα
Ns-3 ααααΌαααΆαα ααα αΆαααΆααΌαααααα αααααΆααααααΆααααααααααααα ααααΌαααααΆαααα·ααΆααΆαα’αα·αααααααααααα·ααΈ ααΎααααΈααΆαααααααααΆαααααΆαα»ααα·α α αΎααααααΆαααααααααΎααααααα·ααΈα’αααααααΎααααΆααα ααΆαααααΆααα ns-3 α’αΆα ααααΌαααΆαα ααα αΆαααΆαααααΆααααααααααααα½α ααΆααααα αααααΆααααααααααααΆααααΆαααα½α α αΎααα αααα’ααΆαααα½αααα’αΆα ααααΌαααΆαα ααα αΆαααΆααααααααα ααα»αααααααααααααααα’αααααααΎααααΆααααΆα αααΎααα·αααΆααααΎααΆαααΆααααααα½ααααααααΆαααααααα½α ns-3 ααααααα½αα―α ααΌα ααααααΆααΆααααααααααααα»αααΆαααΆαααΌαααααααααααΆαααααααΎααααααΆαααα ααααα·αααΎα’αααααΆααααΆααα ααααα½αααααΆαααΆααααααΎααααααΆααα αα·ααααα αααααααααααα½α ααΆααααα αααααΆααααααααααααααα·ααααα·ααΆα ααΌαααΆαααααααααΈαααα»ααααα½α ns-α’αααα’αα·αααααα.
αααααΆαααα ααΎαααΉαααΎααα·ααΈααΈαααΆααααα»αααΆαααΆααα αα·ααααααΎα ns-3α ααΈαα½αααΊααααΌαααΆααα αα·ααααααΎαααΆαα ααααααΆαααΆααααΌαααΆαααΈααα αααααααα ααΈααΈαααΊααΆαααααΎαααΎααα·αααΆααααα»αα αααΆααα ααααααααααα’αα·ααααααααααΆαααα‘αΎαααΌαααααΆα ns-3 α ααΈααΈααΊααααΌαααααΎα§αααααααΆααααααααααααΎααααΈαααα»ααααααααααααααααααααααααααΆαα ns-3 α ααΎαααΉαααααααΆααα§αααααααΈαα½αα αααααΆαα§αααααααΆαααΆααα»αααααΆααααα·α ααααα½α α
α’αααααααΎααααΆααααΈαα»α αααααΆααααα·αααααα’αΆα αααααααΆα ααα»α’αααΈααΆαααΆ ns-3 αα·αααααΌαααΆααααααααΆαααα ααααΌα αααααΆαααααααααααααΆαα αααΎααααααααΎαααααα·ααΈααααααααααααα αα? αααααΈααΆααΆααααα αααααααααααααααΈααααααΆααααΆαα ααα αΆαααΈαα»α αααααα (α§ααΆα ααα ααααα) α’αααααααΎααααΆααααΆαα αααΎααααα ααααΆαααααααα½ααααααΆααα α αΎαααααΌααααααΎα ns-3 α‘αΎααα·αααααααα½αα―α ααΌα ααααααΆαααΆαααΌααααααααΊααΆααααα½αα αααααΆααα ααα»αααααααΎαααΉααααααααΎααΆαααα‘αΎαααΈαααααα
αααααΆαααααααα·ααΈααΆαα αααΎααα·αααα· ns-3 ααΆ root αα·αα αΆαααΆα ααα ααΆααααΌαααΆαααααΆαα±ααααααΎααααΈα’αααααααΎααααΆαααααααααΆααα·αααα·α
3.2 αααααΌαααΆαααΆαα»α
αααα»αααΆααααΌααααααααΆααα ns-3 αααα’αΆα
ααααΎααΆαααΆαα
ααα½αααααΆαααΉαααα’αααα½αα
ααα½αααΎαααααΆαααααΆααΈααΈααΈ ααα»αααααααααΆαααααααααΆαα
αααΎα ns-3 α’αΆα
ααααΌαααΆαααΆαααα αα·αααααΎααααΆαααααααΆαααΆαααΆαααααααααΆαααααΆαααΆαα»ααΌαα
αα½αα
ααα½α (ααΆααΉαααΆααααααΌαααΆαααα‘αΎαααΆαααααΆαααΎα)α αααααα·ααΈα
ααααα C ++, Python αααααΆαααααα·ααΈαα·ααααααΌαααααα (α§ααΆα ααα ααααΆαααΎα, emacs α¬ ααααααααΆαα) α αΎαααααα·αααΎααααΆααα’αα·ααααααααααΌαααΆαααααΎ ααααααααααααααααααααα Git α α’αααααααΎααααΆααααΎαααααΌαααΆαα
αααΎαααΉααα·αα
αΆαααΆα
ααααα½αααΆαααααα ααααα·αααΎααΆαααααααα
ααΆαααααααααααααα½αααααΆαααΆαααααΈαα»αααΆαααααα·αααααα ns-3 αα½αα
ααα½ααααααΆαα ααα»αααααααααΆααα’ααααααα
ααααα‘αΎααααααα ααααααααααααααααΌααα·ααΈααααα½ααααα
αΌααααααααΆαα½αααΉααααααΉα αα·ααααα·α
ααΆαααααααααααΆα
αααΎαα ααααααα½ααααααΊααΆαααααααα‘αΎα αααααΆαααΆαααααΆαα’αααΈααΆαααα‘αΎααααααΆαααααααααααααααα ααΆααα
α
ααααααααααΌαααΆαααΆαα»ααααα·ααΈαααααααααααΆαααα ααααΆαα½αααααΌαααΆαααΆαααΆαααΎααααΈααΆαααααααααΎα ns-3 ααΌαα α αΎααααααΆαααααααααΌαααΆααααααααΆαααααααΎααΎααααΈααα‘αΎααα½αααΆαα ααΎααααΆαα·ααΌαα ααααΈαα»α α¬ macOS αααααα
α’αααα’αΆα
ααΆαααααααααααααΈα±ααΆααααααΎααααΈαα»αααααααα ns-3 wiki α¬ααα αααααααααΆααα
αααα ααα§ααααα/αααα
- αααααα·ααΈα
ααααα C++
clang++ α¬ g++ (g++ αααα 4.9 α¬αααααααΆαααα) - αααααααΆαα
αααα python2 >= 2.7.10 α¬αααα python3 >=3.4 - Git
ααααα α»αααααααααα»αααΆαα½α (ααΎααααΈα αΌαααααΎ ns-3 αα ααΎ GitLab.com) - tar
ααααα α»αααααααααα»αααΆαα½α (αααααΆααααΆααααααΆααΆαα ααααααΆα ns-3) - bunzip α’
ααααα α»αααααααααα»αααΆαα½α (αααααΆααααΆααααααΆααΆαα ααααααΆα ns-3)
ααΎααααΈαα·αα·αααααΎαααααααααΆαααΎααααα Python ααΌαααΆα python -V
. ααΎααααΈαα·αα·αααααΎααααα g++ ααΌαααΆα g++ -v
. ααααα·αααΎα§αααααααΆαα½αααΆαα α¬α
αΆααααα ααΌαααΎαααΆαααααΆαα’αααΈααΆαααα‘αΎααα
ααΎααααα ns-3 wiki α
α αΆααααΈααααααααα ααΎαααααααααΆα’αααα’αΆααααα»αααααΎαααΆα Linux, MacOS α¬ Linux emulator α αΎααααΆαα αα ααΆααααΆαα§αααααααΆαααΎα
3.2.1 ααΆαααΆαααααΆαα ααααααΆα ns-3 ααΆααααααΆαααααα
αααααΊααΆαααααααααααααΆααααααΆααα’αααααααΎααααΆααααααΈαααα ααααΆααα αα·ααα·αααααααΆαα½αααΉαααΆαα ααααααΆαα α»αααααααααα»α αα·ααααααααα αααα ns-3 α ααΆαα ααααααΆα ns-3 ααααΌαααΆαααααα»αααααΆααααααΆαααααααααααΆααααα αΆαα ααααα½αααΆαααα α ααΆ ααΆα‘α»α. ααΆα‘α»α ααΊααΆαααααααααααααΆααααααα·ααΈαα·ααα αααα―αααΆαααΆα αααΎαααααΌαααΆααααα αΌαααααΆααΆαα½αααααΆα αααααααΆαααΆααααααΆααααΌαααΆααααα αΆααα ααααΎαααΆαα αΆααααααΎα ns-3 ααΆαααα ααΆα‘α»α ααΊααΆαααα α’αααααααΆααααααααΌαααααΎαααΎαααΆαα ααααααΆα ααΆααα αα·ααααααΆααΆα
α§αααΆααΆα’ααααααα»αααΆαααΆα’αααααααΎααααΆααα αααααααΎα ns-3 αα αααα»αααααΌαααααΆααααα α ααΆ ααααααααααΎααΆα. α’αααα’αΆα ααα½αααΆαα αααΆααα ααααααααΆαα ααααααΆαααααααα αΌαααΌα ααΆαααααααα αααα»ααα»αααΌαααΈαα»α (ααΆααΆααα·αααΆαα ααΆααααα½ααααααααααααααααα)
$ cd
$ mkdir workspace
$ cd workspace
$ wget https://www.nsnam.org/release/ns-allinone-3.29.tar.bz2
$ tar xjf ns-allinone-3.29.tar.bz2
ααα α·ααααα»αααΆααααΎα§αααααααααΎααααΆαααααααΆαααααΎααΆαααΎ wgetαααααΆα§ααααααααααΆααααΆααααααααΆαααααΆααααΆαααααααα»ααΈα’ααΈαααΊαα·αα ααααα·αααΎα’ααααα·αααΆααααΆαααα‘αΎαααΆαα α’αααα’αΆα ααααΎαααααα·ααΈαα»αααααααα’ααααααααΆααααΏααααα
ααΆαααααΎααΆαααα αΆαααΆαααααααΉαααΆαα’ααααα ααΆααααα―αααΆα ns-allinone-3.29 αα ααΈααα α’ααααα½αααααΎαα―αααΆα αα·αααα―αααΆαααΆα αααΎα
$ cd ns-allinone-3.29
$ ls
bake constants.py ns-3.29 README
build.py netanim-3.108 pybindgen-0.17.0.post58+ngcf00cc0 util.py
α₯α‘αΌααααα’αααααααααααα½ααα½α ααΆααα αΎααααα»αααΆαααΆααααααΆαα ααα αΆαααΌαααααΆα ns-3 α αΎαα’αΆα αααααα ααααααα ααΎααΆααααΆα ns-3 α
3.3 ααΆαααΆααα ns-3 αααααααΎ Git
αααααΌα ns-3 ααΆααα
αααα»αααααΆαα Git αα
ααΎ GitLab.com αα
αααααααΆαααΆααααα½ααααα»αααΎααααΈα αΆααααααΎαααααΎααααΆααααααΆαα Git ααΊααΎααααΈααααα α¬ααααΌαααα·ααααΆα ns-3-allinone. αααααΊααΆαααα»αααααααααΈαααααααααααααααΆααααα»α αα·αααΆααααα»ααααααααααα ns-3 αααααααΎααΆααΌαα αααα»αα ααααα·αααΎα’αααααααΈα αααα Git ααΆααα "fork" αα·α "clone" αααα ααααΆαα·ααααΆαααΉαα’αααααα ααΎααΌα αααα ααΎαααΌαααααΆαα±ααα’αααααααΆααααααααΌα (ααααΎα αααΆααα ααααααααααα½αα―α) ααααΆαααααααΆαααΈααΆαααα ααΎ GitLab.com ααΌα αααα
$ cd
$ mkdir workspace
$ cd workspace
$ git clone https://gitlab.com/nsnam/ns-3-allinone.git
$ cd ns-3-allinone
αα ααααΆααααΆαααααα·αααααΆαααααααααα’αααα ns-3-allinone αα»αβααααΆβααααα·α βααΈβαααααΈβαααααααΆαβα ααααααΆαβαααβααΆαβαα·αααααΆβααΆαααΎα ααΆαα½αααααΎααα ααΌα αααα
$ ls
build.py constants.py download.py README util.py
ααΌαα αααΆαααΆααΆαααααααΈα ααΆααα.pyαααααΉαααΆααααααααα ns-3 αα·αααΌαααααααααααααΆααααααΆαα½αα αα ααΈαααα’αααααΆααααααΎααα½αα ααΆαααααΌαααα’αα·αααααα ns-3 α α»αααααααααα’ααα
$ python download.py
α¬α
αΌαα
α·αααααΆαα
ααααααΆα ns-3 αααααααΎααα -n
ααΎααααΈα
ααα’α»ααααα αΆααααα
ααααααΆαα
$ python download.py -n ns-3.29
αααααΆααααΈααα αΆαααααα αα ns-3-allinone ααααΆααααααααααΉαααααΌαααΆαααΆααα ns-3, αα»α, pybindgen ΠΈ ααααΆααΈα.
ααΆαααααααααΆαα
αα
ααΎαααΆαααΈααααααΆα Ubuntu16.04 ααα’αΆα αααα»αααααΌαααααΆααααααΌαααΆααααααααΆαα
ααΆα $ sudo python3 download.py -n ns-3.29
(ααα
ααααααααα
αααΆαααααα’ααααααααα)α
3.3.1 αααα»ααααα»α ns-3 αααααααΎ Bake
αα·ααΈααΆαααααααΆααααΈαααΆαααΎ (ααααααΆαααααα α¬ααααΆαα ns-3-allinone ααΆαααα Git) ααΆααααααααααααααΆααααΆαααα½αααΆαααΆαααα‘αΎα ns-3 ααααΆαααααααα»αααΆαα½αααΉα addons α αααΎα (pybindgen ααΎααααΈαααααΎαααΆαα α Python αα·α ααααΆααΈα αααααΆααα αααΆαααααΆα) α ααααΆααααΈααΈααααααααααΆαααααΆαααΎααα αααα»α ns-3-allinone ααααΌαααΆαα α αα»α.
αα»α ααΊααΆα§ααααααααααΆαααααααααα½αααΆααααΆαααΌα αααααααΈααααΆααααΆα αααΎα ααααααααΎαα‘αΎααααααΆαααααααα ns-3 α αα»α α’αΆα ααααΌαααΆαααααΎααΎααααΈααα½αααΆαααααα’αα·αααααααα ns-3 ααααΌα ααΆααΎααααΈααΆααα αα·ααααααΎααααααααααααααααααααΌαααααΆαααααΆαα ααα αΆα ns-3 ααΌα ααΆααα·ααααΆαα ααΆαααααα·ααααα·ααΌαααααΆαα, CradleNetwork Simulation CradleαααααααΆααααα»αααΆααααααΎαααΆαα α Python ααααΈ αα·ααααααα·ααΈ ns-3 ααααααα
ααΆαααααααααΆαα
CradleNetwork Simulation Cradle ααΊααΆααααααααααααα’αα»ααααΆαα±ααα’αααααααΎααααααααΆα TCP/IP αα·αααααΆαααα
ααΆααααα»ααααΆαααΈααααααααααΎαααααΆαα
ααααα·αααΎα’αααααααΉαααΆααΆαααα‘αΎα ns-3 ααααα’αααααΉαααΆααα»αααΆαααααα·αααααα α¬αααααα α’αααα’αΆα ααααΎααΆααα·ααΈααα‘αΎααααα
αα αααα»αααΆαα ααααααΆαα α»αααααααααα»α ns-3 αα»α ααααΌαααΆααααααααα ααΆαα ααααααΆα tar α ααΆαα ααααααΆααα½αααΆαα―αααΆαααααααα ααΆαααααααααααα’αα»ααααΆαα±ααα’αααααΆααααααααααααα·ααΈαα αα α»αααααααα αααα ααααααΆαα αααααΊααΆα§ααΆα ααααααα αα»ααααααααΌαααΆαα ααα αΆαααΆαα½αααΉαααΆαα ααααααΆα ns-3.29 α’αΆα ααααΌαααΆαααααΎααΎααααΈααΆααααααΆαααΆαα»αααααΆααααΆαα ααααααΆα ns-3 α¬αα»αααα ααα»αααααα·αα’αΆα ααααΎααΎααααΈααΆααααααΆαααΆαα»αααααΆααααΆαα ααααααΆααα αααααααα (ααααα·αααΎα―αααΆααα·αααααΆαααα αα bakeconf.xml αα·αααΆαααααΎαα αα α»ααααααααΆα) α
α’αααααα’αΆα ααα½αααΆαα αααΆααα ααααα α»αααααααααα’αααααααα αα»αααααααα αΌαααΆααααααααΆααΆαααααααα αααα»ααα»αααΌαααΈαα»α ααααα’ααα (ααααααααΆα’αααααΆαααα‘αΎα Git)α
$ cd
$ mkdir workspace
$ cd workspace
$ git clone https://gitlab.com/nsnam/bake.git
αα αααα’αααααααΎαααΆαααΆααααααααΆ git α’ααααα½αααααΎαα’αααΈαα½αααΌα ααα α
Cloning into 'bake'...
remote: Enumerating objects: 2086, done.
remote: Counting objects: 100% (2086/2086), done.
remote: Compressing objects: 100% (649/649), done.
remote: Total 2086 (delta 1404), reused 2078 (delta 1399)
Receiving objects: 100% (2086/2086), 2.68 MiB | 3.82 MiB/s, done.
Resolving deltas: 100% (1404/1404), done.
αααααΆααααΈααΆααααααααΆααΆααααα αα ααααΌα α’ααααα½αααααΆααααααΈααααα αα»αααΆαα·ααΆααααα½αααΎααα ααΌα αααα
$ cd bake
$ ls
bake bakeconf.xml bake.py doc examples generate-binary.py test TODO
α αααΆαααΆα’αααααΆααααα»αααααααΈα Python ααΆα αααΎααααααΆαααΌαα»α Python αααααΆααααααααΆ αα»α αα·αα―αααΆαααααααα ααΆαααααααα XML α ααα αΆααααααΆααααΊααααΌαααααΎααααααΈαααΆαααααααΎααααΈααΆααα αα·ααααααΎαααΆαα ααα αΆα ns-3 αααααααΎαααααα’αααα ααααα ααααΌαααΆαααααααΆα αααΎαα’αΆα ααααΆαα
-
ns-3.29α αααΌαα»ααααααααΌαααααΆααΉαααΆαα ααααααΆα; ααΆααΉαααΆααααααΆαααΆαα»ααααααααααΆαα ααΉαααΆαα ααααααΆααα αααα»α tarball α
-
ns-3-devα αααΌαα»αααααααααααΆ ααα»ααααααααΎααΌαααΈαααααΆαα’αα·ααααααα
-
ns-allinone-3.29α αααΌαα»αααααα½ααααα αΌααα»αααΆαααααααααααααααααΌα ααΆ Click routing αα·α Network Simulation Cradle, Openflow αααααΆαα ns-3α
-
ns-3-allinoneα αααααααα ααΉαααααα ααααααΆααααααΌαα»α ααΆααβαααα αΌαβααααΆβαααα½αααα»αααααααααΆααααΌαα’αα·ααααααα
ααΆαααααααααΆαα
α
α»α
- ααααΆαααααααααααααα·ααΈαααΌαα»ααααααΆαααααααΎααααααααα
Openflow ααΊααΆαα·ααΈααΆααααααΆαααααααααααααααΎαααΆαααααΆαααααΎαααΆααα·αααααααααααΆααααααΌαααΆααααααΆααα·αααααααααααααααα αα·αα§αααααααααΌα αααα’αα»αααααα αα αααα·ααααΆαααααΆαααααααααααααααααα·ααΈα
ααΌαααααααΆαα’αα·αααααααα
αα
α»αααααα (αα·αα
ααααααΆα) ns-3 α’αΆα
ααααΆααα
α
α’αααα’αα·ααααααααααΆααΆααααααΆααααΆααααΆααααααααα»αααααΆααααΆαααΆαααΆααααΆαα ααα»αααααα½αααΆαααα·ααα αααα»ααααααα’αα·αααααα αα·αααΆααααααΌαααααα·αααΆααα ααααααΆα ααΌα ααααααααα·αααΎα’ααααα·αααΆαααααααααααΎαα»αααΆαααααΈαα ααΌαααααΎαααΎαααΆαα ααααααΆαααααΌαααΆαα
α’αααα’αΆα
αααααααααααα
α»αααααααααα»αααααΌαααααα»ααααααααΈααααΆαα α¬αααα
αΌααα
ααΆααααα ααααα ns-3 Releasesα
α₯α‘αΌαααα ααΎααααΈααα½αααΆααααΆαααΆαα» ns-3 αααααΎαααααΌαααΆα ααΎαααΉαααααΎα§ααααα αα»α. α αΌααα·ααΆαααΆαααααααΆαααΈαααΈα’αααΈααΆαααΆα αα»α.
αα»αααααααΎαααΆαααααααα»αααααααααα αααα αααα»ααα ααααα αα·αααα‘αΎααααααΆααααα αααα»αααα―αααΆαα αα»α α’αΆα ααααΌαααΆαααααΎαααΆααααααααααααααααααααΈα ααα»ααααααααα·αααΎα’αααα ααααααΎαααΆα αα»α αα·αβαααβααβααΈβααβαααβααΆβααααΌαβααΆαβααΆαβααβαααβαα αα½αααβααααααβααααΌαβαα αα»α αα ααΆααααααΌαααααα’ααα (PATH environment variable) α§ααΆα αααααΌα ααΆαααααα (α§ααΆα ααααααααΆαα Linux bash shell)α α αΌααα ααΆαααα "αα»ααα" α αΎααααααΆαααααααααα’αααααα·ααααΆαααΆααααααα
$ export BAKE_HOME=`pwd`
$ export PATH=$PATH:$BAKE_HOME:$BAKE_HOME/build/bin
$ export PYTHONPATH=$PYTHONPATH:$BAKE_HOME:$BAKE_HOME/build/lib
αααααΉαααΆαααααααα·ααΈ bake.py αα βααααΌαβααα α αΎαβααΉαβα’αα»ααααΆαβα±ααβαααααα·ααΈβαααααβαααβαααααβααβαααααα·ααΈβααααα·ααααα· αα·αβαααααΆαααβαααβααΆβααΆαβαααααΎα αα»α. αααα»αααααΈααααααααΆαααααΎααααΆαα αα»αααΆαααααα PATH αα·α PYTHONPATH αααααΆααα·αααααΆααΆαααΎαα·αααααΌαααΆαααΆαααΆααα ααα»ααααααΆαααααΆαααΆαααααααα ns-3-allinone (ααΆαα½αααΉααααα αααααααα) ααΆααααααΆααΆαααΆαααΆα
α αΌααα ααΆααααααΆαααΆαααααα’ααα α αΎααααα αΌαααΌα ααΆαααααααααα»ααα»αααΌαα
$ ./bake.py configure -e ns-3.29
αααααΆααααΎαααΉααα½α αα»α αα·αα·αααααΎαααΆααΎααΎαααΆαα§ααααααααααααααΆααααΎααααΈαααα»ααααΆαααΆαα»αααααααααα¬ααα α α»α α
$ ./bake.py check
α’ααααα½αααααΎαα’αααΈαα½αααΌα ααα α
> Python - OK
> GNU C++ compiler - OK
> Mercurial - OK
> Git - OK
> Tar tool - OK
> Unzip tool - OK
> Make - OK
> cMake - OK
> patch tool - OK
> Path searched for tools: /usr/local/sbin /usr/local/bin /usr/sbin /usr/bin /sbin /bin ...
ααΆαα·ααα α§ααααααααα»αα‘αΎαααΌα ααΆ Mercurial, CVS, Git αα·α Bazaar ααΆαααΆααααααΆαααααα»αααα αΆαααα αααααΆααα½αααα’αα»ααααΆαα±ααααΎαααα½αααΆααααααΌαα αα α ααα»α ααα ααΌαααα‘αΎαα§ααααααααααΆααααΆαααααααααααΆαααααΆααααααααααααααα’ααα (ααααα·αααΎα’αααααΉαααΈαααα) α¬ααΆααααα’ααααααααααααααααααααααααα’ααααααααΆαααααα½αα
αααααΆαααα ααΆαααααααΆααααααααα·ααΈα
$ ./bake.py download
αααααααα½αααααΆα’αααΈαα½αααΌα ααΆα
>> Searching for system dependency setuptools - OK
>> Searching for system dependency libgoocanvas2 - OK
>> Searching for system dependency gi-cairo - OK
>> Searching for system dependency pygobject - OK
>> Searching for system dependency pygraphviz - OK
>> Searching for system dependency python-dev - OK
>> Searching for system dependency qt - OK
>> Searching for system dependency g++ - OK
>> Downloading pybindgen-0.19.0.post4+ng823d8b2 (target directory:pybindgen) - OK
>> Downloading netanim-3.108 - OK
>> Downloading ns-3.29 - OK
αααααΉαααΆααααααΆαααααααΈααααΌαααΆαααΆαααα α₯α‘αΌαα αΌααα ααΆααααααααα α αΎαααΆα ls; α’ααααα½αααααΎαα
$ cd source
$ ls
netanim-3.108 ns-3.29 pybindgen
α₯α‘αΌαβαααβα’αααβααΆαβαααααβαααα½αβααΆβααααα βααΎααααΈβαααααΎαβααΆαβα ααα αΆα ns-3 α
3.4 αααΆ ns-3
ααΌα ααααΆααΉαααΆαααΆααα ns-3 ααα ααΆααα·ααΈααΆα αααΎααααα»αααΆαααΆαααα ns-3 α ααΏαα ααααααααΎαα αααααααΆααααΊααΆ ns-3 ααααΌαααΆααααααΎαα‘αΎααααααααΎα§αααααααΆααααα α ααΆ αααΆααΆααα·αααααΆααΆααααααα α’αααααααΎααααΆααααΆαα αααΎαααΉαααααΎααΆαααΆαα½α αααΆααα»ααααααΆαααααααΈααααααΆααααα½ααα½αα ααα½αααΎααααΈαα½αα’αααα αΆααααααΎα α¬αααα αααΆαααααΆαααΆαααα»αααααΆααααααααααα ααΌα ααααααΌααα»ααααα’αααα’αΆαα’αααΈ αααΆααΌααααα‘ααααΎα build.py αα·αααΆααα½αααααα»αααααΆααΆαα½α αα»α.
3.4.1 α’αΆααΆαααΆαα½α build.py
ααΌααααααααα! ααα αΆαααΆαααααααααΊα’αΆα ααααΎααΆαααααΈαααααααααααΆαααααααααααα½αααΆαααΌα ααΆααααααΆααααΆαααΎα α αΎααα·αααααΌαααΆαααΆαααααΆαααα git α¬αα»αααααα
αα αααααααΎααΆαααΆαα½ααααααααΆαα ααααααΆα ααΆα‘α»ααα ns-3-allinone ααΆαααααααΈαααΆααααα½ααααα’αΆα ααααΎα±ααααΆααααααΌααααα»ααααΆαααΆαα»ααΆααααααΆααααα½αα ααΆααααΌαααΆαααα α ααΆ build.py α αααααα·ααΈαααααΉααααα ααααααααααααΆααα’αααααΆααααααααααΆααααααααααααα»αα αααααΆαααΆαααΆααααα α αααΆαααΆααΆαααα‘αΎαααααα·αααααα αα·αααααΎααΆαααΆαα½α ns-3 ααΆααααααΆααΆαααααααααΉαααΆαααααΎααααΆαααααααααααααααΎαααααΆαααααα½ααααα ns-3 ααΊ Waf αααααΉαααααΌαααΆαααααΆααα αααααααααα αααα»αααααααααα
ααααα·αααΎα’αααααΆαααΆααααααααααΎ ααΆα‘α»ααααααΆαααααα αααα»αααααααα’αααα ~/ ααααααααααΎααΆα αααααααΆααααααα’αααΈαα½αααΌα ααΆ ns-allinone-3.29. αααα αΌαααΌα ααΆααααααα
$ ./build.py --enable-examples --enable-tests
αα αααααα α build.py ααΎαβααΆαβααααΎβα’αΆαα»αααααβαααααΆααβααΆαααβαααααΆ ααΎααααΈβαααααΎαβα§ααΆα ααα αα·αβααΆαβααΆαααααβαααβααΆαβααααΎβαααα»αβααΆαβααααααβααα αααβαα·αβααααΌαβααΆαβαααααΎαβααΆαβααααΆαααΎαβαααα»α ns-3 ααα ααΆαααααΆαααΎα αααααα·ααΈαααααααΎααααΌαα»ααααααΆαααΆααα’αααααααα αααααΆαααα ααααα·αααΎα’αααααααΆααααΆ α’αααα’αΆα αααααΎα ns-3 αααααααΆαα§ααΆα ααα αα·αααΆαααααΎααααα α¬αααααΌαα»αααααα·αααααΌαααΆααααααΆααααΆαααΆαααααα’αααα
α’αααααΉαααΎαααΆαααααααα’αααα αααααααΆα αααΎαααααααα αΆααααααααααΈα ααΌα αααααΆαααααΎαααααααααααααααα’αααααΆααααα»αα ααααΌαααααααΈαααΉαααααΆααΆααααααΎαα αααΆ ααααΆααΈααααααΆαααααααΆαααΈαααααΎαα α pybindgen α αΎαα α»αααααα ns-3 α αα ααααααααααΎαααΆααααααααΌαααΆααααα αα α’ααααα½αααααΎαααΌα ααΆααααααα
Waf: Leaving directory '/path/to/workspace/ns-allinone-3.29/ns-3.29/build'
'build' finished successfully (6m25.032s)
Modules built:
antenna aodv applications
bridge buildings config-store
core csma csma-layout
dsdv dsr energy
fd-net-device flow-monitor internet
internet-apps lr-wpan lte
mesh mobility mpi
netanim (no Python) network nix-vector-routing
olsr point-to-point point-to-point-layout
propagation sixlowpan spectrum
stats tap-bridge test (no Python)
topology-read traffic-control uan
virtual-net-device visualizer wave
wifi wimax
Modules not built (see ns-3 tutorial for explanation):
brite click openflow
Leaving directory ./ns-3.29
αα αααα»αααΈαα½αα α»ααααααααααΆαα α»ααααααΈ ααΎαααΎαααΆαα’αααΈαααΌαα»αααααα·αααααΌαααΆαααΆααααα
Modules not built (see ns-3 tutorial for explanation):
brite click
αααααΆαααααααΆαααΆααααααΆ αααΌαα»α ns-3 αα½αα ααα½ααααααΉαααα’ααααΎαααααΆαααααΆααααα αααα ααααΆαα·αααααΌαααΆαααΆαααα α¬αα·ααααααΌαα±αααααααΎααααααΆααααΆαααααααα ααΆαααααααααααααα ααααα·αααΆααααααΆαααΆαααΈααααααααααΎαα·αααααΌαααΆααααα»ααα α¬ααΆαααΌαα»ααααααΆααα½αααααα»αααααΆααΉααα·αααααΎαααΆαααααΉαααααΌααααααα
3.4.2 α’αΆααΆαααΆαα½ααα»ααα
ααααα·αααΎα’αααααΆαααααΎ bake ααΆαααΎααΎααααΈααα½αααΆαααΌααααααααΈααααΆαααααααα α’αααα’αΆα ααααααααΎααΆααΎααααΈαααααΎα ns-3 α α α»α α
$ ./bake.py build
α αΎαα’ααααα½αααααΎαα’αααΈαα½αααΌα ααΆα
>> Building pybindgen-0.19.0.post4+ng823d8b2 - OK
>> Building netanim-3.108 - OK
>> Building ns-3.29 - OK
ααααααΆααααα½αα α’αααβααβα’αΆα βααααΎβααΆααβααα αΆαβααΆαβαα αα·αβαααααΎαβαααα»αβαααβααβαα½αβαααβα α βαα "bake.py deploy"α
ααΆααααα»ααααΆαααΆαα»ααΆααα’ααα’αΆα αααΆααα ααα»ααααααΆααααα»αααΉααααα ααααα·αααΎαααΆαααΆαα»αα·αααααΌαααΆαααΆαααΆαα ααΆα§ααΆα ααα αααα αΆα αααααΆαααααααΈααααααΊαααα castxml α’αΆα ααααΌαααΆααααα»ααααα§ααααα αα»α αα·αααααα ααΎαααα·ααΆααΆααα’ααααα αααα»αααααΈααα ααΆαααααααααΉαααα α‘αΎαα
>> Building castxml - Problem
> Problem: Optional dependency, module "castxml" failed
This may reduce the functionality of the final build.
However, bake will continue since "castxml" is not an essential dependency.
For more information call bake with -v or -vvv, for full verbose mode.
αααααΆαααΆαααΆ, castxml ααααΌαααΆαααααααα·αααΎα’αααα αααααααΎαααΆαα α Python αααααΆαααααΎαα αα α»ααααααααΆαα αααααΆααα’αααααααΎααααΆααααΆαα αααΎααα·αα αΆαααΆα αααααΎααΆαα (αααΆαα αα ααΆαααα αΌαααααα½αααααααΆααααααΌα ns-3) ααΌα ααααααΆααααααΆαααααααα’αΆα ααααΌαααΆααα·αα’αΎααΎααααα»ααααα·ααΆααααααΆααααααααα
ααααα·αααΎααΆαααΆααα ααΆααααααααΆααΆααααααααΉααααααα±ααα’αααααΌαααΆαααααΆαα’αααΈααΆαααΆααααΆαα’αΆαααααα
$ ./bake.py show
ααΆαα’αΆααααααααααααααααα αααααα’ααααααα»αααααΆααΆααααααΎαααΉαααααΌαααΆαααΆααααααΈα
3.4.3 αααααΎαααΆαα½α Waf
αα αΌααααααα ααα»α ααα ααΎααααΈα αΆααααααΎααααααΎα ns-3 ααΎαααΆαααααΎααααααΈαααΆααααΈα build.pyα¬α§ααααα αα»α. α§αααααααΆαααααααΆααααααααααααααΆααααΆααααΆα ns-3 αα·ααααααΆαααααΆαααα ααΆααα·αααΎααααΈααΆαααα αα½αααααααΎαααΆαα§αααααααΆαααα αααΆ ααΈαα ns-3 α αααΆ ααα‘αΎαααΆαα½αααΌαααααα ns-3 α α’αααβααααΎβααΆαβα αααΎαβααααβααααΎ nsβ3 αααΆαβαα ααβααΎααααΈβαααααβαα ααΆβαααααααα αα·αβααΆαβαααα»αβ αααΆ. ααΌα αααα ααΎααααΈαααα ααΌαα αΌααα ααΆαααα ns-3 αααα’αααααΆααααααΎαααααΌαα
ααΆαα·αααααΌαααΆαααΆαααΆααααΆαααΉααααΉααα αααααααα ααα»ααααααΆααΉαααΆααααααααααααα»αααΆαααΆαααΆαααααα·α αα·αααΎαααΈααααααααΎααΆαααααΆααααααΌαα ααααααΆαααααααα ααΆααααααααααααααα αααα ααααΆααΆαααααΆααααααΌαααΆαααααααα ααΆααααααααααΆααααααααααααα»ααααα’αααα’αΆα ααααΎααΊαααααΎααααααααααΆαααααΎα±αααααααΎαααααΌαα ααΆαααααΆαααΎα α’αααααΆαααααααα ααΆααααααααααααααααααα’αααααΎααααΈαααααΎαααααααααΆααααα α»αα ααΌααααα‘ααααΎααααααααα½αααΎααααΈαααααΎαααΆαααααΆαααΆαααααΆααααααα’α ααΎααααΈααααααααα Waf ααΆααΆαα½ααααααααΎαααΆαααααΆαααΆααααααααΎαα‘αΎαααααα½ααααα αΌαα§ααΆα ααα αα·αααΆαααααΎααααα α’αααααΉαααααΌαααααΎαααΆαααΆααααααααΆααΆααααααα
$ ./waf clean
$ ./waf configure --build-profile=optimized --enable-examples --enable-tests
αααααΉαα αΆααααααΎα αααΆ αα ααΆααααα αααααα»ααααα»α (αααααΆααααΆαααΆααααα½αααααα’ααα) α ααΆαααβαααααΆβααααΌαβαααα’αΆαβααΈβααΆαβαααααΎαβαα»α αααβααΆβααααααΆβαα·αβα αΆαααΆα αβααααΆααβαααβαα ααα»ααααβααΆβααΆβααΆαβα’αα»ααααβααβααα’ (ααΌαβααΎαβαααααα build ααΆααααααβααβααα); ααΆααΉααα»ααααααΆααααααααΆααααααΎαααΈαα»α αα·αα―αααΆαααααα»αααααΆααα αααα»ααα αααααΎα /. αα ααααααααααααααααΌαααΆαααααααα ααΆααααααααα‘αΎααα·α α αΎαααααααααααΆαααααα·αα·αααααΎαααΆαα’αΆααααααααααα α’ααααα½αααααΎαααααααααααααααααΆααΉαααΌα ααΆααααααα
Setting top to : /home/ns3user/workspace/bake/source/ns-3-dev
Setting out to : /home/ns3user/workspace/bake/source/ns-3-dev/build
Checking for 'gcc' (C compiler) : /usr/bin/gcc
Checking for cc version : 7.3.0
Checking for 'g++' (C++ compiler) : /usr/bin/g++
Checking for compilation flag -march=native support : ok
Checking for compilation flag -Wl,--soname=foo support : ok
Checking for compilation flag -std=c++11 support : ok
Checking boost includes : headers not found, please ,!provide a --boost-includes argument (see help)
Checking boost includes : headers not found, please ,!provide a --boost-includes argument (see help)
Checking for program 'python' : /usr/bin/python
Checking for python version >= 2.3 : 2.7.15 python-config : /usr/bin/python-config
Asking python-config for pyembed '--cflags --libs --ldflags' flags : yes
Testing pyembed configuration : yes
Asking python-config for pyext '--cflags --libs --ldflags' flags : yes
Testing pyext configuration : yes
Checking for compilation flag -fvisibility=hidden support : ok
Checking for compilation flag -Wno-array-bounds support : ok
Checking for pybindgen location : ../pybindgen ,!(guessed)
Checking for python module 'pybindgen' : 0.19.0. ,!post4+g823d8b2
Checking for pybindgen version : 0.19.0. ,!post4+g823d8b2
Checking for code snippet : yes
Checking for types uint64_t and unsigned long equivalence : no
Checking for code snippet : no
Checking for types uint64_t and unsigned long long equivalence : yes
Checking for the apidefs that can be used for Python bindings : gcc-LP64
Checking for internal GCC cxxabi : complete
Checking for python module 'pygccxml' : not found
Checking for click location : not found
Checking for program 'pkg-config' : /usr/bin/pkg- ,!config
Checking for 'gtk+-3.0' : not found
Checking for 'libxml-2.0' : yes
checking for uint128_t : not found
checking for __uint128_t : yes
Checking high precision implementation : 128-bit integer ,!(default)
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 header stdlib.h : yes
Checking for header signal.h : yes
Checking for header pthread.h : yes
Checking for header stdint.h : yes
Checking for header inttypes.h : yes
Checking for header sys/inttypes.h : not found
Checking for library rt : yes
Checking for header sys/ioctl.h : yes
Checking for header net/if.h : yes
Checking for header net/ethernet.h : yes
Checking for header linux/if_tun.h : yes
Checking for header netpacket/packet.h : yes
Checking for NSC location : not found
Checking for 'sqlite3' : not found
Checking for header linux/if_tun.h : yes
Checking for python module 'gi' : 3.26.1
Checking for python module 'gi.repository.GObject' : ok
Checking for python module 'cairo' : ok
Checking for python module 'pygraphviz' : 1.4rc1
Checking for python module 'gi.repository.Gtk' : ok
Checking for python module 'gi.repository.Gdk' : ok
Checking for python module 'gi.repository.Pango' : ok
Checking for python module 'gi.repository.GooCanvas' : ok
Checking for program 'sudo' : /usr/bin/sudo
Checking for program 'valgrind' : not found
Checking for 'gsl' : not found python-config : not found
Checking for compilation flag -fstrict-aliasing support : ok
Checking for compilation flag -fstrict-aliasing support : ok
Checking for compilation flag -Wstrict-aliasing support : ok
Checking for compilation flag -Wstrict-aliasing support : ok
Checking for program 'doxygen' : /usr/bin/doxygen
---- Summary of optional ns-3 features:
Build profile : optimized
Build directory :
BRITE Integration : not enabled (BRITE not enabled (see option --with- ,!brite))
DES Metrics event collection : not enabled (defaults to disabled)
Emulation FdNetDevice : enabled
Examples : enabled
File descriptor NetDevice : enabled
GNU Scientific Library (GSL) : not enabled (GSL not found)
Gcrypt library : not enabled
(libgcrypt not found: you can use ,!libgcrypt-config to find its location.) GtkConfigStore : not enabled (library 'gtk+-3.0 >= 3.0' not fou nd)
MPI Support : not enabled (option --enable-mpi not selected)
ns-3 Click Integration : not enabled (nsclick not enabled (see option --with- ,!nsclick))
ns-3 OpenFlow Integration : not enabled (Required boost libraries not found)
Network Simulation Cradle : not enabled (NSC not found (see option --with-nsc))
PlanetLab FdNetDevice : not enabled (PlanetLab operating system not detected ,!(see option --force-planetlab)) PyViz visualizer : enabled
Python API Scanning Support : not enabled (Missing 'pygccxml' Python module)
Python Bindings : enabled
Real Time Simulator : enabled
SQlite stats data output : not enabled (library 'sqlite3' not found)
Tap Bridge : enabled
Tap FdNetDevice : enabled
Tests : enabled
Threading Primitives : enabled
Use sudo to set suid bit : not enabled (option --enable-sudo not selected)
XmlIo : enabled
'configure' finished successfully (6.387s)
ααΌαα
αααΆααααααα
α»αααααααααααααΈααΆαααΎα αααααΎα ns-3 αα½αα
ααα½ααα·αααααΌαααΆαααΎαααΆαααααΆαααΎα α¬ααΆαααΆαααΆαααΆααααααααααααααΎααααΈααααΎαααΆαααΆαααααΉαααααΌαα α§ααΆα ααα ααΎααααΈααΎα XmlTo αααααΆαααααααΌαααααΆαααααααΆααα
ααΎαααααααα libxml-2.0. ααααα·αααΎαααααΆαααααααα·αααααΌαααΆαααααΎα α αΎααα»αααΆα ns-3 αααααααΌαααααΆαα·αααααΌαααΆαααΎααα ααΆαααΉαααααΌαααΆααααα αΆαα ααΌαα
αααΆααααααααΆααΆα’αΆα
ααααΎααΆααααααααΆ sudo ααΎααααΈααααα suid bit "αααααααααααααΆαααααα»ααα
αααααααΎαααΆα" αααααΆαααααααα·ααΈααΆααααΆααα ααΆβαα·αβααααΌαβααΆαβααΎαβααΆαβααααΆαααΎαβαα ααΌα
ααααβα αΎαβαα»αααΆαβαααβααα
βα‘αΎαβααΆ "αα·αβααΆαβααΎα"α ααΆα
α»αααααα ααΎααααΈααα½αααΆααααααΈαααααΎααααααΆαααΎα ααΌαααααΎ αααΆ ααΆαα½ααααΆαααΆαααααα --check-config
.
α₯α‘αΌαβααΎαβαααα‘ααβαα βαααααΎαβααααΆααβαααα αΆβαα·αβαααβααΆαβα§ααΆα ααα αα·αβααΆαβααΆαααααα
$ ./waf clean
$ ./waf configure --build-profile=debug --enable-examples --enable-tests
α₯α‘αΌααααααααααααααΆααααααααΌαααΆαααα‘αΎα α αΎαα’αααα’αΆα αααααΎαααααααααΆααααα α»ααααααααα·ααΈ ns-3 αααααααΆααααααΆααααα αΌαα
$ ./waf
ααα αΆαααΆαααΎα’αΆα αααααα’αααα±αααααααΎαααααααααααααααα ns-3 ααΈααα ααα»ααααα₯α‘αΌααααα’αααααΉαααΈααααααααΆααααααΌαααΆαααααααα ααΆαααααααα αα·ααααααΎαααΌααααααΆαααααΎα±αααααααΎαα
ααΎααααΈαα·αα·αααααΎαααααααααΆαα½ααααααααααααααΆααααΆαααααααα ααΆαααααααααααααααααααΆααααααα±αα ααΆαααΆααααααααΆαα½αα
$ ./waf --check-profile
Waf: Entering directory `/path/to/ns-3-allinone/ns-3.29/build'
Build profile: debug
ααααΆααΈαααΌααΆαααΎ build.py ααααΆααααααΆααααααααααααααααα --enable-examples
ΠΈ --enable-tests
ααα»αααααααααΎαααααααααα αααΆ ααΆαα·αααΆαααααααααααΆααααα α§ααΆα ααα ααΆααΉααα·αααααΎαααΆαααα
$ ./build.py --disable-python
ααααα·ααααααΉαααΆαααΌα αααα
build.py: error: no such option: --disable-python
ααααααΆαααΆααααα ααααα·ααααα·αααα·ααα - - α’αΆα ααααΌαααΆαααααΎααΎααααΈααααααΆαααααΆαααΆααααααααααααααΆαααα αααΆα ααααΌα αααααααα½αα±ααααΆααααααααΆααΆαααΎ ααΆααααααααΉαααααΎαααΆαα
$ ./build.py -- --disable-python
αααααααΆαααααΎαααΆααααααααΆααααΆαα ./waf ααααααα ααΆαααααααα --disable-python. αααααΊααΆααΆαααααΆααα½αα ααα½ααααααααααα’αααΈ αααΆ.
αααααααΆαααα α»ααααα»αααΆαααΆαααα
ααΆαα ααααααΆα ns-3 ααααΌαααΆαααΆαααααααΎαααααα·ααΈα ααααα C ++ α α»αααααααααα»ααααααΆααα αααα ααααααΆααα ααΎααΆαα ααα αΆαααΈαα»α ααΌαα αα·α MacOS α αααααΆαααΆαααΆαααααααΌα α αα ααΆαα ααα αΆαααααΈααααΌαααΆαα ααααααΆαααΆαα½αααΉαα’αααα αααααααααΈα αΎαα’αααα αααααααααΈααΆαααααααΆαααααααα ααααΆααααααΆαααΆααααα αααΎαα ns-3 ααααααα ααΆααααααααααΆαααααΆαααΆααααααΆ ααΎααααΈα αΆαααα»αααΆααααααΆαααΆααα’ααααΆααα α»α ααΌα αααααα½αααΆαααααα·αααΎα’ααααααα»αααααΎαααΆαααααα αΆαααα ααΎααααααααααααΈααΆα ααΆααααααΆαα’αααΈα’αααα αααααα’αΆα ααααααααΆαααααΆαααΆα
α§ααΆα ααα ααΈαα»αααΆαααΆαα ααααααΆα nsβ3.28 αααααΆαα Fedora 28 ααααα½ααααα αΌαααααααααααΈ gcc (gcc-8) ααΆααααΆαααΆαα ααααααΆα ns-3.28 α¬αααααα»αααααα Fedora 28 ααΆαα½αααΉαααΆαααα‘αΎα Gtk2+ ααα α»αααΆααααααααΉαααΎαα‘αΎαα
/usr/include/gtk-2.0/gtk/gtkfilechooserbutton.h:59:8: error: unnecessary parentheses ,!in declaration of β__gtk_reserved1β [-Werror=parentheses] void (*__gtk_reserved1);
αα αααα»αααΆαα ααααααΆααααα αΆααααααΎαααΈ ns-3.28.1, in αααΆ αααααΎαααΊα’αΆα ααααΆαααΎααααΈαααααααΆααααα αΆααΆαααααα ααΆαα·αααΆααααααααα "-Werror" αα αααα»α g++ αα·α clang++ α αααααΊααΆαααααΎα "--disable-wrror" α αΎαααααΌαααα’αα»ααααααα‘α»ααααααααααα ααΆααααααααα
$ ./waf configure --disable-werror --enable-examples --enable-tests
ααααααα ααΆααααααααα¬αααααΌααααα»α
ααΆααααααααΆαα½αα ααα½α αααΆ ααΆαα’αααααααααααα»αααααΆααααΆαααααααα ααΆααααααααααα»ααααα α αΎαααααααΆααα»ααααΆααααααα»αααααΆααααΆαααΆααααααα»αααααα α§ααΆα ααα ααααα·αααΎα’αααα ααααααΎαα»αααΆαααααΆααααΆα ns-3 α’αααα’αΆα ααΎαααΆαααααααααΈα ααααΉα αααααααΎ sudoααΌα αααααΆααααααΆααααΆαααΎα ααΆααΉαααα·αααααΆααααααααΆααα αΆαααααΆαααααααα ααΆαααααααα α αΎαααΌα ααααα’αααα’αΆα ααααΆααααααΌαααΆαααααααα ααΆαααααααααααααααΎααΆααααααααΆααΆαααααα ααααα½ααααα αΌαα§ααΆα ααα αα·αααΆαααααΎααααααααααα
$ ./waf configure --enable-sudo --enable-examples --enable-tests
ααααα·αααΎα’αααααααΎαααααα αααΆ ααΉαααΎαααααΎαααΆα sudoααΎααααΈααααΆααααααΌααααααα·ααΈαααααΎαααααααΌαααααΆααααΆαααΎααααΈααααΎαααΆααααααΆαααΆαα’αα»ααααΆα ααΆ rootα ααα αααΆ ααΆααααααΎαααΆα αααΎαααααααααΆααααΆαααααααα ααΆαααααααα αα·αααα αΆαααΆααααα ααΎααααΈαα»ααααααααΎαααααα’ααα ααΌααααα αΌαα
$ ./waf --help
αα ααααααααααΆαα ααΎαααΉαααααΎαααααΎαααΆααααααΉαααΆαααααΎααααααα½αα ααα½αα
ααααααααΆααα½αααααα»αααααΆα
ααΎαααΆαααΎααα½α α αΎαααΈαααααααα’αααα’αΆα ααααααα ααΆαααααααα αααΆ αααααΆααααααα·ααΆα ααααΆααααα α»α ΠΈ αααααΎα:
$ ./waf --build-profile=debug
ααααΆαααααααααΆααα½αααααα»αααααΆααααα·ααααααααααα α
ααααααΆα. αααααΎα -d
ααΊααΆααααααΌα
ααΉα --build-profile
. ααααααααααΆαααΆαααααααααααΆαααααΎααααΆααααΆααααααααΆ ααΆαα’αα’αΆα αα·ααα»αααΆαααααααΎαααααα·αααααΆααααααα·ααΈα
αααααα
ααΌα αααα’αααα’αΆα ααΎα ααΆααααααααΆ αα·αααΆαα’αα’αΆαααΆααα αααα»αααΆααααααΎαααααΆααααα α»αααα»αααααα ααΆαα’αα»αααααααααΆαααααΆαααΊααΎααααΈαααααΎαααααααΈαααααα’ααααα αααα»αααααααααΆααααα α»α αααααΆααααααααΎααΆαααααΎαααΆαααααα αΎαααααααα (αααααΆααααΆαααααΆααααααΌααααα·αα· α¬αααΆαααΆαααααα) αα αααα»αααααααααααΆαααΆαααααΆααααααα’α
ααααα·αααΎα’αααααΆαααΌαααααα½αααααΎαααΆααααααα»αααααααααααΆαααΆααΆααααΆααααα»ααααα ααΌαααααΎ Code Wrapper Macroα
NS_BUILD_DEBUG (std::cout << "Part of an output line..." << std::flush; timer.Start ,!()); DoLongInvolvedComputation ();
NS_BUILD_DEBUG (timer.Stop (); std::cout << "Done: " << timer << std::endl;)
ααααΆαααΎα, αααΆ αααααααααααΎαααααα»αα»ααΆααα
αααα»αααα―αααΆαααΆααααα α’αααα’αΆα
αααααΆααααααααααααααααααααααΎαααααΎα -β―-out
α§ααΆα ααα:
$ ./waf configure --out=my-build-dir
αααααΆααα½ααααα αΌαααΆααΆαα½αααΉαααααααααααΆαααΆ α’αααα’αΆα ααααΌααααΆαααΆααααα½ααααΆααααααΎαα αααααααααααααααΆα
$ ./waf configure --build-profile=debug --out=build/debug
$ ./waf build
...
$ ./waf configure --build-profile=optimized --out=build/optimized
$ ./waf build
...
αααα’αα»ααααΆαα±ααα’αααααααΎααΆαααΆαα½αααΆααα½αααααα»αααααΆααΆα αααΎαααααα·αα αΆαααΆα ααααααααΆααα½αααααα»αα α»αααααααααα’ααα‘αΎααα·αααΆαααααα αα αααα’αααααααΌααα αααααααααααααα αααΆ ααΉαα αααααααααΆ ααααα·αα αααααα‘αΎααα·αααΆαααααα»αα
αα αααα’αααααααΌαααααααααΆααααααΆαααααααα α’αααααααΌααααα»ααααααααααααα»αααΆαααααααααααΎαααααΆαααααααα ααΆααααααααααΌα ααααΆααΆαααααα ααΆααααααα’αααααα·ααααΆαααΆα αααΎαααΉααα½αα’ααααααααΆαααα α»αα
$ export NS3CONFIG="--enable-examples --enable-tests"
$ export NS3DEBUG="--build-profile=debug --out=build/debug"
$ export NS3OPT=="--build-profile=optimized --out=build/optimized"
$ ./waf configure $NS3CONFIG $NS3DEBUG
$ ./waf build
...
$ ./waf configure $NS3CONFIG $NS3OPT
$ ./waf build
α’αααα ααααα αα·αααα
αα αααα»αα§ααΆα αααααΆαααΎ αααΆ ααΎααααΈαααααΎα ns-3 ααααΎαααααα·ααΈα ααααα C ++ ααΈ GCC ( g ++) ααααααΆαααΆααααα α’αααα’αΆα ααααΆααααααΌαα’αααΈαααα’αααααααΎ αααΆ C++ compiler ααααααααα’αααααα·ααααΆα CXX α α§ααΆα ααα ααΎααααΈααααΎαααααα·ααΈα ααααα C++ Clang, clang++,
$ CXX="clang++" ./waf configure
$ ./waf build
ααΆαααααααΌα ααααΆα’αααα’αΆα ααααααα ααΆαααααααα αααΆ ααΎααααΈααααΎααΆαα αααααα ααα αΆααααααααΎ distcc:
$ CXX="distcc g++" ./waf configure
$ ./waf build
ααααααΆαααααααα’αααΈ distcc αα·αααΆαα αααααα ααα αΆαα’αΆα ααααΆααα ααΎααααααααααααααα»ααααααα―αααΆαα ααΎααααΈαααααααααα’αααα ααααααα αααααααααα ααΆαααααααα ns-3 ααΌαααααΎα’αααααα·ααααΆα CXXFLAGS_EXTRA α
ααΆαααααα
αααΆ α’αΆα ααααΌαααΆαααααΎααΎααααΈααα‘αΎααααααΆααααα ααααααααααααααααΆαα ααΎααααααααα ααΆαααααΆαααΎα αααααΆααααααααΆαα ααααα αα·αα’αΆα ααααα·ααααα·ααΆαααΆαααΈααΆαααα αααα»αααα―αααΆα ααααΆαααΆα αΎαα αΆααααΆααααΈ Waf ααΉαααΈααΈααΆαααααααααΆααα αα·ααααααα·ααΈαααα’αΆα ααααα·ααααα·ααΆα ααααα·αα αΆαααΆα αααα‘αΎααααααΆααααα ααααααααααααααααα
ααααα·αααΎα’αααααααΎααααΆααα
αΌαα
α·αααααα‘αΎααα
ααΆααααα
αα build ααααα½αααα’αΆα
ααααΎαααΆαααΆααααααααΆααΆαα ./ αααΆα αααΆααα‘αΎα. αα»αααααααααΆαααΎααααααΆααααΆαααα‘αΎαααΊ / usr / αααα»ααααα»αααΌα
ααααα ./ αααΆα αααΆααα‘αΎα ααΉαααα‘αΎααααααα·ααΈαα
αααα»α / usr / local / bin, αααααΆααααα
αααα»α / usr / local / lib αα·αα―αααΆαααααααΆαα
αααα»α /usr/local/include. αα·αααα·α’αααααααΎααααΆααααΆαααααααααΆααααααΆααααΌααααααααααα»αααααααααΆαααΎα ααΌα
ααααααΆααααααααΆααααααΆααΉαααΆα sudo ./waf ααα‘αΎα. αα
αααααΎαααααΎαααΆα Waf ααΉαααααΎαααΎαααααΌαααΎααααΈααααΎαααααΆααααααααΆαα
ααααααααα
αααα»αααααΆαααα αααααΆααααααααΎααααααΆαααααΆαααααΌααα
ααΆαααααααΆααααααααΆαααααααα
ααΆαααααααααα
αααα»αααα·ααααΆαααΌαααααΆαα ααΌα
αααααα
αααααα‘αΎααααααΆααααα
ααΎαααααααα ααΆααΊααΆααΆαα’αα»ααααααα’ααΎααααΈαα·αα·αααααΎαααΆαααααΆαααααααΉαααααΌααααα»αααααΌαααΆαααααΎααααΆααα α’αααααααΎααααΆααα’αΆα
ααααΎαααΎαααα‘αΎαααΆαα½ααα»αααααααααααααααααααΆαααααααΎαααα‘α»ααααααααααα
ααΆαααααααα --prefix
α§ααΆα ααα:
./waf configure --prefix=/opt/local
ααααα·αααΎαα
αααααααααααααΆααααΈααΆαααααΆαααΆ α’αααααααΎααααΆαααααα
αΌαααΆααααααααΆααα‘αΎα ./waf
αα»αααααααΉαααααΌαααΆαααααΎ /opt/local.
αααα»αααΆαααΆα ./waf clean
ααααΌαααααααΎαα»ααααααααααα
ααΆααααααααααααααα‘αΎααα·α ααααα·αααΎααΆαααα‘αΎαααΉαααααΎ αααΆ αα
ααααααα»ααααααααααα
ααΌα
ααααααΎααααΈααααΎ ns-3 αα·αα
αΆαααΆα
αα α
ααα ./waf install
. α’αααααααΎααααΆααααΆαα
αααΎαααΉααα·αααααΌαααΆαααΆααααααααΆααααα αααααΆααα αααΆ ααΉααααααααΆααααα
αα
α»ααααααα
ααααΈααα―αααΆα ααα»ααααα’αααααααΎααααΆαααα½αα
ααα½αα’αΆα
ααααΎαααΆααΆααΆααααααααα ααααα·αααΎαααααααΆααααααα½αααααΆαααααααααΉαααΆαααααΎααΆαααΆαα½ααααααα·ααΈαα
ααΆααααα
αα ns-3α
Waf αα ααΈα
αα
ααααα·αααααΌααααααααΆαααααα ns-3 ααΆαααααααΈα Waf αααα½αααα»αααααα αα
αααα’αααα
αΆααααααΎαααααΎααΆα α’αααααΉαα
αααΆααααα
αααΎααααα»αααα―αααΆα scratch/
α¬ααΆαααααααα
αα
αααα»αsrc/...
α αΎααααα»αααααααα½αααααΌαααααα αααΆ. α’αααα’αΆα
α
αΆαααΆα’ααααα
ααΈααΆ α αΎαααα αααΆ ααΌα
ααααααα:
$ ../../../waf ...
ααα»ααααααΆααΉαααΆααΆααα»αααααΆαα αα·αααΆαααΉαααΆαααα α»α ααΌα ααααααΆααααααααααΆααααααΎαααΆααα»αα αα·ααΈααΆαααααα½αααΊααααΌαααααΎαααααα·ααΈαα·ααααα’αααααααΌα ααΆ emacs α¬ ααααΆαααΎαααααααα»ααααααααααααΆααΈαααΈαααααΌαααΆαααΎα αα½αααααΌαααΆαααααΎααΎααααΈαααααΎα ns-3 α αΎαααΈααΈαααααΌαααΆαααααΎααΎααααΈααααααα½αααΌααααααα ααααα·αααΎα’αααααΆα ααΆα‘α»ααααααΆαααα α’αααααα·ααααΆαα’αΆα αα½αα
$ export NS3DIR="$PWD"
$ function waff { cd $NS3DIR && ./waf $* ; }
$ cd scratch
$ waff build
αααα»αβααβαααΌαα»α ααΆβαααα ααβααΆβα
ααβααααααβααααααΈα waf αα·αβααΌαβααααΆααβααΌα
βααΆ exec ../../waf
. ααΌαβαα»αβααααΎβααΌα
ααααα αααααΆααΆααααα
ααα‘ααααααΆααα’αααααΎαααΉαααΎα α αΎααα
ααααααααααΎαα·αααΆαααα’ ααΆαα±αααα·ααΆαααααΎαααα α»ααααα»αααΆαααΆααααα αααααααααΆααααααΆααααα αΆαααΆαααΎααΊααΆααααΌαααααα½αααααΎα
3.5 ααΆαααααΎααααα ns-3
α’αααα’αΆα ααααΎαααΆαααΆαααααΎαααααα―αααΆααααΆαα ααα αΆα ns-3 αααααααΎαααΆαααααααΈα ./test.py:
$ ./test.py
ααΆαααααΎαααααααΆαααααααααΌαααΆαααααΎαααΆαααααααΆαα½α αααΆ. αα ααΈαααα»α α’ααααα½αααααΎαααΆααα½αααααα·ααΆαααΆα
92 of 92 tests passed (92 passed, 0 failed, 0 crashed, 0 valgrind errors)
αααααΆααΆαααααΆαααααααΆαααααααα’ααααααααΆαααΆαααΆαα valgrind ααΆαα α¬ααα α»αααααααα αΆαααΈαααα αΆααΆαα½αααΌα α¬ααΆααα·ααααΈααααΆαααΆαα§ααααα αα·αααΌαα
α’αααααααΉαααΎαααααααα α»ααααααααΈ αααΆ αα·αα’αααααΆαααααααααααα»αααααΎαααΆαααΆαααααΎαααααααΈαα½αα αααααΉαααΎααα ααΌα αααα
Waf: Entering directory `/path/to/workspace/ns-3-allinone/ns-3-dev/build'
Waf: Leaving directory `/path/to/workspace/ns-3-allinone/ns-3-dev/build'
'build' finished successfully (1.799s)
Modules built:
aodv applications bridge
click config-store core
csma csma-layout dsdv
emu energy flow-monitor
internet lte mesh
mobility mpi netanim
network nix-vector-routing ns3tcp
ns3wifi olsr openflow
point-to-point point-to-point-layout propagation
spectrum stats tap-bridge
template test tools
topology-read uan virtual-net-device
visualizer wifi wimax
PASS: TestSuite ns3-wifi-interference
PASS: TestSuite histogram
...
PASS: TestSuite object
PASS: TestSuite random-number-generators
92 of 92 tests passed (92 passed, 0 failed, 0 crashed, 0 valgrind errors)
ααΆααααααααΆαααααΆααααααΆααααΌαααΆαααααΎαααΆααααα’αααααααΎααααΆααααΎααααΈαααααααααΆαααααΆαααΆαααα ααααΆααΆαα ααα αΆα ns-3 ααααΌαααΆααααααΎαα‘αΎααααΆαααααΉαααααΌαα (α αααΆαααΆααααΆαααααααααΆαα "PASS: ... " αααα ααααΆαα»αααααΆ αααααΊααΆααΏαααααααΆα α’αααΈαααααααΆαααααααΊαααααΆαααααααααα α α»ααααα αααααααΆαααΆααααααα αΆαααΆααΆαααααΎαααααααΆααα’ααααΆαααααααα»ααα ααααΆαααΆαααααΎαααααααΆαα½ααααΆααα α¬ααΆααααα ) αα·α αααΆαα·α test.py ααΉαααααΎαααΆαααααααααΆαα ααΌααΆααααααΌαααααΎαααΆααααααΆααααααααΆαααΈαα
3.6 ααααΎαααΆαααααααΈα
ααΆααααααΆααΎαααααΎαααΆαααααααΈααααααααΆαααααααααα αααΆ. αααα’αα»ααααΆαα±ααααααααααααΆααααααΎααααΈααΆααΆααΆααααΌααααααΆααααααααΆαα
αααααααααααΌαααΆαααααααααΆαααααΉαααααΌα α αΎααααααΆαααααΆααα
αααααααΎαααΆαα ααΎααααΈααααΎαααΆααααααα·ααΈααααΆααααααααΎ αααΆ ααΆαα½ααααΆαααΆαααααα -β―-run
. α
αΌαααααΎαααΆαααααΌα ns-3 αααααααα·ααΈαααααααΈαααααα αα½ααααΈβαα·ααααααααααΆααααα
αΌαααΌα
ααΆααααααα
$ ./waf --run hello-simulator
Waf ααΉααα·αα·αααααΆααααΌαααΆαααααα·ααΈααααΌαααΆαααΆααααααααΉαααααΌα α αΎαααΆααααααααα·αααΎα αΆαααΆα αα αααααΆαααα αααΆ ααΉαααααΎαααΆααααααα·ααΈααααααααΎαααααααααΌα ααΆααααααα
Hello Simulator
α’αα’αααΆαα! α₯α‘αΌααααα’αααααΊααΆα’αααααααΎααααΆαα NS-3!
ααΎαααα»ααα½αααααΎααΌα ααααα ααααα·αααΎαααα»ααα·αααΎααααααα?
ααααα·αααΎα’αααααΎαααΆα αααΆαααα αΆαααΆααΆαααααΆαααΆααΆααααα ααααααααααα ααα»ααααα’ααααα·αααΎαααααααααα "αα½ααααΈ Simulator"αααααΆααααααΆαααααααΆαααααα αααα»αααααα [Build-with-Waf] α’αααααααΌαααααααΆααααααααα’ααααα αααααΎαααα»ααααααααΆαααααΌααα αααααα·αα ααααΆααααα α»α. αααααααααα»αααΌαααΆααα’αααααααααΎαααα»αααααααααααααΎαααΆαααΆαα» ns-3 αα·ααααααααααΎαααΆαααΆααααααααΆ αα·αααααΌαααΆαααααΎααΎααααΈααααα»αααααΆαααααΆαααααα½ααα ααΆαααα»αααΌαα ααααααααΈαααΆαααΆααααααααΌαααΆααα·ααααααααααααααααα· αα ααααααααΌααααααΆαααααΎα±αααααααΎαααααΌαααΆαα ααααα - ααΆααααΌαααΆα "ααααΎα±αααααααΎα" α ααααα·αααΎα’ααααα·αααΎααααααα "Hello Simulator" ααΌααααα αΌαααΌα ααΆααααααα
$ ./waf configure --build-profile=debug --enable-examples --enable-tests
ααΎααααΈααααααα ααΆαααααααα αααΆ ααΎααααΈαααααΎαααααααααΆααααα α»ααααααααα·ααΈ ns-3 ααααα½ααααα αΌαα§ααΆα ααα αα·αααΆαααααΎαααααα αααααΆααααα’ααααα½ααααααααΎαααααααααΆααααα α»ααα αα α»ααααααααααΌαα‘αΎααα·ααααααΆααααα αΌα
$ ./waf
α₯α‘αΌααααααααα·αααΎα’αααααααΎαααΆααααααα·ααΈ αα½ααααΈ-αααααααααΎα’ααααα½αααααΎαααααααααααΉααα»αα
3.6.1 α’αΆαα»ααααααααααΆααααΆααααααααΆ
ααΎααααΈααααααΆααα’αΆαα»ααααααααααΆααααΆααααααααΆαα αααααα·ααΈ ns-3 ααΌαααααΎααααΆαααΆααααααα
$ ./waf --run <ns3-program> --command-template="%s <args>"
αααα½α αα
ααααααααααα·ααΈααααα’ααα αα·αα’αΆαα»αααααα α’αΆαα»ααααα -β―-command-template
αααααΆαα αααΆ ααΆααΌαααααααααΆαααααααΆαααααααΎααααααΆααααΆααααααααΆαα·αααααΆαα αααΆ ααααΎααΎααααΈααααα·ααααα·αααααα·ααΈα Waf αα·αα·αααααΎαααΆααΆαααααΆαααΆααΆααααα
αα αααααααααΌααααααΆααααααααΆαα
ααααααα αααααΆααααααααΎααααΌαααααΆααααΆααααααααΆαααααΆαααααα α αΎααααα½αααααααααααα·ααΈαααααΆααααααααααΆαα %s ααΎααααΈα α
αααααα·ααΈαααα’αΆα
ααααα·ααααα·ααΆαα ααααα·αααΎα’αααααααΎαααΆαααααααααααααααααα»αααααΆα ααΆαααααααΆααααααΆααααααΆαααααααααΉααααααα·ααΈ ns-3 αα·αα’αΆαα»αααααααααααΆααααα»αααααααααα»ααααααααααα½αα
$ ./waf --run '<ns3-program> --arg1=value1 --arg2=value2 ...'
α§ααΆα αααααααΆαααΆαααααααααααα·ααααα½ααααααΊααΆαααααΎαααΆααα»αααΆααααααααααααΎαααΎαα α αΌααααααααΆααΆααα»αααΆααααααα½αα α ααΆ mytest (ααΆααα·αααΆαα·αααΆα)α ααΆαααΎααΎαααΆαααααΎααααααΈα ./test.py ααΎααααΈααααΎαααΆαααΆαααααΎααααααα½αα ααα½αααααααααΆ αααα α αααααα·ααΈααΆαααααααααα αΎαααααααα α’ααααααααΆαααΆααααα. α α α’ααααααααΆαααΆααααα αααααααΆααααΎααααΈααααΎαααΆαααΆαααααΎααααααα½α:
$ ./waf --run test-runner --command-template="%s --suite=mytest --verbose"
α’αΆαα»αααααααΉαααααΌαααΆααααααΌααα αααααα·ααΈ α’ααααααααΆαααΆααααα. αααααΆα mytest αα·αααΆααα ααΆαααα α»αααΉαααααΌαααΆααααααΎαα ααΎααααΈααααα»ααααααααΎαα’ααααααααΆαααΆααααααααααΆα ααΌααααα αΌαα
$ ./waf --run test-runner --command-template="%s --help"
3.6.2 ααΆαααααΆααααα α»α
ααΎααααΈααααΎαααΆααααααα·ααΈ ns-3 αααααα§αααααααααΎααααΆαααααααααα ααΌα
ααΆαααααα·ααΈααααΆααααα α»α (α§ααΆα ααα gdb) α¬α§αααααααΆαααααα’αααα
αα
αΆα (α§ααΆα ααα αααΆααα αααααΈα) ααααΎααααααααααααααααΆ -β―-command-template = "β¦"
. α§ααΆα ααα ααΎααααΈααααΎαααΆααααα»ααααααα·ααΈααααΆααααα α»α gdb αααααα·ααΈ hello-simulator ns-3 ααααα’αααααΆαα½αααΉαα’αΆαα»αααααα
$ ./waf --run=hello-simulator --command-template="gdb %s --args <args>"
α
αααΆαααΆααααααααααα·ααΈ ns-3 ααααΆααααααΆαα½αα’αΆαα»ααααα -β―-run
αα·αα§αααααααααΎααααΆααααααααααα (αα
ααΈααα gdb) ααΊααΆαα·αα·ααααααααΆααΈαα½ααα
αααα»αα’αΆαα»ααααα -β―-command-template
. αααααΎα -β―-args
ααΌαααααΉα gdbααΆαα
ααααααααααΆααααΆααααααααΆααΆαααααα·αααα·αααααααααα·ααΈ "ααΆα" α (αααααα½αα
ααα½α gdb αα·ααααααΈαααααΎα -β―-args
. αααα»αααααΈααα ααα’αΆαα»ααααααααααα·ααΈα
ααααΈ -β―-command-template
α αΎαααααΎαααα»αααΆααααααααΆ gdb args.) ααΎαα’αΆα
ααααααΌαααααααα αα·αααΌααααααα»α ααΎααααΈααααΎαααΆαααΆαααΆααααααα
ααααααααααα·ααΈααααΆααααα α»αα
$ ./waf --run test-runner --command-template="gdb %s --args --suite=mytest --verbose"
3.6.3 ααααΆαααΆα
Waf αα½αααααααΌαααΆαααΆααα±ααααααΎαααΆαααΈααΈααΆααααααααΆαα
αααααααΆαααΎααααΎαααΎ ns-3 α ααα―αααΆααααααααΆαααΆααα―αααΆααααα―αααΆαααααααααΉαααααΌαααΆααααααα ααα»ααααα
α»ααααΆαααΆααΎα’αααα
αααααααΆαα»αα―αααΆαααΆααααααα
ααΆααααα
αααααΆαααααα ns-3? ααααΎα’αΆαα»ααααα -β―-cwd
:
$ ./waf --cwd=...
α’αααβα’αΆα βααβααΎαβααΆβααΆβααΆααβααβααΆαβαααα½αβαααα»αβααΆαβααα½αβααΆαβα―αααΆαβααααααβαα βαααα»αβααβααΆαβααΆαβααααβα’αααβα αααα»αααααΈααα αααααααΆαααααααααΆααααααα’αΆα αα½αααΆαα
$ function waff {
CWD="$PWD"
cd $NS3DIR >/dev/null
./waf --cwd="$CWD" $*
cd - >/dev/null
}
ααΆααα»ααααααααααααααα»αααααΆααααααααΆαααααΆααααΆαααΆααα
αα
α»αααααααα
αα αααΆα αΎααααααΆααααααααΆα αααΆ ααΎααααΈααααΆααααααΌαααααΆαααΆααααα‘αααα
ααααΆαααΆααα
αα
α»αααααααααααΆααααααΆαα»ααα»ααααα
αΆααααααΎααααααα·ααΈα ααΎαααΎαα‘αΎαααΈαααα»α -β―-cwd
αααααΆααααΆααααααα α’αααααααΎααααΆααααΆαα
αααΎαααααΆααααααααΎαααΆα Waf ααΈααααααα·αααααΌα α αΎααααααΎαα―αααΆααααααααα
ααΈαααα
ααααα: www.habr.com