How to install and build NS-3 using bake
<p>I am trying to download, build and test NS-3 using bake by typing the following commands on Cygwin on windows 7: </p>

<pre><code>$ cd
$ mkdir workspace
$ cd workspace
$ hg clone http://code.nsnam.org/bake
</code></pre>

<p>Then I changed the directory to bake directory and typed:</p>

<pre><code>$ export BAKE_HOME=`pwd`
$ export PATH=$PATH:$BAKE_HOME:$BAKE_HOME/build/bin
$ export PYTHONPATH=$PYTHONPATH:$BAKE_HOME:$BAKE_HOME/build/lib
</code></pre>

<p>Then :</p>

<pre><code>./bake.py configure -e ns-3.25
</code></pre>

<p>I got nothing displayed on the screen and then typed:</p>

<pre><code>./bake.py check
</code></pre>

<p>I got the following displayed on the screen:</p>

<pre><code>&gt; Python - OK
&gt; GNU C++ compiler - OK
&gt; Mercurial - OK
&gt; CVS - OK
&gt; GIT - OK
&gt; Bazaar - OK
&gt; Tar tool - OK
&gt; Unzip tool - OK
&gt; Unrar tool - is missing
&gt; 7z data compression utility - OK
&gt; XZ data compression utility - OK
&gt; Make - OK
&gt; cMake - OK
&gt; patch tool - OK
&gt; autoreconf tool - OK


 &gt; Path searched for tools: /usr/local/bin /usr/bin /cygdrive/d/app/user/product/11.2.0/DB_HOME/bin /cygdrive/d/app/user/product/11.2.0/dbhome_1/bin /cygdrive/c/Windows/system32 /cygdrive/c/Windows /cygdrive/c/Windows/System32/Wbem /cygdrive/c/Windows/System32/WindowsPowerShell/v1.0 /cygdrive/c/Program Files (x86)/Microsoft SQL Server/100/Tools/Binn /cygdrive/c/Program Files (x86)/Microsoft SQL Server/100/DTS/Binn /cygdrive/c/Program Files (x86)/Skype/Phone /cygdrive/c/Users/user/AppData/Local/Programs/MiKTeX 2.9/miktex/bin/x64 /usr/lib/lapack /home/user-PC/ns-3-allinone-74b94ecd0120/ns-3-dev/bake/workspace/bake /home/user-PC/ns-3-allinone-74b94ecd0120/ns-3-dev/bake/workspace/bake/build/bin bin  /home/user-PC/ns-3-allinone-74b94ecd0120/ns-3-dev/bake/workspace/bake /home/user-PC/ns-3-allinone-74b94ecd0120/ns-3-dev/bake/workspace/bake/build/lib
</code></pre>

<p>Then I typed on the command prompot: </p>

<pre><code>$ ./bake.py download
</code></pre>

<p>I have to get the following in order to complete this process:</p>

<pre><code>&gt;&gt; Downloading gccxml-ns3 (target directory:gccxml) - OK
&gt;&gt; Searching for system dependency python-dev - OK
&gt;&gt; Searching for system dependency pygraphviz - OK
&gt;&gt; Searching for system dependency pygoocanvas - OK
&gt;&gt; Searching for system dependency setuptools - OK
&gt;&gt; Searching for system dependency g++ - OK
&gt;&gt; Searching for system dependency qt4 - OK
&gt;&gt; Downloading pygccxml - OK
&gt;&gt; Downloading netanim-3.107 - OK
&gt;&gt; Downloading pybindgen-0.17.0.post49+ng0e4e3bc (target directory:pybindgen) - OK
&gt;&gt; Downloading ns-3.25 - OK
</code></pre>

<p>But I got the following problems and I do not have an idea how to get the needed  dependencies:</p>

<pre><code> $ ./bake.py download
 &gt;&gt; Searching for system dependency qt4 - OK
 &gt;&gt; Searching for system dependency g++ - OK
 &gt;&gt; Searching for system dependency setuptools - Problem
 &gt; Problem: Optional dependency, module "setuptools" not available
   This may reduce the  functionality of the final build.
   However, bake will continue since "setuptools" is not an essential dependency.
   For more information call bake with -v or -vvv, for full verbose mode.

 &gt;&gt; Searching for system dependency pygoocanvas - Problem
 &gt; Problem: Optional dependency, module "pygoocanvas" not available
   This may reduce the  functionality of the final build.
   However, bake will continue since "pygoocanvas" is not an essential dependency.
   For more information call bake with -v or -vvv, for full verbose mode.

 &gt;&gt; Searching for system dependency pygraphviz - Problem
 &gt; Problem: Optional dependency, module "pygraphviz" not available
   This may reduce the  functionality of the final build.
   However, bake will continue since "pygraphviz" is not an essential dependency.
   For more information call bake with -v or -vvv, for full verbose mode.

 &gt;&gt; Searching for system dependency python-dev - OK
 &gt;&gt; Downloading gccxml-ns3 (target directory:gccxml) - Problem
 &gt; Problem: Optional dependency, module "gccxml-ns3" failed
   This may reduce the  functionality of the final build.
   However, bake will continue since "gccxml-ns3" is not an essential dependency.
   For more information call bake with -v or -vvv, for full verbose mode.

 &gt;&gt; Downloading pygccxml - Problem
 &gt; Problem: Optional dependency, module "pygccxml" failed
   This may reduce the  functionality of the final build.
   However, bake will continue since "pygccxml" is not an essential dependency.
   For more information call bake with -v or -vvv, for full verbose mode.

 &gt;&gt; Downloading netanim-3.107 - Problem
 &gt; Problem: Optional dependency, module "netanim-3.107" failed
   This may reduce the  functionality of the final build.
   However, bake will continue since "netanim-3.107" is not an essential dependency.
   For more information call bake with -v or -vvv, for full verbose mode.

 &gt;&gt; Downloading pybindgen-0.17.0.post49+ng0e4e3bc (target directory:pybindgen) - Problem
 &gt; Problem: Optional dependency, module "pybindgen-0.17.0.post49+ng0e4e3bc" failed
   This may reduce the  functionality of the final build.
   However, bake will continue since "pybindgen-0.17.0.post49+ng0e4e3bc" is not an essential dependency.
   For more information call bake with -v or -vvv, for full verbose mode.

 &gt;&gt; Downloading ns-3.25 - Problem
 &gt; Error:  Critical dependency, module "ns-3.25" failed
   For more information call Bake with --debug and/or -v, -vvv, for full verbose mode (bake --help)
</code></pre>

<p>It seems you are missing "Unrar tool". I don't have cygwin to test here, but you migth try:</p>

<pre><code>wget http://www.rarlab.com/rar/unrarsrc-5.1.7.tar.gz
tar -xzvf unrarsrc-5.1.7.tar.gz
cd unrar
make
</code></pre>

<p>and then run bake download again.</p>

<p>Source: <a href="https://wjianz.wordpress.com/2014/09/28/howto-extract-rar-files-on-cygwin/" rel="nofollow">https://wjianz.wordpress.com/2014/09/28/howto-extract-rar-files-on-cygwin/</a></p>

python c++ g++ cygwin cygpath