aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSven Gothel <[email protected]>2010-12-13 12:28:06 +0100
committerSven Gothel <[email protected]>2010-12-13 12:28:06 +0100
commit70b648f9c8fa9c9cb302b9bbb06820a3cf23d71f (patch)
treece9f711cce66a93d9562402107e5d11b247445d4
parent57ef6b5648cc3f95a490477627c5a350251a09bf (diff)
Window Support added ; Win64 libs & license files
- plays on linux/window now - ant build files fixed -> Windows support - windows OpenAL 32/64 bit: see make/lib/FILES.txt make/lib/oalinst-license.txt) - linux libs: added .1 to suffix - added Debug impl - catch EAX init exception (ie unsatisfied link error) - EAX proper blocked init TODO: - check on osx - joal-demos
-rwxr-xr-xmake/142-packages/package-list135
-rw-r--r--make/build-test.xml8
-rwxr-xr-xmake/build.xml326
-rw-r--r--make/lib/FILES.txt9
-rw-r--r--make/lib/linux-amd64/libopenal.so.1 (renamed from make/lib/linux-amd64/libopenal.so)bin212312 -> 212312 bytes
-rwxr-xr-xmake/lib/linux-i586/libopenal.so.1 (renamed from make/lib/linux-i586/libopenal.so)bin758109 -> 758109 bytes
-rwxr-xr-xmake/lib/oalinst-license.txt24
-rwxr-xr-xmake/lib/windows-amd64/OpenAL32.dllbin0 -> 122904 bytes
-rwxr-xr-xmake/lib/windows-amd64/wrap_oal.dllbin0 -> 466456 bytes
-rwxr-xr-xmake/lib/windows-i586/OpenAL32.dllbin73728 -> 109080 bytes
-rwxr-xr-xmake/lib/windows-i586/wrap_oal.dllbin409600 -> 444952 bytes
-rwxr-xr-xmake/scripts/make.jogl.all.win32.bat12
-rwxr-xr-xmake/scripts/make.jogl.all.win64.bat12
-rw-r--r--src/java/com/jogamp/openal/ALFactory.java11
-rw-r--r--src/java/com/jogamp/openal/eax/EAXFactory.java23
-rw-r--r--src/java/com/jogamp/openal/impl/Debug.java149
-rw-r--r--src/test/com/jogamp/openal/test/manual/OpenALTest.java10
17 files changed, 335 insertions, 384 deletions
diff --git a/make/142-packages/package-list b/make/142-packages/package-list
deleted file mode 100755
index fecd4d4..0000000
--- a/make/142-packages/package-list
+++ /dev/null
@@ -1,135 +0,0 @@
-java.applet
-java.awt
-java.awt.color
-java.awt.datatransfer
-java.awt.dnd
-java.awt.event
-java.awt.font
-java.awt.geom
-java.awt.im
-java.awt.im.spi
-java.awt.image
-java.awt.image.renderable
-java.awt.print
-java.beans
-java.beans.beancontext
-java.io
-java.lang
-java.lang.ref
-java.lang.reflect
-java.math
-java.net
-java.nio
-java.nio.channels
-java.nio.channels.spi
-java.nio.charset
-java.nio.charset.spi
-java.rmi
-java.rmi.activation
-java.rmi.dgc
-java.rmi.registry
-java.rmi.server
-java.security
-java.security.acl
-java.security.cert
-java.security.interfaces
-java.security.spec
-java.sql
-java.text
-java.util
-java.util.jar
-java.util.logging
-java.util.prefs
-java.util.regex
-java.util.zip
-javax.accessibility
-javax.crypto
-javax.crypto.interfaces
-javax.crypto.spec
-javax.imageio
-javax.imageio.event
-javax.imageio.metadata
-javax.imageio.plugins.jpeg
-javax.imageio.spi
-javax.imageio.stream
-javax.naming
-javax.naming.directory
-javax.naming.event
-javax.naming.ldap
-javax.naming.spi
-javax.net
-javax.net.ssl
-javax.print
-javax.print.attribute
-javax.print.attribute.standard
-javax.print.event
-javax.rmi
-javax.rmi.CORBA
-javax.security.auth
-javax.security.auth.callback
-javax.security.auth.kerberos
-javax.security.auth.login
-javax.security.auth.spi
-javax.security.auth.x500
-javax.security.cert
-javax.sound.midi
-javax.sound.midi.spi
-javax.sound.sampled
-javax.sound.sampled.spi
-javax.sql
-javax.swing
-javax.swing.border
-javax.swing.colorchooser
-javax.swing.event
-javax.swing.filechooser
-javax.swing.plaf
-javax.swing.plaf.basic
-javax.swing.plaf.metal
-javax.swing.plaf.multi
-javax.swing.table
-javax.swing.text
-javax.swing.text.html
-javax.swing.text.html.parser
-javax.swing.text.rtf
-javax.swing.tree
-javax.swing.undo
-javax.transaction
-javax.transaction.xa
-javax.xml.parsers
-javax.xml.transform
-javax.xml.transform.dom
-javax.xml.transform.sax
-javax.xml.transform.stream
-org.ietf.jgss
-org.omg.CORBA
-org.omg.CORBA.DynAnyPackage
-org.omg.CORBA.ORBPackage
-org.omg.CORBA.TypeCodePackage
-org.omg.CORBA.portable
-org.omg.CORBA_2_3
-org.omg.CORBA_2_3.portable
-org.omg.CosNaming
-org.omg.CosNaming.NamingContextExtPackage
-org.omg.CosNaming.NamingContextPackage
-org.omg.Dynamic
-org.omg.DynamicAny
-org.omg.DynamicAny.DynAnyFactoryPackage
-org.omg.DynamicAny.DynAnyPackage
-org.omg.IOP
-org.omg.IOP.CodecFactoryPackage
-org.omg.IOP.CodecPackage
-org.omg.Messaging
-org.omg.PortableInterceptor
-org.omg.PortableInterceptor.ORBInitInfoPackage
-org.omg.PortableServer
-org.omg.PortableServer.CurrentPackage
-org.omg.PortableServer.POAManagerPackage
-org.omg.PortableServer.POAPackage
-org.omg.PortableServer.ServantLocatorPackage
-org.omg.PortableServer.portable
-org.omg.SendingContext
-org.omg.stub.java.rmi
-org.w3c.dom
-org.xml.sax
-org.xml.sax.ext
-org.xml.sax.helpers
diff --git a/make/build-test.xml b/make/build-test.xml
index cf47fbf..889b910 100644
--- a/make/build-test.xml
+++ b/make/build-test.xml
@@ -59,15 +59,15 @@
<property name="java.dir.junit" value="${java.dir.test}/junit"/>
<property name="java.dir.manual" value="${java.dir.test}/manual"/>
- <property name="obj.all.paths" value="${gluegen.root}/build/obj${path.separator}${obj}"/>
- <property name="classpath.test" value="${gluegen.root}/build/gluegen-rt.jar${path.separator}${build}/joal.jar${path.separator}${build}/joal-test.jar${path.separator}${junit.path}"/>
+ <property name="obj.all.paths" value="${gluegen.build}/obj${path.separator}${obj}${path.separator}lib/${os.and.arch}"/>
+ <property name="classpath.test" value="${gluegen-rt.jar}${path.separator}${build}/joal.jar${path.separator}${build}/joal-test.jar${path.separator}${junit.path}"/>
<property name="batchtest.timeout" value="1800000"/> <!-- 30 min -->
</target>
<target name="test.compile" depends="test.init">
<javac debug="true" srcdir="${src.test}" destdir="${classes}" includeantruntime="false"
- classpath="${gluegen.root}/build/gluegen-rt.jar;../build/joal.jar;${junit.path}"/>
+ classpath="${gluegen-rt.jar};../build/joal.jar;${junit.path}"/>
<copy todir="${classes}">
<fileset dir="${src.test}" includes="**/*.wav"/>
</copy>
@@ -93,6 +93,7 @@
<jvmarg value="-Djogamp.debug.NativeLibrary=true"/>
<jvmarg value="-Djogamp.debug.NativeLibrary.Lookup=true"/>
<jvmarg value="-Djogamp.debug.ProcAddressHelper=true"/> -->
+ <jvmarg value="-Djoal.debug.Factory"/>
<batchtest todir="${results.test}">
<fileset dir="${classes}">
<include name="${java.dir.junit}/**/*Test*"/>
@@ -139,6 +140,7 @@
<arg line="-Djogamp.debug.NativeLibrary=true"/>
<arg line="-Djogamp.debug.NativeLibrary.Lookup=true"/>
<arg line="-Djogamp.debug.ProcAddressHelper=true"/> -->
+ <arg line="-Djoal.debug.Factory"/>
<srcfile/>
<mappedresources>
<fileset dir="${classes}" includes="${test.class.path}"/>
diff --git a/make/build.xml b/make/build.xml
index 54bed16..ec0ca0d 100755
--- a/make/build.xml
+++ b/make/build.xml
@@ -39,7 +39,9 @@
<property name="joal.version" value="${joal_base_version}-${version.timestamp}" />
<property name="project.root" value=".." />
- <property name="gluegen.root" value="${project.root}/../gluegen" />
+
+ <property name="gluegen.root" value="${project.root}/../gluegen" />
+ <property name="gluegen.build" value="${gluegen.root}/${rootrel.build}" />
<condition property="rootrel.build" value="build">
<not>
@@ -65,39 +67,17 @@
<property name="user.properties.file" value="${user.home}/joal.properties" />
<property file="${user.properties.file}" />
<echo message="Loaded ${user.properties.file}. (optionally)" />
- </target>
-
- <!-- ================================================================== -->
- <!--
- - Base initialization and detection of operating system.
- -->
- <target name="base.init" depends="load.user.properties,gluegen.properties.load.user,gluegen.cpptasks.detect.os">
-
- <!-- Set the project root directory to be up one directory. -->
- <property name="project.root" value=".." />
-
- <!-- Set the configuration and build files to this directory. -->
- <property name="make" value="." />
- </target>
- <!-- ================================================================== -->
- <!--
- - Set up java.home.dir appropriately on all platforms.
- -->
- <target name="setup.java.home.dir.nonmacosx" depends="base.init" 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}/.." />
+ <property file="${user.home}/gluegen.properties" />
+ <echo message="Loaded ${user.home}/gluegen.properties." />
</target>
- <target name="setup.java.home.dir.macosx" depends="base.init" 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"/>
<!-- ================================================================== -->
<!--
- Declare all paths and user defined variables.
-->
- <target name="declare.common" description="Declare properties" depends="setup.java.home.dir, gluegen.cpptasks.detect.compiler">
+ <target name="init" depends="gluegen.cpptasks.detect.os">
+
<!-- The location and name of the configuration ANT file that will
- validate to ensure that all user-define variables are set. -->
<property name="validate.user.properties" value="${make}/validate-properties.xml" />
@@ -107,8 +87,8 @@
<!-- sibling of the JOAL workspace. -->
<property name="gluegen.make.dir" value="${gluegen.root}/make" />
<property name="gluegen.build.xml" value="${gluegen.make.dir}/build.xml" />
- <property name="gluegen.jar" value="${gluegen.root}/${rootrel.build}/gluegen.jar" />
- <property name="gluegen-rt.jar" value="${gluegen.root}/${rootrel.build}/gluegen-rt.jar" />
+ <property name="gluegen.jar" value="${gluegen.build}/gluegen.jar" />
+ <property name="gluegen-rt.jar" value="${gluegen.build}/gluegen-rt.jar" />
<!-- Create the classpath that includes GlueGen and
- ANTLR. This requires the user-defined "antlr.jar"
@@ -165,14 +145,6 @@
<include name="*.c" />
</fileset>
- <property name="java.includes.dir" value="${java.home.dir}/include" /> <!-- NOTE: this MUST be relative for FileSet -->
- <property name="java.includes.dir.win32" value="${java.includes.dir}/win32" />
- <property name="java.includes.dir.linux" value="${java.includes.dir}/linux" />
- <property name="java.includes.dir.solaris" value="${java.includes.dir}/solaris" />
- <property name="java.includes.dir.macosx" value="/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Headers" />
- <property name="java.includes.dir.freebsd" value="${java.includes.dir}/freebsd" />
- <property name="java.includes.dir.hpux" value="${java.includes.dir}/hp-ux" />
-
<!-- The resulting joal.jar. -->
<property name="joal.jar" value="${build}/joal.jar" />
@@ -186,121 +158,6 @@
<property name="joal.constants.cfg" value="${config}/joal-constants.cfg" />
<property name="joal.alc.cfg" value="${config}/joal-alc.cfg" />
<property name="joal.alc.constants.cfg" value="${config}/joal-alc-constants.cfg" />
- </target>
-
- <!-- ================================================================== -->
- <!--
- - Platform specific declares.
- -->
- <target name="c.configure.win.mingw32" if="isMingW32">
- <echo message="Win.Ming32W" />
- <property name="java.includes.dir.platform" value="${java.includes.dir.win32}" />
-
- <property name="compiler.cfg.id" value="compiler.cfg.win32.mingw" />
- <property name="linker.cfg.id" value="linker.cfg.win32.mingw" />
- </target>
-
- <target name="c.configure.win.mingw64" if="isMingW64">
- <echo message="Win.Ming64W" />
- <property name="java.includes.dir.platform" value="${java.includes.dir.win64}" />
-
- <property name="compiler.cfg.id" value="compiler.cfg.win64.mingw" />
- <property name="linker.cfg.id" value="linker.cfg.win64.mingw" />
- </target>
-
- <target name="declare.win32" depends="c.configure.win.mingw32,c.configure.win.mingw64" if="isWindows"/>
-
- <target name="declare.linux.x86" if="isLinux" unless="isLinuxAMD64">
- <echo message="Linux.x86" />
- <property name="java.includes.dir.platform" value="${java.includes.dir.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" if="isLinuxAMD64">
- <echo message="Linux.AMD64" />
- <property name="java.includes.dir.platform" value="${java.includes.dir.linux}" />
-
- <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" if="isLinuxIA64">
- <echo message="Linux.IA64" />
- <property name="java.includes.dir.platform" value="${java.includes.dir.linux}" />
-
- <property name="compiler.cfg.id" value="compiler.cfg.linux" />
- <property name="linker.cfg.id" value="linker.cfg.linux" />
- </target>
-
- <target name="declare.linux" depends="declare.linux.x86,declare.linux.amd64,declare.linux.ia64" if="isLinux" />
-
- <target name="declare.solaris32" if="isSolaris32Bit">
- <echo message="Solaris" />
- <property name="java.includes.dir.platform" value="${java.includes.dir.solaris}" />
-
- <property name="compiler.cfg.id" value="compiler.cfg.solaris" />
- <property name="linker.cfg.id" value="linker.cfg.solaris" />
- </target>
-
- <target name="declare.solaris.sparcv9" if="isSolarisSparcv9">
- <echo message="SolarisSparcv9" />
- <property name="java.includes.dir.platform" value="${java.includes.dir.solaris}" />
-
- <property name="compiler.cfg.id" value="compiler.cfg.solaris.sparcv9" />
- <property name="linker.cfg.id" value="linker.cfg.solaris.sparcv9" />
- </target>
-
-
- <target name="declare.solaris.amd64" if="isSolarisAMD64">
- <echo message="SolarisAMD64" />
- <property name="java.includes.dir.platform" value="${java.includes.dir.solaris}" />
-
- <property name="compiler.cfg.id" value="compiler.cfg.solaris.amd64" />
- <property name="linker.cfg.id.core" value="linker.cfg.solaris.amd64" />
- </target>
-
- <target name="declare.macosx.ppc" if="isOSXPPC">
- <echo message="MacOSX PPC" />
- </target>
-
- <target name="declare.macosx.universal" if="isOSXUniversal">
- <echo message="MacOSX Universal" />
- </target>
-
- <target name="declare.macosx" if="isOSX" depends="declare.macosx.ppc,declare.macosx.universal">
- <echo message="MacOSX" />
- <property name="java.includes.dir.platform" value="${java.includes.dir.macosx}" />
-
- <property name="compiler.cfg.id" value="compiler.cfg.macosx" />
- <property name="linker.cfg.id" value="linker.cfg.macosx" />
- </target>
-
- <target name="declare.freebsd" if="isFreeBSD">
- <echo message="FreeBSD" />
- <property name="java.includes.dir.platform" value="${java.includes.dir.freebsd}" />
-
- <property name="compiler.cfg.id" value="compiler.cfg.freebsd" />
- <property name="linker.cfg.id" value="linker.cfg.linux" />
- </target>
-
- <target name="declare.hpux" if="isHPUX">
- <echo message="HP-UX" />
- <property name="java.includes.dir.platform" value="${java.includes.dir.hpux}" />
-
- <property name="compiler.cfg.id" value="compiler.cfg.hpux" />
- <property name="linker.cfg.id" value="linker.cfg.hpux" />
- </target>
-
- <!-- ================================================================== -->
- <!--
- - Initialize all parameters required for the build and create any
- - required directories.
- -->
- <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"/>
<!-- Create the required output directories. -->
<mkdir dir="${src.generated.java}" />
@@ -313,8 +170,6 @@
<property name="archive" value="${build}/${archive.name}" />
</target>
- <target name="declare" depends="init,declare.win32,declare.linux,declare.solaris32,declare.macosx,declare.freebsd" />
-
<!-- ================================================================== -->
<!-- GlueGen and BuildStaticGLInfo creation, task setup and Java file generation -->
<!--
@@ -425,79 +280,84 @@
- Compile the native C code for JOAL.
-->
- <target name="c.configure" depends="gluegen.cpptasks.configure.compiler">
- <!-- linker configuration -->
-
- <patternset id="c.src.files.joal">
- <include name="${rootrel.src.c}/*.c"/>
- <include name="${rootrel.generated.c.joal}/*.c"/>
- </patternset>
-
- </target>
-
- <target name="c.build" depends="c.configure">
- <fail message="Requires '${c.compiler.src.files}'" unless="c.compiler.src.files"/>
- <fail message="Requires '${compiler.cfg.id}'" unless="compiler.cfg.id"/>
- <fail message="Requires '${linker.cfg.id}'" unless="linker.cfg.id"/>
- <fail message="Requires '${output.lib.name}'" unless="output.lib.name"/>
-
- <echo message="Output lib name = ${output.lib.name}" />
-
- <!-- NOTE: the value of the debug and optimise attributes will not be overridden if already set externally -->
- <property name="c.compiler.debug" value="false" />
- <!-- Optimise flags one of { none, size, speed, minimal, full, aggressive, extreme, unsafe } -->
- <property name="c.compiler.optimise" value="none" />
-
- <condition property="c.compiler.use-debug"><istrue value="${c.compiler.debug}"/></condition>
-
- <cc outtype="shared"
- objdir="${obj.joal}"
- outfile="${obj}/${output.lib.name}"
- optimize="${c.compiler.optimise}"
- debug="${c.compiler.debug}"
- multithreaded="true"
- exceptions="false"
- rtti="false">
-
- <!-- TODO: versioninfo companyname="java.net"
- legalcopyright="Copyright"
- productname="JOAL"
- productversion="x.y.z"
- description="Description"
- fileversion="x.y.z"
- filecomments="File Comment" /-->
-
- <fileset dir="${project.root}"><patternset refid="${c.compiler.src.files}"/></fileset>
-
- <compiler extends="${compiler.cfg.id}" >
- <sysincludepath path="${java.includes.dir}"/>
- <sysincludepath path="${java.includes.dir.platform}"/>
- <includepath path="stub_includes/openal"/>
- </compiler>
-
- <linker extends="${linker.cfg.id}" />
- </cc>
- </target>
-
- <target name="c.rename.joal.lib.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}/libjoal.so" tofile="${obj}/joal.dll" failonerror="false" />
- </target>
-
- <target name="c.rename.joal.lib.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}/libjoal.dylib" tofile="${obj}/libjoal.jnilib" />
- </target>
+ <target name="rename.mingw.dll" if="isMingW">
+ <move file="${src}" tofile="${dest}" />
+ </target>
+
+ <target name="rename.dylib" if="isOSX">
+ <move file="${src}" tofile="${dest}" />
+ </target>
+
+ <macrodef name="c.build">
+ <attribute name="compiler.cfg.id" />
+ <attribute name="linker.cfg.id" />
+ <attribute name="output.lib.name" />
+ <attribute name="c.compiler.use-jawt" default="false"/>
+ <sequential>
+ <echo message="Output lib name = @{output.lib.name}" />
+
+ <echo message="compiler.cfg.id.base: @{compiler.cfg.id}"/>
+ <echo message="linker.cfg.id.base: @{linker.cfg.id}"/>
+
+ <!-- NOTE: the value of the debug and optimise attributes will not be overridden if already set externally -->
+ <property name="c.compiler.debug" value="false" />
+ <!-- Optimise flags one of { none, size, speed, minimal, full, aggressive, extreme, unsafe } -->
+ <property name="c.compiler.optimise" value="none" />
+
+ <condition property="c.compiler.use-debug"><istrue value="${c.compiler.debug}"/></condition>
+
+ <patternset id="c.src.files">
+ <include name="${rootrel.src.c}/*.c"/>
+ <include name="${rootrel.generated.c.joal}/*.c"/>
+ </patternset>
+
+ <echo message="Compiling @{output.lib.name}" />
+
+ <cc outtype="shared"
+ objdir="${obj}"
+ outfile="${obj}/@{output.lib.name}"
+ optimize="${c.compiler.optimise}"
+ debug="${c.compiler.debug}"
+ multithreaded="true"
+ exceptions="false"
+ rtti="false">
+
+ <fileset dir="${project.root}"><patternset refid="c.src.files"/></fileset>
+
+ <compiler extends="@{compiler.cfg.id}" >
+ <sysincludepath path="${java.includes.dir}"/>
+ <sysincludepath path="${java.includes.dir.platform}"/>
+ <includepath path="stub_includes/openal"/>
+ <!-- This is for the generated headers for handwritten C code -->
+ <includepath path="${src.generated.c}" />
+ <includepath path="${src.c}"/>
+
+ <!-- This must come last to not override real include paths -->
+ <!-- includepath path="stub_includes/macosx" if="isOSX" / -->
+ </compiler>
+
+ <linker extends="@{linker.cfg.id}" />
+ </cc>
+
+ <antcall target="rename.dylib" inheritRefs="true">
+ <param name="src" value="${obj}/lib@{output.lib.name}.dylib" />
+ <param name="dest" value="${obj}/lib@{output.lib.name}.jnilib" />
+ </antcall>
+
+ <antcall target="rename.mingw.dll" inheritRefs="true">
+ <param name="src" value="${obj}/lib@{output.lib.name}.so" />
+ <param name="dest" value="${obj}/@{output.lib.name}.dll" />
+ </antcall>
+ </sequential>
+ </macrodef>
+
+ <target name="c.build.joal" depends="init, gluegen.cpptasks.detect.os, gluegen.cpptasks.setup.compiler">
+ <echo message="compiler.cfg.id.base: ${compiler.cfg.id.base}"/>
+ <echo message="linker.cfg.id.base: ${linker.cfg.id.base}"/>
+ <c.build compiler.cfg.id="${compiler.cfg.id.base}"
+ output.lib.name="joal"
+ linker.cfg.id="${linker.cfg.id.base}"/>
- <target name="c.build.joal">
- <antcall target="c.build" inheritRefs="true">
- <param name="c.compiler.src.files" value="c.src.files.joal"/>
- <param name="output.lib.name" value="joal"/>
- </antcall>
- <antcall target="c.rename.joal.lib.mingw" inheritRefs="true" />
- <antcall target="c.rename.joal.lib.macosx" inheritRefs="true" />
<!-- Create Java Web Start jar file from built file -->
<jar destfile="${build}/joal-natives-${os.and.arch}.jar">
<fileset dir="../${rootrel.build}/obj">
@@ -593,10 +453,10 @@
<!-- if gluegen-javadoc.path is not set, check in default location,
${gluegen.root}/${rootrel.build}/javadoc/gluegen -->
- <available file="${gluegen.root}/${rootrel.build}/javadoc/gluegen/javadoc/package-list"
+ <available file="${gluegen.build}/javadoc/gluegen/javadoc/package-list"
type="file"
property="gluegen-javadoc.path"
- value="${gluegen.root}/${rootrel.build}/javadoc/gluegen" />
+ value="${gluegen.build}/javadoc/gluegen" />
<antcall target="javadoc.gluegen" inheritRefs="true" />
</target>
@@ -606,7 +466,7 @@
includes="joal/**" />
</target>
- <target name="javadoc.public" depends="setup.java.home.dir,init">
+ <target name="javadoc.public" depends="javadoc.init">
<javadoc packagenames="${javadoc.packagenames}"
sourcepath="${src.java};${src.generated.java}"
destdir="${javadoc.joal.public.path}" windowtitle="JOAL API"
@@ -617,7 +477,7 @@
</javadoc>
</target>
- <target name="javadoc.dev" depends="init">
+ <target name="javadoc.dev" depends="javadoc.init">
<!-- Build the internal developer Javadoc -->
<javadoc packagenames="${javadoc.dev.packagenames},${javadoc.dev.packagenames.platform}"
sourcepath="${src.java};${src.generated.java}"
@@ -665,7 +525,7 @@
<!--
- Clean up all that is built.
-->
- <target name="clean" depends="declare.common">
+ <target name="clean" depends="init">
<delete includeEmptyDirs="true" quiet="true">
<fileset dir="${build}" />
<fileset dir="${javadoc}" />
@@ -680,7 +540,7 @@
-->
<target name="all" depends="joal.compile, test.compile, tag.build, developer-zip-archive"/>
- <target name="joal.compile" depends="init, declare">
+ <target name="joal.compile" depends="init">
<!-- Generate, compile, and build the jar for the Java sources. -->
<antcall target="jar" inheritRefs="true" />
@@ -689,7 +549,7 @@
</target>
<target name="tag.build">
- <copy file="${gluegen.root}/${rootrel.build}/artifact.properties" todir="${build}" overwrite="true"/>
+ <copy file="${gluegen.build}/artifact.properties" todir="${build}" overwrite="true"/>
<echo message='joal.build.number=${joal.build.number}${line.separator}' file="${build}/artifact.properties" append="true"/>
<echo message='joal.build.id=${joal.build.id}${line.separator}' file="${build}/artifact.properties" append="true"/>
<echo message='joal.build.branch=${joal.build.branch}${line.separator}' file="${build}/artifact.properties" append="true"/>
diff --git a/make/lib/FILES.txt b/make/lib/FILES.txt
new file mode 100644
index 0000000..1b8d9c0
--- /dev/null
+++ b/make/lib/FILES.txt
@@ -0,0 +1,9 @@
+
+Windows x32 and x64:
+ oalinst:
+ http://connect.creativelabs.com/openal/Downloads/oalinst.zip
+ LICENSE: oalinst-license.txt
+
+ Summer 2009 : Version 2.0.7.0
+ * OpenAL32.dll version 6.14.357.24
+ * wrap_oal.dll version 2.2.0.5
diff --git a/make/lib/linux-amd64/libopenal.so b/make/lib/linux-amd64/libopenal.so.1
index 4ed39f2..4ed39f2 100644
--- a/make/lib/linux-amd64/libopenal.so
+++ b/make/lib/linux-amd64/libopenal.so.1
Binary files differ
diff --git a/make/lib/linux-i586/libopenal.so b/make/lib/linux-i586/libopenal.so.1
index ebcaee5..ebcaee5 100755
--- a/make/lib/linux-i586/libopenal.so
+++ b/make/lib/linux-i586/libopenal.so.1
Binary files differ
diff --git a/make/lib/oalinst-license.txt b/make/lib/oalinst-license.txt
new file mode 100755
index 0000000..8c95a86
--- /dev/null
+++ b/make/lib/oalinst-license.txt
@@ -0,0 +1,24 @@
+Creative Labs, Inc. is providing you with this OpenAL32.dll installer and other OpenAL files ("Software").
+You may use and freely integrate with your software applications and distribute such throughout the world at no cost or further obligation to Creative.
+
+NO WARRANTY
+ ANY USE BY YOU OF THE SOFTWARE IS AT YOUR OWN RISK.
+ THE SOFTWARE IS PROVIDED FOR USE "AS IS" WITHOUT WARRANTY OF ANY KIND.
+ TO THE MAXIMUM EXTENT PERMITTED BY LAW, CREATIVE DISCLAIMS ALL WARRANTIES OF ANY KIND,
+ EITHER EXPRESS OR IMPLIED, INCLUDING, WITHOUT LIMITATION, IMPLIED WARRANTIES OR CONDITIONS
+ OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
+ CREATIVE IS NOT OBLIGATED TO PROVIDE ANY UPDATES OR UPGRADES TO THE SOFTWARE.
+
+ No other entity or person is authorized to expand or alter this warranty or any other provisions herein.
+ Creative does not warrant that the functions contained in the Software will meet your requirements
+ or that the operation of the Software will be uninterrupted or error-free or free from malicious code.
+ For purposes of this paragraph, "malicious code" means any program code designed to contaminate other computer programs or computer data,
+ consume computer resources, modify, destroy, record, or transmit data, or in some other fashion usurp the normal operation of the computer,
+ computer system, or computer network, including viruses, Trojan horses, droppers, worms, logic bombs, and the like.
+
+ You assume full responsibility for the selection of the Software to achieve your intended results,
+ and for the downloading, use and results obtained from the Software.
+ You also assume the entire risk as it applies to the quality and performance of the Software.
+
+ IN NO EVENT WILL CREATIVE'S LIABILITY TO YOU OR ANY OTHER PERSON EVER EXCEED THE AMOUNT PAID BY YOU TO USE THE SOFTWARE,
+ REGARDLESS OF THE FORM OF THE CLAIM.
diff --git a/make/lib/windows-amd64/OpenAL32.dll b/make/lib/windows-amd64/OpenAL32.dll
new file mode 100755
index 0000000..259177a
--- /dev/null
+++ b/make/lib/windows-amd64/OpenAL32.dll
Binary files differ
diff --git a/make/lib/windows-amd64/wrap_oal.dll b/make/lib/windows-amd64/wrap_oal.dll
new file mode 100755
index 0000000..2713dae
--- /dev/null
+++ b/make/lib/windows-amd64/wrap_oal.dll
Binary files differ
diff --git a/make/lib/windows-i586/OpenAL32.dll b/make/lib/windows-i586/OpenAL32.dll
index a2e77f2..d0ee3cc 100755
--- a/make/lib/windows-i586/OpenAL32.dll
+++ b/make/lib/windows-i586/OpenAL32.dll
Binary files differ
diff --git a/make/lib/windows-i586/wrap_oal.dll b/make/lib/windows-i586/wrap_oal.dll
index 22697eb..91e90fc 100755
--- a/make/lib/windows-i586/wrap_oal.dll
+++ b/make/lib/windows-i586/wrap_oal.dll
Binary files differ
diff --git a/make/scripts/make.jogl.all.win32.bat b/make/scripts/make.jogl.all.win32.bat
new file mode 100755
index 0000000..e404460
--- /dev/null
+++ b/make/scripts/make.jogl.all.win32.bat
@@ -0,0 +1,12 @@
+set J2RE_HOME=c:\jre1.6.0_22_x32
+set JAVA_HOME=c:\jdk1.6.0_22_x32
+set ANT_PATH=C:\apache-ant-1.8.0
+
+set PATH=%JAVA_HOME%\bin;%ANT_PATH%\bin;c:\mingw\bin;%PATH%
+
+set LIB_GEN=%THISDIR%\lib
+set CLASSPATH=.;%THISDIR%\build-win32\classes
+REM -Dc.compiler.debug=true
+REM -Dbuild.noarchives=true
+
+ant -Dbuild.noarchives=true -Drootrel.build=build-win32 %1 %2 %3 %4 %5 %6 %7 %8 %9 > make.joal.all.win32.log 2>&1
diff --git a/make/scripts/make.jogl.all.win64.bat b/make/scripts/make.jogl.all.win64.bat
new file mode 100755
index 0000000..0890b44
--- /dev/null
+++ b/make/scripts/make.jogl.all.win64.bat
@@ -0,0 +1,12 @@
+set J2RE_HOME=c:\jre1.6.0_22_x64
+set JAVA_HOME=c:\jdk1.6.0_22_x64
+set ANT_PATH=C:\apache-ant-1.8.0
+
+set PATH=%JAVA_HOME%\bin;%ANT_PATH%\bin;c:\mingw64\bin;c:\mingw\bin;%PATH%
+
+set LIB_GEN=%THISDIR%\lib
+set CLASSPATH=.;%THISDIR%\build-win64\classes
+REM -Dc.compiler.debug=true
+REM -Dbuild.noarchives=true
+
+ant -Dc.compiler.debug=true -Dbuild.noarchives=true -Drootrel.build=build-win64 %1 %2 %3 %4 %5 %6 %7 %8 %9 > make.joal.all.win64.log 2>&1
diff --git a/src/java/com/jogamp/openal/ALFactory.java b/src/java/com/jogamp/openal/ALFactory.java
index 64da325..e7ec774 100644
--- a/src/java/com/jogamp/openal/ALFactory.java
+++ b/src/java/com/jogamp/openal/ALFactory.java
@@ -44,6 +44,8 @@ import com.jogamp.openal.impl.*;
* @author Kenneth Russell
*/
public class ALFactory {
+ public static final boolean DEBUG = Debug.debug("Factory");
+
private static boolean initialized = false;
private static AL al;
private static ALC alc;
@@ -54,9 +56,12 @@ public class ALFactory {
try {
if (!initialized) {
if(null == ALImpl.getALProcAddressTable()) {
- throw new RuntimeException("AL not initialized (ProcAddressTable null)");
+ throw new ALException("AL not initialized (ProcAddressTable null)");
}
initialized = true;
+ if(DEBUG) {
+ System.err.println("AL initialized");
+ }
}
} catch (UnsatisfiedLinkError e) {
throw new ALException(e);
@@ -72,7 +77,7 @@ public class ALFactory {
public static AL getAL() throws ALException {
initialize();
if (al == null) {
- al = new ALImpl();
+ al = new ALImpl();
}
return al;
}
@@ -86,7 +91,7 @@ public class ALFactory {
public static ALC getALC() throws ALException{
initialize();
if (alc == null) {
- alc = new ALCImpl();
+ alc = new ALCImpl();
}
return alc;
}
diff --git a/src/java/com/jogamp/openal/eax/EAXFactory.java b/src/java/com/jogamp/openal/eax/EAXFactory.java
index 0e305a5..01d336c 100644
--- a/src/java/com/jogamp/openal/eax/EAXFactory.java
+++ b/src/java/com/jogamp/openal/eax/EAXFactory.java
@@ -39,20 +39,33 @@ import com.jogamp.openal.ALFactory;
*
*/
public final class EAXFactory {
+ public static final boolean DEBUG;
static {
//initializes JOAL
ALFactory.getAL();
+ DEBUG = ALFactory.DEBUG;
}
- private static EAX eax;
+ private static EAX eax = null;
+ private static boolean eaxTried = false;
private static native void init();
- public static EAX getEAX() {
- if (eax == null) {
- init();
- eax = new EAX(EAX.SOURCE, EAX.LISTENER);
+ public static synchronized EAX getEAX() {
+ try {
+ if (!eaxTried) {
+ eaxTried = true;
+ init();
+ eax = new EAX(EAX.SOURCE, EAX.LISTENER);
+ if(DEBUG) {
+ System.err.println("EAX initialized");
+ }
+ }
+ } catch (UnsatisfiedLinkError e) {
+ if(DEBUG) {
+ e.printStackTrace();
+ }
}
return eax;
}
diff --git a/src/java/com/jogamp/openal/impl/Debug.java b/src/java/com/jogamp/openal/impl/Debug.java
new file mode 100644
index 0000000..be57b70
--- /dev/null
+++ b/src/java/com/jogamp/openal/impl/Debug.java
@@ -0,0 +1,149 @@
+/*
+ * Copyright (c) 2003-2005 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
+ * MICROSYSTEMS, 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.
+ *
+ * Sun gratefully acknowledges that this software was originally authored
+ * and developed by Kenneth Bradley Russell and Christopher John Kline.
+ */
+
+package com.jogamp.openal.impl;
+
+import java.security.*;
+
+/** Helper routines for logging and debugging. */
+
+public class Debug {
+ // Some common properties
+ private static boolean verbose;
+ private static boolean debugAll;
+ private static AccessControlContext localACC;
+
+ static {
+ localACC=AccessController.getContext();
+ verbose = isPropertyDefined("joal.verbose", true);
+ debugAll = isPropertyDefined("joal.debug", true);
+ }
+
+ static int getIntProperty(final String property, final boolean jnlpAlias) {
+ return getIntProperty(property, jnlpAlias, localACC, 0);
+ }
+
+ public static int getIntProperty(final String property, final boolean jnlpAlias, final AccessControlContext acc, int defaultValue) {
+ int i=defaultValue;
+ try {
+ String sv = Debug.getProperty(property, jnlpAlias, acc);
+ if(null!=sv) {
+ Integer iv = Integer.valueOf(sv);
+ i = iv.intValue();
+ }
+ } catch (NumberFormatException nfe) {}
+ return i;
+ }
+
+ public static long getLongProperty(final String property, final boolean jnlpAlias, final AccessControlContext acc, long defaultValue) {
+ long l=defaultValue;
+ try {
+ String sv = Debug.getProperty(property, jnlpAlias, acc);
+ if(null!=sv) {
+ Long lv = Long.valueOf(sv);
+ l = lv.longValue();
+ }
+ } catch (NumberFormatException nfe) {}
+ return l;
+ }
+
+ static boolean getBooleanProperty(final String property, final boolean jnlpAlias) {
+ return getBooleanProperty(property, jnlpAlias, localACC);
+ }
+
+ public static boolean getBooleanProperty(final String property, final boolean jnlpAlias, final AccessControlContext acc) {
+ Boolean b = Boolean.valueOf(Debug.getProperty(property, jnlpAlias, acc));
+ return b.booleanValue();
+ }
+
+ static boolean isPropertyDefined(final String property, final boolean jnlpAlias) {
+ return isPropertyDefined(property, jnlpAlias, localACC);
+ }
+
+ public static boolean isPropertyDefined(final String property, final boolean jnlpAlias, final AccessControlContext acc) {
+ return (Debug.getProperty(property, jnlpAlias, acc) != null) ? true : false;
+ }
+
+ static String getProperty(final String property, final boolean jnlpAlias) {
+ return getProperty(property, jnlpAlias, localACC);
+ }
+
+ public static String getProperty(final String property, final boolean jnlpAlias, final AccessControlContext acc) {
+ String s=null;
+ if(null!=acc && acc.equals(localACC)) {
+ s = (String) AccessController.doPrivileged(new PrivilegedAction() {
+ public Object run() {
+ String val=null;
+ try {
+ val = System.getProperty(property);
+ } catch (Exception e) {}
+ if(null==val && jnlpAlias && !property.startsWith(jnlp_prefix)) {
+ try {
+ val = System.getProperty(jnlp_prefix + property);
+ } catch (Exception e) {}
+ }
+ return val;
+ }
+ });
+ } else {
+ try {
+ s = System.getProperty(property);
+ } catch (Exception e) {}
+ if(null==s && jnlpAlias && !property.startsWith(jnlp_prefix)) {
+ try {
+ s = System.getProperty(jnlp_prefix + property);
+ } catch (Exception e) {}
+ }
+ }
+ return s;
+ }
+ public static final String jnlp_prefix = "jnlp." ;
+
+ public static boolean verbose() {
+ return verbose;
+ }
+
+ public static boolean debugAll() {
+ return debugAll;
+ }
+
+ public static boolean debug(String subcomponent) {
+ return debugAll() || isPropertyDefined("joal.debug." + subcomponent, true);
+ }
+}
diff --git a/src/test/com/jogamp/openal/test/manual/OpenALTest.java b/src/test/com/jogamp/openal/test/manual/OpenALTest.java
index abd335c..864a9fd 100644
--- a/src/test/com/jogamp/openal/test/manual/OpenALTest.java
+++ b/src/test/com/jogamp/openal/test/manual/OpenALTest.java
@@ -72,7 +72,8 @@ public class OpenALTest {
boolean eaxPresent = al.alIsExtensionPresent("EAX2.0");
- System.out.println("EAX present:" + eaxPresent);
+ EAX eax = ( eaxPresent ) ? EAXFactory.getEAX() : null;
+ System.err.println("EAX present:" + eaxPresent + ", EAX retrieved: "+ (null != eax));
int[] buffers = new int[1];
al.alGenBuffers(1, buffers, 0);
@@ -86,14 +87,13 @@ public class OpenALTest {
int[] loopArray = new int[1];
al.alGetSourcei(sources[0], AL.AL_LOOPING, loopArray, 0);
- System.out.println("Looping 1: " + (loopArray[0] == AL.AL_TRUE));
+ System.err.println("Looping 1: " + (loopArray[0] == AL.AL_TRUE));
int[] loopBuffer = new int[1];
al.alGetSourcei(sources[0], AL.AL_LOOPING, loopBuffer, 0);
- System.out.println("Looping 2: " + (loopBuffer[0] == AL.AL_TRUE));
+ System.err.println("Looping 2: " + (loopBuffer[0] == AL.AL_TRUE));
- if (eaxPresent) {
- EAX eax = EAXFactory.getEAX();
+ if (eaxPresent && null!=eax) {
IntBuffer env = Buffers.newDirectIntBuffer(1);
env.put(EAX.EAX_ENVIRONMENT_BATHROOM);
eax.setListenerProperty(EAX.DSPROPERTY_EAXLISTENER_ENVIRONMENT, env);