Neither ns-2 nor nam-1 is developed on (nor for) the win32 platform. We can
only guarantee that they compile on windows, but not their correct functioning.
If you have anything to contribute in this respect, we would like to hear from you.
Before you build, notice that you can get nam and ns binaries for windows at
http://www.isi.edu/nsnam/dist/binary/. If you only want to do tcl scripting in
ns, they were probably what you want.
Procedures to compile on windows. For more information, whose details about ns
might be obsolete but others apply, see http://www.isi.edu/nsnam/ns/ns-win32-build.html
- Make sure your msvc works (and your environment variables are setup correctly)
- Get Cygwin and perl
- IMPORTANT: otcl/tclcl/ns can be built and work with supplied tcl/tk 8.3.2, but nam will
not (it builds, but does not run). To solve this problem one has to use a hacked
tcl/tk 8.0p2 that supports static lib instead of DLLs. See the following discussion
in nam for detail. For this reason, there is a switch in otcl/makefile.vc and
conf/makefile.win in tclcl/ns/nam that controls using static build or DLLs. It is
a macro STATIC_LIB, which is turned on by default. You must download the hacked
tcl/tk 8.0p2 to compile the default ns-allinone on windows. Alternatively, if you do not
use nam at all, comment that macro and you'll be able to compile with tcl/tk 8.3.2
- After compilation, you should do (1) copy the DLLs (if you are using tcl/tk 8.3.2)
to one of yours paths (you can see it in the system applet from your control panel, or
autoexec.bat if you are using win98/95, or you can open a tcsh (dos prompt) and do
echo $PATH (%PATH%)); (2) copy the tcl library files (~tcl/library) to one of the default
paths (somehow setenv TCL_LIBRARY did not work for me on windows, but you can certainly
try). If you don't know the default paths, run ns and you'll see it in its complaints.
IMPORTANT: you should avoid both these two steps if you are using the hacked tcl/tk 8.0p2.
- go into win, do nmake -f makefile.vc
- result binaries/libraries should be in win/Release
- you can also import makefile.vc into you ide and go from there
- pretty much the same as tcl8.3.2
- correct the paths to your vc, tcl, and tk in makefile.vc, then do
nmake -f makefile.vc
- correct the paths to your vc, tcl, tk, and otcl in conf/makefile.win
(do NOT touch makefile.vc), then do nmake -f makefile.vc
- same as tclcl, except you need to correct paths to tclcl and tclsh as well.
- about validate, see http://www.isi.edu/nsnam/ns/ns-win32-build.html for
detail. Notice that many test suites will fail on windows platform, and you
are on your own to make sure the simulator works for your purpose.
- IMPORTANT: nam-1 will NOT work when compiled with tcl8.3.2 and tk8.3.2. It
requires that a STATIC build of tcl/tk, which the current release does not
support. To solve the problem, you can download a patched tcl/tk 8.0.2 that
can be compiled into static libraries (i.e., not DLLs) from this pointer:
Then you should uncomment the STATIC_LIB macro in ~nam/conf/makefile.win,
and correct other paths to your vc, otcl, tclcl, tclsh, then compile.