bakeconf.xml
author Hajime Tazaki <tazaki@nict.go.jp>
Fri, 10 May 2013 15:12:58 +0900
changeset 259 97a11eb2c60d
parent 258 1103e5501c9f
child 260 319eb15d093c
permissions -rw-r--r--
remove redundant download for inkernel modules

<configuration>
  <modules>

    <module name="dce-meta-dev">
      <source type="mercurial">
        <attribute name="url" value="http://code.nsnam.org/ns-3-dce"/>
        <attribute name="module_directory" value="ns-3-dce"/>
      </source>
      <depends_on name="ns-3-dev" optional="False"/>
      <depends_on name="elf-loader" optional="True"/>
      <depends_on name="iperf" optional="True"/>
      <depends_on name="ccnx" optional="True"/>
      <depends_on name="wget" optional="True"/>
      <depends_on name="thttpd" optional="True"/>
      <build type="none"/>
    </module>

    <module name="dce-ns3-dev">
      <source type="mercurial">
        <attribute name="url" value="http://code.nsnam.org/ns-3-dce"/>
        <attribute name="module_directory" value="ns-3-dce"/>
      </source>
      <depends_on name="dce-meta-dev" optional="False"/>
      <build type="waf" objdir="build">
        <attribute name="supported_os" value="linux;linux2"/>
        <attribute name="configure_arguments" value="configure --with-ns3=$INSTALLDIR --with-elf-loader=$INSTALLDIR/lib --prefix=$INSTALLDIR"/>
     </build>
    </module>

    <module name="dce-linux-dev">
      <source type="mercurial">
        <attribute name="url" value="http://code.nsnam.org/ns-3-dce"/>
        <attribute name="module_directory" value="ns-3-dce"/>
      </source>
      <depends_on name="dce-meta-dev" optional="False"/>
      <depends_on name="net-next-sim-2.6.36" optional="False"/>
      <depends_on name="iproute" optional="False"/>
      <build type="waf" objdir="yes" sourcedir="ns-3-dce">
        <attribute name="supported_os" value="linux;linux2"/>
        <attribute name="configure_arguments" value="configure --prefix=$INSTALLDIR --with-ns3=$INSTALLDIR --with-elf-loader=$INSTALLDIR/lib --enable-kernel-stack=$SRCDIR/../net-next-sim-2.6.36/arch"/>
      </build>
    </module>

    <module name="dce-linux-dev-gcov">
      <source type="mercurial">
        <attribute name="url" value="http://code.nsnam.org/ns-3-dce"/>
        <attribute name="module_directory" value="ns-3-dce"/>
      </source>
      <depends_on name="dce-meta-dev" optional="False"/>
      <depends_on name="net-next-sim-2.6.36" optional="False"/>
      <depends_on name="iproute" optional="False"/>
      <depends_on name="dce-quagga-dev" optional="False"/>
      <depends_on name="dce-umip-dev" optional="False"/>
      <build type="waf" objdir="yes" sourcedir="ns-3-dce">
        <attribute name="supported_os" value="linux;linux2"/>
        <attribute name="configure_arguments" value="configure --prefix=$INSTALLDIR --with-ns3=$INSTALLDIR --with-elf-loader=$INSTALLDIR/lib --enable-kernel-stack=$SRCDIR/../net-next-sim-2.6.36/arch --enable-gcov"/>
      </build>
    </module>

    <module name="dce-linux-inkernel">
      <source type="mercurial">
        <attribute name="url" value="http://code.nsnam.org/ns-3-dce"/>
        <attribute name="module_directory" value="ns-3-dce"/>
        <attribute name="revision" value="dce-1.0-rc1"/>
      </source>
      <depends_on name="dce-meta-1.0" optional="False"/>
      <depends_on name="iproute" optional="False"/>
      <build type="waf" objdir="yes" sourcedir="ns-3-dce">
        <attribute name="supported_os" value="linux;linux2"/>
        <!-- assume the bake.py build is executed under arch/sim/test/buildtop/ -->
        <attribute name="configure_arguments" value="configure --prefix=$INSTALLDIR --with-ns3=$INSTALLDIR --with-elf-loader=$INSTALLDIR/lib --enable-kernel-stack=$SRCDIR/../../../../../"/>
      </build>
    </module>

    <module name="mptcp_v0.86">
      <source type="git">
        <attribute name="url" value="git://github.com/multipath-tcp/mptcp"/>
        <attribute name="module_directory" value="mptcp"/>
        <attribute name="revision" value="mptcp_v0.86"/>
      </source>
      <build type="make" objdir="no">
        <attribute name="supported_os" value="linux;linux2"/>
        <attribute name="pre_installation" value="cd $SRCDIR;git remote add dce git://github.com/thehajime/net-next-sim.git; git fetch dce; git merge dce/sim-ns3-3.5.0-branch; echo 'CONFIG_MPTCP=y' >> arch/sim/defconfig; sed 's/CONFIG_SYN_COOKIES=y/\#CONFIG_SYN_COOKIES=y/' arch/sim/defconfig >a; mv a arch/sim/defconfig"/>
        <attribute name="configure_arguments" value="defconfig ARCH=sim"/>
        <attribute name="build_arguments" value="library ARCH=sim"/>
        <attribute name="no_installation" value="True"/>
        <attribute name="post_installation" value="mkdir -p $INSTALLDIR/bin_dce; cd $INSTALLDIR/bin_dce; cp $SRCDIR/libsim-linux3.5.7.so ./libsim-linux3.5.7-mptcp.so; ln -s -f libsim-linux3.5.7-mptcp.so liblinux.so"/>
      </build>
    </module>

    <module name="iproute-mptcp">
      <source type="git">
        <attribute name="url" value="git://github.com/multipath-tcp/iproute-mptcp.git"/>
        <attribute name="module_directory" value="iproute-mptcp"/>
        <attribute name="revision" value="49687a0dff890bf753a06357959b8bbab18b9d2a"/>
      </source>
      <depends_on name="libdb-dev" optional="False"/>
      <depends_on name="bison" optional="False"/>
      <depends_on name="flex" optional="False"/>
      <depends_on name="libsysfs-dev" optional="False"/>
      <depends_on name="libssl-dev" optional="False"/>
      <build type="make" objdir="yes">
        <attribute name="supported_os" value="linux;linux2"/>
        <attribute name="patch" value="$SRCDIR/../ns-3-dce/utils/iproute-mptcp.patch"/>
        <attribute name="pre_installation" value="$SRCDIR/configure"/>
        <attribute name="LDFLAGS" value="-pie"/>
        <attribute name="ignore_predefined_flags" value="True"/>
        <attribute name="install_arguments" value="DESTDIR=$INSTALLDIR" />
        <attribute name="build_arguments" value="CCOPTS+=-fpic CCOPTS+=-D_GNU_SOURCE CCOPTS+=-O0 CCOPTS+=-U_FORTIFY_SOURCE LDFLAGS=-pie DEFINES+=-I$SRCDIR/../mptcp/include"/>
      </build>
    </module>

    <module name="dce-linux-mptcp">
      <source type="mercurial">
        <attribute name="url" value="http://code.nsnam.org/ns-3-dce"/>
        <attribute name="module_directory" value="ns-3-dce"/>
        <attribute name="revision" value="dce-1.0-rc1"/>
      </source>
      <depends_on name="dce-linux-1.0" optional="False"/>
      <depends_on name="mptcp_v0.86" optional="False"/>
      <depends_on name="iproute-mptcp" optional="False"/>
      <build type="waf" objdir="yes" sourcedir="ns-3-dce">
        <attribute name="supported_os" value="linux;linux2"/>
        <attribute name="configure_arguments" value="configure --prefix=$INSTALLDIR --with-ns3=$INSTALLDIR --with-elf-loader=$INSTALLDIR/lib --enable-kernel-stack=$SRCDIR/../mptcp/arch"/>
      </build>
    </module>

    <module name="dce-linux-mptcp-inkernel">
      <source type="mercurial">
        <attribute name="url" value="http://code.nsnam.org/ns-3-dce"/>
        <attribute name="module_directory" value="ns-3-dce"/>
        <attribute name="revision" value="dce-1.0-rc1"/>
      </source>
      <depends_on name="elf-loader" optional="True"/>
      <depends_on name="iproute-mptcp" optional="False"/>
      <depends_on name="iperf" optional="True"/>
      <depends_on name="ns-3.17" optional="False"/>
      <build type="waf" objdir="yes" sourcedir="ns-3-dce">
        <attribute name="supported_os" value="linux;linux2"/>
        <!-- assume the bake.py build is executed under arch/sim/test/buildtop/ -->
        <attribute name="configure_arguments" value="configure --prefix=$INSTALLDIR --with-ns3=$INSTALLDIR --with-elf-loader=$INSTALLDIR/lib --enable-kernel-stack=$SRCDIR/../../../../../"/>
      </build>
    </module>

    <module name="libpcap-dev">
      <source type="system_dependency">
        <attribute name="dependency_test" value="pcap.h"/>
        <attribute name="try_to_install" value="True"/>
        <attribute name="name_apt-get" value="libpcap-dev"/>
        <attribute name="name_yum" value="libpcap-devel"/>
        <attribute name="more_information" value="Didn't find libpcap-dev package; please install it."/>
      </source>
      <build type="none" objdir="no">
      </build>
    </module>

    <module name="libexpat-dev">
      <source type="system_dependency">
        <attribute name="dependency_test" value="expat.h"/>
        <attribute name="try_to_install" value="True"/>
        <attribute name="name_apt-get" value="libexpat1-dev"/>
        <attribute name="name_yum" value="expat-devel"/>
        <attribute name="more_information" value="Didn't find libexpat-dev package; please install it."/>
      </source>
      <build type="none" objdir="no">
      </build>
    </module>

    <module name="ccnx">
      <source type="archive">
        <attribute name="url" value="http://www.ccnx.org/releases/ccnx-0.6.2.tar.gz"/>
        <attribute name="extract_directory" value="ccnx-0.6.2"/>
      </source>
      <depends_on name="libpcap-dev" optional="False"/>
      <depends_on name="libexpat-dev" optional="False"/>
      <build type="make" objdir="yes">
        <attribute name="pre_installation" value="cd $SRCDIR;INSTALL_BASE=$INSTALLDIR ./configure;mkdir $INSTALLDIR/include;mkdir $INSTALLDIR/lib;mkdir $INSTALLDIR/bin"/>
        <attribute name="build_arguments" value="MORE_LDLIBS=-pie"/>
        <attribute name="new_variable" value="INSTALL_BASE=$INSTALLDIR" />
      </build>
     </module>

    <module name="iperf">
      <source type="archive">
        <attribute name="url" value="http://iperf.fr/download/iperf_2.0.5/iperf-2.0.5-source.tar.gz"/>
        <attribute name="extract_directory" value="iperf-2.0.5"/>
      </source>
      <build type="make" objdir="yes">
        <attribute name="pre_installation" value="cd $SRCDIR;./configure --prefix=$INSTALLDIR"/>
        <attribute name="patch" value="$SRCDIR/../ns-3-dce/utils/iperf_4_dce.patch"/>
      </build>
     </module>

    <module name="libdb-dev">
      <source type="system_dependency">
        <attribute name="dependency_test" value="db_185.h"/>
        <attribute name="try_to_install" value="True"/>
        <attribute name="name_apt-get" value="libdb-dev"/>
        <attribute name="name_yum" value="db4-devel"/>
        <attribute name="more_information" value="Didn't find libdb-dev package; please install it."/>
      </source>
      <build type="none" objdir="no">
      </build>
    </module>

    <module name="bison">
      <source type="system_dependency">
        <attribute name="dependency_test" value="bison"/>
        <attribute name="try_to_install" value="True"/>
        <attribute name="name_apt-get" value="bison"/>
        <attribute name="name_yum" value="bison"/>
        <attribute name="more_information" value="The bison tool is not installed, try to install them (bison)"/>
      </source>
      <build type="none" objdir="no">
      </build>
    </module>

    <module name="flex">
      <source type="system_dependency">
        <attribute name="dependency_test" value="flex"/>
        <attribute name="try_to_install" value="True"/>
        <attribute name="name_apt-get" value="flex"/>
        <attribute name="name_yum" value="flex"/>
        <attribute name="more_information" value="The flex tool is not installed, try to install them (flex)"/>
      </source>
      <build type="none" objdir="no">
      </build>
    </module>

    <module name="libsysfs-dev">
      <source type="system_dependency">
        <attribute name="dependency_test" value="libsysfs.h"/>
        <attribute name="try_to_install" value="True"/>
        <attribute name="name_apt-get" value="libsysfs-dev"/>
        <attribute name="name_yum" value="libsysfs-devel"/>
        <attribute name="more_information" value="Didn't find libsysfs-dev package; please install it."/>
      </source>
      <build type="none" objdir="no">
      </build>
    </module>

    <module name="libssl-dev">
      <source type="system_dependency">
        <attribute name="dependency_test" value="md5.h"/>
        <attribute name="try_to_install" value="True"/>
        <attribute name="name_apt-get" value="libssl-dev"/>
        <attribute name="name_yum" value="openssl-devel"/>
        <attribute name="more_information" value="Didn't find libssl-dev package; please install it."/>
      </source>
      <build type="none" objdir="no">
      </build>
    </module>

     <module name="iproute">
      <source type="archive">
        <attribute name="url" value="http://www.linuxgrill.com/anonymous/iproute2/NEW-OSDL/iproute2-2.6.38.tar.bz2"/>
      </source>
      <depends_on name="libdb-dev" optional="False"/>
      <depends_on name="bison" optional="False"/>
      <depends_on name="flex" optional="False"/>
      <depends_on name="libsysfs-dev" optional="False"/>
      <depends_on name="libssl-dev" optional="False"/>
      <build type="make" objdir="yes">
        <attribute name="supported_os" value="linux;linux2"/>
        <attribute name="pre_installation" value="$SRCDIR/configure"/>
        <attribute name="LDFLAGS" value="-pie"/>
        <attribute name="ignore_predefined_flags" value="True"/>
         <attribute name="install_arguments" value="DESTDIR=$INSTALLDIR" />
        <attribute name="build_arguments" value="CCOPTS+=-fpic CCOPTS+=-D_GNU_SOURCE CCOPTS+=-O0 CCOPTS+=-U_FORTIFY_SOURCE LDFLAGS=-pie"/>
      </build>
     </module>

    <module name="ns-3-dev-dce">
      <source type="mercurial">
        <attribute name="url" value="http://code.nsnam.org/ns-3-dev"/>
      </source>
      <build type="waf" objdir="yes">
        <attribute name="configure_arguments" value="configure --prefix=$INSTALLDIR --enable-tests"/>
      </build>
    </module>

     <module name="net-next-sim-2.6.36">
       <source type="git">
         <attribute name="url" value="https://github.com/thehajime/net-next-sim.git"/>
         <attribute name="module_directory" value="net-next-sim-2.6.36"/>
         <attribute name="revision" value="sim-ns3-2.6.36-branch"/>
         <attribute name="fetch_option" value="--depth=1"/>
       </source>
       <build type="make" objdir="no">
         <attribute name="supported_os" value="linux;linux2"/>
         <attribute name="configure_arguments" value="defconfig ARCH=sim"/>
         <attribute name="build_arguments" value="library ARCH=sim"/>
         <attribute name="no_installation" value="True"/>
         <attribute name="post_installation" value="mkdir -p $INSTALLDIR/bin_dce; cd $INSTALLDIR/bin_dce; cp $SRCDIR/libsim-linux2.6.36.so ./; ln -s -f libsim-linux2.6.36.so liblinux.so"/>
       </build>
     </module>

     <module name="net-next-sim-3.4.0">
       <source type="git">
         <attribute name="url" value="https://github.com/thehajime/net-next-sim.git"/>
         <attribute name="module_directory" value="net-next-sim-3.4.0"/>
         <attribute name="revision" value="sim-ns3-3.4.0-branch"/>
       </source>
       <build type="make" objdir="no">
         <attribute name="supported_os" value="linux;linux2"/>
         <attribute name="configure_arguments" value="defconfig ARCH=sim"/>
         <attribute name="build_arguments" value="library ARCH=sim"/>
         <attribute name="no_installation" value="True"/>
         <attribute name="post_installation" value="mkdir -p $INSTALLDIR/bin_dce; cd $INSTALLDIR/bin_dce; cp $SRCDIR/libsim-linux3.4.0.so ./; ln -s -f libsim-linux3.4.0.so liblinux.so"/>
       </build>
     </module>

     <module name="net-next-sim-3.7.0">
       <source type="git">
         <attribute name="url" value="https://github.com/thehajime/net-next-sim.git"/>
         <attribute name="module_directory" value="net-next-sim-3.7.0"/>
         <attribute name="revision" value="sim-ns3-3.7.0-branch"/>
       </source>
       <build type="make" objdir="no">
         <attribute name="supported_os" value="linux;linux2"/>
         <attribute name="configure_arguments" value="defconfig ARCH=sim"/>
         <attribute name="build_arguments" value="library ARCH=sim"/>
         <attribute name="no_installation" value="True"/>
         <attribute name="post_installation" value="mkdir -p $INSTALLDIR/bin_dce; cd $INSTALLDIR/bin_dce; cp $SRCDIR/libsim-linux3.7.0.so ./; ln -s -f libsim-linux3.7.0.so liblinux.so"/>
       </build>
     </module>

     <module name="wget">
      <source type="archive">
        <attribute name="url" value="http://ftp.gnu.org/gnu/wget/wget-1.14.tar.gz"/>
        <attribute name="extract_directory" value="wget-1.14"/>
      </source>
      <build type="make" objdir="yes">
        <attribute name="pre_installation" value="cd $SRCDIR; CFLAGS=-fPIC LDFLAGS=-pie ./configure --disable-opie --disable-digest --disable-ntlm --disable-largefile --disable-threads --disable-nls --disable-rpath --disable-iri --without-ssl --without-zlib --without-libiconv-prefix --without-libintl-prefix --without-libpth-prefix --without-included-regex --prefix=$INSTALLDIR"/>
      </build>
     </module>

    <module name="thttpd">
      <source type="archive">
        <attribute name="url" value="http://www.acme.com/software/thttpd/thttpd-2.25b.tar.gz"/>
        <attribute name="extract_directory" value="thttpd-2.25b"/>
      </source>
      <build type="make" objdir="yes">/"
        <attribute name="pre_installation" value="cd $SRCDIR; sed &quot;s/rm conftest.c/rm -f conftests.c/&quot; configure >a; mv a configure; chmod 755 configure;./configure --prefix=$INSTALLDIR"/>
        <attribute name="patch" value="$SRCDIR/../ns-3-dce/myscripts/httpd/dce-thttpd.patch"/>
         <attribute name="install_arguments" value="-n" />
         <attribute name="build_arguments" value="thttpd"/>
         <attribute name="post_installation" value="cd $SRCDIR; mkdir $INSTALLDIR/bin_dce; /bin/cp -f thttpd-2.25b/thttpd  $INSTALLDIR/bin_dce"/>
      </build>
     </module>


     <module name="iputils">
       <source type="archive">
         <attribute name="url" value="http://www.skbuff.net/iputils/iputils-s20101006.tar.bz2"/>
       </source>
       <!-- note: iputils does not have 'make install' -->
       <build type="inline"  classname="IputilsModuleBuild">
         <attribute name="patch" value="$SRCDIR/../ns-3-dce/myscripts/ns-3-dce-quagga/utils/iputils-ping6.patch"/>
         <attribute name="supported_os" value="linux;linux2"/>
         <code>class IputilsModuleBuild(InlineModuleBuild):
    def __init__(self):
        InlineModuleBuild.__init__(self)
    def build(self, env, jobs):
           if self.attribute('patch').value != '':
               self.threat_patch(env)
           jobstr=[]
           if not jobs == -1:
               jobstr = ['-j', str(jobs)]
           env.run(['make', 'CFLAGS=-fpic', 'CFLAGS+=-D_GNU_SOURCE', 'CFLAGS+=-g',
           'CFLAGS+=-Wstrict-prototypes', 'CFLAGS+=-Wall', 'LDFLAGS=-pie', 
           'ping', 'ping6'] + jobstr,
           directory=env.srcdir)
           env.run(['mkdir', '-p' , env.installdir + '/bin_dce/'],
           directory=env.srcdir)
           env.run(['cp', 'ping', 'ping6', env.installdir + '/bin_dce'],
           directory=env.srcdir)
    def clean(self, env):
           env.run(['make', 'clean'], directory=env.srcdir)
    def check_version(self, env):
           return True</code>
       </build>
     </module>

     <!-- umip related modules -->
     <module name="dce-umip-dev">
       <source type="mercurial">
        <attribute name="url" value="http://code.nsnam.org/thehajime/ns-3-dce-umip"/>
        <attribute name="module_directory" value="ns-3-dce/myscripts/ns-3-dce-umip/"/>
       </source>
       <depends_on name="dce-linux-dev" optional="False"/>
       <depends_on name="dce-quagga-dev" optional="False"/>
       <depends_on name="dce-meta-dev" optional="False"/>
       <depends_on name="umip" optional="False"/>
       <build type="none">
         <attribute name="supported_os" value="linux;linux2"/>
         <!-- attribute name="configure_arguments" value="configure -prefix=$INSTALLDIR"/ -->
       </build>
     </module>

     <module name="umip">
       <source type="git">
         <attribute name="url" value="git://git.umip.org/umip.git"/>
         <attribute name="revision" value="v1.0"/>
       </source>
       <build type="autotools" objdir="no">
         <attribute name="supported_os" value="linux;linux2"/>
         <attribute name="maintainer" value="yes" />
         <attribute name="configure_arguments" value="./configure CFLAGS=-fPIC  LDFLAGS=-pie --prefix=$INSTALLDIR --enable-vt --with-builtin-crypto"/>
         <attribute name="install_arguments" value="-n" />
         <attribute name="post_installation" value="cd $SRCDIR; mkdir $INSTALLDIR/bin_dce; /bin/cp -f src/mip6d  $INSTALLDIR/bin_dce"/>
       </build>
     </module>

    <!-- quagga related modules -->
    <module name="dce-quagga-dev">
      <source type="mercurial">
        <attribute name="url" value="http://code.nsnam.org/thehajime/ns-3-dce-quagga"/>
        <attribute name="module_directory" value="ns-3-dce/myscripts/ns-3-dce-quagga/"/>
      </source>
       <depends_on name="dce-meta-dev" optional="False"/>
       <depends_on name="quagga" optional="False"/>
       <depends_on name="iputils" optional="False"/>
      <build type="none">
        <attribute name="supported_os" value="linux;linux2"/>
        <!-- attribute name="configure_arguments" value="configure -prefix=$INSTALLDIR"/ -->
     </build>
    </module>

    <module name="indent">
      <source type="system_dependency">
        <attribute name="dependency_test" value="indent"/>
        <attribute name="try_to_install" value="True"/>
        <attribute name="name_apt-get" value="indent"/>
        <attribute name="name_yum" value="indent"/>
        <attribute name="more_information" value="The indent tool is not installed, try to install them (indent)"/>
      </source>
      <build type="none" objdir="no">
      </build>
    </module>

    <module name="gawk">
      <source type="system_dependency">
        <attribute name="dependency_test" value="gawk"/>
        <attribute name="try_to_install" value="True"/>
        <attribute name="name_apt-get" value="gawk"/>
        <attribute name="name_yum" value="gawk"/>
        <attribute name="more_information" value="The gawk is not installed, try to install them (gawk)"/>
      </source>
      <build type="none" objdir="no">
      </build>
    </module>

     <module name="quagga">
       <source type="archive">
        <!-- some of mirror sever of gnu.org isn't available.. -->
        <!-- attribute name="url" value="http://download.savannah.gnu.org/releases/quagga/quagga-0.99.20.tar.gz"/ -->
        <attribute name="url" value="http://pkgs.fedoraproject.org/lookaside/pkgs/quagga/quagga-0.99.20.tar.gz/64cc29394eb8a4e24649d19dac868f64/quagga-0.99.20.tar.gz"/>
        <attribute name="extract_directory" value="quagga-0.99.20"/>
       </source>
       <depends_on name="indent" optional="False"/>
       <depends_on name="gawk" optional="False"/>
       <build type="make" objdir="yes">
         <attribute name="pre_installation" value="cd $SRCDIR; CFLAGS='-fPIC -g' LDFLAGS=-pie ./configure --disable-shared --enable-static --disable-user --disable-group --disable-capabilities --prefix=$INSTALLDIR"/>
         <attribute name="install_arguments" value="-n" />
         <attribute name="post_installation" value="cd $SRCDIR; mkdir $INSTALLDIR/bin_dce; /bin/cp zebra/zebra $INSTALLDIR/bin_dce;/bin/cp ripd/ripd $INSTALLDIR/bin_dce;/bin/cp ripngd/ripngd $INSTALLDIR/bin_dce;/bin/cp ospfd/ospfd $INSTALLDIR/bin_dce;/bin/cp ospf6d/ospf6d $INSTALLDIR/bin_dce;/bin/cp bgpd/bgpd $INSTALLDIR/bin_dce"/>
       </build>
     </module>

    <module name="click-dev">
      <source type="git">
	<attribute name="url" value="git://read.cs.ucla.edu/git/click"/>
<!--	<attribute name="revision" value="724412626833df5c13384be5cce4da52c601371f"/>
-->
      </source>
      <build type="autotools" objdir="yes">
	<attribute name="configure_arguments" value="../configure --prefix=$INSTALLDIR --exec-prefix=$INSTALLDIR -enable-userlevel --disable-linuxmodule --enable-nsclick --enable-wifi"/>
	<attribute name="post_installation" value="mkdir $INSTALLDIR/lib; cp -r $OBJDIR/include $INSTALLDIR/lib/."/> 
      </build>
    </module>

    <module name="click-ns-3.17">
      <source type="git">
	<attribute name="url" value="git://read.cs.ucla.edu/git/click"/>
	<attribute name="revision" value="056d2c0a75baaf196fca2622ff9eb80f28038bc0"/>
      </source>
      <build type="autotools" objdir="yes">
	<attribute name="configure_arguments" value="../configure --prefix=$INSTALLDIR --exec-prefix=$INSTALLDIR -enable-userlevel --disable-linuxmodule --enable-nsclick --enable-wifi"/>
	<attribute name="post_installation" value="mkdir $INSTALLDIR/lib; cp -r $OBJDIR/include $INSTALLDIR/lib/."/> 
      </build>
    </module>

    <module name="click-2.0.1">
      <source type="git">
	<attribute name="url" value="git://read.cs.ucla.edu/git/click"/>
	<attribute name="revision" value="8847f68461856418c409f4de4165412b3ec2cade"/>

      </source>
      <build type="autotools" objdir="yes">
	<attribute name="configure_arguments" value="../configure -enable-userlevel --disable-linuxmodule --enable-nsclick --enable-wifi"/>
	<!--	<attribute name="post_installation" value="mkdir $INSTALLDIR/lib; cp -r $OBJDIR/include $INSTALLDIR/lib/.; cp -r $SRCDIR/include $INSTALLDIR/lib"/> 
	--> 
      </build>
    </module>

    <module name="libxml2-dev">
      <source type="system_dependency">
	<attribute name="dependency_test" value="xmlIO.h"/>
	<attribute name="try_to_install" value="True"/>
	<attribute name="name_yum" value="libxml2-devel"/>
	<attribute name="name_yast" value="libxml2-devel"/>
	<attribute name="name_apt-get" value="libxml2-dev"/>
	<attribute name="more_information" value="Didn't find the libxml2-dev library, try to install it!"/>
      </source>
      <build type="none" objdir="no">
      </build>
    </module>

    <module name="openflow-jpelkey">
      <source type="mercurial">
	<attribute name="url" value="http://code.nsnam.org/jpelkey3/openflow"/>
      </source>
      <build type="waf" objdir="yes">
	<attribute name="configure_arguments" value="configure --prefix=$INSTALLDIR"/>
	<attribute name="no_installation" value="True"/>

        <!-- It complains if the lib directory exists, so I am removing the lib directory. Another 
             thing is that it try to install things by default, so the instalation is not required-->
        
	<attribute name="pre_installation" value="mv $INSTALLDIR/lib $INSTALLDIR/libTmp"/>
	<attribute name="post_installation" value="mkdir $INSTALLDIR/lib; mv $INSTALLDIR/libTmp/* $INSTALLDIR/lib/.; rm -rf $INSTALLDIR/libTmp" />
      </build>
	<depends_on name="libxml2-dev" optional="False"/>
    </module>

    <module name="openflow-dev">
      <source type="mercurial">
	<attribute name="url" value="http://code.nsnam.org/openflow"/>
      </source>
      <build type="waf" objdir="yes">
	<attribute name="configure_arguments" value="configure --prefix=$INSTALLDIR"/>
      </build>
	<depends_on name="libxml2-dev" optional="False"/>
    </module>

    <module name="openflow-ns-3.17">
      <source type="mercurial">
	<attribute name="url" value="http://code.nsnam.org/openflow"/>
        <attribute name="revision" value="bb2869a6bbe1"/>
      </source>
      <build type="waf" objdir="yes">
	<attribute name="configure_arguments" value="configure --prefix=$INSTALLDIR"/>
      </build>
	<depends_on name="libxml2-dev" optional="False"/>
    </module>

    <module name="gccxml-ns3">
      <source type="git">
        <attribute name="url" value="git://github.com/gccxml/gccxml.git"/>
        <attribute name="module_directory" value="gccxml"/>
        <attribute name="revision" value="1bfbbe93ae16e97b010fb111305d169e3dcfd5a4"/>
      </source>
      <build type="cmake" objdir="yes">
      </build>
    </module>

    <module name="pygccxml">
      <source type="archive">
	<attribute name="url" value="http://downloads.sourceforge.net/project/pygccxml/pygccxml/pygccxml-1.0/pygccxml-1.0.0.zip"/>
      </source>
      <build type="python" objdir="yes">
      </build>
      <depends_on name="gccxml-ns3" optional="False"/>
    </module>

    <module name="pygccxml-1.0.0">
      <source type="archive">
	<attribute name="url" value="http://downloads.sourceforge.net/project/pygccxml/pygccxml/pygccxml-1.0/pygccxml-1.0.0.zip"/>
      </source>
      <build type="python" objdir="yes">
      </build>
      <depends_on name="gccxml-ns3" optional="False"/>
    </module>

    <module name="python-dev">
      <source type="system_dependency">
        <attribute name="dependency_test" value="Python.h"/>
        <attribute name="try_to_install" value="True"/>
        <attribute name="name_apt-get" value="python-dev"/>
        <attribute name="name_yum" value="python-devel"/>
        <attribute name="more_information" value="The python-dev is not installed, try to install it."/>
      </source>
      <build type="none" objdir="no">
      </build>
    </module>

    <module name="pygraphviz">
      <source type="system_dependency">
        <attribute name="dependency_test" value="(_gv.so or _graphviz.so)"/>
        <attribute name="try_to_install" value="False"/>
        <attribute name="name_apt-get" value="python-pygraphviz"/>
        <attribute name="name_yum" value="graphviz-python"/>
        <attribute name="name_yum" value="py27-pygraphviz"/> 
        <attribute name="more_information" value="The pygraphviz is not installed, try to install it."/>
      </source>
      <build type="none" objdir="no">
      </build>
    </module>

    <module name="pygoocanvas">
      <source type="system_dependency">
        <attribute name="dependency_test" value="goocanvasmodule.so or libgoocanvas.a"/>
        <attribute name="try_to_install" value="True"/>
        <attribute name="name_apt-get" value="python-pygoocanvas"/>
        <attribute name="name_yum" value="pygoocanvas"/>
        <attribute name="name_port" value="pygoocanvas"/>
        <attribute name="more_information" value="The pygoocanvas is not installed, try to install it."/>
      </source>
      <build type="none" objdir="no">
      </build>
    </module>

    <module name="pyviz-prerequisites">
      <source type="none">
      </source>
      <depends_on name="python-dev" optional="True"/>
      <depends_on name="pygraphviz" optional="True"/>
      <depends_on name="pygoocanvas" optional="True"/>
      <build type="none" objdir="no">
      </build>
    </module>

    <module name="pybindgen-dev">
      <source type="bazaar">
	<attribute name="url" value="https://launchpad.net/pybindgen"/>
<!--	<attribute name="revision" value="revno:825"/>
-->
      </source>
      <build type="waf" objdir="yes">
	<attribute name="configure_arguments" value="configure --prefix=$INSTALLDIR"/>
	<attribute name="build_arguments" value="--generate-version"/>
      </build>
      <depends_on name="pygccxml" optional="True"/>
      <depends_on name="python-dev" optional="True"/>
    </module>

    <module name="pybindgen-0.16.0.825">
      <source type="bazaar">
	<attribute name="url" value="https://launchpad.net/pybindgen"/>
	<attribute name="revision" value="revno:825"/>
      </source>
      <build type="waf" objdir="yes">
	<attribute name="configure_arguments" value="configure --prefix=$INSTALLDIR"/>
	<attribute name="build_arguments" value="--generate-version"/>
      </build>
    </module>

    <module name="g++">
      <source type="system_dependency">
        <attribute name="dependency_test" value="g\+\+"/>
        <attribute name="try_to_install" value="False"/>
        <attribute name="more_information" value="g++ is not installed, try to install it or talk to your system administrator"/>
      </source>
      <build type="none" objdir="no">
      </build>
    </module>

    <module name="nsc-dev">
      <source type="mercurial">
	<attribute name="url" value="https://secure.wand.net.nz/mercurial/nsc"/>
      </source>
      <!-- problem: scons has no generic command-line support for builddir and installdir -->
      <build type="inline"  classname="NscModuleBuild">
	<attribute name="supported_os" value="linux;linux2"/>
	<code>class NscModuleBuild(InlineModuleBuild):
    def __init__(self):
        InlineModuleBuild.__init__(self)
    def build(self, env, jobs):
        import os
        import shutil

        jobstr=[]
        if not jobs == -1:
            jobstr = ['-j', str(jobs)]
        env.run(['python', os.path.join(env.srcdir, 'scons.py'), 
                 'prefix=' + env.installdir, 'install'] + jobstr,
                directory=env.srcdir )
        srcLib = os.path.join(env.srcdir, 'lib')
        files = os.listdir(srcLib)
        destination = os.path.join(env.installdir, 'lib')
        for file in files:
             try:
                 shutil.copy2(os.path.join(srcLib, file), destination)
             except Exception as e:
                 print ("   > Error executing copy : " + str(e) + "\n")
       
    def clean(self, env):
        env.run(['python', os.path.join(env.srcdir, 'scons.py'), '-c'],
                directory=env.srcdir)
    def check_version(self, env):
        return True</code>
      </build>
    </module>
    
   <module name="nsc-0.5.3">
      <source type="mercurial">
	<attribute name="url" value="https://secure.wand.net.nz/mercurial/nsc"/>
	<attribute name="revision" value="08c391d0660a"/>
      </source>
      <!-- problem: scons has no generic command-line support for builddir and installdir -->
      <build type="inline"  classname="NscModuleBuild">
	<attribute name="supported_os" value="linux;linux2"/>
	<code>class NscModuleBuild(InlineModuleBuild):
    def __init__(self):
        InlineModuleBuild.__init__(self)
    def build(self, env, jobs):
        import os
        import shutil

        jobstr=[]
        if not jobs == -1:
            jobstr = ['-j', str(jobs)]
        env.run(['python', os.path.join(env.srcdir, 'scons.py'),
                 'prefix=' + env.installdir, 'install'] + jobstr,
                directory=env.srcdir )
        srcLib = os.path.join(env.srcdir, 'lib')
        env._logger.commands.write("LibDir: " + srcLib +"\n")
        destination = os.path.join(env.installdir, 'lib')
        env._logger.commands.write("DstDir: " + destination +"\n")
	if not os.path.exists(destination):
    		os.makedirs(destination)
        files = os.listdir(srcLib)
        env._logger.commands.write("Files:"+str(files)+"\n")
        for file in files:
             env._logger.commands.write(file + "->" + destination +"\n")
             try:
                 shutil.copy2(os.path.join(srcLib, file), destination)
             except Exception as e:
                 print ("   > Error executing copy : " + str(e) + "\n")
       
    def clean(self, env):
        env.run(['python', os.path.join(env.srcdir, 'scons.py'), '-c'],
                directory=env.srcdir)
    def check_version(self, env):
        return True</code>
      </build>
    </module>


    <module name="qt4">
      <source type="system_dependency">
	<attribute name="dependency_test" value="qobject.h and qapplication.h and (qmake or qmake-qt4)"/>
	<attribute name="try_to_install" value="True"/>
	<attribute name="name_yum" value="qt4-devel"/>
	<attribute name="name_apt-get" value="qt4-dev-tools"/>
	<attribute name="more_information" value="Didn't find QT 4, download and install it from http://qt.nokia.com/downloads/"/>
      </source>
      <build type="none" objdir="no">
      </build>
    </module>

    <module name="libc-debug">
      <source type="system_dependency">
        <!-- copy-pasted from elf-loader/extract-system-config.py -->
        <attribute name="dependency_test" value="/usr/lib64/debug/lib64/ld-2.11.2.so.debug or /usr/lib/debug/lib64/ld-linux-x86-64.so.2.debug or /usr/lib/debug/ld-linux-x86-64.so.2 or /usr/lib/debug/lib/ld-linux.so.2.debug or /usr/lib/debug/ld-linux.so.2 or /usr/lib/debug/lib/i386-linux-gnu/ld-2.13.so or /usr/lib/debug/lib/x86_64-linux-gnu/ld-2.13.so or /usr/lib/debug/lib/ld-2.10.1.so or /usr/lib/debug/lib/ld-2.11.1.so or /usr/lib/debug/lib/ld-2.12.1.so or /usr/lib/debug/lib/x86_64-linux-gnu/ld-2.15.so or /usr/lib/debug/lib/i386-linux-gnu/ld-2.15.so or /usr/lib/debug/lib/x86_64-linux-gnu/ld-2.17.so or /usr/lib/debug/lib/i386-linux-gnu/ld-2.17.so"/>
        <attribute name="try_to_install" value="False"/> <!-- should be fixed -->
        <attribute name="name_apt-get" value="libc6-dbg"/>
        <attribute name="name_yum" value="glibc-debuginfo"/>
        <attribute name="more_information" value="Didn't find libc debug package; please install it."/>
      </source>
      <build type="none" objdir="no">
      </build>
    </module>

    <module name="elf-loader">
      <source type="mercurial">
        <attribute name="url" value="http://code.nsnam.org/thehajime/elf-loader"/>
      </source>
      <depends_on name="libc-debug" optional="False"/>
      <build type="make" objdir="no">
        <attribute name="configure_arguments" value="vdl-config.h"/>
        <attribute name="install_arguments" value="PREFIX=$INSTALLDIR"/>
      </build>
    </module>

    <module name="netanim-dev">
      <source type="mercurial">
	<attribute name="url" value="http://code.nsnam.org/netanim"/>
      </source>
      <build type="make" objdir="no">
	<attribute name="pre_installation" value="cd $SRCDIR;qmake NetAnim.pro or cd $SRCDIR;qmake-qt4 NetAnim.pro or cd $SRCDIR;qmake -spec macx-g++ NetAnim.pro"/>
      </build>
      <depends_on name="qt4" optional="False"/>
      <depends_on name="g++" optional="False"/>
    </module>

   <module name="netanim-3.103">
      <source type="mercurial">
        <attribute name="url" value="http://code.nsnam.org/netanim"/>
        <attribute name="revision" value="a898a19d5b9f"/>
      </source>
      <build type="make" objdir="no">
        <attribute name="pre_installation" value="cd $SRCDIR;qmake NetAnim.pro or cd $SRCDIR;qmake-qt4 NetAnim.pro or cd $SRCDIR;qmake -spec macx-g++ NetAnim.pro"/>
      </build>
      <depends_on name="qt4" optional="False"/>
      <depends_on name="g++" optional="False"/>
    </module>

  <module name="ns-3-allinone">
      <source type="mercurial">
	<attribute name="url" value="http://code.nsnam.org/ns-3-dev"/>
      </source>
      <depends_on name="netanim-dev" optional="True"/>
      <depends_on name="nsc-dev" optional="True"/>
      <depends_on name="pybindgen-dev" optional="True"/>
      <depends_on name="pyviz-prerequisites" optional="True"/>
      <depends_on name="click-dev" optional="True"/>
      <depends_on name="openflow-dev" optional="True"/>
      <build type="waf" objdir="yes">
	<attribute name="configure_arguments" value="configure --prefix=$INSTALLDIR --enable-examples --enable-tests --with-nsclick=$SRCDIR/click-dev --with-pybindgen=$SRCDIR/pybindgen --with-openflow=$SRCDIR/openflow-dev --with-nsc=$SRCDIR/nsc-dev"/>
      </build>
  </module>

  <module name="ns-3-dev">
      <source type="mercurial">
	<attribute name="url" value="http://code.nsnam.org/ns-3-dev"/>
      </source>
      <depends_on name="netanim-dev" optional="True"/>
      <depends_on name="pybindgen-dev" optional="True"/>
      <depends_on name="pyviz-prerequisites" optional="True"/>
      <build type="waf" objdir="yes">
	<attribute name="configure_arguments" value="configure --prefix=$INSTALLDIR --enable-examples --enable-tests"/>
      </build>
  </module>

    <module name="ns-3.17">
      <source type="mercurial">
	<attribute name="url" value="http://code.nsnam.org/ns-3.17"/>
      </source>
      <depends_on name="netanim-3.103" optional="True"/>
      <depends_on name="pybindgen-0.16.0.825" optional="True"/>
      <depends_on name="pyviz-prerequisites" optional="True"/>
      <build type="waf" objdir="yes">
	<attribute name="configure_arguments" value="configure --prefix=$INSTALLDIR --enable-examples --enable-tests"/>
      </build>
    </module>

    <module name="ns-allinone-3.17">
      <source type="none"/>
      <depends_on name="netanim-3.103" optional="True"/>
      <depends_on name="nsc-0.5.3" optional="True"/>
      <depends_on name="pybindgen-0.16.0.825" optional="True"/>
      <depends_on name="pyviz-prerequisites" optional="True"/>
      <depends_on name="click-ns-3.17" optional="True"/>
      <depends_on name="openflow-ns-3.17" optional="True"/>
      <depends_on name="pygccxml-1.0.0" optional="True"/>
      <depends_on name="gccxml-ns3" optional="True"/>
      <depends_on name="ns-3.17" optional="False"/>
      <build type="none"/>
    </module>

    <module name="dce-meta-1.0">
      <source type="mercurial">
        <attribute name="url" value="http://code.nsnam.org/ns-3-dce"/>
        <attribute name="module_directory" value="ns-3-dce"/>
        <attribute name="revision" value="dce-1.0-rc1"/>
      </source>
      <depends_on name="ns-3.17" optional="False"/>
      <depends_on name="elf-loader" optional="True"/>
      <depends_on name="iperf" optional="True"/>
      <depends_on name="ccnx" optional="True"/>
      <depends_on name="wget" optional="True"/>
      <depends_on name="thttpd" optional="True"/>
      <build type="none" />
    </module>

    <module name="dce-ns3-1.0">
      <source type="mercurial">
        <attribute name="url" value="http://code.nsnam.org/ns-3-dce"/>
        <attribute name="module_directory" value="ns-3-dce"/>
        <attribute name="revision" value="dce-1.0-rc1"/>
      </source>
      <depends_on name="dce-meta-1.0" optional="False"/>
      <build type="waf" objdir="yes" sourcedir="ns-3-dce">
	<attribute name="supported_os" value="linux;linux2"/>
	<attribute name="configure_arguments" value="configure --with-ns3=$INSTALLDIR --with-elf-loader=$INSTALLDIR/lib --prefix=$INSTALLDIR"/>
      </build>
    </module>

    <module name="dce-linux-1.0">
      <source type="mercurial">
        <attribute name="url" value="http://code.nsnam.org/ns-3-dce"/>
        <attribute name="module_directory" value="ns-3-dce"/>
        <attribute name="revision" value="dce-1.0-rc1"/>
      </source>
      <depends_on name="dce-meta-1.0" optional="False"/>
      <depends_on name="net-next-sim-2.6.36" optional="False"/>
      <depends_on name="iproute" optional="False"/>
      <build type="waf" objdir="yes" sourcedir="ns-3-dce">
	<attribute name="supported_os" value="linux;linux2"/>
	<attribute name="configure_arguments" value="configure --prefix=$INSTALLDIR --with-ns3=$INSTALLDIR --with-elf-loader=$INSTALLDIR/lib --enable-kernel-stack=$SRCDIR/../net-next-sim-2.6.36/arch"/>
      </build>
    </module>

    <module name="dce-quagga-1.0">
      <source type="mercurial">
	<attribute name="url" value="http://code.nsnam.org/thehajime/ns-3-dce-quagga"/>
	<attribute name="module_directory" value="ns-3-dce/myscripts/ns-3-dce-quagga/"/>
	<attribute name="revision" value="dce-1.0-rc1"/>
      </source>
      <depends_on name="quagga" optional="False"/>
      <depends_on name="dce-meta-1.0" optional="False"/>
      <depends_on name="iputils" optional="False"/>
      <build type="none">
	<attribute name="supported_os" value="linux;linux2"/>
      </build>
    </module>

    <module name="dce-umip-1.0">
      <source type="mercurial">
	<attribute name="url" value="http://code.nsnam.org/thehajime/ns-3-dce-umip"/>
	<attribute name="module_directory" value="ns-3-dce/myscripts/ns-3-dce-umip/"/>
	<attribute name="revision" value="dce-1.0-rc1"/>
      </source>
      <depends_on name="dce-linux-1.0" optional="False"/>
      <depends_on name="dce-quagga-1.0" optional="False"/>
      <depends_on name="dce-meta-1.0" optional="False"/>
      <depends_on name="umip" optional="False"/>
      <build type="none">
	<attribute name="supported_os" value="linux;linux2"/>
      </build>
    </module>
  </modules>
 
 <predefined name="dbg">
    <append name="CFLAGS" value="-g"/>
    <append name="CXXFLAGS" value="-g"/>
    <configuration objdir="dbg"/>
    <configuration installdir="build_dbg"/>
  </predefined>

  <predefined name="opt">
    <configuration objdir="opt"/>
    <configuration installdir="build_opt"/>
<!--   <append name="configure_arguments" value=" -d optimized"/> -->
    <append name="CFLAGS" value="-O3"/>
    <append name="CXXFLAGS" value="-O3"/>
  </predefined>
  
  <predefined name="ns3">
    <enable name="ns-3-dev"/>
    <!--    <configuration installdir="." sourcedir="../source"/> -->
    <append module="ns-3-dev" name="configure_arguments" value="--enable-examples --enable-tests"/>
  </predefined>

  <predefined name="ns3-min">
    <enable name="ns-3-dev"/>
    <append module="ns-3-dev" name="configure_arguments" value=" --enable-modules=core,network,wifi"/> -->
  </predefined>

</configuration>