install
上传用户:rrhhcc
上传日期:2015-12-11
资源大小:54129k
文件大小:25k
源码类别:

通讯编程

开发平台:

Visual C++

  1. #! /bin/sh
  2. #
  3. # Copyright (C) 2000 by USC/ISI
  4. # All rights reserved.
  5. #
  6. # Redistribution and use in source and binary forms are permitted
  7. # provided that the above copyright notice and this paragraph are
  8. # duplicated in all such forms and that any documentation, advertising
  9. # materials, and other materials related to such distribution and use
  10. # acknowledge that the software was developed by the University of
  11. # Southern California, Information Sciences Institute.  The name of the
  12. # University may not be used to endorse or promote products derived from
  13. # this software without specific prior written permission.
  14. #
  15. # THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED
  16. # WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
  17. # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  18. #
  19. # $Header: /cvsroot/nsnam/ns-2/allinone/install,v 1.31 2007/03/10 23:40:05 tom_henderson Exp $
  20. die() {
  21. echo "$@"  1>&2
  22. test ! -z "$blame" && echo "$blame" 1>&2
  23. exit 1
  24. }
  25. warn() {
  26. echo "$@"
  27. }
  28. test_proceed() { 
  29.         echo "";
  30.         echo "The above test indicates that your installation of Cygwin";
  31.         echo "is probably NOT SUITABLE for installing ns-2 allinone.";
  32.         echo "(More details can be found in the specific error message above.)";
  33.         echo "";
  34.         echo -n "Do you wish to proceed regardless? [y/N] "
  35.         read answer;
  36.         if [ "$answer" != "y" ] && [ "$answer" != "Y" ]; then
  37.                 die "Installation aborted...";
  38.                 exit 1;
  39.         fi;
  40.         echo "";
  41.         echo "*** OK, but you're on your own... ***";
  42.         echo "";
  43. }
  44. test_packages() {
  45.          for i in $@; do 
  46.                 echo -n "Checking for ${i}... ";
  47.                 cygcheck -c ${i} | grep ${i} >/dev/null 2>&1;
  48.                 if [ "$?" -eq "0" ]; then
  49.                         echo "ok"; 
  50.                 else
  51.                         echo "NO!";
  52.                         echo "";
  53.                         echo "Package ${i} is not present on your system.";
  54.                         echo "";
  55.                         echo "Please install it using Cygwin's setup.exe";
  56.                         echo "before trying to install the ns-2 distribution.";
  57.                         test_proceed;
  58.                 fi; 
  59.         done;
  60. }
  61. cygwin_tests() {
  62.         echo -n "Checking Cygwin version is >= 1.3.12... "
  63.         cmaj=` uname -r | sed -e 's/^([0-9]*).([0-9]*).([0-9]*).*/1/'`;
  64.         echo $cmaj | grep -v [0-9] >/dev/null 2>&1
  65.         if [ "$?" -eq "0" ]; then
  66.                 cmaj=0;
  67.         fi;
  68.         cmin=` uname -r | sed -e 's/^([0-9]*).([0-9]*).([0-9]*).*/2/'`;
  69.         echo $cmin | grep -v [0-9] >/dev/null 2>&1
  70.         if [ "$?" -eq "0" ]; then
  71.                 cmin=0;
  72.         fi;
  73.         cpat=` uname -r | sed -e 's/^([0-9]*).([0-9]*).([0-9]*).*/3/'`;
  74.         echo $cpat | grep -v [0-9] >/dev/null 2>&1
  75.         if [ "$?" -eq "0" ]; then
  76.                 cpat=0;
  77.         fi;
  78.         echo -n "$cmaj.$cmin.$cpat ";
  79.         if ([ "$cmaj" -gt "1" ]) || ([ "$cmaj" -eq "1" ] && [ $cmin -gt "3" ]) || ([ "$cmaj" -eq 1 ] && [ $cmin -eq "3" ] && [ "$cpat" -ge "12" ]); then
  80.                 echo "(should be ok)";
  81.         else
  82.                 echo "(NO!)";
  83.                 echo "";
  84.                 echo "ns-allinone-${NSVER} has not been tested under versions of Cygwin older than";
  85.                 echo "1.3.12. Your version ($cmaj.$cmin.$cpat) appears to be older than that. Success of";
  86.                 echo "the install process is therefore NOT GUARANTEED.";
  87.                 echo "";
  88.                 cygversion="failed";
  89.                 test_proceed;
  90.         fi;
  91.         echo -n "Checking filesystems are mounted as UNIX filetype... ";
  92.         mount | grep "textmode" >/dev/null 2>&1;
  93.         if [ "$?" -eq "0" ]; then
  94.                 echo "NO!";
  95.                 mount_test="failed";
  96.                 echo "";
  97.                 echo "It appears that some of your Cygwin shares are mounted as DOS file";
  98.                 echo "type. This has not been tested, but is likely to result in failure of";
  99.                 echo "validation tests. Success of the install process is also NOT";
  100.                 echo "GUARANTEED.";
  101.                 echo "";
  102.                 echo "Refer to the Cygwin user guide for how to install Cygwin with the UNIX";
  103.                 echo "file text mode.";
  104.                 test_proceed;
  105.         else
  106.                 echo "yes";
  107.                 echo -n "Checking default mode is binmode... ";
  108.                 echo ${CYGWIN} | grep "nobinmode" >/dev/null 2>&1;
  109.                 if [ "$?" -eq "0" ]; then
  110.                         cyg_env_var="failed";
  111.                         echo "*** NO! ***";
  112.                         echo "";
  113.                         echo "Your $CYGWIN environment variable specifies "nobinmode". This is";
  114.                         echo "likely to result in failure of validation tests, and (possibly) of";
  115.                         echo "the whole install process. You need to have the $CYGWIN environment";
  116.                         echo "variable set to "binmode". Please refer to the Cygwin user guide for";
  117.                         echo "details on how to change this.";
  118.                         test_proceed;
  119.                 else 
  120.                         echo "yes";
  121.                 fi;
  122.         fi;                           
  123.         login=`whoami`
  124.         echo -n "Checking legitimate login name... ";
  125.         echo ${login} | grep " " >/dev/null 2>&1;
  126.         if [ "$?" -eq "0" ]; then
  127.                 echo "NO!"; 
  128.                 echo "";
  129.                 echo "Your username (${login}) contains spaces,";
  130.                 echo "which makes the installation of ns-2 impossible.";
  131.                 echo "Please try to install ns-2 as a different user, whose";
  132.                 echo "name does not contain any spaces.";
  133.                 
  134.                 test_proceed;
  135.         else 
  136.                 echo "ok";
  137.         fi;
  138.         echo -n "Checking legitimate path name... ";
  139.         
  140.         installpath=`cygpath -d /`;
  141.         echo ${installpath} | grep " " >/dev/null 2>&1;
  142.         if [ "$?" -eq "0" ]; then
  143.                 echo "NO!"; 
  144.                 echo "";
  145.                 echo "Your Cygwin installation path (${installpath}) contains spaces,";
  146.                 echo "which makes the installation of ns-2 impossible.";
  147.                 echo "Please reinstall Cygwin in a different directory, which";
  148.                 echo "does not contain any spaces.";
  149.                 test_proceed;
  150.         else 
  151.                 echo "ok";
  152.         fi;
  153.         test_packages ${packages_base}        
  154.         echo -n "Checking for diff... ";
  155.         diff -v 2>&1 | grep -iv "not found" >/dev/null 2>&1;
  156.         if [ "$?" -eq "0" ]; then
  157.                 echo "ok";
  158.         else
  159.                 echo "NO!";
  160.                 echo "";
  161.                 echo "diff is not present on your system.";
  162.                 echo "";
  163.                 echo "Please install it using Cygwin's setup.exe";
  164.                 echo "before trying to install the ns-2 distribution.";
  165.                 test_proceed;
  166.         fi;     
  167.         echo -n "Checking for X... ";
  168.         cygcheck -c xorg-x11-base | grep xorg-x11-base >/dev/null 2>&1;
  169.         if [ "$?" -eq "0" ]; then
  170.                 echo "X.org";
  171.                 test_packages ${packages_xorg}
  172.                 
  173.         else
  174.                 cygcheck -c XFree86-base | grep XFree86-base >/dev/null 2>&1;
  175.                 if [ "$?" -eq "0" ]; then
  176.                         echo "XFree86";
  177.                         test_packages ${packages_xfree}                                              
  178.                 else 
  179.                         echo "None found!";
  180.                         
  181.                         echo "";
  182.                         echo "Neither Package xorg-x11-base nor XFree86-base is present on your system.";
  183.                         echo "";
  184.                         echo "Please install one of it using Cygwin's setup.exe";
  185.                         echo "before trying to install the ns-2 distribution.";
  186.                         test_proceed;
  187.                         
  188.                  fi;
  189.         fi;
  190.     }
  191. # Package VERSIONs. Change these when releasing new packages
  192. TCLVER=8.4.18
  193. TKVER=8.4.18
  194. OTCLVER=1.13
  195. TCLCLVER=1.19
  196. NSVER=2.33
  197. NAMVER=1.13
  198. XGRAPHVER=12.1
  199. ZLIBVER=1.2.3
  200. DEI80211MRVER=1.1.4
  201. # Get current path
  202. CUR_PATH=`pwd`
  203. echo "============================================================"
  204. echo "* Testing for Darwin (OS X) environment"
  205. echo "============================================================"
  206. if  [ `uname` = "Darwin" ]; then
  207.     echo "Darwin detected";
  208.     DYLD_LIBRARY_PATH=$CUR_PATH/tcl$TCLVER/unix:$CUR_PATH/tk$TKVER/unix:$DYLD_LIBRARY_PATH
  209.     export DYLD_LIBRARY_PATH
  210.     test_darwin=true
  211. fi
  212. # A Cygwin install requires these packages:
  213. packages_base="gcc gcc-g++ gawk tar gzip make patch perl w32api"
  214. packages_xfree="XFree86-bin XFree86-prog XFree86-lib XFree86-etc"
  215. packages_xorg="xorg-x11-bin xorg-x11-bin-dlls xorg-x11-devel xorg-x11-libs-data xorg-x11-etc"
  216. # Check if we are using Cygwin, and if so, if it is a good install
  217. # Most Cygwin fixes in the tree and this part of the install script were 
  218. # contributed by Nicolas Christin <christin@sims.berkeley.edu>
  219. echo "============================================================"
  220. echo "* Testing for Cygwin environment"
  221. echo "============================================================"
  222. if [ -x /usr/bin/uname ]; then
  223.         # it may be a Cygwin install
  224.         test_cygwin=`uname | tr [a-z] [A-Z] | sed -e 's|.*CYGWIN.*|true|'`;
  225.         if  [ "${test_cygwin}" = "true" ]; then
  226.                 echo "Cygwin detected";
  227.                 echo "Note: Cygwin install is still considered EXPERIMENTAL";
  228.                 echo "";
  229.                 cygwin_tests;
  230.                
  231.                 echo "Patching Tcl/Tk for Cygwin.";
  232.                 if [ ! -f ./tcl${TCLVER}/generic/tcl.h.orig ]; then
  233.                         cp ./tcl${TCLVER}/generic/tcl.h ./tcl${TCLVER}/generic/tcl.h.orig;
  234.                         echo "The original tcl${TCLVER}/generic/tcl.h is backed up as tcl${TCLVER}/generic/tcl.h.orig";
  235.                         sed -e 's/#define _TCL/#define _TCL``#ifdef __CYGWIN__`#define HAVE_TM_ZONE 1`#endif /* __CYGWIN__ *//g' ./tcl${TCLVER}/generic/tcl.h.orig | tr '`' 'n' > ./tcl${TCLVER}/generic/tcl.h;
  236. cp ./tk${TCLVER}/generic/default.h ./tk${TCLVER}/generic/default.h.orig;
  237.                         echo "The original tk${TKVER}/generic/default.h is backed up as tk${TKVER}/generic/default.h.orig";
  238.                         sed -e 's/defined(__CYGWIN__) || defined(__MINGW32__)/0/g' ./tk${TKVER}/generic/default.h.orig > ./tk${TKVER}/generic/default.h;
  239.                 fi;
  240.                 touch ./tcl${TCLVER}/generic/tclStubInit.c;
  241.                 echo "Patching sgb for Cygwin.";
  242.                 cp ./sgb/Makefile ./sgb/Makefile.orig;
  243.                 echo "The original sgb/Makefile is backed up as sgb/Makefile.orig";
  244.                 sed -e 's|rm (.*)test_io test_graph test_flip test_sample(.*)|rm -f 1test_io.exe test_graph.exe test_flip.exe test_sample.exe2|' ./sgb/Makefile.orig > ./sgb/Makefile;
  245.                 echo "Setting executable format to .exe...";
  246.                 EXE=".exe";
  247.         else
  248.                 echo "Cygwin not detected, proceeding with regular install.";
  249.                 EXE=;
  250.         fi;
  251. else
  252.         echo "Cygwin not detected, proceeding with regular install.";
  253. fi;
  254. echo "============================================================"
  255. echo "* Testing for FreeBSD environment"
  256. echo "============================================================"
  257. # See if we need to use gmake.
  258. if [ "`uname -s`" = "FreeBSD" ]; then
  259.  echo "FreeBSD detected; using gmake instead of make"
  260.  if (type gmake &>/dev/null); then
  261.    alias make="gmake"
  262.  fi
  263. else
  264.  echo "FreeBSD not detected"
  265. fi
  266. # Compile and install xgraph
  267. echo "============================================================"
  268. echo "* Build XGraph-$XGRAPHVER"
  269. echo "============================================================"
  270. cd ./xgraph-$XGRAPHVER
  271. ./configure --prefix=../
  272. if  [ "${test_cygwin}" = "true" ]; then
  273.        touch stamp-h;
  274. fi;
  275. if make 
  276. then
  277. echo "xgraph has been installed successfully. "
  278. else 
  279. echo "Can not create xgraph; But xgraph is an optional package, continuing..."
  280. fi
  281. cd ../
  282. # Compile and install cweb and sgblib
  283. echo "============================================================"
  284. echo "* Build CWeb"
  285. echo "============================================================"
  286. cd ./cweb
  287. if [ ! -f ./Makefile ]
  288. then
  289. echo "ns-allinone unable to install cweb for you. Please install it manually. cweb is used by sgb to create sgblibrary needed by scenario-generator. But this will not affect the use of ns as such, so continue.."
  290. else
  291. echo "Making cweb"
  292. touch *.c
  293. make all || warn "cweb failed to make, but it's optional"
  294. # xxx: other stuff will fail...
  295. chmod 755 cweave${EXE}
  296. chmod 755 ctangle${EXE}
  297. cd ..
  298. #echo "cd .."
  299. if [ ! -d bin ]
  300. then
  301. mkdir bin
  302. fi
  303. cd bin
  304. ln -s $CUR_PATH/cweb/cweave${EXE} cweave${EXE}
  305. ln -s $CUR_PATH/cweb/ctangle${EXE} ctangle${EXE}
  306. fi
  307. cd ..
  308. PATH=$CUR_PATH/bin:$PATH
  309. export PATH
  310. echo "============================================================"
  311. echo "* Build Stanford GraphBase"
  312. echo "============================================================"
  313. cd ./sgb
  314. if [ ! -f ./Makefile ]
  315. then
  316. echo "Unable to create sgb library. This library is used by gt-itm and so for scenario generators. If you already have sgblib (possible if you are on solaris,sunos or freebsd platforms) you may still be able to run gt-itm. so continuing.."
  317. else
  318. echo "Making sgb"
  319. if make tests
  320. then
  321.                 if [ -f libgb.a ] ; then
  322.                         rm -f ../gt-itm/lib/libgb.a
  323. cp libgb.a ../gt-itm/lib/libgb.a
  324.                 else 
  325.         echo "* Weird: sgb said it has been built but we can't find libgb.a! "
  326. exit -1
  327.                 fi
  328. else
  329.         echo "Unable to create sgb library, but it's optional, so continuing..."
  330. fi
  331. fi
  332. cd ..
  333. # Compile and install gt-itm & sgb2ns
  334. echo "============================================================"
  335. echo "* Build GT-ITM"
  336. echo "============================================================"
  337. if [ -f ./gt-itm/lib/libgb.a ]
  338. then
  339.  if [ ! -f ./gt-itm/src/Makefile ] 
  340.     then
  341.     echo "ns-alline is unable to install gt-itm sgb2ns for you, please install"
  342.     echo "them manually. You can't run scenario generator without gt-itm"
  343.     echo "and sgb2ns. But it will not affect you use ns, so continue ..."
  344.  else
  345.     cd ./gt-itm/src
  346.     if make
  347.     then
  348.       echo "gt-itm has been installed successfully."
  349.     fi
  350.     
  351.     cd ../sgb2ns
  352.     if make
  353.     then
  354.       echo "sgb2ns has been installed successfully."
  355.     fi
  356.    cd ../../
  357.  fi
  358. else
  359.     echo "sgb lib not found. gt-itm & sgb2ns could not be installed. Continuing.."
  360. fi
  361. # Build zlib
  362. echo "============================================================"
  363. echo "* Build zlib"
  364. echo "============================================================"
  365. cd ./zlib-$ZLIBVER
  366. if ./configure --exec-prefix=../ --prefix=../
  367. then
  368. if make
  369. then
  370. echo "Zlib has been installed successfully."
  371. else
  372. warn "Zlib make failed, but it's optional Continue ..."
  373. fi
  374. else
  375. warn "Zlib-$ZLIBVER configuration failed, but it's optional, so continuing ..."
  376. fi
  377. cd ../
  378. # Build Tcl8.4.18
  379. echo "============================================================"
  380. echo "* Build tcl$TCLVER"
  381. echo "============================================================"
  382. cd ./tcl$TCLVER/unix
  383. if [ -f Makefile ] ; then 
  384. make distclean
  385. fi
  386. blame='Tcl is not part of the ns project.  Please see www.Scriptics.com
  387. to see if they have a fix for your platform.'
  388. autoconf
  389. ./configure --enable-gcc --disable-shared --prefix=$CUR_PATH || die "tcl$TCLVER configuration failed! Exiting ..."
  390. if make 
  391. then 
  392. echo "tcl$TCLVER make succeeded."
  393. make install || die "tcl$TCLVER installation failed."
  394. echo "tcl$TCLVER installation succeeded."
  395. cp ../generic/*.h ../../include
  396. else
  397. echo "tcl$TCLVER make failed! Exiting ..."
  398. echo "For problems with Tcl/Tk see http://www.scriptics.com"
  399. exit
  400. fi
  401. cd ../../
  402. # compile and install tk
  403. echo "============================================================"
  404. echo "* Build Tk$TKVER"
  405. echo "============================================================"
  406. cd ./tk$TKVER/unix
  407. if [ -f Makefile ] ; then
  408. make distclean
  409. fi
  410. blame='Tk is not part of the ns project.  Please see www.Scriptics.com
  411. to see if they have a fix for your platform.'
  412. autoconf
  413. ./configure --enable-gcc --disable-shared --prefix=$CUR_PATH || die "tk$TKVER configuration failed! Exiting ..."
  414. if make 
  415. then
  416. echo "tk$TKVER build succeeded."
  417. make install || die "tk$TKVER installation failed."
  418. echo "tk$TKVER installation succeeded."
  419. else
  420. echo "tk$TKVER make failed! Exiting ..."
  421. echo "For problems with Tcl/Tk see http://www.scriptics.com"
  422. exit
  423. fi
  424. cd ../../
  425. #
  426. # Since our configures search for tclsh in $PATH, the following 
  427. # is needed. This is necessary for otcl/tclcl/ns/nam
  428. #
  429. PATH=$CUR_PATH/tcl$TCLVER/unix:$CUR_PATH/tk$TKVER/unix:$PATH
  430. export PATH
  431. LD_LIBRARY_PATH=$CUR_PATH/tcl$TCLVER/unix:$CUR_PATH/tk$TKVER/unix:$LD_LIBRARY_PATH
  432. export LD_LIBRARY_PATH
  433. # Build otcl
  434. echo "============================================================"
  435. echo "* Build OTcl-$OTCLVER"
  436. echo "============================================================"
  437. cd ./otcl-$OTCLVER
  438. blame='Please check http://www.isi.edu/nsnam/ns/ns-problems.html
  439. for common problems and bug fixes.'
  440. if  [ "${test_cygwin}" = "true" ]; then
  441.         ./configure --x-libraries=/usr/X11R6/lib --x-includes=/usr/X11R6/include || die "otcl-$OTCLVER configuration failed! Exiting ...";
  442. else
  443.         ./configure || die "otcl-$OTCLVER configuration failed! Exiting ...";
  444. fi
  445. if make 
  446. then
  447. echo "otcl-$OTCLVER has been installed successfully."
  448. else
  449. echo "otcl-$OTCLVER make failed! Exiting ..."
  450. echo "See http://www.isi.edu/nsnam/ns/ns-problems.html for problems"
  451. exit
  452. fi
  453. cd ..
  454. # Build tclcl
  455. echo "============================================================"
  456. echo "* Build Tclcl-$TCLCLVER"
  457. echo "============================================================"
  458. cd ./tclcl-$TCLCLVER
  459. if  [ "${test_cygwin}" = "true" ]; then
  460.         ./configure --x-libraries=/usr/X11R6/lib --x-includes=/usr/X11R6/include || die "tclcl-$TCLCLVER configuration failed! Exiting ...";
  461. else
  462.         ./configure --with-otcl=../otcl-$OTCLVER || die "tclcl-$TCLCLVER configuration failed! Exiting ..."
  463. fi
  464. if make
  465. then
  466. echo "tclcl-$TCLCLVER has been installed successfully."
  467. else
  468. echo "tclcl-$TCLCLVER make failed! Exiting ..."
  469. echo "See http://www.isi.edu/nsnam/ns/ns-problems.html for problems"
  470. exit
  471. fi
  472. cd ../
  473. # John's hack
  474. test -f ./otcl-$OTCLVER/libotcl.a && rm ./otcl-$OTCLVER/libotcl.so
  475. echo "============================================================"
  476. echo "* Build ns-$NSVER"
  477. echo "============================================================"
  478. cd ./ns-$NSVER
  479. if [ -f Makefile ] ; then 
  480. make distclean
  481. fi
  482. if  [ "${test_cygwin}" = "true" ]; then
  483.         ./configure --x-libraries=/usr/X11R6/lib --x-includes=/usr/X11R6/include || die "Ns configuration failed! Exiting ...";
  484. else
  485.         ./configure --with-otcl=../otcl-$OTCLVER --with-tclcl=../tclcl-$TCLCLVER || die "Ns configuration failed! Exiting ...";
  486. fi
  487. if make
  488. then
  489. echo " Ns has been installed successfully." 
  490. else
  491. echo "Ns make failed!"
  492. echo "See http://www.isi.edu/nsnam/ns/ns-problems.html for problems"
  493. exit
  494. fi
  495. cd ../
  496. # Build nam
  497. echo "============================================================"
  498. echo "* Build nam-$NAMVER"
  499. echo "============================================================"
  500. ln -s otcl-$OTCLVER otcl
  501. ln -s tclcl-$TCLCLVER tclcl
  502. cd ./nam-$NAMVER
  503. # XXX temporary OS X hack
  504. if  [ "${test_darwin}" = "true" ]; then
  505. ln -s /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation libcorefoundation.dylib
  506. fi
  507. if  [ "${test_cygwin}" = "true" ]; then
  508.         ./configure --x-libraries=/usr/X11R6/lib --x-includes=/usr/X11R6/include --with-tclcl=$CUR_PATH/tclcl-$TCLCLVER  || die "Nam configuration failed! Exiting ...";
  509. else
  510.         ./configure --with-otcl=../otcl-$OTCLVER --with-tclcl=../tclcl-$TCLCLVER || die "Nam configuration failed! Exiting ...";
  511. fi
  512. if make
  513. then 
  514.     echo "Nam has been installed successfully."
  515. elif  [ "${test_darwin}" = "true" ]; then
  516.     # XXX workaround for OS X nam Tcl/Tk problems
  517.     echo "Nam make failed! Trying to relink..."
  518.     echo "g++ -o nam tkcompat.o tkUnixInit.o xwd.o netview.o netmodel.o edge.o packet.o node.o main.o trace.o queue.o drop.o animation.o agent.o feature.o route.o transform.o paint.o state.o monitor.o anetmodel.o random.o rng.o view.o graphview.o netgraph.o tracehook.o lan.o psview.o group.o editview.o tag.o address.o animator.o wnetmodel.o nam_stream.o enetmodel.o testview.o parser.o trafficsource.o lossmodel.o queuehandle.o gen/version.o gen/nam_tcl.o  ../tcl8.4.18/unix/libtcl8.4.a ../tk8.4.18/unix/libtk8.4.a ../tcl8.4.18/unix/libtclstub8.4.a -L../tclcl-1.19 -ltclcl -L../otcl -lotcl -L/usr/lib -lz -L/usr/X11R6/lib -lXext -lX11 -lm -L. -lcorefoundation"
  519.     g++ -o nam tkcompat.o tkUnixInit.o xwd.o netview.o netmodel.o edge.o packet.o node.o main.o trace.o queue.o drop.o animation.o agent.o feature.o route.o transform.o paint.o state.o monitor.o anetmodel.o random.o rng.o view.o graphview.o netgraph.o tracehook.o lan.o psview.o group.o editview.o tag.o address.o animator.o wnetmodel.o nam_stream.o enetmodel.o testview.o parser.o trafficsource.o lossmodel.o queuehandle.o gen/version.o gen/nam_tcl.o  ../tcl8.4.18/unix/libtcl8.4.a ../tk8.4.18/unix/libtk8.4.a ../tcl8.4.18/unix/libtclstub8.4.a -L../tclcl-1.19 -ltclcl -L../otcl -lotcl -L/usr/lib -lz -L/usr/X11R6/lib -lXext -lX11 -lm -L. -lcorefoundation
  520.     if [ -e nam ]; then
  521.         echo "Nam relinking succeeded; nam has been installed successfully."
  522.     else
  523.         echo "Nam make failed! You may want to tweak the above linker path if libraries are not being picked up successfuly.  Continue ..."
  524.         echo "See http://www.isi.edu/nsnam/ns-problems.html for problems"
  525.     fi
  526. else
  527.     echo "Nam make failed! Continue ..."
  528.     echo "See http://www.isi.edu/nsnam/ns-problems.html for problems"
  529. fi
  530. cd ../
  531. # Building dei80211mr
  532. cd ./dei80211mr-${DEI80211MRVER}
  533. ./configure --with-ns-allinone=${CUR_PATH} --prefix=${CUR_PATH} 
  534.     && make 
  535.     && make install
  536. cd ..
  537. # Install nam, ns, xgraph into bin
  538. if [ ! -d bin ] ; then
  539.     mkdir bin
  540. fi
  541. cd bin
  542. ln -s $CUR_PATH/ns-$NSVER/ns${EXE} ns${EXE}
  543. if test -x $CUR_PATH/nam-$NAMVER/nam${EXE}
  544. then
  545.     ln -s $CUR_PATH/nam-$NAMVER/nam${EXE} nam${EXE}
  546. else
  547.     echo "Please compile your nam separately."
  548. fi
  549. if test -x $CUR_PATH/xgraph-$XGRAPHVER/xgraph${EXE}
  550. then
  551.     ln -s $CUR_PATH/xgraph-$XGRAPHVER/xgraph${EXE} xgraph${EXE}
  552. else
  553.     echo "Please compile your xgraph separately."
  554. fi
  555. if test -x $CUR_PATH/gt-itm/bin/sgb2ns${EXE}
  556. then 
  557.     ln -s $CUR_PATH/gt-itm/bin/sgb2ns${EXE} sgb2ns${EXE}
  558.     ln -s $CUR_PATH/gt-itm/bin/sgb2hierns${EXE} sgb2hierns${EXE}
  559.     ln -s $CUR_PATH/gt-itm/bin/sgb2comns${EXE} sgb2comns${EXE}
  560.     ln -s $CUR_PATH/gt-itm/bin/itm${EXE} itm${EXE}
  561.     ln -s $CUR_PATH/gt-itm/bin/sgb2alt${EXE} sgb2alt${EXE}
  562.     ln -s $CUR_PATH/gt-itm/bin/edriver${EXE} edriver${EXE}
  563. else
  564.     echo "Please compile your gt-itm & sgb2ns separately."
  565. fi
  566. echo ""
  567. echo "Ns-allinone package has been installed successfully."
  568. echo "Here are the installation places:"
  569. echo "tcl$TCLVER: $CUR_PATH/{bin,include,lib}"
  570. echo "tk$TKVER: $CUR_PATH/{bin,include,lib}"
  571. echo "otcl: $CUR_PATH/otcl-$OTCLVER"
  572. echo "tclcl: $CUR_PATH/tclcl-$TCLCLVER"
  573. echo "ns: $CUR_PATH/ns-$NSVER/ns"
  574. if [ -x $CUR_PATH/nam-$NAMVER/nam ]
  575. then
  576. echo "nam: $CUR_PATH/nam-$NAMVER/nam"
  577. fi
  578. if [ -x $CUR_PATH/xgraph-$XGRAPHVER/xgraph ]
  579. then
  580. echo "xgraph: $CUR_PATH/xgraph-$XGRAPHVER"
  581. fi
  582. if [ -x $CUR_PATH/gt-itm/bin/sgb2ns ] 
  583. then
  584. echo "gt-itm:   $CUR_PATH/itm, edriver, sgb2alt, sgb2ns, sgb2comns, sgb2hierns"
  585. fi
  586. echo ""
  587. echo "----------------------------------------------------------------------------------"
  588. echo ""
  589. echo "Please put $CUR_PATH/bin:$CUR_PATH/tcl$TCLVER/unix:$CUR_PATH/tk$TKVER/unix" 
  590. echo "into your PATH environment; so that you'll be able to run itm/tclsh/wish/xgraph."
  591. echo ""
  592. echo "IMPORTANT NOTICES:"
  593. echo ""
  594. echo "(1) You MUST put $CUR_PATH/otcl-$OTCLVER, $CUR_PATH/lib, "
  595. echo "    into your LD_LIBRARY_PATH environment variable."
  596. echo "    If it complains about X libraries, add path to your X libraries "
  597. echo "    into LD_LIBRARY_PATH."
  598. echo "    If you are using csh, you can set it like:"
  599. echo " setenv LD_LIBRARY_PATH <paths>"
  600. echo "    If you are using sh, you can set it like:"
  601. echo " export LD_LIBRARY_PATH=<paths>"
  602. echo ""
  603. echo "(2) You MUST put $CUR_PATH/tcl$TCLVER/library into your TCL_LIBRARY environmental"
  604. echo "    variable. Otherwise ns/nam will complain during startup."
  605. echo ""
  606. echo ""
  607. echo "After these steps, you can now run the ns validation suite with"
  608. echo "cd ns-$NSVER; ./validate"
  609. echo ""
  610. echo "For trouble shooting, please first read ns problems page "
  611. echo "http://www.isi.edu/nsnam/ns/ns-problems.html. Also search the ns mailing list archive"
  612. echo "for related posts." 
  613. echo ""
  614. exit 0