root/branches/mls/compilerbuild.xml

Revision 1773, 12.2 kB (checked in by dsugar, 1 year ago)

Add dependency for setools

  • Property svn:eol-style set to native
  • Property svn:executable set to *
  • Property svn:keywords set to Author Date Id Revision
Line 
1 <?xml version='1.0'?>
2 <!--Copyright (C) 2005-2006 Tresys Technology, LLC
3         Authors: Spencer Shimko <sshimko@tresys.com>
4                          James Athey <jathey@tresys.com>
5        
6         build.xml: ant build file for SEFramework
7 -->
8 <project name="SEFramework" default="test" basedir=".">
9
10         <!-- START SETTINGS -->
11         <!-- VERSION (will be used to globally replace @version@ occurences -->
12         <property name="version" value="0.1"/>
13
14         <!-- system specific settings -->
15         <!-- TODO: Remove these system specific settings -->
16         <property name="javacchome" value="/usr/share/java" />
17         <property name="javacc_ext" value=".jj" />
18
19         <property name="svnlocation" value="http://oss.tresys.com/repos/slide/trunk/slide-plugin/src/com/tresys/slide" />
20
21         <!-- dictionary source -->
22         <property name="dfile" value="test/dictionary.fdic" />
23         <!-- policy source -->
24         <property name="pfile" value="test/policy.fpol" />
25         <!-- system resources source -->
26         <property name="sfile" value="test/sysresources.fsys" />
27         <!-- dictionary output -->
28         <property name="dout" value="dict.out" />
29         <!-- translator output -->
30         <property name="pofile" value="framework.te" />
31         <property name="fofile" value="framework.fc" />
32         <property name="iffile" value="framework.if" />
33     <!-- file context -->
34     <property name="fc" value="test/basepolicy/file_contexts" />
35     <!-- policy.conf -->
36     <property name="pc" value="test/basepolicy/" />
37     <!-- libpath -->
38     <property name="libpath" value="/usr/lib" />
39        
40         <path id="setools.classpath">
41                 <pathelement location="/usr/share/setools-3.3/apol.jar" />
42         </path>
43        
44         <!-- global directory names -->
45         <property name="pkg_path" value="com/tresys/framework/compiler" />
46         <property name="pkg_name" value="com.tresys.framework.compiler" />
47         <property name="src" value="framework-plugin/src" />
48         <property name="build" value="build"/>
49         <property name="testdir" value="test" />
50         <property name="classpath"  value="${build}"/>
51         <property name="buildpath" value="${build}/${pkg_path}" />
52         <property name="srcpath" value="${src}/${pkg_path}" />
53
54         <!-- target names in framework package -->
55         <property name="dict" value="dictionary" />
56         <property name="pol" value="policy" />
57         <property name="trans" value="translator" />
58         <property name="link" value="linkage" />
59         <property name="libselinuxjava" value="libselinuxjava" />
60         <property name="refpolicy" value="refpolicy" />
61         <property name="basepolicy" value="basepolicy" />
62         <property name="flnkage" value="flnkage" />
63         <!-- END SETTINGS -->
64
65         <!-- START GLOBAL TARGETS -->
66         <!-- initialize directories -->
67         <target name="init" depends="initbase,initdict,inittrans,initpol" />
68                
69         <!-- Clean trees -->
70         <target name="clean" depends="cleanbase,cleandict,cleantrans,cleanpol,cleansys" >
71                 <!-- Delete files in base build directory -->
72                 <delete includeEmptyDirs="true" failonerror="false">
73                         <fileset dir="${build}" />
74                         <fileset file="${dout}" />
75                         <fileset file="${pofile}" />
76                         <fileset file="${fofile}" />
77                         <fileset file="${iffile}" />
78                 </delete>
79         </target>
80
81         <!-- Test trees -->
82         <target name="test" depends="testsys" />
83         <!-- END GLOBAL TARGETS -->
84
85         <!-- START BASE TARGETS -->
86         <!-- initialize base build directory if dict file specified-->
87         <target name="initbase">
88                 <!-- setup build directories -->
89                
90                 <mkdir dir="${build}/${pkg_path}" />
91                 <mkdir dir="${utilitybuild}" />
92 <!--
93                                 <mkdir dir="${policyxmlbuild}" />
94                                 <copy todir="${policyxmlbuild}">
95                                         <fileset dir="${policyxmlsrc}" includes="*.java"/>
96                                 </copy>
97 -->
98                
99                 <exec dir="${utilitybuild}" executable="svn">
100                         <arg line="export --force ${svnlocation}/utility/policyxmlparser" />
101                 </exec>
102                 <copy todir="${build}/${pkg_path}">
103                         <fileset dir="${src}/${pkg_path}" includes="**/*.java"/>
104                         <!-- set version -->
105                         <filterset>
106                                 <filter token="version" value="${version}"/>
107                         </filterset>
108                 </copy>
109         </target>
110
111         <!-- Clean tree -->
112         <target name="cleanbase" >
113                 <!-- Delete files in base build directory -->
114                 <delete includeEmptyDirs="true" failonerror="false">
115                         <fileset dir="${build}/${pkg_path}" includes="*.*" />
116                 </delete>
117         </target>
118         <!-- END BASE TARGETS -->
119
120         <!-- START LINKAGE -->
121         <!-- linkage specific properties -->
122         <property name="slidedir" value="build/com/tresys/slide" />
123         <property name="slidelinkage" value="${slidedir}/${link}" />
124         <property name="linkbuild" value="${buildpath}/${link}" />
125         <property name="linksrc" value="${srcpath}/${link}" />
126         <property name="libselinuxjavabuild" value="${linkbuild}/${libselinuxjava}" />
127         <property name="libselinuxjavasrc" value="${linksrc}/${libselinuxjava}" />
128         <property name="refpolbuild" value="${linkbuild}/${refpolicy}" />
129         <property name="refpolsrc" value="${linksrc}/${refpolicy}" />
130         <property name="flnkbuild" value="${linkbuild}/${flnkage}" />
131         <property name="flnksrc" value="${linksrc}/${flnkage}" />
132         <property name="flnk_parse_class" value="FLNKParser" />
133         <property name="base_pol_parse_class" value="BasePolicyParser" />
134         <property name="utilitybuild" value="${slidedir}/utility"/>     
135         <property name="policyxmlbuild" value="${utilitybuild}/policyxmlparser"/>
136         <property name="policyxmlsrc" value="src/com/tresys/slide/utility/policyxmlparser" />
137        
138         <!-- initialize translator build directory -->
139         <target name="initlinkage" depends="initbase" >
140                
141                 <exec dir="${slidedir}" executable="svn">
142                         <arg line="export --force ${svnlocation}/linkage" />
143                 </exec>
144 <!--
145                 <copy todir="${linkbuild}">
146                         <fileset dir="${linksrc}" includes="*.java"/>
147                         <filterset>
148                                 <filter token="version" value="${version}"/>
149                         </filterset>
150                 </copy>
151 -->
152                 <mkdir dir="${libselinuxjavabuild}" />
153                 <copy todir="${libselinuxjavabuild}">
154                         <fileset dir="${libselinuxjavasrc}" includes="*.java"/>
155                 </copy>
156                
157                 <mkdir dir="${refpolbuild}" />
158                 <copy todir="${refpolbuild}">
159                         <fileset dir="${refpolsrc}" includes="*.java"/>
160                 </copy>
161                
162                 <mkdir dir="${flnkbuild}" />
163                 <copy todir="${flnkbuild}">
164                                 <fileset dir="${flnksrc}" includes="*.java"/>
165                 </copy>
166                
167                 <!-- compile -->
168                 <javacc target="${flnksrc}/${flnk_parse_class}${javacc_ext}"
169                      outputdirectory="${flnkbuild}"
170                      javacchome="${javacchome}" />
171
172                 <!-- compile -->
173                 <javacc target="${slidelinkage}/${base_pol_parse_class}${javacc_ext}"
174                      outputdirectory="${slidelinkage}"
175                      javacchome="${javacchome}" />
176         </target>
177
178         <!-- Clean the linkage tree -->
179         <target name="cleanlinkage">
180                 <!-- Delete the build directories -->
181                 <delete dir="${linkbuild}"/>
182                 <delete dir="${libselinuxjavabuild}"/>
183         </target>
184         <!-- END LINKAGE -->
185
186         <!-- START DICTIONARY -->
187         <!-- dictionary specific properties -->
188
189         <property name="dict_parse_class" value="DictionaryParser" />
190         <property name="dictbuild" value="${buildpath}/${dict}" />
191         <property name="dictsrc" value="${srcpath}/${dict}" />
192
193         <!-- initialize dictionary build directory -->
194         <target name="initdict" depends="initbase" >
195                 <mkdir dir="${dictbuild}" />
196                 <!-- setup build directories -->
197                 <copy todir="${dictbuild}">
198                         <fileset dir="${dictsrc}" includes="*.java,*${javacc_ext}"/>
199                         <!-- set version -->
200                         <filterset>
201                                 <filter token="version" value="${version}"/>
202                         </filterset>
203                 </copy>
204         </target>
205
206         <!-- Generate the dictionary parser -->
207         <target name="compdictparser" depends="initbase,initdict">
208                 <!-- compile -->
209                 <javacc target="${dictbuild}/${dict_parse_class}${javacc_ext}"
210                      outputdirectory="${dictbuild}"
211                      javacchome="${javacchome}" />
212         </target>
213                      
214         <!-- Compile the dictionary -->
215         <target name="compdict" depends="compdictparser">
216                 <!-- compile -->
217                 <javac srcdir="${dictbuild}" destdir="${build}" >
218                         <!-- <compilerarg value="-Xlint"/> -->
219                 </javac>
220         </target>
221
222         <!-- Clean the dictionary tree -->
223         <target name="cleandict">
224                 <!-- Delete the build directories -->
225                 <delete dir="${dictbuild}"/>
226         </target>
227
228         <!-- Test the dictionary -->
229         <target name="testdict" depends="compile">
230                 <java classname="${pkg_name}.Compiler"
231          fork="true"
232          failonerror="true"
233          maxmemory="128m">
234                         <jvmarg value="-Djava.library.path=${libpath}" />
235                         <!-- <arg value="-v" /> -->
236                         <arg value="-ds" />
237                         <arg path="${dfile}" />
238                         <arg value="-do" />
239                         <arg path="${dout}" />
240                         <classpath>
241                                 <pathelement location="${build}/" />
242                         </classpath>
243                 </java>
244         </target>
245         <!-- END DICTIONARY -->
246
247         <!-- START SYSTEM RESOURCES -->
248         <!-- system resource specific properties -->
249         <property name="sys" value="systemResources" />
250         <property name="sys_parse_class" value="SystemResourcesParser" />
251         <property name="sysbuild" value="${buildpath}/${sys}" />
252         <property name="syssrc" value="${srcpath}/${sys}" />
253
254         <!-- initialize system resources build directory -->
255         <target name="initsys" depends="initbase" >
256                 <mkdir dir="${sysbuild}" />
257                 <copy todir="${sysbuild}">
258                         <fileset dir="${syssrc}" includes="*.java,*${javacc_ext}"/>
259                         <!-- set version -->
260                         <filterset>
261                                 <filter token="version" value="${version}"/>
262                         </filterset>
263                 </copy>
264         </target>
265
266         <!-- Generate the system resources parser classes -->
267         <target name="compsysparser" depends="initsys">
268                 <!-- compile -->
269                 <javacc target="${sysbuild}/${sys_parse_class}${javacc_ext}"
270             outputdirectory="${sysbuild}"
271             javacchome="${javacchome}" />
272     </target>
273            
274         <!-- Clean the system resource tree -->
275         <target name="cleansys">
276                 <!-- Delete the build directories -->
277                 <delete dir="${sysbuild}"/>
278         </target>
279
280         <!-- Test the policy -->
281         <target name="testsys" depends="compile">
282                 <java classname="${pkg_name}.Compiler"
283          fork="true"
284          failonerror="true"
285          maxmemory="128m">
286                         <jvmarg value="-Djava.library.path=${libpath}" />
287                         <!-- <jvmarg value="-verbose:jni" /> -->
288                 <!-- <arg value="-v"/> -->
289                         <arg value="-ds" />
290                         <arg path="${dfile}" />
291                         <arg value="-p" />
292                         <arg path="${pfile}" />
293                         <arg value="-po" />
294                         <arg path="${pofile}" />
295                         <arg value="-pc" />
296                         <arg path="${pc}" />
297                         <arg value="-fc" />
298                         <arg path="${fc}" />
299                         <arg value="-s" />
300                         <arg path="${sfile}" />
301                         <arg value="-sf" />
302                         <arg path="${fofile}" />
303                         <arg value="-if" />
304                         <arg path="${iffile}" />
305                         <classpath>
306                                 <pathelement path="${build}" />
307                         </classpath>
308                 </java>
309         </target>
310         <!-- END SYSTEM RESOURCES -->
311
312         <!-- START POLICY -->
313         <!-- policy specific properties -->
314         <property name="pol" value="policy" />
315         <property name="pol_parse_class" value="PolicyParser" />
316         <property name="polbuild" value="${buildpath}/${pol}" />
317         <property name="polsrc" value="${srcpath}/${pol}" />
318
319         <!-- initialize policy build directory -->
320         <target name="initpol" depends="initbase" >
321                 <mkdir dir="${polbuild}" />
322                 <copy todir="${polbuild}">
323                         <fileset dir="${polsrc}" includes="*.java,*${javacc_ext}"/>
324                         <!-- set version -->
325                         <filterset>
326                                 <filter token="version" value="${version}"/>
327                         </filterset>
328                 </copy>
329         </target>
330
331         <!-- Generate the policy compiler -->
332         <target name="comppolparser" depends="initpol">
333                 <!-- compile -->
334                 <javacc target="${polbuild}/${pol_parse_class}${javacc_ext}"
335             outputdirectory="${polbuild}"
336             javacchome="${javacchome}" />
337     </target>
338            
339         <!-- Clean the policy tree -->
340         <target name="cleanpol">
341                 <!-- Delete the build directories -->
342                 <delete dir="${polbuild}"/>
343         </target>
344
345         <!-- Test the policy -->
346         <target name="testpol" depends="testsys" />
347         <!-- END POLICY -->
348
349         <!-- START TRANSLATOR -->
350         <!-- translator specific properties -->
351         <property name="transbuild" value="${buildpath}/${trans}" />
352         <property name="transsrc" value="${srcpath}/${trans}" />
353
354         <!-- initialize translator build directory -->
355         <target name="inittrans" depends="initbase" >
356                 <mkdir dir="${transbuild}" />
357                 <copy todir="${transbuild}">
358                         <fileset dir="${transsrc}" includes="*.java"/>
359                         <!-- set version -->
360                         <filterset>
361                                 <filter token="version" value="${version}"/>
362                         </filterset>
363                 </copy>
364         </target>
365
366         <!-- Clean the translator tree -->
367         <target name="cleantrans">
368                 <!-- Delete the build directories -->
369                 <delete dir="${transbuild}"/>
370         </target>
371         <!-- END TRANSLATOR -->
372        
373         <!--compilation target  -->
374         <target name="compile" depends="initdict,inittrans,initpol,initlinkage,comppolparser,compdictparser,compsysparser">
375                 <javac destdir="${build}" >
376 <!--                    <src path="${policyxmlbuild}"/> -->
377                         <src path="${slidedir}" />
378                         <src path="${build}/${pkg_path}" />
379                         <classpath refid="setools.classpath" />
380                 </javac>
381         </target>
382
383 </project>
Note: See TracBrowser for help on using the browser.