Talk:WCET Analysis
From JopWiki
[edit] Notes on lp_solve + JDK 6 (64-bit) on MAC OS X
A good starting point is [1], but some adaptions are neccessary for getting it to work with the 64-bit JDK. Please be careful when carrying out the install actions.
Both files (liblpsolve55.dylib and liblpsolve55j.jnilib) are available as universal i386/x86_64 libraries in the JOP repository.
1. In lpsolve55, modify the build script to build a universal 32-bit / 64-bit dynamic library
$ cd lp_solve_5.5/lpsolve55 $ cp ccc.osx ccc.osx64 $ patch ccc.osx64 3c3 < c=cc --- > c="cc -arch i386 -arch x86_64" $
Running sh ccc.osx64 we obtain the 64-bit version of lpsolve:
$ file bin/osx64/liblpsolve55.dylib bin/osx64/liblpsolve55.dylib: Mach-O universal binary with 2 architectures bin/osx64/liblpsolve55.dylib (for architecture i386): Mach-O dynamically linked shared library i386 bin/osx64/liblpsolve55.dylib (for architecture x86_64): Mach-O 64-bit dynamically linked shared library x86_64
and install it
sudo cp -i bin/osx64/liblpsolve55.* /usr/local/lib/.
Note that if you also have the macport installed, it is important to have /usr/local/lib before /opt/local/lib in your DYLD_FALLBACK_LIBRARY_PATH :
$ echo $DYLD_FALLBACK_LIBRARY_PATH /usr/local/lib:/opt/local/lib:/usr/lib
2. Now for the java bindings, we also need to modify the build process
$ cd lp_solve_5.5_java/lib $ mkdir mac64 && cd mac64 $ cat >build.sh CFLAGS="-fPIC -fno-common -arch i386 -arch x86_64" LDFLAGS="-L/usr/local/lib -arch i386 -arch x86_64" INCL="-I /System/Library/Frameworks/JavaVM.framework/Versions/Current/Headers -I /opt/local/include/lpsolve -I ../../src/c -idirafter /usr/include/sys" g++ $CFLAGS $INCL -c ../../src/c/lpsolve5j.cpp g++ $LDFLAGS -dynamiclib lpsolve5j.o -compatibility_version 5.5.0 -current_version 5.5.0 -o liblpsolve55j.jnilib -lc -llpsolve55 $ sh build.sh
We can install it into e.g. '/usr/lib/java':
$ sudo cp -i liblpsolve55j.jnilib /usr/lib/java
