Is there a build target for a "combined"/all platform jar?

I’m looking at making an application that uses JSR-231 available on multiple platforms (32- and 64-bit linux, win32, win64, solaris, PPC mac and intel mac) and have noticed that the current build process creates .jar files with platform specific implementations of various classes (DrawableFactory, for example).

Is there a build target that creates these jars and then “merges” them into a single “uber” jar that has the files necessary for all platforms that were built? This would allow me to distribute a single jar file instead of having to provide multiple files and adjust the classpath to reflect them.

Thanks

more info…
Looking at the jar file contents (comparing file/class names and sizes) from my build the only issue that jumps out is that the com/sun/opengl/impl/JAWTFactory class is 1296 bytes on linux and solaris, but only 878 bytes on windows and mac.

The other differences seem to be isolated in platform-specific directories:
com/sun/opengl/impl/x11
com/sun/opengl/impl/windows
com/sun/opengl/impl/macosx

I’m not sure if there are differences that aren’t reflected in the comparison of the class names and sizes, but if the JAWTFactory class is truly platform specific then this would prevent “combining” the jars into a single deliverable

this is a complex process to get this running up, but it is hopefully possible if you have sufficient knowledge about Ant XML builds. That is, you can use the Java property os.arch to load on that appropriate files in jar and to make various packages.

I don’t use this techniques. Hence I build diferrent jar for each targeted platforms in distinct releases of my apps.

That’s all. :stuck_out_tongue:

In order to build a platform-independent jogl.jar you have to build it on each supported platform, including all OS and 32/64 bit variants. The “dist” target in JOGL’s build.xml assembles the platform-independent jar out of the component jars. This target is designed to not succeed unless all of the native libraries are present for all of the platforms, though in theory you really only need the jar files from a Windows build, a Unix build, and a Mac OS X build. We reference some .h files out of the JDK during the glue code generation process which is why JOGL doesn’t cross-compile. Building a distribution by hand is a painful enough process that I would recommend you just use our automated nightly builds.