Friends,
We are decided to introduce a new segment in our blog named as "ToUr De Ns2"
to get you more familiar with ns2 directories, folders and commands
that we used in the ns2. We hope it gives you all a deep knowledge in
ns2. We need all your supports and prayers. Comments and new ideas are
welcomed.
Now we are going to have a deep look in command make. We all know
that ns2 is a research tool. So all of the researchers are tried to
customize files or to add new C++ modules in ns2 directory. During this
time, it is necessary to recompile all the files that related or depend
with it. So we need an effective command for recompilation of all files
because manual recompilation is not possible. For that we here use a
UNIX utility tool called as "make". This command has a
significant role in development process. It keeps track of all the files
created throughout the development process. By keeping track, it
recompile the inter dependencies exist among these files; which may have
been modified. The command syntax that we write in terminal to call is;
make [-f filename]
Here make command recompiles the source code according to the descriptor
file "filename" and the descriptor file is optional. So the command
inside bracket is optional. By default the descriptor file is "Makefile". So if we not provided the filename, command automatically consider Makefile as descriptor file.
DESCRIPTOR FILE: MAKEFILE:
This file contains the name of source codes that have to execute, their
inter dependency and how the file is to recompile. These things are
specified using a specific dependency rule or by using a particular
arrangement code names called as dependency rule. It contain three components; target,depfile&command
The syntax is given as;
<target1> [<target2> ...] : <depfile1> [<depfile2> ...]
<command1> [<command2> ...]
Here, the target file is the file which is needed to be compile and
depfile are the files which are dependency file which is specified after
semicolon(:) and also file inside bracket are optional ones. And the line below that shows the command that to regenerate the target file.
Example:
# makefile of channel
OBJS = main.o
COM = cc
channel : ${OBJS}
${COM} -o channel ${OBJS}
main.o : main.c
${COM} -c main.c
clean :
rm ${OBJS}
Here, the target file is channel and that depends the file main.o and
which is showed in third line and on the forth line the command showed
to execute the recompiling. And the process repeats in the following
lines. Final two line shows the clean function which is used to
clean the dependency object file that are not neede after the
recompilation. The UNIX command “cc -c file.c” compiles the file
“file.c” and creates an object file “file.o,” while the command “cc -o
file.o” links the object file “file.o” and create an executable file
“file.”.
NS2 MAKEFILE:
Makefile in the ns2 is located in the ns2.xx directory and while we open
it we can see the details of files needed to recompile. And in that
file, we can mainly see the following keywords;
- INCLUDES = : The files or items that seen inside this category is to be seen in ns2 environment.
- OBJ_CC = & OBJ_STL = : It constitute the entire ns2 object files.
- NS_TCL_LIB = : We have to add the Tcl files of ns2.
If a new C++ module is developed,
then its corresponding object file name with “.o” extension should be
added in OBJ_CC and OBJ_STL and Tcl file name should be added
NS_TCL_LIB.
If you created a new C++ module with corresponding files .cc,.h and .tcl (say new.cc,new.h and new.tcl) and also created a new folder new inside the ns2 directory. After this we have to to the following;
1. Include a string “-I./new” into the Line beginning with INCLUDES = in the “Makefile.”
1. Include a string “-I./new” into the Line beginning with INCLUDES = in the “Makefile.”
2. Include a string “new/new.o” into the Line beginning with OBJ_CC = or OBJ_STL = in the “Makefile.”
3. Include a string “new/new.tcl” into the Line beginning with NS_TCL_LIB = in the “Makefile.”
4. Run “make” from the terminal.
After running “make,” an executable file “ns” is created and this file “ns” to run simulation.
Continue with a new topic in following posts......!!!!
Thank You.
Have a Nice day.
Continue with a new topic in following posts......!!!!
Thank You.
Have a Nice day.
No comments:
Post a Comment