Including Your Modules into NS 2 by Teerawat Issariyakul http://www.ns2ultimate.com March 2010 http://www.ns2ultimate.com 1 Assumptions and Objectives You have developed NS2 modules in one or more of the following 3 file types: File type C++ file Example myfile.cc Header file Tcl file myfile.h myfile.tcl What you would like to do is to incorporate these files into NS2 http://www.ns2ultimate.com 2 Key step 1. Go to your ns home directory (e.g., nsallinone-2.35-RC3/ns-2.35). Look for a file called “Makefile”. 3. Use your favorite editor to edit the file (I will explain the details in the next slides). 4. Run “make” at the command prompt under your ns home directory. 5. You’re done. You should be able to invoke your new modules defined in .cc, .h, and .tcl from the NS prompt. 2. http://www.ns2ultimate.com 3 Modifying Makefile There are three places in Makefile you will have to modify ◦ OBJ_CC ◦ NS_TCL_LIB ◦ INCLUDE Suppose your new module are ◦ Stored in files myfile.h, myfile.cc, and myfile.tcl ◦ Stored under directory nsallinone-2.35RC3/ns-2.35/myDir http://www.ns2ultimate.com 4 1. C++ Modules Add “myDir/myfile.o \” to any line following this line OBJ_CC = \ Note: ◦ The extension must be “.o”, not “.cc” nor “.h” ◦ “.o” is an object file obtained by compiling “.cc” and “.h” 1. C++ Modules: Example http://www.ns2ultimate.com 6 2. Tcl Modules Add “myDir/myfile.tcl \” to any line following this line NS_TCL_LIB = \ 3. Including Directory (Optional) Add “-I./myDir \” to any line following this line INCLUDES = \ This will include myDir into the compiling path. So that you don’t need to type the full path every time. Final step Just run “ make ” at the command prompt Done!! For more information about NS 2 Please see chapter 2 in this book from Springer T. Issaraiyakul and E. Hossain, “Introduction to Network Simulator NS2”, Springer 2009 http://www.ns2ultimate.com 10