Posted by
dante4d on
May 07, 2010; 7:06pm
URL: https://forum.jogamp.org/JogAmp-project-cleanup-tp784438.html
Hello,
I'm trying to build latest jogl from the git repository. I was somewhat successful but I have some problems with the documentation. It's confusing me, because there are the old project pages and some old docs in the repository.
There is still the
http://jogl.dev.java.net/ project page, which redirects you to
http://kenai.com/projects/jogl/pages/Home. Both of those seem outdated. The righ place for jogl shall be
http://jogamp.org/ from now on. Have you considered removing the old pages or putting some text there (that they are no updated and people should visit the new page)?
In the
jogl/doc directory, there are files
TODO.txt and
jsr-231-changelog-1.1.0.html that refer to the old page. I'm not able to tell if those files are outdated or not (without further investigation of the repo). File
jogl/doc/userguide/index.html has the same problem. In the
jogl/make, the situation seems to be similar. I might be missing something, that's possible.
When I was building the jars, I followed this guide
http://download.java.net/media/jogl/doc/HowToBuild.html. It seems to be the best one I was able to find. however it's from 2003 and updated in 2006. That makes me feel like it's outdated. Some of the steps there didn't work for me:
4. Unset your CLASSPATH environment variable - Doesn't seem to be relevant in my build environment.
5. Copy and edit gluegen.properties - I didn't have to do that.
6. Copy and edit jogl.properties - I didn't have to do that.
I used this
PKGBUILD script (I'm building using
Arch Build System) to build jogl:
# Maintainer: David Hajek <dante4d at gmail dot com>
# see http://wiki.archlinux.org/index.php/Java_Package_Guidelines
pkgname=jogl-git
pkgver=20100506
pkgrel=1
pkgdesc="A Java binding for OpenGL, GIT version"
arch=('any')
url="http://github.com/sgothel"
license=('BSD')
depends=('jdk>=1.4.2')
makedepends=('antlr' 'apache-ant>=1.6')
provides=('jogl')
conflicts=('jogl')
_gitroot="git://github.com/sgothel/jogl.git"
_gitname="jogl"
build() {
cd "$srcdir"
msg "Connecting to GIT server...."
git clone git://github.com/sgothel/jogl.git
git clone git://github.com/sgothel/gluegen.git
msg "GIT checkout done or server timeout"
msg "Starting make..."
#unset CLASSPATH
#cp "$srcdir/gluegen/make/gluegen.properties" "$HOME"
cd "$srcdir/jogl/make"
ant -Dgluegen.user.properties.file="$srcdir/gluegen/make/gluegen.properties" -lib /usr/share/java/junit.jar
# rm -rf "$srcdir/$_gitname-build"
# git clone "$srcdir/$_gitname" "$srcdir/$_gitname-build"
# cd "$srcdir/$_gitname-build"
#
#
#
#
# _src="$srcdir/animation-$pkgver"
# _pkg="$pkgdir/usr/share/java"
# install -m 644 -D "$_src/LICENSE.txt" "$pkgdir/usr/share/licenses/$pkgname/COPYING"
# mkdir -p "$_pkg"
# mv "$_src" "$_pkg/$pkgname"
}
# vim:set ts=2 sw=2 et:As you can see, I used -D option to pass path of properties file of gluegen to ant. It just works, I'm not very adept in using ant yet, so I don't know really why I need that. The build failed while building the junit.compile target:
junit.compile:
[javac] Compiling 24 source files to /var/abs/local/jogl-git/src/jogl/build/test/build/classes
[javac] /var/abs/local/jogl-git/src/jogl/src/junit/com/jogamp/test/junit/jogl/acore/TestGLProfile01CORE.java:36: package org.junit does not exist
[javac] import org.junit.Assert;
[javac] ^
[javac] /var/abs/local/jogl-git/src/jogl/src/junit/com/jogamp/test/junit/jogl/acore/TestGLProfile01CORE.java:37: package org.junit does not exist
[javac] import org.junit.Before;
[javac] ^
[javac] /var/abs/local/jogl-git/src/jogl/src/junit/com/jogamp/test/junit/jogl/acore/TestGLProfile01CORE.java:38: package org.junit does not exist
[javac] import org.junit.BeforeClass;
[javac] ^
[javac] /var/abs/local/jogl-git/src/jogl/src/junit/com/jogamp/test/junit/jogl/acore/TestGLProfile01CORE.java:39: package org.junit does not exist
[javac] import org.junit.AfterClass;
[javac] ^
[javac] /var/abs/local/jogl-git/src/jogl/src/junit/com/jogamp/test/junit/jogl/acore/TestGLProfile01CORE.java:40: package org.junit does not exist
[javac] import org.junit.Test;
[javac] ^
BUILD FAILED
/var/abs/local/jogl-git/src/jogl/make/build.xml:159: The following error occurred while executing this line:
/var/abs/local/jogl-git/src/jogl/make/build-junit.xml:63: Compile failed; see the compiler error output for details.
I was not able to satisfy the junit dependency, so instead I removed the junit.compile dependency from target all in
build.xml (it's possible there is some ant option for that, but I haven't found it yet). Then I was able to build the jars without errors.
Now that the jars are build, looking into the build directory, there are dozens of jar libraries and some so libraries. I have no clue where should I put them (install) and which ones are needed (if all of them, if just some of them). There are also some zip files, and the one named
jogl-2.0-pre-20100507-linux-i586.zip seems to contain the correct libraries one should put into the
/usr directories directory when installing the package. I'm following this guide
http://wiki.archlinux.org/index.php/Java_Package_Guidelines while making Java packages for Arch Linux. The structure inside the zip file should be different, but I can handle that easily after doing the build and put the results into correct directories before making the final tarball of the package.
I have also concern with the gluegen package that has to be (probably) placed next to the jogl package when building jogl. I don't like that, but I don't know if that can be changed easily. It would be nice to have gluegen as completely standalone and separate package and have it as a make dependency of jogl. Built inside it's own environment and package.
So the bottom line is:
- Where are the current and correct build instructions for jogl (the
INSTALL file for example)? Are they yet to be written?
- Could the gluegen library be moved into it's own package, or better, can I build it alone and then just use it somehow to create the glue code when building jogl?
I'd like to have those things sorted out first, before I start some more serious business with new jogl version.
Cheers,
David