dol: initial dol commit
[jump.git] / dol / build.xml
diff --git a/dol/build.xml b/dol/build.xml
new file mode 100644 (file)
index 0000000..a47b050
--- /dev/null
@@ -0,0 +1,183 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<project name="dol" default="compile" basedir=".">
+
+  <description>
+    Ant build file for DOL and its documentation.
+  </description>
+
+  <!-- ************************************************************** -->
+  <!-- properties                                                     -->
+  <!-- ************************************************************** -->
+  <!-- source directories -->
+  <property name="dol.path"      value="${basedir}"/>
+  <property name="systemc.inc"   value="/home/shapes/base/resources/lib/systemC/include"/>
+  <property name="systemc.lib"   value="/home/shapes/base/resources/lib/systemC/lib-linux/libsystemc.a"/>
+
+  <property name="src.dir"       location="src"/>
+  <property name="doc.dir"       location="docs"/>
+  <property name="jars.dir"      location="jars"/>
+  <property name="example.dir"   location="examples"/>
+
+  <!-- build directories -->
+  <property name="build.dir"     location="build"/>
+  <property name="bin.dir"       location="${build.dir}/bin"/>
+  <property name="bin.main.dir"  location="${bin.dir}/main"/>
+  <property name="doc.api.dir"   location="${doc.dir}/api"/>
+  <property name="doc.build.dir" location="${build.dir}/docs"/>
+  <property name="expo.dir"      location="../expo"/>
+
+  <!-- distribution directories -->
+  <property name="bin-dist.name" value="dol.jar"/>
+  <property name="api.name"      value="SHAPES Distributed Operation Layer (DOL)"/>
+
+  <!-- jar files -->
+  <property name="jars"          value=".:${jars.dir}/jdom.jar:${jars.dir}/xercesImpl.jar"/>
+
+
+  <!-- *************************************************************** -->
+  <!-- tasks                                                           -->
+  <!-- *************************************************************** -->
+  <!-- build all -->
+  <target name="all" depends="config, compile"/>
+
+  <!-- compile DOL java classes -->
+  <target name="compile">
+    <mkdir dir="${build.dir}"/>
+    <mkdir dir="${bin.dir}"/>
+    <mkdir dir="${bin.main.dir}"/>
+
+    <!-- compile dol sources -->
+    <javac destdir="${bin.main.dir}" debug="true" classpath="${jars}">
+      <src path="${src.dir}"/>
+      <compilerarg value="-Xlint:unchecked"/>
+    </javac>
+    <javac destdir="${bin.main.dir}"
+      debug="true"
+      classpath="jars/jdom.jar:jars/xercesImpl.jar">
+      <src path="test/src"/>
+    </javac>
+    <copy todir="${bin.main.dir}" file="${src.dir}/dol.properties"/>
+    <copy todir="${bin.main.dir}">
+      <fileset dir="${src.dir}"
+        includes="dol/visitor/systemC/lib/**
+                  dol/visitor/hds/lib/**
+                  dol/visitor/PipeAndFilter/lib/**
+                  dol/visitor/hdsd/lib/**
+                  dol/visitor/hdsd/scd/**
+                  dol/visitor/hdsd/scd/fsm/**
+                  dol/visitor/rtems/lib/**
+                  dol/visitor/protothread/lib/**
+                  dol/visitor/cbe/lib/**
+                  dol/visitor/cbe/template/**
+                  dol/visitor/cell/lib/**
+                  dol/visitor/cell/template/**"/>
+    </copy>
+
+    <!-- copy example run scripts -->
+    <copy todir="${bin.main.dir}" file="examples/runexample.xml"/>
+    <copy todir="${bin.main.dir}" file="examples/runprofiler.xml"/>
+    <copy todir="${bin.main.dir}">
+      <fileset dir="examples"
+               includes="schema/**"
+               excludes="schema/createschemastex"/>
+    </copy>
+    
+    <!-- compile test sources -->
+    <javac destdir="${bin.main.dir}"
+      debug="true"
+      classpath="jars/jdom.jar:jars/xercesImpl.jar">
+      <src path="test/src"/>
+    </javac>
+    <copy todir="${bin.main.dir}" file="test/runtests.xml"/>
+    <copy tofile="${bin.main.dir}/test.properties" file="test/test.properties">
+      <filterchain>
+         <replacetokens>
+            <token key="schema_path" value="${example.dir}/schema"/>
+         </replacetokens>
+      </filterchain>
+      <filterchain>
+        <tokenfilter>
+          <replaceregex pattern="(.)\\([^ ])"
+                        replace="\1/\2"
+                        flags="g"/>
+        </tokenfilter>
+      </filterchain>
+    </copy>
+
+    <antcall target="createjar"/>
+    <!-- <antcall target="javadoc"/> -->
+  </target>
+
+  <target name="config">
+    <echo message="Create new dol.properties file."/>
+    <delete file="${src.dir}/dol.properties" quiet="true"/>
+    <copy file="${src.dir}/dol_template.properties"
+      tofile="${src.dir}/dol.properties">
+      <filterchain>
+         <replacetokens>
+            <token key="dol_path"                value="${dol.path}"/>
+            <token key="systemc_inc"             value="${systemc.inc}"/>
+            <token key="systemc_lib"             value="${systemc.lib}"/>
+         </replacetokens>
+      </filterchain>
+    </copy>
+  </target>
+
+  <!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  
+  <target name="test" depends="compile">
+    <javac destdir="${bin.main.dir}" debug="true" classpath="jars/jdom.jar:jar/xercesImpl.jar">
+      <src path="test/src"/>
+    </javac>
+    <copy todir="${bin.main.dir}" file="test/runtests.xml"/>
+    <copy todir="${bin.main.dir}" file="examples/runexample.xml"/>
+    <copy tofile="${bin.main.dir}/test.properties" file="test/test.properties">
+      <filterchain>
+         <replacetokens>
+            <token key="schema_path" value="${example.dir}/schema"/>
+         </replacetokens>
+      </filterchain>
+      <filterchain>
+        <tokenfilter>
+          <replaceregex pattern="(.)\\([^ ])"
+                        replace="\1/\2"
+                        flags="g"/>
+        </tokenfilter>
+      </filterchain>
+    </copy>
+  </target>
+  -->
+
+  <target name="javadoc">
+    <mkdir dir="${doc.build.dir}"/>
+    <javadoc packagenames="dol.*"
+             classpath="${jars}"
+             sourcepath="${src.dir}"
+             destdir="${doc.build.dir}"
+             access="public"
+             author="true"
+             version="true"
+             use="true"
+             windowtitle="${api.name}">
+      <doctitle><![CDATA[<h1>${api.name}</h1>]]></doctitle>
+      <bottom><![CDATA[<i>Copyright &#169; 2005-2007 Computer Engineering and Networks Laboratory (TIK), ETH Z&uuml;rich. All Rights Reserved.</i>]]></bottom>
+    </javadoc>
+  </target>
+
+  <target name="createjar">
+    <jar destfile="${bin-dist.name}" manifest="${src.dir}/MANIFEST.MF">
+      <fileset dir="${bin.main.dir}"
+               includes="dol/** dol.properties"/>
+      <fileset dir="examples"
+               includes="schema/**"
+               excludes="schema/createschemastex"/>
+    </jar>
+    <copy file="${bin-dist.name}" todir="${expo.dir}/jars"/>
+  </target>
+
+  <!-- clean up everything -->
+  <target name="clean">
+    <delete dir="${build.dir}"/>
+    <delete file="${bin-dist.name}"/>
+  </target>
+</project>