source: DCWoRMS/trunk/build.xml @ 477

Revision 477, 5.9 KB checked in by wojtekp, 13 years ago (diff)
  • Property svn:mime-type set to text/plain
Line 
1<project name="gssim" default="compile" basedir=".">
2
3        <!-- declare location of basic directories and variables in the project-->
4        <property name="src" location="src" />
5        <property name="build" location="build" />
6        <property name="jars" location="jars" />
7        <property name="to-grms" location="to-grms" />
8
9        <!-- define basic classpath. This jars are required to compile source code. -->
10        <path id="class.path">
11                <pathelement path="${jars}/bsh-2.0b4.jar" />
12                <pathelement path="${jars}/colt.jar" />
13                <pathelement path="${jars}/commons-lang-2.6.jar" />
14                <pathelement path="${jars}/commons-logging.jar" />
15                <pathelement path="${jars}/gridsim.jar" />
16                <pathelement path="${jars}/gssim_workload3g.jar" />
17                <pathelement path="${jars}/guava-13.0.jar" />
18                <pathelement path="${jars}/jcommon-1.0.10.jar" />
19                <pathelement path="${jars}/jfreechart-1.0.6.jar" />
20                <pathelement path="${jars}/qcg_schemas_tools.jar" />
21                <pathelement path="${jars}/qcg-broker_schemas.jar" />
22                <pathelement path="${jars}/schemas.jar" />
23                <pathelement path="${jars}/simjava.jar" />
24                <pathelement path="${jars}/TimetableChart.jar" />
25                <pathelement path="${jars}/joda-time/joda-time-1.6.jar" />
26                <pathelement path="${jars}/castor-1.3.3-RC1/castor-1.3.3-RC1-codegen.jar" />
27                <pathelement path="${jars}/castor-1.3.3-RC1/castor-1.3.3-RC1-core.jar" />
28                <pathelement path="${jars}/castor-1.3.3-RC1/castor-1.3.3-RC1-xml-schema.jar" />
29                <pathelement path="${jars}/castor-1.3.3-RC1/castor-1.3.3-RC1-xml.jar" />
30                <pathelement path="${jars}/castor-1.3.3-RC1/castor-1.3.3-RC1.jar" />
31        </path>
32
33        <!--
34                compile all source code, except test.* package. Class files are located in
35                ${build}/classes directory along with the java files. 
36        -->
37        <target name="compile" depends="init">
38
39                <copy todir="${build}/classes">
40                        <fileset dir="${src}">
41                                <exclude name="simulator/factory/QueueingSystemFactory.java" />
42                                <exclude name="simulator/factory/ResourcesRandomNumbersFactory.java" />
43                                <exclude name="simulator/factory/SingleResourceFactory.java" />
44                                <exclude name="simulator/lists/ResourceUsage.java" />
45                                <exclude name="simulator/lists/ResourceUsageDynamic.java" />
46                                <exclude name="simulator/workload/generator/ResourceGeneratorInterface.java" />
47                                <exclude name="simulator/workload/generator/impl/ResourceGenerator.java" />
48                                <exclude name="simulator/workload/generator/validators/ResourceConfigValidator.java" />
49                                <exclude name="simulator/workload/generator/validators/XMLValidator.java" />
50
51                        </fileset>
52                </copy>
53
54                <javac srcdir="${build}/classes" destdir="${build}/classes" debug="on" includeantruntime="false">
55                        <classpath refid="class.path" />
56                </javac>
57
58        </target>
59
60        <!--
61                creates jar files from copiled classes.
62                gssim.jar - contains all compiled classes
63                schedframe.jar - contains classes only from schedframe package
64                gssim_schedframe.jar - contains classes only from gssim.schedframe package,
65                        those classes are GSSIM specific implementations of interfaces from schedframe package
66                gssim_light.jar - contains all classes except those from schedframe and gssim.schedframe
67                        packages
68        -->
69        <target name="jar" depends="compile,
70                                                                jar.schedframe,
71                                                                jar.gssim.schedframe,
72                                                                jar.gssim.light,
73                                                                jar.gssim" />
74
75        <target name="jar.schedframe">
76                <jar destfile="${build}/schedframe.jar" basedir="${build}/classes" includes="schedframe/**" />
77        </target>
78
79        <target name="jar.gssim.schedframe">
80                <jar destfile="${build}/gssim_schedframe.jar" basedir="${build}/classes" includes="gssim/schedframe/**" />
81        </target>
82
83        <target name="jar.gssim.light">
84                <jar destfile="${build}/gssim_light.jar" basedir="${build}/classes" excludes="schedframe/**,gssim/schedframe/**,gssim/db/**" />
85        </target>
86
87        <target name="jar.gssim">
88                <jar destfile="${build}/gssim.jar" basedir="${build}/classes" />
89        </target>
90
91        <!--
92                creates build directory where compiled classes and build jar
93                will be placed
94        -->
95        <target name="init">
96                <mkdir dir="${build}/classes" />
97        </target>
98
99
100        <!-- prepares file structure to run on grms -->
101        <target name="grms.prepare" depends="compile, jar.gssim">
102                <copy todir="${to-grms}/jars">
103                        <fileset dir="${jars}" />
104                </copy>
105
106                <copy todir="${to-grms}/simulator">
107                        <fileset dir="simulator" />
108                </copy>
109
110                <copy todir="${to-grms}/properties">
111                        <fileset dir="properties" />
112                </copy>
113
114                <copy file="${build}/gssim.jar" tofile="${to-grms}/gssim.jar" />
115                <copy file="start-gssim.sh" tofile="${to-grms}/start-gssim.sh" />
116                <chmod file="${to-grms}/start-gssim.sh" perm="ugo+rx" />
117        </target>
118
119        <!-- removes directory for preparation to grms from the file system -->
120        <target name="grms.clean">
121                <delete dir="${to-grms}" />
122        </target>
123
124        <target name="grms.install" depends="grms.prepare,  grms.clean"/>
125       
126        <!-- removes build directory from the file system -->
127        <target name="clean" depends="grms.clean">
128                <delete dir="${build}" />
129        </target>
130       
131        <!--
132                Start expetiment execution. This target requires an additional parameter
133                -Dconfig which points experiment configuration file.
134                Usage: ant run -Dconfig="example/experiment.properties"
135        -->
136        <target name="run">
137                <available property="properties.file" type="file" file="${config}" value="${config}" />
138                <antcall target="runExperiment" />
139        </target>
140
141        <target name="runExperiment" depends="compile" if="properties.file">
142                <echo message="Running experiment described in: ${properties.file}" />
143
144                <java classname="simulator.DataCenterWorkloadSimulator" classpath="${build}/classes" fork="true">
145                        <arg file="${properties.file}" />
146                        <classpath>
147                                <path refid="class.path" />
148                                <pathelement path="${jars}/junit-4.4.jar" />
149                                <pathelement path="${jars}/log4j-1.2.13.jar" />
150                                <pathelement path="${jars}/xalan-2.6.jar" />
151                                <pathelement path="${jars}/castor_snapshot/castor-xml-1.2.1-SNAPSHOT.jar" />
152                                <pathelement path="${jars}/xerces/xerces-2_9_0/xercesImpl.jar" />
153                                <pathelement path="${jars}/xerces/xerces-2_9_0/xml-apis.jar" />
154                                <dirset dir="properties" />
155                        </classpath>
156                </java>
157        </target>
158
159</project>
Note: See TracBrowser for help on using the repository browser.