dol: fix shm_t contain the shm-buffers
[jump.git] / dol / build.xml
1 <?xml version="1.0" encoding="UTF-8"?>
2
3 <project name="dol" default="compile" basedir=".">
4
5   <description>
6     Ant build file for DOL and its documentation.
7   </description>
8
9   <!-- ************************************************************** -->
10   <!-- properties                                                     -->
11   <!-- ************************************************************** -->
12   <!-- source directories -->
13   <property name="dol.path"      value="${basedir}"/>
14   <property name="systemc.inc"   value="/home/shapes/base/resources/lib/systemC/include"/>
15   <property name="systemc.lib"   value="/home/shapes/base/resources/lib/systemC/lib-linux/libsystemc.a"/>
16
17   <property name="src.dir"       location="src"/>
18   <property name="doc.dir"       location="docs"/>
19   <property name="jars.dir"      location="jars"/>
20   <property name="example.dir"   location="examples"/>
21
22   <!-- build directories -->
23   <property name="build.dir"     location="build"/>
24   <property name="bin.dir"       location="${build.dir}/bin"/>
25   <property name="bin.main.dir"  location="${bin.dir}/main"/>
26   <property name="doc.api.dir"   location="${doc.dir}/api"/>
27   <property name="doc.build.dir" location="${build.dir}/docs"/>
28   <property name="expo.dir"      location="${basedir}"/>
29
30   <!-- distribution directories -->
31   <property name="bin-dist.name" value="dol.jar"/>
32   <property name="api.name"      value="SHAPES Distributed Operation Layer (DOL)"/>
33
34   <!-- jar files -->
35   <property name="jars"          value=".:${jars.dir}/jdom.jar:${jars.dir}/xercesImpl.jar"/>
36
37
38   <!-- *************************************************************** -->
39   <!-- tasks                                                           -->
40   <!-- *************************************************************** -->
41   <!-- build all -->
42   <target name="all" depends="config, compile"/>
43
44   <!-- compile DOL java classes -->
45   <target name="compile">
46     <mkdir dir="${build.dir}"/>
47     <mkdir dir="${bin.dir}"/>
48     <mkdir dir="${bin.main.dir}"/>
49
50     <!-- compile dol sources -->
51     <javac destdir="${bin.main.dir}" debug="true" classpath="${jars}">
52       <src path="${src.dir}"/>
53       <compilerarg value="-Xlint:unchecked"/>
54     </javac>
55     <javac destdir="${bin.main.dir}"
56       debug="true"
57       classpath="jars/jdom.jar:jars/xercesImpl.jar">
58       <src path="test/src"/>
59     </javac>
60     <copy todir="${bin.main.dir}" file="${src.dir}/dol.properties"/>
61     <copy todir="${bin.main.dir}">
62       <fileset dir="${src.dir}"
63         includes="dol/visitor/systemC/lib/**
64                   dol/visitor/hds/lib/**
65                   dol/visitor/epiphany/lib/**
66                   dol/visitor/epiphany/template/**
67                   dol/visitor/PipeAndFilter/lib/**
68                   dol/visitor/hdsd/lib/**
69                   dol/visitor/hdsd/scd/**
70                   dol/visitor/hdsd/scd/fsm/**
71                   dol/visitor/rtems/lib/**
72                   dol/visitor/protothread/lib/**
73                   dol/visitor/cbe/lib/**
74                   dol/visitor/cbe/template/**
75                   dol/visitor/cell/lib/**
76                   dol/visitor/cell/template/**"/>
77     </copy>
78
79     <!-- copy example run scripts -->
80     <copy todir="${bin.main.dir}" file="examples/runexample.xml"/>
81     <copy todir="${bin.main.dir}" file="examples/runprofiler.xml"/>
82     <copy todir="${bin.main.dir}">
83       <fileset dir="examples"
84                includes="schema/**"
85                excludes="schema/createschemastex"/>
86     </copy>
87     
88     <!-- compile test sources -->
89     <javac destdir="${bin.main.dir}"
90       debug="true"
91       classpath="jars/jdom.jar:jars/xercesImpl.jar">
92       <src path="test/src"/>
93     </javac>
94     <copy todir="${bin.main.dir}" file="test/runtests.xml"/>
95     <copy tofile="${bin.main.dir}/test.properties" file="test/test.properties">
96       <filterchain>
97          <replacetokens>
98             <token key="schema_path" value="${example.dir}/schema"/>
99          </replacetokens>
100       </filterchain>
101       <filterchain>
102         <tokenfilter>
103           <replaceregex pattern="(.)\\([^ ])"
104                         replace="\1/\2"
105                         flags="g"/>
106         </tokenfilter>
107       </filterchain>
108     </copy>
109
110     <antcall target="createjar"/>
111     <!-- <antcall target="javadoc"/> -->
112   </target>
113
114   <target name="config">
115     <echo message="Create new dol.properties file."/>
116     <delete file="${src.dir}/dol.properties" quiet="true"/>
117     <copy file="${src.dir}/dol_template.properties"
118       tofile="${src.dir}/dol.properties">
119       <filterchain>
120          <replacetokens>
121             <token key="dol_path"                value="${dol.path}"/>
122             <token key="systemc_inc"             value="${systemc.inc}"/>
123             <token key="systemc_lib"             value="${systemc.lib}"/>
124          </replacetokens>
125       </filterchain>
126     </copy>
127   </target>
128
129   <!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  
130   <target name="test" depends="compile">
131     <javac destdir="${bin.main.dir}" debug="true" classpath="jars/jdom.jar:jar/xercesImpl.jar">
132       <src path="test/src"/>
133     </javac>
134     <copy todir="${bin.main.dir}" file="test/runtests.xml"/>
135     <copy todir="${bin.main.dir}" file="examples/runexample.xml"/>
136     <copy tofile="${bin.main.dir}/test.properties" file="test/test.properties">
137       <filterchain>
138          <replacetokens>
139             <token key="schema_path" value="${example.dir}/schema"/>
140          </replacetokens>
141       </filterchain>
142       <filterchain>
143         <tokenfilter>
144           <replaceregex pattern="(.)\\([^ ])"
145                         replace="\1/\2"
146                         flags="g"/>
147         </tokenfilter>
148       </filterchain>
149     </copy>
150   </target>
151   -->
152
153   <target name="javadoc">
154     <mkdir dir="${doc.build.dir}"/>
155     <javadoc packagenames="dol.*"
156              classpath="${jars}"
157              sourcepath="${src.dir}"
158              destdir="${doc.build.dir}"
159              access="public"
160              author="true"
161              version="true"
162              use="true"
163              windowtitle="${api.name}">
164       <doctitle><![CDATA[<h1>${api.name}</h1>]]></doctitle>
165       <bottom><![CDATA[<i>Copyright &#169; 2005-2007 Computer Engineering and Networks Laboratory (TIK), ETH Z&uuml;rich. All Rights Reserved.</i>]]></bottom>
166     </javadoc>
167   </target>
168
169   <target name="createjar">
170     <jar destfile="${bin-dist.name}" manifest="${src.dir}/MANIFEST.MF">
171       <fileset dir="${bin.main.dir}"
172                includes="dol/** dol.properties"/>
173       <fileset dir="examples"
174                includes="schema/**"
175                excludes="schema/createschemastex"/>
176     </jar>
177     <copy file="${bin-dist.name}" todir="${expo.dir}/jars"/>
178   </target>
179
180   <!-- clean up everything -->
181   <target name="clean">
182     <delete dir="${build.dir}"/>
183     <delete file="${bin-dist.name}"/>
184   </target>
185 </project>