JogAmp project cleanup

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

JogAmp project cleanup

dante4d
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
Reply | Threaded
Open this post in threaded view
|

Re: JogAmp project cleanup

Michael Bien
please refer to the wiki pages on http://jogamp.org/wiki there is a section for each project with links to the repositories.

we are basically online since yesterday. Please be patient, the move is not complete yet.

(btw i believe i accidentally removed your last post (I got a NullPointerException as i tried to move the post)... sorry about that).

to answer a subset of your questions:

dante4d wrote
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?
gluegen is an independent project and should build out of the box if you have ANT 1.8 + JDK 6 + gluegen.properties on the right place.
If gluegen works you can try jogl and the other projects since all depend on gluegen (and jocl depends on jogl).

Just make sure you have all projects in the same folder and the dependencies are resolved automatically.

hope that helps,

best regards,
michael