diff options
Diffstat (limited to 'make')
-rw-r--r-- | make/build.xml | 503 | ||||
-rw-r--r-- | make/jogl.properties | 16 |
2 files changed, 289 insertions, 230 deletions
diff --git a/make/build.xml b/make/build.xml index ba85a0436..1bc19ecb1 100644 --- a/make/build.xml +++ b/make/build.xml @@ -17,21 +17,11 @@ - the "make" directory. This also means that this build.xml MUST - be run from the "make" directory. - - - All targets do the following: - - Build the ancillary Ant tasks. - - Generate the Java and C files. - - Compile all sources. - - Create the jogl.jar and platform library. - Public targets: - - linux - - macosx - - macosxfat (ppc & i386 - requires Intel Transition Development Kit or fat Mac OS X) - - solaris - - win32.vc6 - - win32.vc7 - - win32.mingw: build everything (jar, DSOs) for the current platform + - all: (default; autodetects OS and chooses C compiler from jogl.properties) - clean: clean all built - javadoc: create the standard developer Javadoc (recommended) + - (Note: should build all first - may be dependence in the future) - javadoc.spec: create the standard developer Javadoc but exclude com.sun.* classes - javadoc.dev.win32: - javadoc.dev.x11: @@ -39,6 +29,18 @@ - Java and C file generators. Note that it is only supported - to create the Javadoc for the platform on which you are - currently running. + - Optional targets (NOTE, FIXME, may be deleted in the future): + - freebsd + - linux + - linux.amd64 + - linux.ia64 + - macosx + - macosxfat (ppc & i386 - requires Intel Transition Development Kit or fat Mac OS X) + - solaris + - win32.vc6 + - win32.vc7 + - win32.vc8 + - win32.mingw: build everything (jar, DSOs) for the current platform - - Optional properties: - -Djogl.cg=1 when combined with the build or javadoc targets will cause @@ -48,25 +50,89 @@ - ANT build, including the GlueGen and StaticGLInfo tasks, the building of - the Java generated sources, the first and second phase Java compiles, and - the building of the jar file. Thanks to Alex Radeski for the bulk of the - - port to the ant-contrib CPPTask framework. + - port to the ant-contrib CPPTask framework. Thanks to Athomas Goldberg for + - the original OS detection code. --> <project name="JOGL" basedir="." default="all"> <!-- ================================================================== --> <!-- - - Base initialization. + - Base initialization and detection of operating system. --> - <target name="base.init" > - <condition property="os.isMacOSX"><os name="Mac OS X"/></condition> - + <target name="base.init"> <!-- Set the project root directory to be up one directory. --> - <property name="project.root" value="${basedir}/.." /> + <property name="project.root" value=".." /> <!-- Set the configuration and build files to this directory. --> - <property name="make" value="${basedir}" /> + <property name="make" value="." /> + + <!-- Detection of operating system. --> + <condition property="isOSX"> + <and> + <os family="mac"/> + <os family="unix"/> + </and> + </condition> + <condition property="isUnix"> + <and> + <os family="unix" /> + <not> + <os family="mac" /> + </not> + </and> + </condition> + <condition property="isLinux"> + <os name="Linux" /> + </condition> + <condition property="isSolaris"> + <os name="SunOS" /> + </condition> + <condition property="isWindows"> + <os family="windows" /> + </condition> + <condition property="isFreeBSD"> + <os name="FreeBSD" /> + </condition> + <condition property="isLinuxX86"> + <and> + <istrue value="${isLinux}" /> + <os arch="x86" /> + </and> + </condition> + <condition property="isLinuxAMD64"> + <and> + <istrue value="${isLinux}" /> + <os arch="AMD64" /> + </and> + </condition> + <condition property="isLinuxIA64"> + <and> + <istrue value="${isLinux}" /> + <os arch="IA64" /> + </and> + </condition> + <condition property="isIA64"> + <os arch="IA64" /> + </condition> + <!-- Note: assumes X11 platform by default --> + <condition property="isX11"> + <and> + <isfalse value="${isWindows}" /> + <isfalse value="${isOSX}" /> + </and> + </condition> + <echo message="OS X=${isOSX}" /> + <echo message="Windows=${isWindows}" /> + <echo message="Unix=${isUnix}" /> + <echo message="Linux=${isLinux}" /> + <echo message="Solaris=${isSolaris}" /> + <echo message="FreeBSD=${isFreeBSD}" /> + <echo message="LinuxAMD64=${isLinuxAMD64}" /> + <echo message="LinuxIA64=${isLinuxIA64}" /> + <echo message="IA64=${isIA64}" /> + <echo message="X11=${isX11}" /> </target> - <!-- ================================================================== --> <!-- - Load user properties which override build defaults. @@ -77,30 +143,60 @@ - exist. --> <property name="user.properties.file" value="${user.home}/jogl.properties" /> <property file="${user.properties.file}" /> - <echo message="Loaded ${user.properties.file}." /> + <fail message="antlr.jar was not specified in joal.properties. Please see README.txt for instructions" unless="antlr.jar"/> <echo message="antlr.jar=${antlr.jar}" /> - </target> - <target name="load.user.properties.macosx" depends="base.init" unless="user.properties.file"> - <!-- Load the user specified properties file that defines various host - - specific paths. The user will be notified if this is does not - - exist. --> - <property name="user.properties.file" value="${user.home}/jogl.properties" /> - <property file="${user.properties.file}" /> - <echo message="Loaded ${user.properties.file}." /> - <echo message="antlr.jar=${antlr.jar}" /> + <!-- Set up certain compiler properties --> + <condition property="isVC6"> + <and> + <istrue value="${isWindows}" /> + <equals arg1="${win32.c.compiler}" arg2="vc6" /> + </and> + </condition> + <condition property="isVC7"> + <and> + <istrue value="${isWindows}" /> + <equals arg1="${win32.c.compiler}" arg2="vc7" /> + </and> + </condition> + <condition property="isVC8"> + <and> + <istrue value="${isWindows}" /> + <equals arg1="${win32.c.compiler}" arg2="vc8" /> + </and> + </condition> + <condition property="isMingw"> + <and> + <istrue value="${isWindows}" /> + <equals arg1="${win32.c.compiler}" arg2="mingw" /> + </and> + </condition> + <condition property="WindowsFailure"> + <and> + <istrue value="${isWindows}" /> + <isfalse value="${isVC6}" /> + <isfalse value="${isVC7}" /> + <isfalse value="${isVC8}" /> + <isfalse value="${isMingw}" /> + </and> + </condition> + <fail message="Must specify either win32.c.compiler in jogl.properties or use e.g. win32.vc6 build target" if="WindowsFailure" /> + <echo message="VC6=${isVC6}" /> + <echo message="VC7=${isVC7}" /> + <echo message="VC8=${isVC8}" /> + <echo message="MingW=${isMingw}" /> </target> <!-- ================================================================== --> <!-- - Set up java.home.dir appropriately on all platforms. --> - <target name="setup.java.home.dir.nonmacosx" depends="load.user.properties" unless="os.isMacOSX"> + <target name="setup.java.home.dir.nonmacosx" depends="load.user.properties" unless="isOSX"> <!-- java home dir is up one directory as java.home points to '<java-install-dir>/jre' --> <property name="java.home.dir" value="${java.home}/.." /> </target> - <target name="setup.java.home.dir.macosx" depends="load.user.properties.macosx" if="os.isMacOSX"> + <target name="setup.java.home.dir.macosx" depends="load.user.properties" if="isOSX"> <property name="java.home.dir" value="/System/Library/Frameworks/JavaVM.framework/Home" /> </target> <target name="setup.java.home.dir" depends="setup.java.home.dir.nonmacosx,setup.java.home.dir.macosx"/> @@ -109,7 +205,7 @@ <!-- - Declare all paths and user defined variables. --> - <target name="declare" description="Declare properties" depends="setup.java.home.dir, base.init"> + <target name="declare.common" description="Declare properties" depends="setup.java.home.dir, base.init"> <!-- Shorthand for file.separator --> <property name="sep" value="${file.separator}" /> @@ -253,7 +349,31 @@ <!-- - Platform specific declares. --> - <target name="declare.win32" depends="init"> + <target name="declare.win32.vc6" if="isVC6"> + <echo message="Win32.VC6" /> + <property name="compiler.cfg.id" value="compiler.cfg.win32.msvc" /> + <property name="linker.cfg.id" value="linker.cfg.win32.msvc" /> + </target> + + <target name="declare.win32.vc7" if="isVC7"> + <echo message="Win32.VC7" /> + <property name="compiler.cfg.id" value="compiler.cfg.win32.msvc" /> + <property name="linker.cfg.id" value="linker.cfg.win32.msvc" /> + </target> + + <target name="declare.win32.vc8" if="isVC8"> + <echo message="Win32.VC8" /> + <property name="compiler.cfg.id" value="compiler.cfg.win32.msvc" /> + <property name="linker.cfg.id" value="linker.cfg.win32.msvc" /> + </target> + + <target name="declare.win32.mingw" if="isMingw"> + <echo message="Win32.MingW" /> + <property name="compiler.cfg.id" value="compiler.cfg.win32.mingw" /> + <property name="linker.cfg.id" value="linker.cfg.win32.mingw" /> + </target> + + <target name="declare.win32" depends="declare.win32.vc6,declare.win32.vc7,declare.win32.vc8,declare.win32.mingw" if="isWindows"> <!-- Set platform configuration files. --> <property name="gl.cfg" value="${config}/gl-win32.cfg" /> <property name="glext.platform.cfg" value="${config}/wglext.cfg" /> @@ -275,27 +395,7 @@ <property name="javadoc.dev.packagenames.platform" value="${javadoc.dev.packagenames.win32}" /> </target> - <target name="declare.win32.vc6" depends="declare.win32"> - <property name="compiler.cfg.id" value="compiler.cfg.win32.msvc" /> - <property name="linker.cfg.id" value="linker.cfg.win32.msvc" /> - </target> - - <target name="declare.win32.vc7" depends="declare.win32"> - <property name="compiler.cfg.id" value="compiler.cfg.win32.msvc" /> - <property name="linker.cfg.id" value="linker.cfg.win32.msvc" /> - </target> - - <target name="declare.win32.vc8" depends="declare.win32"> - <property name="compiler.cfg.id" value="compiler.cfg.win32.msvc" /> - <property name="linker.cfg.id" value="linker.cfg.win32.msvc" /> - </target> - - <target name="declare.win32.mingw" depends="declare.win32"> - <property name="compiler.cfg.id" value="compiler.cfg.win32.mingw" /> - <property name="linker.cfg.id" value="linker.cfg.win32.mingw" /> - </target> - - <target name="declare.x11" depends="init"> + <target name="declare.x11" depends="init" if="isX11"> <!-- Set platform configuration files. --> <property name="gl.cfg" value="${config}/gl-x11.cfg" /> <property name="glext.platform.cfg" value="${config}/glxext.cfg" /> @@ -316,79 +416,85 @@ <property name="javadoc.dev.packagenames.platform" value="${javadoc.dev.packagenames.x11}" /> </target> - <target name="declare.linux" depends="declare.x11"> - <property name="java.includes.dir.platform" value="${java.includes.dir.linux}" /> - <property name="java.lib.dir.platform" value="${java.lib.dir.linux}" /> + <target name="declare.linux.x86" if="isLinuxX86"> + <echo message="Linux.x86" /> + <property name="java.includes.dir.platform" value="${java.includes.dir.linux}" /> + <property name="java.lib.dir.platform" value="${java.lib.dir.linux}" /> - <property name="compiler.cfg.id" value="compiler.cfg.linux" /> - <property name="linker.cfg.id" value="linker.cfg.linux" /> + <property name="compiler.cfg.id" value="compiler.cfg.linux" /> + <property name="linker.cfg.id" value="linker.cfg.linux" /> </target> - <target name="declare.linux.amd64" depends="declare.x11"> - <property name="java.includes.dir.platform" value="${java.includes.dir.linux}" /> - <property name="java.lib.dir.platform" value="${java.lib.dir.linux.amd64}" /> + <target name="declare.linux.amd64" if="isLinuxAMD64"> + <echo message="Linux.AMD64" /> + <property name="java.includes.dir.platform" value="${java.includes.dir.linux}" /> + <property name="java.lib.dir.platform" value="${java.lib.dir.linux.amd64}" /> - <property name="compiler.cfg.id" value="compiler.cfg.linux.amd64" /> - <property name="linker.cfg.id" value="linker.cfg.linux.amd64" /> + <property name="compiler.cfg.id" value="compiler.cfg.linux.amd64" /> + <property name="linker.cfg.id" value="linker.cfg.linux.amd64" /> </target> - <target name="declare.linux.ia64" depends="declare.x11"> - <property name="java.includes.dir.platform" value="${java.includes.dir.linux}" /> - <property name="java.lib.dir.platform" value="${java.lib.dir.linux.ia64}" /> + <target name="declare.linux.ia64" if="isLinuxIA64"> + <echo message="Linux.IA64" /> + <property name="java.includes.dir.platform" value="${java.includes.dir.linux}" /> + <property name="java.lib.dir.platform" value="${java.lib.dir.linux.ia64}" /> - <property name="compiler.cfg.id" value="compiler.cfg.linux" /> - <property name="linker.cfg.id" value="linker.cfg.linux" /> + <property name="compiler.cfg.id" value="compiler.cfg.linux" /> + <property name="linker.cfg.id" value="linker.cfg.linux" /> </target> - <target name="declare.freebsd" depends="declare.x11"> - <property name="java.includes.dir.platform" value="${java.includes.dir.freebsd}" /> - <property name="java.lib.dir.platform" value="${java.lib.dir.linux}" /> - - <property name="compiler.cfg.id" value="compiler.cfg.freebsd" /> - <property name="linker.cfg.id" value="linker.cfg.linux" /> - </target> + <target name="declare.linux" depends="declare.linux.x86,declare.linux.amd64,declare.linux.ia64,declare.x11" if="isLinux" /> - <target name="declare.solaris" depends="declare.x11"> - <property name="java.includes.dir.platform" value="${java.includes.dir.solaris}" /> - <property name="java.lib.dir.platform" value="${java.lib.dir.solaris}" /> + <target name="declare.solaris" depends="declare.x11" if="isSolaris"> + <echo message="Solaris" /> + <property name="java.includes.dir.platform" value="${java.includes.dir.solaris}" /> + <property name="java.lib.dir.platform" value="${java.lib.dir.solaris}" /> - <property name="compiler.cfg.id" value="compiler.cfg.solaris" /> - <property name="linker.cfg.id" value="linker.cfg.solaris" /> + <property name="compiler.cfg.id" value="compiler.cfg.solaris" /> + <property name="linker.cfg.id" value="linker.cfg.solaris" /> </target> + <target name="declare.macosx" if="isOSX"> + <echo message="MacOSX" /> + <!-- Set platform configuration files. --> + <property name="gl.cfg" value="${config}/gl-macosx.cfg" /> + <property name="glext.platform.cfg" value="${config}/cglext.cfg" /> + <property name="glu.cfg" value="${config}/glu-macosx.cfg" /> + <property name="jawt.cfg" value="${config}/jawt-macosx.cfg" /> + <property name="window.cfg" value="${config}/cgl-macosx.cfg" /> + + <!-- Set platform headers. --> + <property name="glext.platform.header" value="${stub.includes.dir}/macosx/cglext.c" /> + + <!-- Set platform directories. --> + <property name="stub.includes.platform" value="${stub.includes}/macosx" /> + <property name="java.includes.dir.platform" value="${java.includes.dir.macosx}" /> + <property name="java.lib.dir.platform" value="${java.lib.dir.macosx}" /> + <property name="java.excludes.platform" value="${java.excludes.macosx}" /> + <property name="stub.includes.fileset.platform.params" value="${stub.includes.dir}/macosx/** ${stub.includes.dir}/common/** ${stub.includes.dir}/opengl/**" /> + + <!-- Set Javadoc properties. --> + <property name="javadoc.dev.packagenames.platform" value="${javadoc.dev.packagenames.macosx}" /> + + <property name="compiler.cfg.id" value="compiler.cfg.macosx" /> + <property name="linker.cfg.id" value="linker.cfg.macosx" /> + </target> - <target name="declare.macosx" depends="init"> - <!-- Set platform configuration files. --> - <property name="gl.cfg" value="${config}/gl-macosx.cfg" /> - <property name="glext.platform.cfg" value="${config}/cglext.cfg" /> - <property name="glu.cfg" value="${config}/glu-macosx.cfg" /> - <property name="jawt.cfg" value="${config}/jawt-macosx.cfg" /> - <property name="window.cfg" value="${config}/cgl-macosx.cfg" /> - - <!-- Set platform headers. --> - <property name="glext.platform.header" value="${stub.includes.dir}/macosx/cglext.c" /> - - <!-- Set platform directories. --> - <property name="stub.includes.platform" value="${stub.includes}/macosx" /> - <property name="java.includes.dir.platform" value="${java.includes.dir.macosx}" /> - <property name="java.lib.dir.platform" value="${java.lib.dir.macosx}" /> - <property name="java.excludes.platform" value="${java.excludes.macosx}" /> - <property name="stub.includes.fileset.platform.params" value="${stub.includes.dir}/macosx/** ${stub.includes.dir}/common/** ${stub.includes.dir}/opengl/**" /> + <target name="declare.freebsd" depends="declare.x11" if="isFreeBSD"> + <echo message="FreeBSD" /> + <property name="java.includes.dir.platform" value="${java.includes.dir.freebsd}" /> + <property name="java.lib.dir.platform" value="${java.lib.dir.linux}" /> - <!-- Set Javadoc properties. --> - <property name="javadoc.dev.packagenames.platform" value="${javadoc.dev.packagenames.macosx}" /> - - <property name="compiler.cfg.id" value="compiler.cfg.macosx" /> - <property name="linker.cfg.id" value="linker.cfg.macosx" /> + <property name="compiler.cfg.id" value="compiler.cfg.freebsd" /> + <property name="linker.cfg.id" value="linker.cfg.linux" /> </target> - - + <!-- ================================================================== --> <!-- - Initialize all parameters required for the build and create any - required directories. --> - <target name="init" depends="declare"> + <target name="init" depends="declare.common"> <!-- Call the external config validator script to make sure the config is ok and consistent --> <ant antfile="${validate.user.properties}" inheritall="true"/> @@ -401,6 +507,8 @@ <mkdir dir="${obj.cg}" /> </target> + <target name="declare" depends="init,declare.win32,declare.linux,declare.solaris,declare.macosx,declare.freebsd" /> + <!-- ================================================================== --> <!-- GlueGen and BuildStaticGLInfo creation, task setup and Java file generation --> <!-- @@ -679,20 +787,20 @@ <compilerarg value="/Ob1"/> <!-- inline only functions marked inline --> <compilerarg value="/GF"/> <!-- enable string pooling --> <compilerarg value="/Gy"/> <!-- enable function level linking --> - <compilerarg value="/GS" if="c.compiler.use-msvc7"/> <!-- buffer security checks --> - <compilerarg value="/Wp64" if="c.compiler.use-msvc7"/> <!-- detect 64-bit port problems --> - <compilerarg value="/RTCcsu" if="c.compiler.use-msvc7"/> <!-- various runtime checks --> + <compilerarg value="/GS" if="isVC7"/> <!-- buffer security checks --> + <compilerarg value="/Wp64" if="isVC7"/> <!-- detect 64-bit port problems --> + <compilerarg value="/RTCcsu" if="isVC7"/> <!-- various runtime checks --> <!-- Note: previous compiler options for VC7 were: Debug: /MDd /Yd /GS /RTCs /RTCu /RTCc /W3 /Od /GF /EHsc /Zi /GS /Gy /Wp64 /Zi /D "_DEBUG" Optimized: /MD /W3 /O2 /Ob1 /GF /EHsc /GS /Gy /Wp64 /D "NDEBUG" --> - <compilerarg value="/GS" if="c.compiler.use-msvc8"/> <!-- buffer security checks --> - <compilerarg value="/Wp64" if="c.compiler.use-msvc8"/> <!-- detect 64-bit port problems --> - <compilerarg value="/RTCcsu" if="c.compiler.use-msvc8"/> <!-- various runtime checks --> + <compilerarg value="/GS" if="isVC8"/> <!-- buffer security checks --> + <compilerarg value="/Wp64" if="isVC8"/> <!-- detect 64-bit port problems --> + <compilerarg value="/RTCcsu" if="isVC8"/> <!-- various runtime checks --> <defineset> - <define name="_DEBUG" if="c.compiler.use-debug"/> - <define name="DEBUG" if="c.compiler.use-debug"/> - <define name="NDEBUG" unless="c.compiler.use-debug"/> + <define name="_DEBUG" if="c.compiler.use-debug"/> + <define name="DEBUG" if="c.compiler.use-debug"/> + <define name="NDEBUG" unless="c.compiler.use-debug"/> </defineset> </compiler> @@ -739,7 +847,7 @@ <linkerarg value="/SUBSYSTEM:WINDOWS" /> <!-- output is not a console app as uses WinMain entry point --> <linkerarg value="/MACHINE:IX86" /> <!-- explicity set target platform --> - <syslibset libs="opengl32, glu32, gdi32, user32, kernel32"/> + <syslibset libs="opengl32, glu32, gdi32, user32, kernel32" /> <syslibset dir="${windows.cg.lib}" libs="cg, cgGL" if="c.compiler.use-cglib"/> </linker> @@ -759,7 +867,7 @@ <patternset id="c.src.files.jogl"> <include name="${rootrel.src.c.jogl}/InternalBufferUtils.c"/> - <include name="${rootrel.src.c.jogl}/*.m" if="os.isMacOSX"/> + <include name="${rootrel.src.c.jogl}/*.m" if="isOSX"/> <include name="${rootrel.generated.c.jogl}/*GL*.c"/> </patternset> @@ -821,7 +929,7 @@ </cc> </target> - <target name="c.rename.jogl.libs.mingw"> + <target name="c.rename.jogl.libs.mingw" if="isMingw"> <!-- FIXME: this is a hack; the cpptask should have an option to change the suffix or at least understand the override from .so to .dll --> <move file="${obj}/libjogl.so" tofile="${obj}/jogl.dll" /> @@ -829,12 +937,12 @@ <move file="${obj}/libjogl_cg.so" tofile="${obj}/jogl_cg.dll" failonerror="false" /> </target> - <target name="c.rename.jogl.libs.macosx" if="os.isMacOSX"> + <target name="c.rename.jogl.libs.macosx" if="isOSX"> <!-- FIXME: this is a hack; the cpptask should have an option to change the suffix or at least understand the override from dylib to jnilib --> <move file="${obj}/libjogl.dylib" tofile="${obj}/libjogl.jnilib" /> <move file="${obj}/libjogl_awt.dylib" tofile="${obj}/libjogl_awt.jnilib" /> - <move file="${obj}/libjogl_cg.dylib" tofile="${obj}/libjogl_cg.jnilib" /> + <move file="${obj}/libjogl_cg.dylib" tofile="${obj}/libjogl_cg.jnilib" failonerror="false" /> </target> <target name="c.build.jogl.core"> @@ -850,9 +958,10 @@ <param name="c.compiler.use-jawt" value="true"/> <param name="output.lib.name" value="jogl_awt"/> </antcall> + <antcall target="c.manifest" inheritRefs="true" /> </target> - <target name="c.build.cg" if="jogl.cg"> + <target name="c.build.jogl.cg" if="jogl.cg"> <antcall target="c.build" inheritRefs="true"> <param name="c.compiler.src.files" value="c.src.files.cg"/> <param name="c.compiler.use-cglib" value="true"/> @@ -860,7 +969,7 @@ </antcall> </target> - <target name="c.manifest"> + <target name="c.manifest" if="isVC8"> <!-- exec mt, the Microsoft Manifest Tool, to include DLL manifests in order to resolve the location of msvcr80.dll --> <exec executable="mt"> <arg value="-manifest"/> @@ -874,38 +983,10 @@ </exec> </target> - <target name="c.compile.jogl.win32.vc6" depends="declare.win32.vc6, c.build.jogl.core, c.build.jogl.awt, c.build.cg" > - </target> - - <target name="c.compile.jogl.win32.vc7" depends="declare.win32.vc7, c.build.jogl.core, c.build.jogl.awt, c.build.cg"> - <property name="c.compiler.use-msvc7" value="true"/> - </target> - - <target name="c.compile.jogl.win32.vc8" depends="declare.win32.vc8, c.build.jogl.core, c.build.jogl.awt, c.build.cg, c.manifest"> - <property name="c.compiler.use-msvc8" value="true"/> - </target> - - <target name="c.compile.jogl.win32.mingw" depends="declare.win32.mingw, c.build.jogl.core, c.build.jogl.awt, c.build.cg"> - <antcall target="c.rename.jogl.libs.mingw" inheritrefs="true" /> - </target> - - <target name="c.compile.jogl.linux" depends="declare.linux, c.build.jogl.core, c.build.jogl.awt, c.build.cg" > - </target> - - <target name="c.compile.jogl.linux.amd64" depends="declare.linux.amd64, c.build.jogl.core, c.build.jogl.awt, c.build.cg" > - </target> - - <target name="c.compile.jogl.linux.ia64" depends="declare.linux.ia64, c.build.jogl.core, c.build.jogl.awt, c.build.cg" > - </target> - - <target name="c.compile.jogl.solaris" depends="declare.solaris, c.build.jogl.core, c.build.jogl.awt"> - </target> - - <target name="c.compile.jogl.macosx" depends="declare.macosx, c.build.jogl.core, c.build.jogl.awt, c.build.cg"> - <antcall target="c.rename.jogl.libs.macosx" inheritrefs="true" /> - </target> - - <target name="c.compile.jogl.freebsd" depends="declare.freebsd, c.build.jogl.core, c.build.jogl.awt, c.build.cg" > + <target name="c.build.jogl" depends="c.build.jogl.core,c.build.jogl.awt,c.build.jogl.cg"> + <antcall target="c.rename.jogl.libs.mingw" inheritRefs="true" /> + <antcall target="c.rename.jogl.libs.macosx" inheritRefs="true" /> + <antcall target="c.manifest" inheritRefs="true" /> </target> <!-- ================================================================== --> @@ -1158,7 +1239,7 @@ <!-- - Clean up all that is built. --> - <target name="clean" depends="declare"> + <target name="clean" depends="declare.common"> <!-- Let GlueGen clean itself up. --> <ant antfile="${gluegen.build.xml}" target="clean" inheritAll="true" /> @@ -1173,126 +1254,100 @@ <!-- ================================================================== --> <!-- - - Inform the user that one of the platform targets should be used. + - Build everything. --> - <target name="all"> - <fail> + <target name="all" depends="setup.java.home.dir,init,declare"> + <!-- Generate, compile, and build the jar for the Java sources. --> + <antcall target="jar" inheritRefs="true" /> -Use a platform specific target: linux, linux.amd64, linux.ia64, macosx, macosxfat (ppc and i386), solaris, win32.vc6, win32.vc7, win32.vc8, win32.mingw - </fail> - </target> + <!-- Compile the native C sources . --> + <antcall target="c.build.jogl" inheritRefs="true" /> + </target> + + <!-- ================================================================== --> + <!-- + - Platform-specific targets intended both for backward compatibility as well + - as to allow the end user to not have to override the C compiler in jogl.properties + - (FIXME: should rethink the presence of all of these targets once the + - nightly builds have been updated to not use them) + --> <!-- - Win32 with MS VC6 --> - <target name="win32.vc6" depends="setup.java.home.dir, declare.win32"> - <!-- Generate, compile, and build the jar for the Java sources. --> - <antcall target="jar" inheritRefs="true" /> - - <!-- Compile the native C sources and build the jogl.dll. --> - <antcall target="c.compile.jogl.win32.vc6" /> + <target name="win32.vc6"> + <property name="win32.c.compiler" value="vc6" /> + <antcall target="all" /> </target> <!-- - Win32 with MS VC7 --> - <target name="win32.vc7" depends="setup.java.home.dir, declare.win32"> - <!-- Generate, compile, and build the jar for the Java sources. --> - <antcall target="jar" inheritRefs="true" /> - - <!-- Compile the native C sources and build the jogl.dll. --> - <antcall target="c.compile.jogl.win32.vc7" /> + <target name="win32.vc7"> + <property name="win32.c.compiler" value="vc7" /> + <antcall target="all" /> </target> <!-- - Win32 with MS VC8 --> - <target name="win32.vc8" depends="setup.java.home.dir, declare.win32"> - <!-- Generate, compile, and build the jar for the Java sources. --> - <antcall target="jar" inheritRefs="true" /> - - <!-- Compile the native C sources and build the jogl.dll. --> - <antcall target="c.compile.jogl.win32.vc8" /> + <target name="win32.vc8"> + <property name="win32.c.compiler" value="vc8" /> + <antcall target="all" /> </target> <!-- - Win32 with mingw32 --> - <target name="win32.mingw" depends="setup.java.home.dir, declare.win32"> - <!-- Generate, compile, and build the jar for the Java sources. --> - <antcall target="jar" inheritRefs="true" /> - - <!-- Compile the native C sources and build the jogl.dll. --> - <antcall target="c.compile.jogl.win32.mingw" /> + <target name="win32.mingw"> + <property name="win32.c.compiler" value="mingw" /> + <antcall target="all" /> </target> <!-- - Linux (assuming GCC) --> - <target name="linux" depends="declare.linux"> - <!-- Generate, compile, and build the jar for the Java sources. --> - <antcall target="jar" inheritRefs="true" /> - - <!-- Compile the native C sources and build the jogl lib. --> - <antcall target="c.compile.jogl.linux" /> + <target name="linux"> + <antcall target="all" /> </target> <!-- - Linux on AMD64 (assuming GCC) --> - <target name="linux.amd64" depends="setup.java.home.dir.nonmacosx, declare.linux.amd64"> - <!-- Generate, compile, and build the jar for the Java sources. --> - <antcall target="jar" inheritRefs="true" /> - - <!-- Compile the native C sources and build the jogl lib. --> - <antcall target="c.compile.jogl.linux.amd64" /> + <target name="linux.amd64"> + <antcall target="all" /> </target> <!-- - Linux on IA64 (assuming GCC) --> - <target name="linux.ia64" depends="setup.java.home.dir.nonmacosx, declare.linux.ia64"> - <!-- Generate, compile, and build the jar for the Java sources. --> - <antcall target="jar" inheritRefs="true" /> - - <!-- Compile the native C sources and build the jogl lib. --> - <antcall target="c.compile.jogl.linux.ia64" /> + <target name="linux.ia64"> + <antcall target="all" /> </target> <!-- - Solaris (assuming Solaris CC) --> - <target name="solaris" depends="setup.java.home.dir, declare.solaris"> - <!-- Generate, compile, and build the jar for the Java sources. --> - <antcall target="jar" inheritRefs="true" /> - - <!-- Compile the native C sources and build the jogl lib. --> - <antcall target="c.compile.jogl.solaris" /> + <target name="solaris"> + <antcall target="all" /> </target> <!-- - Mac OSX --> - <target name="macosx" depends="setup.java.home.dir, declare.macosx"> - <!-- Generate, compile, and build the jar for the Java sources. --> - <antcall target="jar" inheritRefs="true" /> - - <!-- Compile the native C sources and build the jogl lib. --> - <antcall target="c.compile.jogl.macosx" /> + <target name="macosx"> + <antcall target="all" /> </target> + <!-- FIXME: should specify this in the property file as well --> <target name="macosxfat" depends="macosx"> - <property name="macosxfat" value="true" /> - <antcall target="macosx" inheritRefs="true" /> + <property name="macosxfat" value="true" /> + <antcall target="all" /> </target> <!-- - FreeBSD (assuming GCC) --> - <target name="freebsd" depends="declare.freebsd"> - <!-- Generate, compile, and build the jar for the Java sources. --> - <antcall target="jar" inheritRefs="true" /> - - <!-- Compile the native C sources and build the jogl lib. --> - <antcall target="c.compile.jogl.freebsd" /> + <target name="freebsd"> + <antcall target="all" /> </target> </project> diff --git a/make/jogl.properties b/make/jogl.properties index b5e14d47a..104d40092 100644 --- a/make/jogl.properties +++ b/make/jogl.properties @@ -24,12 +24,16 @@ # Solaris # antlr.jar=/export/kbr/ANTLR/antlr-2.7.2/antlr.jar -# -# Force the use of jikes in +E (emacs) mode -# NOTE: this is optional -# -#build.compiler=jikes -#build.compiler.emacs=true +# If you are building on Windows and have the Microsoft Visual C++ +# compilers installed, you can choose an alternate compiler with which +# to build the JOGL native code. Valid strings here are "vc6", "vc7", +# "vc8", and "mingw". +win32.c.compiler=vc6 + +# If you are building on a Mac OS X system supporting +# cross-compilation and want to generate fat (PPC and x86) binaries, +# uncomment the property below +# macosxfat=true # # If you are building the Cg binding (by specifying -Djogl.cg=1 to the |