utils/clone_and_compile_ns3_dce.sh
author frederic.urbani@inria.fr
Wed, 29 Aug 2012 16:17:31 +0200
changeset 262 e2fa5ca29cd4
parent 259 8229b566699d
child 263 80ddc553e4ec
permissions -rwxr-xr-x
Change the name of the kernel library used in examples and tests.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
119
c4e9b1d9e57f Add some utils scripts.
frederic.urbani@inria.fr
parents:
diff changeset
     1
#!/bin/bash
c4e9b1d9e57f Add some utils scripts.
frederic.urbani@inria.fr
parents:
diff changeset
     2
# this script checkout NS3 and DCE sources, and build them.
148
5dd2d890f1a0 Update documentation and build script.
frederic.urbani@inria.fr
parents: 140
diff changeset
     3
USE_KERNEL=NO
236
1ba94266f3ad Add VDL option to waf to build dce-runner in order to run dce scenario using the VDL loader.
frederic.urbani@inria.fr
parents: 227
diff changeset
     4
USE_VDL=NO
259
8229b566699d Update NS-3-DEV used version.
frederic.urbani@inria.fr
parents: 245
diff changeset
     5
USE_MPI=NO
236
1ba94266f3ad Add VDL option to waf to build dce-runner in order to run dce scenario using the VDL loader.
frederic.urbani@inria.fr
parents: 227
diff changeset
     6
WAF_VDL=
224
7c6a6046bf4b Inprove build script.
frederic.urbani@inria.fr
parents: 223
diff changeset
     7
args=("$@")
7c6a6046bf4b Inprove build script.
frederic.urbani@inria.fr
parents: 223
diff changeset
     8
NB=$#
7c6a6046bf4b Inprove build script.
frederic.urbani@inria.fr
parents: 223
diff changeset
     9
for (( i=0;i<$NB;i++)); do
7c6a6046bf4b Inprove build script.
frederic.urbani@inria.fr
parents: 223
diff changeset
    10
    if [ ${args[${i}]} = '-k' ]
7c6a6046bf4b Inprove build script.
frederic.urbani@inria.fr
parents: 223
diff changeset
    11
    then 
7c6a6046bf4b Inprove build script.
frederic.urbani@inria.fr
parents: 223
diff changeset
    12
       USE_KERNEL=YES
225
dd5e3466cb3c Add a myscripts directories for user scripts build.
frederic.urbani@inria.fr
parents: 224
diff changeset
    13
       WGET=wget
224
7c6a6046bf4b Inprove build script.
frederic.urbani@inria.fr
parents: 223
diff changeset
    14
    fi
236
1ba94266f3ad Add VDL option to waf to build dce-runner in order to run dce scenario using the VDL loader.
frederic.urbani@inria.fr
parents: 227
diff changeset
    15
    if [ ${args[${i}]} = '-v' ]
1ba94266f3ad Add VDL option to waf to build dce-runner in order to run dce scenario using the VDL loader.
frederic.urbani@inria.fr
parents: 227
diff changeset
    16
    then 
1ba94266f3ad Add VDL option to waf to build dce-runner in order to run dce scenario using the VDL loader.
frederic.urbani@inria.fr
parents: 227
diff changeset
    17
       USE_VDL=YES
1ba94266f3ad Add VDL option to waf to build dce-runner in order to run dce scenario using the VDL loader.
frederic.urbani@inria.fr
parents: 227
diff changeset
    18
    fi
259
8229b566699d Update NS-3-DEV used version.
frederic.urbani@inria.fr
parents: 245
diff changeset
    19
    if [ ${args[${i}]} = '-m' ]
8229b566699d Update NS-3-DEV used version.
frederic.urbani@inria.fr
parents: 245
diff changeset
    20
    then 
8229b566699d Update NS-3-DEV used version.
frederic.urbani@inria.fr
parents: 245
diff changeset
    21
       USE_MPI=YES
8229b566699d Update NS-3-DEV used version.
frederic.urbani@inria.fr
parents: 245
diff changeset
    22
       MPI_SWITCH=--enable-mpi
8229b566699d Update NS-3-DEV used version.
frederic.urbani@inria.fr
parents: 245
diff changeset
    23
    fi
224
7c6a6046bf4b Inprove build script.
frederic.urbani@inria.fr
parents: 223
diff changeset
    24
done 
225
dd5e3466cb3c Add a myscripts directories for user scripts build.
frederic.urbani@inria.fr
parents: 224
diff changeset
    25
for i in patch hg make $WGET tar
224
7c6a6046bf4b Inprove build script.
frederic.urbani@inria.fr
parents: 223
diff changeset
    26
do
7c6a6046bf4b Inprove build script.
frederic.urbani@inria.fr
parents: 223
diff changeset
    27
which $i >/dev/null
7c6a6046bf4b Inprove build script.
frederic.urbani@inria.fr
parents: 223
diff changeset
    28
if [ 1 == $? ]
7c6a6046bf4b Inprove build script.
frederic.urbani@inria.fr
parents: 223
diff changeset
    29
then
7c6a6046bf4b Inprove build script.
frederic.urbani@inria.fr
parents: 223
diff changeset
    30
	echo $i not found !
7c6a6046bf4b Inprove build script.
frederic.urbani@inria.fr
parents: 223
diff changeset
    31
	echo "Please, install $i command line tool."
7c6a6046bf4b Inprove build script.
frederic.urbani@inria.fr
parents: 223
diff changeset
    32
	exit 1
206
0f48e3ded7e3 Add checking of patch command existance in compile script.
frederic.urbani@inria.fr
parents: 205
diff changeset
    33
fi
224
7c6a6046bf4b Inprove build script.
frederic.urbani@inria.fr
parents: 223
diff changeset
    34
done
120
dde8b2c0b748 Fix Scripts.
frederic.urbani@inria.fr
parents: 119
diff changeset
    35
cd `dirname $BASH_SOURCE`/../..
119
c4e9b1d9e57f Add some utils scripts.
frederic.urbani@inria.fr
parents:
diff changeset
    36
SAVE_PATH=$PATH
c4e9b1d9e57f Add some utils scripts.
frederic.urbani@inria.fr
parents:
diff changeset
    37
SAVE_LDLP=$LD_LIBRARY_PATH
c4e9b1d9e57f Add some utils scripts.
frederic.urbani@inria.fr
parents:
diff changeset
    38
SAVE_PKG=$PKG_CONFIG_PATH
120
dde8b2c0b748 Fix Scripts.
frederic.urbani@inria.fr
parents: 119
diff changeset
    39
#echo clone ns-3-dce : 
dde8b2c0b748 Fix Scripts.
frederic.urbani@inria.fr
parents: 119
diff changeset
    40
#hg clone http://code.nsnam.org/furbani/ns-3-dce
119
c4e9b1d9e57f Add some utils scripts.
frederic.urbani@inria.fr
parents:
diff changeset
    41
echo clone readversiondef
c4e9b1d9e57f Add some utils scripts.
frederic.urbani@inria.fr
parents:
diff changeset
    42
hg clone http://code.nsnam.org/mathieu/readversiondef
148
5dd2d890f1a0 Update documentation and build script.
frederic.urbani@inria.fr
parents: 140
diff changeset
    43
if [ "YES" == "$USE_KERNEL" ]
5dd2d890f1a0 Update documentation and build script.
frederic.urbani@inria.fr
parents: 140
diff changeset
    44
then
5dd2d890f1a0 Update documentation and build script.
frederic.urbani@inria.fr
parents: 140
diff changeset
    45
	echo clone ns-3-linux
5dd2d890f1a0 Update documentation and build script.
frederic.urbani@inria.fr
parents: 140
diff changeset
    46
 	hg clone http://code.nsnam.org/furbani/ns-3-linux
227
fe6f336cf5a8 Update ns-3-dev version.
frederic.urbani@inria.fr
parents: 225
diff changeset
    47
fi
134
62b921ab6f2a Merge with ns-3-dev.
frederic.urbani@inria.fr
parents: 120
diff changeset
    48
echo clone ns-3-dev
259
8229b566699d Update NS-3-DEV used version.
frederic.urbani@inria.fr
parents: 245
diff changeset
    49
hg clone -r 7752dc4ce7e9 http://code.nsnam.org/ns-3-dev
119
c4e9b1d9e57f Add some utils scripts.
frederic.urbani@inria.fr
parents:
diff changeset
    50
mkdir build
134
62b921ab6f2a Merge with ns-3-dev.
frederic.urbani@inria.fr
parents: 120
diff changeset
    51
cd ns-3-dev
245
7bcafc101432 clean up the build script along with ns-3-linux
Hajime Tazaki <tazaki@nict.go.jp>
parents: 243
diff changeset
    52
hg revert -a
162
cb46566adf75 Add prototype implementation for socket of domain AF_PACKET and type SOCK_RAW.
frederic.urbani@inria.fr
parents: 161
diff changeset
    53
patch -p1 <../ns-3-dce/utils/packet-socket-upgrade-exp.patch
227
fe6f336cf5a8 Update ns-3-dev version.
frederic.urbani@inria.fr
parents: 225
diff changeset
    54
patch -p1 <../ns-3-dce/utils/remove-default-simulator-asserts.patch
259
8229b566699d Update NS-3-DEV used version.
frederic.urbani@inria.fr
parents: 245
diff changeset
    55
./waf configure --prefix=`pwd`/../build --enable-tests $MPI_SWITCH
119
c4e9b1d9e57f Add some utils scripts.
frederic.urbani@inria.fr
parents:
diff changeset
    56
./waf
c4e9b1d9e57f Add some utils scripts.
frederic.urbani@inria.fr
parents:
diff changeset
    57
./waf install
c4e9b1d9e57f Add some utils scripts.
frederic.urbani@inria.fr
parents:
diff changeset
    58
cd ..
c4e9b1d9e57f Add some utils scripts.
frederic.urbani@inria.fr
parents:
diff changeset
    59
export PATH=$SAVE_PATH:`pwd`/build/bin
c4e9b1d9e57f Add some utils scripts.
frederic.urbani@inria.fr
parents:
diff changeset
    60
export LD_LIBRARY_PATH=$SAVE_LDLP:`pwd`/build/lib
c4e9b1d9e57f Add some utils scripts.
frederic.urbani@inria.fr
parents:
diff changeset
    61
export PKG_CONFIG_PATH=$SAVE_PKG:`pwd`/build/lib/pkgconfig
c4e9b1d9e57f Add some utils scripts.
frederic.urbani@inria.fr
parents:
diff changeset
    62
cd readversiondef/
c4e9b1d9e57f Add some utils scripts.
frederic.urbani@inria.fr
parents:
diff changeset
    63
make 
c4e9b1d9e57f Add some utils scripts.
frederic.urbani@inria.fr
parents:
diff changeset
    64
make install PREFIX=`pwd`/../build/
c4e9b1d9e57f Add some utils scripts.
frederic.urbani@inria.fr
parents:
diff changeset
    65
cd ..
148
5dd2d890f1a0 Update documentation and build script.
frederic.urbani@inria.fr
parents: 140
diff changeset
    66
if [ "YES" == "$USE_KERNEL" ]
5dd2d890f1a0 Update documentation and build script.
frederic.urbani@inria.fr
parents: 140
diff changeset
    67
then
5dd2d890f1a0 Update documentation and build script.
frederic.urbani@inria.fr
parents: 140
diff changeset
    68
	cd ns-3-linux/
5dd2d890f1a0 Update documentation and build script.
frederic.urbani@inria.fr
parents: 140
diff changeset
    69
	make
5dd2d890f1a0 Update documentation and build script.
frederic.urbani@inria.fr
parents: 140
diff changeset
    70
	cd ..
173
721b6053d1af Update kernel and iproute2 sources of sources !
frederic.urbani@inria.fr
parents: 162
diff changeset
    71
	wget http://www.linuxgrill.com/anonymous/iproute2/NEW-OSDL/iproute2-2.6.38.tar.bz2     
721b6053d1af Update kernel and iproute2 sources of sources !
frederic.urbani@inria.fr
parents: 162
diff changeset
    72
	tar jxf iproute2-2.6.38.tar.bz2
721b6053d1af Update kernel and iproute2 sources of sources !
frederic.urbani@inria.fr
parents: 162
diff changeset
    73
	cd iproute2-2.6.38
721b6053d1af Update kernel and iproute2 sources of sources !
frederic.urbani@inria.fr
parents: 162
diff changeset
    74
	./configure
148
5dd2d890f1a0 Update documentation and build script.
frederic.urbani@inria.fr
parents: 140
diff changeset
    75
	LDFLAGS=-pie make CCOPTS='-fpic -D_GNU_SOURCE -O0 -U_FORTIFY_SOURCE'
5dd2d890f1a0 Update documentation and build script.
frederic.urbani@inria.fr
parents: 140
diff changeset
    76
	cd ../ns-3-dce
205
cecb106ffa9a Linux kernel file is searched using DCE_PATH env var now.
frederic.urbani@inria.fr
parents: 204
diff changeset
    77
	ln -s ../ns-3-linux/libnet-next-2.6.so
204
60a9cf52e24a Fix kernel mode and tests.
frederic.urbani@inria.fr
parents: 203
diff changeset
    78
	mkdir -p build/bin_dce
60a9cf52e24a Fix kernel mode and tests.
frederic.urbani@inria.fr
parents: 203
diff changeset
    79
	cd  build/bin_dce
262
e2fa5ca29cd4 Change the name of the kernel library used in examples and tests.
frederic.urbani@inria.fr
parents: 259
diff changeset
    80
	ln -s ../../../ns-3-linux/libnet-next-2.6.so liblinux.so
204
60a9cf52e24a Fix kernel mode and tests.
frederic.urbani@inria.fr
parents: 203
diff changeset
    81
	ln -s ../../../iproute2-2.6.38/ip/ip
60a9cf52e24a Fix kernel mode and tests.
frederic.urbani@inria.fr
parents: 203
diff changeset
    82
	cd ../..
148
5dd2d890f1a0 Update documentation and build script.
frederic.urbani@inria.fr
parents: 140
diff changeset
    83
fi
236
1ba94266f3ad Add VDL option to waf to build dce-runner in order to run dce scenario using the VDL loader.
frederic.urbani@inria.fr
parents: 227
diff changeset
    84
if [ "YES" == "$USE_VDL" ]
1ba94266f3ad Add VDL option to waf to build dce-runner in order to run dce scenario using the VDL loader.
frederic.urbani@inria.fr
parents: 227
diff changeset
    85
then
243
79c17eb3f698 fix the hg command option issue on old version of mercurial (mercurial 1.1 on F8)
Hajime Tazaki <tazaki@nict.go.jp>
parents: 237
diff changeset
    86
	hg clone -r d7ef4732dccc http://code.nsnam.org/mathieu/elf-loader/
236
1ba94266f3ad Add VDL option to waf to build dce-runner in order to run dce scenario using the VDL loader.
frederic.urbani@inria.fr
parents: 227
diff changeset
    87
	cd elf-loader
1ba94266f3ad Add VDL option to waf to build dce-runner in order to run dce scenario using the VDL loader.
frederic.urbani@inria.fr
parents: 227
diff changeset
    88
	make vdl-config.h
1ba94266f3ad Add VDL option to waf to build dce-runner in order to run dce scenario using the VDL loader.
frederic.urbani@inria.fr
parents: 227
diff changeset
    89
	make
1ba94266f3ad Add VDL option to waf to build dce-runner in order to run dce scenario using the VDL loader.
frederic.urbani@inria.fr
parents: 227
diff changeset
    90
	make test
237
6f0b6ada8ad0 Copy libvdl.so to the good place in order to dce-runner to find it.
frederic.urbani@inria.fr
parents: 236
diff changeset
    91
	cp libvdl.so ../build/lib
236
1ba94266f3ad Add VDL option to waf to build dce-runner in order to run dce scenario using the VDL loader.
frederic.urbani@inria.fr
parents: 227
diff changeset
    92
	cd ..
1ba94266f3ad Add VDL option to waf to build dce-runner in order to run dce scenario using the VDL loader.
frederic.urbani@inria.fr
parents: 227
diff changeset
    93
	WAF_VDL="--enable-vdl-loader"
1ba94266f3ad Add VDL option to waf to build dce-runner in order to run dce scenario using the VDL loader.
frederic.urbani@inria.fr
parents: 227
diff changeset
    94
fi	
119
c4e9b1d9e57f Add some utils scripts.
frederic.urbani@inria.fr
parents:
diff changeset
    95
cd ns-3-dce/
148
5dd2d890f1a0 Update documentation and build script.
frederic.urbani@inria.fr
parents: 140
diff changeset
    96
if [ "YES" == "$USE_KERNEL" ]
5dd2d890f1a0 Update documentation and build script.
frederic.urbani@inria.fr
parents: 140
diff changeset
    97
then
5dd2d890f1a0 Update documentation and build script.
frederic.urbani@inria.fr
parents: 140
diff changeset
    98
    WAF_KERNEL=--enable-kernel-stack=`pwd`/../ns-3-linux
5dd2d890f1a0 Update documentation and build script.
frederic.urbani@inria.fr
parents: 140
diff changeset
    99
fi
259
8229b566699d Update NS-3-DEV used version.
frederic.urbani@inria.fr
parents: 245
diff changeset
   100
./waf configure --prefix=`pwd`/../build --verbose $WAF_KERNEL $WAF_VDL $MPI_SWITCH
119
c4e9b1d9e57f Add some utils scripts.
frederic.urbani@inria.fr
parents:
diff changeset
   101
./waf
c4e9b1d9e57f Add some utils scripts.
frederic.urbani@inria.fr
parents:
diff changeset
   102
./waf install
c4e9b1d9e57f Add some utils scripts.
frederic.urbani@inria.fr
parents:
diff changeset
   103
export LD_LIBRARY_PATH=$SAVE_LDLP:`pwd`/build/lib:`pwd`/build/bin:`pwd`/../build/lib
148
5dd2d890f1a0 Update documentation and build script.
frederic.urbani@inria.fr
parents: 140
diff changeset
   104
. utils/setenv.sh
119
c4e9b1d9e57f Add some utils scripts.
frederic.urbani@inria.fr
parents:
diff changeset
   105
echo Launch NS3TEST-DCE
c4e9b1d9e57f Add some utils scripts.
frederic.urbani@inria.fr
parents:
diff changeset
   106
./build/bin/ns3test-dce --verbose