summaryrefslogtreecommitdiffstats
path: root/build.xml
blob: 245ec7cbc0ce6048aedadc940ddb530271a06c15 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
<?xml version="1.0"?>

<!-- Written to assume that classpath is rooted in the current directory. -->
<!-- So this should be OK if you make this script in the root of a filesystem. -->
<!-- If not, you may prefer to adjust the basedir, or move some directories around. -->
<!-- The idea is that both Ant and NetBeans have to know what the package root is -->
<!-- for the classes in your application. -->
<project name="Sun Games Initiative Client Technologies" basedir="." default="all">

    <!-- Don't worry if you don't know the Ant syntax completely or need help on some tasks! -->
    <!-- The standard Ant documentation is bundled. See Help | Help Sets | Ant 1.4.1 Manual. -->

    <target name="init">
        <!-- You can set up any variables you want used throughout the script here. -->
        <!-- <property name="hello" value="world"/ -->
        <!-- To use e.g. Jikes, uncomment this line. -->
        <!-- (Or make the same change in Tools | Options | Ant Settings | Properties.) -->
        <!-- <property name="build.compiler" value="jikes"/> -->
        <!-- You might like to set up some overridable paths, etc.: -->
        <!-- <property name="mylib" value="../lib/mylib.jar"/> -->
        
        <!-- If we are running in windows, set dx8 property to true -->
        <condition property="dx8" >
            <os family="windows" />
        </condition>
        
        <!-- If we are running in linux, set linux property to true -->
        <condition property="linux" >
            <!--<os family="unix" />-->
            <os name="linux" />
        </condition>
		
		<!-- If we are running in Mac OS X, set osx property to true -->
		<condition property="osx" >
			<and>
				<os family="mac" />
				<os family="unix" />
			</and>
		</condition>
    </target>

    <target name="core" depends="init">
        <!-- Both srcdir and destdir should be package roots. -->
        <!-- They could be different of course; in that case NetBeans can also be set -->
        <!-- up to compile to a different filesystem in the same way; see Compiler Types: -->
         <ant dir="coreAPI" />
    </target>
    
    <target name="windows_plugin" depends="core" if="dx8" >
        <!-- Both srcdir and destdir should be package roots. -->
        <!-- They could be different of course; in that case NetBeans can also be set -->
        <!-- up to compile to a different filesystem in the same way; see Compiler Types: -->
         <ant dir="plugins/DX8" /> 
    </target>

    <target name="linux_plugin" depends="core" if="linux" >
        <!-- Both srcdir and destdir should be package roots. -->
        <!-- They could be different of course; in that case NetBeans can also be set -->
        <!-- up to compile to a different filesystem in the same way; see Compiler Types: -->
         <ant dir="plugins/linux" /> 
    </target>
	
    <target name="OSX_plugin" depends="core" if="osx" >
         <ant dir="plugins/OSX" /> 
    </target>

    <target name="javadoc" depends="init">
        <!-- Both srcdir and destdir should be package roots. -->
        <!-- They could be different of course; in that case NetBeans can also be set -->
        <!-- up to compile to a different filesystem in the same way; see Compiler Types: -->
        <ant dir="coreAPI" target="javadoc"/>
        <ant dir="plugins/DX8" target="javadoc"/>
        <ant dir="plugins/linux" target="javadoc"/>
		<ant dir="plugins/OSX" target="javadoc"/>
    </target>
    
    <target name="compile" depends="core,windows_plugin,linux_plugin,OSX_plugin" />
    
    <target name="all" depends="init,compile" description="Build everything.">
        <echo message="Application built. Hello ${hello}!"/>
    </target>
    
    <target name="clean" depends="init" description="Clean all build products.">
        <ant dir="plugins/DX8" target="clean"/>
        <ant dir="plugins/linux" target="clean"/>
		<ant dir="plugins/OSX" target="clean"/>
        <ant dir="coreAPI" target="clean"/>
        <delete failonerror="no">
            <fileset dir="dist">
                <include name="**/*"/>
            </fileset>
        </delete>
    </target>
    
    <target name="dist" depends="init,compile" description="Build the distribution file for this system">
        <mkdir dir="dist"/>
        <mkdir dir="dist/controller"/>
        <copy file="coreAPI/bin/jinput.jar" todir="dist"/>
        <copy file="coreAPI/lib/jutils.jar" todir="dist"/>
        <copy todir="dist/controller">
            <fileset dir="coreAPI/src/tests/controller/">
                <include name="**/*"/>
            </fileset>
        </copy>
        <zip destfile="dist/jinput_${os.name}_dist.zip" 
            basedir="dist"
            excludes="*.zip"
            />
    </target>
	
	<target name="simple_dist" depends="init,compile,simple_windows,simple_linux,simple_osx" description="Build the simple jars for each platform"/>
	
	<target name="simple_linux" depends="init,compile" description="Build the simple linux jar" if="linux">
		<delete failonerror="no" file="jinput.jar"/>
		<delete failonerror="no" file="jinput_linux.tgz"/>
		<jar jarfile="jinput.jar" compress="true">
			<fileset dir="coreAPI/classes">
				<include name="**/*.class"/>
			</fileset>
			<fileset dir="plugins/linux/classes">
				<include name="**/*.class"/>
			</fileset>
			<zipfileset src="coreAPI/lib/jutils.jar" includes="**/*.class"/>
		</jar>
		<tar destfile="jinput_linux.tgz" compression="gzip">
			<tarfileset dir=".">
				<include name="jinput.jar"/>
			</tarfileset>
			<tarfileset dir="plugins/linux/src/native">
				<include name="*.so"/>
			</tarfileset>
		</tar>
		<delete failonerror="no" file="jinput.jar"/>
	</target>
	<target name="simple_windows" depends="init,compile" description="Build the simple windows jar" if="dx8">
		<delete failonerror="no" file="jinput.jar"/>
		<delete failonerror="no" file="jinput_windows.zip"/>
		<jar jarfile="jinput.jar" compress="true">
			<fileset dir="coreAPI/classes">
				<include name="**/*.class"/>
			</fileset>
			<fileset dir="plugins/DX8/classes">
				<include name="**/*.class"/>
			</fileset>
			<zipfileset src="coreAPI/lib/jutils.jar" includes="**/*.class"/>
		</jar>
		<zip destfile="jinput_windows.zip">
			<zipfileset dir=".">
				<include name="jinput.jar"/>
			</zipfileset>
			<zipfileset dir="plugins/DX8/bin">
				<include name="*.dll"/>
			</zipfileset>
		</zip>
		<delete failonerror="no" file="jinput.jar"/>
	</target>
	<target name="simple_osx" depends="init,compile" description="Build the simple osx jar" if="osx">
		<delete failonerror="no" file="jinput.jar"/>
		<delete failonerror="no" file="jinput_osx.tgz"/>
		<jar jarfile="jinput.jar" compress="true">
			<fileset dir="coreAPI/classes">
				<include name="**/*.class"/>
			</fileset>
			<fileset dir="plugins/OSX/classes">
				<include name="**/*.class"/>
			</fileset>
			<zipfileset src="coreAPI/lib/jutils.jar" includes="**/*.class"/>
		</jar>
		<tar destfile="jinput_osx.tgz" compression="gzip">
			<tarfileset dir=".">
				<include name="jinput.jar"/>
			</tarfileset>
			<tarfileset dir="plugins/OSX/src/native">
				<include name="*.jnilib"/>
			</tarfileset>
		</tar>
		<delete failonerror="no" file="jinput.jar"/>
	</target>
</project>