Login  Register

JogAmp project cleanup

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