<configuration>
  <modules>

    <module name="click-1.8.0">
      <source type="archive">
	<attribute name="url" value="http://read.cs.ucla.edu/click/click-1.8.0.tar.gz"/>
      </source>
      <build type="autotools" objdir="yes">
	<attribute name="configure_arguments" value="--enable-userlevel --disable-linuxmodule --enable-nsclick --enable-wifi"/>
      </build>
    </module>

    <module name="openflow-ns3">
      <source type="mercurial">
	<attribute name="url" value="http://code.nsnam.org/bhurd/openflow"/>
      </source>
      <build type="waf" objdir="yes"/>
    </module>

    <module name="gccxml-ns3">
      <source type="cvs">
	<attribute name="root" value=":pserver:anoncvs:@www.gccxml.org:/cvsroot/GCC_XML"/>
	<attribute name="module" value="gccxml"/>
	<attribute name="date" value="2009-09-21"/>
      </source>
      <build type="cmake" objdir="yes">
      </build>
    </module>

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

    <module name="pybindgen">
      <source type="bazaar">
	<attribute name="url" value="https://launchpad.net/pybindgen"/>
	<attribute name="revision" value="revno:795"/>
      </source>
      <build type="waf" objdir="yes">
	<attribute name="build_arguments" value="--generate-version"/>
      </build>
      <depends_on name="pygccxml" optional="True"/>
    </module>

    <module name="nsc">
      <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">
	<code>class NscModuleBuild(InlineModuleBuild):
    def __init__(self):
        InlineModuleBuild.__init__(self)
    def build(self, env, jobs):
        env.run(['python', os.path.join(env.srcdir, 'scons.py'), 
                 '-j', str(jobs), '--prefix=' + env.installdir, 'install'],
                directory=env.srcdir)
    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="ns-3-dev">
      <source type="mercurial">
	<attribute name="url" value="http://code.nsnam.org/ns-3-dev"/>
      </source>
      <depends_on name="nsc" optional="True"/>
      <depends_on name="pybindgen" optional="True"/>
      <depends_on name="click-1.8.0" optional="True"/>
      <depends_on name="openflow-ns3" optional="True"/>
      <build type="waf" objdir="yes">
	<attribute name="configure_arguments" value="--with-nsc=$INSTALLDIR --with-nsclick=$INSTALLDIR --with-openflow=$INSTALLDIR"/>
      </build>
    </module>

  </modules>

  <predefined name="ns3">
    <enable name="ns-3-dev"/>
    <append module="ns-3-dev" name="configure_arguments" value="--enable-examples --enable-tests"/>
  </predefined>
  <predefined name="nopython">
    <disable name="pybindgen"/>
  </predefined>
  <predefined name="opt">
    <configuration objdir="opt"/>
    <append name="CFLAGS" value="-g -O3"/>
    <append name="CXXFLAGS" value="-g -O3"/>
  </predefined>
  <predefined name="dbg">
    <configuration objdir="dbg"/>
    <append name="CFLAGS" value="-g -O0"/>
    <append name="CXXFLAGS" value="-g -O0"/>
  </predefined>
  <predefined name="cov">
    <configuration objdir="cov"/>
    <append name="CFLAGS" value="-fprofile-arcs -ftest-coverage "/>
    <append name="CXXFLAGS" value="-fprofile-arcs -ftest-coverage "/>
    <append name="LDFLAGS" value="-lgcov"/>
  </predefined>
</configuration>
