Building ODEJava Mac natives

Testing here… I'll post results soon.

OK… Not yet… Here is the complete output:


Ericks-Mac:~ erickpassos$ ./odebuild
^Ccvs [checkout aborted]: received interrupt signal
cvs checkout failed!
Ericks-Mac:~ erickpassos$ export DEV_SDK
Ericks-Mac:~ erickpassos$ ./odebuild
patching file include/ode/common.h
patching file include/ode/objects.h
patching file include/ode/odecpp.h
patching file ode/src/error.cpp
patching file ode/src/joint.cpp
patching file ode/src/joint.h
patching file ode/src/timer.cpp
Please make sure that you use automake 1.8.2 or later
Warnings about underquoted definitions are harmless
Running aclocal
/sw/share/aclocal/pkg.m4:5: warning: underquoted definition of PKG_CHECK_MODULES
  run info '(automake)Extending aclocal'
  or see http://sources.redhat.com/automake/automake.html#Extending-aclocal
Running autoheader
Running automake
configure.in: installing `./install-sh'
configure.in: installing `./missing'
drawstuff/dstest/Makefile.am: installing `./depcomp'
ode/src/Makefile.am: installing `./compile'
configure.in:6: installing `./config.guess'
configure.in:6: installing `./config.sub'
Running autoconf
Now you are ready to run ./configure
Configuration:
  Target system type:      i686-apple-darwin8.10.1
  Build  system type:      i686-apple-darwin8.10.1
  Host   system type:      i686-apple-darwin8.10.1
  Use double precision:    no
  Use OPCODE:              yes
  Use gyroscopic term:     yes
  Is this a Pentium:       no
  Is the CPU x86-64:       no
  Is this a release build: no
  Is this a debug build:   no
  Using SONAME:           no
  Headers will be installed in /usr/local/include/ode
  Libraries will be installed in /usr/local/lib
Making all in include
Making all in ode
Making all in drawstuff
Making all in src
osx.cpp: In function 'OSStatus osxKeyEventHandler(OpaqueEventHandlerCallRef*, OpaqueEventRef*, void*)':
osx.cpp:186: warning: 'UppercaseText' is deprecated (declared at /Developer/SDKs/MacOSX10.4u.sdk//System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/TextUtils.h:310)
osx.cpp:186: warning: 'UppercaseText' is deprecated (declared at /Developer/SDKs/MacOSX10.4u.sdk//System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/TextUtils.h:310)
osx.cpp: In function 'void osxCreateMainWindow(int, int)':
osx.cpp:387: warning: 'GetMainDevice' is deprecated (declared at /Developer/SDKs/MacOSX10.4u.sdk//System/Library/Frameworks/ApplicationServices.framework/Frameworks/QD.framework/Headers/Quickdraw.h:4873)
osx.cpp:387: warning: 'GetMainDevice' is deprecated (declared at /Developer/SDKs/MacOSX10.4u.sdk//System/Library/Frameworks/ApplicationServices.framework/Frameworks/QD.framework/Headers/Quickdraw.h:4873)
Making all in dstest
Making all in ode
Making all in src
ranlib: for architecture: ppc file: libOPCODE.a(libOPCODE_a-OPC_Common.o) has no symbols
ranlib: for architecture: ppc file: libOPCODE.a(libOPCODE_a-OPC_Picking.o) has no symbols
ranlib: for architecture: i386 file: libOPCODE.a(libOPCODE_a-OPC_Common.o) has no symbols
ranlib: for architecture: i386 file: libOPCODE.a(libOPCODE_a-OPC_Picking.o) has no symbols
ranlib: for architecture: ppc file: libode.a(libOPCODE_a-OPC_Common.o) has no symbols
ranlib: for architecture: ppc file: libode.a(libOPCODE_a-OPC_Picking.o) has no symbols
ranlib: for architecture: i386 file: libode.a(libOPCODE_a-OPC_Common.o) has no symbols
ranlib: for architecture: i386 file: libode.a(libOPCODE_a-OPC_Picking.o) has no symbols
Making all in test
test_basket.cpp: In function 'void simLoop(int)':
test_basket.cpp:183: error: '__isnanf' was not declared in this scopetest_basket.cpp: In function 'void simLoop(int)':
test_basket.cpp:183: error: '__isnanf' was not declared in this scope

lipo: can't figure out the architecture type of: /var/tmp//ccfTZV5r.out
make[2]: *** [test_basket.o] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all-recursive] Error 1
opende make failed!

–without-tests does not seem to work in that revision of ODE - please go on regardless (uncomment the 'exit' in the 'make' line as only the ODE tests do not compile)

(this will be fixed as soon as we can switch to the current ODE version)

OK… Worked… Tested the new binary in my game and worked…



Here’s the link for it:

www.infoway-pi.com.br/erick/libodejava.jnilib



Thanks Irrisor, I wish I had done it for you long ago, but I’ve been quite busy. BTW: Funny script… Why deleting everything after the job is done? This is really dumb proof.

Glad it worked :slight_smile: - thanks!

oh, wait, it worked in your game without using the new odejava-jni 0.3.1 jar… this means the wrong version was checked out :’( dammit

I’ll post back, soon…

OK, I'll wait for the new script… Do you want me to test it against CVS version of JMEPhysics?

ok, I think I've got it: the problem was the branch in cvs. Please try again, the branch is merged now.


perick said:

OK, I'll wait for the new script... Do you want me to test it against CVS version of JMEPhysics?

yes, that'd be good

I found a problem with the JMEPhysics CVS code… (STILL TESTING WITH THE BINARY I COMPILED SOONER)



In org.odejava.collision.JavaCollision.java:


Odejava.createContactJoints( worldId, contactGroupId );



I says that this method doesn't have any parameters anymore (is it in the new odejava-jni.jar?)... Removing the parameters I could compile JMEPhysics... But ot the runtime error sayng that the correspondant method in ODE needs two parameters (from the libodejava.jnilib I compiled sooner?)

What is the correct?

The two parameters are correct (new). The odejava-jni.jar in jmephysic's impl/ode/lib folder should contain them (as well as odejava-jni cvs).

Humm… The version I get from CVS has it with no parameters… Checked and rechecked… Evend deleted tha jar file and forcet an update from CVS… I'll look in odejava cvs so.

Didn't find the .jar for download in odejava-jni cvs… I'll check here later to see if you have updated anything in JMPhysics CVS or so. If everything is ok there, I'll try to checkout a fresh JMEPhysics project from scratch…

sigh, the jar in jME Physics CVS was in deed wrong (I was testing one in a different folder o_O). It's updated now.

OK,



I

JMEPhysics still no compiling.



now it's here (org.odejava.GeomTriMesh.java):


Ode.dGeomTriMeshDataSet( data, OdeConstants.TRIMESH_LAST_TRANSFORMATION, lastTransform_pointer );



This contant does not exist.

it doesn't compile under win32 too. it was working a week ago.



too bad, i wanted to play again with the ragdoll :slight_smile:



By the way when I stress the ragdoll test ( = hit space like a madman) I end up with a native crash (stack overflow)



Edit : under eclipse on win32 it doesnt fully compile but ragdoll test works,  and in this version there is a clean java.lang.StackOverflowError , no more jvm crash.

ah well, that happens when you rely on your IDE - after a 'clean' I got this error, too. Fixed temporarily.

simon56 said:

and in this version there is a clean java.lang.StackOverflowError , no more jvm crash.

yes, that's what I tried to achieve, but it does not work in all cases - sometimes the stack overflow in ODE is 'unrecoverable' on windows :|

Ok, I have updated the script in the first post and the ODE configure script was fixed. It should build without tests now (and using GIMPACT).

Back to testing…



I've uploaded the script and I'm gettig this:



patching file ode/src/collision_trimesh_gimpact.cpp
Hunk #1 FAILED at 156.
Hunk #2 FAILED at 257.
2 out of 2 hunks FAILED -- saving rejects to file ode/src/collision_trimesh_gimpact.cpp.rej
applying patch failed!



Any ideas?