summaryrefslogtreecommitdiffstats
path: root/src/native/build.xml
blob: 61a93b39928513c9d01cf2e1b71800604b4fc948 (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
<?xml version="1.0"  encoding="iso-8859-1"?>

<!--
* Copyright (c) 2003 Sun Microsystems, Inc. All  Rights Reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* -Redistribution of source code must retain the above copyright notice, 
* this list of conditions and the following disclaimer.
*
* -Redistribution in binary form must reproduce the above copyright notice, 
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
*
* Neither the name of Sun Microsystems, Inc. or the names of contributors may 
* be used to endorse or promote products derived from this software without 
* specific prior written permission.
* 
* This software is provided "AS IS," without a warranty of any kind.
* ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING
* ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR
* NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN MIDROSYSTEMS, INC. ("SUN") AND ITS
* LICENSORS SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A
* RESULT OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.
* IN NO EVENT WILL SUN OR ITS LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT
* OR DATA, OR FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR
* PUNITIVE DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY,
* ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE, EVEN IF SUN HAS
* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
*
* You acknowledge that this software is not designed or intended for use in the
* design, construction, operation or maintenance of any nuclear facility.
-->

<project name="Sun Games Initiative Client Technologies" basedir="." default="all">

    <target name="init">
    <property name="cc" value ="gcc"/>
    <property name="no_cygwin" value="-mno-cygwin"/>
    <property name="sources" value="common_tools.c extal.c eaxfactory.c eaxbind.c alfactory.c alcbind.c albind.c"/>
    <property name="specs" value="-specs='./specs.new'"/>
	<condition property="isOSX">
		<and>
			<os family="mac"/>
			<os family="unix"/>
		</and>
	</condition>
    <condition property="isUnix">
  	    <os family="unix" />
    </condition>
    <condition property="isWindows">
  	    <os family="windows" />
    </condition>
    </target>

    <target name="compile-dll" depends="init" if="isWindows">
        <echo message="Compiling DLL for Windows." />
        <antcall target="compile-native-lib">
            <param name="include" value="-I${jdk.home}/include -I${jdk.home}/include/win32 -I'${openal.home}'/include" />
            <param name="compilerflags" value ="${no_cygwin} -O3 -Wl,--add-stdcall-alias -shared"/>
            <param name="output" value="../../lib/joal.dll"/>
        </antcall>
    </target>
  
    <target name="compile-so" depends="init" if="isUnix">
        <echo message="Compiling shared library for Unix." />
        <antcall target="compile-native-lib">
            <param name="include" value="-I${jdk.home}/include -I${jdk.home}/include/linux -I'${openal.home}'/include -I'${openal.home}'/include/AL" />
            <param name="compilerflags" value ="-O3 -D_X11 -shared -Wl,-soname -Wl,libjoal.so -Wl,-export-dynamic "/>
            <param name="output" value="../../lib/libjoal.so"/>
        </antcall>
    </target>
    
	<target name="compile-jnilib" depends="init" if="isOSX">
		<echo message="Compiling shared library for OSX"/>
		<antcall target="compile-native-lib">
			<param name="include" value="-I${jdk.home}/include -I${openal.home}/Headers"/>
			<param name="compilerflags" value="-O3 -D_AGL -bundle "/>
			<param name="output" value="../../lib/libjoal.jnilib"/>
		</antcall>
	</target>
	
    <target name="compile-native-lib">
	<echo message="${cc} ${include} ${compilerflags} -o ${output} ${sources}" />
        <exec executable="${cc}">
            <arg line=" ${include} ${compilerflags} -o ${output} ${sources}"/>
        </exec>
    </target>

    <target name="compile" depends="compile-so, compile-dll, compile-jnilib">
     </target>

    <target name="javadoc" depends="init">
        <ant dir="src/java" target="javadoc"/>
    </target>
    
    
    <target name="all" depends="init,compile" description="Build everything.">
        <echo message="Application built."/>
    </target>
    
    <target name="clean" description="Clean all build products.">
        <delete file="../../lib/joal.dll" />
        <delete file="../../lib/libjoal.so" />
        <delete file="../../lib/libjoal.jnilib"/>
    </target>
</project>