From: DRC Date: Fri, 1 Apr 2011 00:20:33 +0000 (+0000) Subject: Build and package TurboJPEG/OSS Java wrapper into JAR file X-Git-Tag: 1.1.90~131 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=f2602ce567dd6d0d33bbb3af9d7393f8a0bcd0e3;p=libjpeg-turbo Build and package TurboJPEG/OSS Java wrapper into JAR file git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/trunk@549 632fc199-4ca6-4c93-a231-07263d6284db --- diff --git a/Makefile.am b/Makefile.am index 0703153..b06da6e 100644 --- a/Makefile.am +++ b/Makefile.am @@ -37,14 +37,16 @@ endif libturbojpeg_la_SOURCES = $(libjpeg_la_SOURCES) turbojpegl.c turbojpeg.h \ transupp.c transupp.h -if WITH_JNI +if WITH_JAVA +SUBDIRS = java libturbojpeg_la_SOURCES += turbojpeg-jni.c libturbojpeg_la_CFLAGS = ${JNI_CFLAGS} TJMAPFILE = turbojpeg-mapfile.jni else +SUBDIRS = TJMAPFILE = turbojpeg-mapfile endif @@ -60,7 +62,7 @@ endif if WITH_SIMD -SUBDIRS = simd +SUBDIRS += simd libjpeg_la_LIBADD = simd/libsimd.la libturbojpeg_la_LIBADD = simd/libsimd.la @@ -132,6 +134,12 @@ dist-hook: test: testclean all +if WITH_JAVA + $(JAVA) -cp java/turbojpeg.jar -Djava.library.path=.libs TJUnitTest + $(JAVA) -cp java/turbojpeg.jar -Djava.library.path=.libs TJUnitTest -bi + $(JAVA) -cp java/turbojpeg.jar -Djava.library.path=.libs TJUnitTest -yuv + $(JAVA) -cp java/turbojpeg.jar -Djava.library.path=.libs TJUnitTest -yuv -bi +endif ./jpegut ./jpegut -yuv ./cjpeg -dct int -outfile testoutint.jpg $(srcdir)/testorig.ppm @@ -182,25 +190,30 @@ endif testclean: rm -f testout* - rm -f *_GRAYQ[0-9]*.bmp - rm -f *_GRAYQ[0-9]*.ppm - rm -f *_GRAYQ[0-9]*.jpg + rm -f *_GRAY_*.bmp + rm -f *_GRAY_*.png + rm -f *_GRAY_*.ppm + rm -f *_GRAY_*.jpg rm -f *_GRAY.yuv - rm -f *_420Q[0-9]*.bmp - rm -f *_420Q[0-9]*.ppm - rm -f *_420Q[0-9]*.jpg + rm -f *_420_*.bmp + rm -f *_420_*.png + rm -f *_420_*.ppm + rm -f *_420_*.jpg rm -f *_420.yuv - rm -f *_422Q[0-9]*.bmp - rm -f *_422Q[0-9]*.ppm - rm -f *_422Q[0-9]*.jpg + rm -f *_422_*.bmp + rm -f *_422_*.png + rm -f *_422_*.ppm + rm -f *_422_*.jpg rm -f *_422.yuv - rm -f *_444Q[0-9]*.bmp - rm -f *_444Q[0-9]*.ppm - rm -f *_444Q[0-9]*.jpg + rm -f *_444_*.bmp + rm -f *_444_*.png + rm -f *_444_*.ppm + rm -f *_444_*.jpg rm -f *_444.yuv - rm -f *_440Q[0-9]*.bmp - rm -f *_440Q[0-9]*.ppm - rm -f *_440Q[0-9]*.jpg + rm -f *_440_*.bmp + rm -f *_440_*.png + rm -f *_440_*.ppm + rm -f *_440_*.jpg rm -f *_440.yuv if X86_64 diff --git a/configure.ac b/configure.ac index c3d6829..6c483e6 100644 --- a/configure.ac +++ b/configure.ac @@ -196,21 +196,37 @@ AM_CONDITIONAL([WITH_ARITH_DEC], [test "x$with_arith_dec" != "xno"]) AM_CONDITIONAL([WITH_ARITH], [test "x$with_arith_dec" != "xno" -o "x$with_arith_enc" != "xno"]) -AC_ARG_VAR(JNI_CFLAGS, [Compiler flags needed to find jni.h (default: -I/System/Library/Frameworks/JavaVM.framework/Headers on OS X, '-I/usr/java/include -I/usr/java/include/solaris' on Solaris, and '-I/usr/java/default/include -I/usr/java/default/include/linux' on Linux)]) +AC_ARG_VAR(JAVAC, [Java compiler command (default: javac)]) +if test "x$JAVAC" = "x"; then + JAVAC=javac +fi +AC_SUBST(JAVAC) +AC_ARG_VAR(JAVACFLAGS, [Java compiler flags]) +AC_SUBST(JAVACFLAGS) +AC_ARG_VAR(JAR, [Java archive command (default: jar)]) +if test "x$JAR" = "x"; then + JAR=jar +fi +AC_SUBST(JAR) +AC_ARG_VAR(JAVA, [Java runtime command (default: java)]) +if test "x$JAVA" = "x"; then + JAVA=java +fi +AC_SUBST(JAVA) +AC_ARG_VAR(JNI_CFLAGS, [C compiler flags needed to include jni.h (default: -I/System/Library/Frameworks/JavaVM.framework/Headers on OS X, '-I/usr/java/include -I/usr/java/include/solaris' on Solaris, and '-I/usr/java/default/include -I/usr/java/default/include/linux' on Linux)]) -AC_MSG_CHECKING([whether to include JNI wrapper in TurboJPEG/OSS]) -AC_ARG_WITH([jni], - AC_HELP_STRING([--with-jni],[Include JNI wrapper in the TurboJPEG/OSS library])) +AC_MSG_CHECKING([whether to build TurboJPEG/OSS Java wrapper]) +AC_ARG_WITH([java], + AC_HELP_STRING([--with-java],[Build Java wrapper for the TurboJPEG/OSS library])) -BUILDJNILIB=0 RPM_CONFIG_ARGS= -if test "x$with_jni" = "xyes"; then +WITH_JAVA=0 +if test "x$with_java" = "xyes"; then AC_MSG_RESULT(yes) case $host_os in darwin*) DEFAULT_JNI_CFLAGS=-I/System/Library/Frameworks/JavaVM.framework/Headers - BUILDJNILIB=1 ;; solaris*) DEFAULT_JNI_CFLAGS='-I/usr/java/include -I/usr/java/include/solaris' @@ -230,12 +246,17 @@ if test "x$with_jni" = "xyes"; then CPPFLAGS=${SAVE_CPPFLAGS} AC_SUBST(JNI_CFLAGS) - RPM_CONFIG_ARGS=--with-jni + RPM_CONFIG_ARGS=--with-java + JAVA_RPM_CONTENTS_1='%dir /opt/%{name}/classes' + JAVA_RPM_CONTENTS_2=/opt/%{name}/classes/turbojpeg.jar + WITH_JAVA=1 else AC_MSG_RESULT(no) fi -AM_CONDITIONAL([WITH_JNI], [test "x$with_jni" = "xyes"]) -AC_SUBST(BUILDJNILIB) +AM_CONDITIONAL([WITH_JAVA], [test "x$with_java" = "xyes"]) +AC_SUBST(WITH_JAVA) +AC_SUBST(JAVA_RPM_CONTENTS_1) +AC_SUBST(JAVA_RPM_CONTENTS_2) AC_SUBST(RPM_CONFIG_ARGS) # SIMD is optional @@ -306,4 +327,7 @@ AC_CONFIG_FILES([pkgscripts/makesunpkg:release/makesunpkg.in]) AC_CONFIG_FILES([pkgscripts/pkginfo:release/pkginfo.in]) AC_CONFIG_FILES([libjpeg.map]) AC_CONFIG_FILES([Makefile simd/Makefile]) +if test "x$with_java" = "xyes"; then + AC_CONFIG_FILES([java/Makefile]) +fi AC_OUTPUT diff --git a/java/MANIFEST.MF b/java/MANIFEST.MF new file mode 100644 index 0000000..723bc51 --- /dev/null +++ b/java/MANIFEST.MF @@ -0,0 +1,2 @@ +Manifest-Version: 1.0 +Main-Class: TJExample diff --git a/java/Makefile.am b/java/Makefile.am new file mode 100644 index 0000000..647c165 --- /dev/null +++ b/java/Makefile.am @@ -0,0 +1,34 @@ +JAVAROOT = . + +dist_noinst_JAVA = org/libjpegturbo/turbojpeg/TJ.java \ + org/libjpegturbo/turbojpeg/TJCompressor.java \ + org/libjpegturbo/turbojpeg/TJDecompressor.java \ + org/libjpegturbo/turbojpeg/TJTransform.java \ + org/libjpegturbo/turbojpeg/TJTransformer.java \ + TJExample.java \ + TJUnitTest.java + +JAVA_CLASSES = org/libjpegturbo/turbojpeg/TJ.class \ + org/libjpegturbo/turbojpeg/TJCompressor.class \ + org/libjpegturbo/turbojpeg/TJDecompressor.class \ + org/libjpegturbo/turbojpeg/TJTransform.class \ + org/libjpegturbo/turbojpeg/TJTransformer.class \ + TJExample.class \ + TJUnitTest.class + +all: all-am turbojpeg.jar + +turbojpeg.jar: $(JAVA_CLASSES) ${srcdir}/MANIFEST.MF + $(JAR) cfm turbojpeg.jar ${srcdir}/MANIFEST.MF $(JAVA_CLASSES) \ + org/libjpegturbo/turbojpeg/TJ\$$ScalingFactor.class + +clean-local: + rm -f turbojpeg.jar + +install-exec-local: turbojpeg.jar + mkdir -p $(DESTDIR)/$(prefix)/classes + $(INSTALL) -m 644 turbojpeg.jar $(DESTDIR)/$(prefix)/classes/ + +uninstall-local: + rm -f $(DESTDIR)/$(prefix)/classes/turbojpeg.jar + if [ -d $(DESTDIR)/$(prefix)/classes ]; then rmdir $(DESTDIR)/$(prefix)/classes; fi diff --git a/release/libjpeg-turbo.spec.in b/release/libjpeg-turbo.spec.in index c21eef8..73afb64 100644 --- a/release/libjpeg-turbo.spec.in +++ b/release/libjpeg-turbo.spec.in @@ -104,5 +104,7 @@ rm -rf $RPM_BUILD_ROOT /opt/%{name}/man/man1/jpegtran.1* /opt/%{name}/man/man1/rdjpgcom.1* /opt/%{name}/man/man1/wrjpgcom.1* +@JAVA_RPM_CONTENTS_1@ +@JAVA_RPM_CONTENTS_2@ %changelog diff --git a/release/makemacpkg.in b/release/makemacpkg.in index a937188..6cd13c3 100644 --- a/release/makemacpkg.in +++ b/release/makemacpkg.in @@ -28,7 +28,7 @@ VERSION=@VERSION@ BUILD=@BUILD@ SRCDIR=@abs_top_srcdir@ BUILDDIR32=@abs_top_srcdir@/osxx86 -BUILDJNILIB=@BUILDJNILIB@ +WITH_JAVA=@WITH_JAVA@ if [ $# -gt 0 ]; then if [ "$1" = "universal" ]; then UNIVERSAL=1 @@ -123,7 +123,7 @@ install_name_tool -id libturbojpeg.dylib $PKGROOT/usr/lib/libturbojpeg.dylib ln -fs /usr/include/turbojpeg.h $PKGROOT/opt/$PACKAGE_NAME/include/ ln -fs /usr/lib/libturbojpeg.a $PKGROOT/opt/$PACKAGE_NAME/lib/ -if [ $BUILDJNILIB = 1 ]; then +if [ $WITH_JAVA = 1 ]; then ln -fs libturbojpeg.dylib $PKGROOT/usr/lib/libturbojpeg.jnilib fi if [ ! -h $PKGROOT/opt/$PACKAGE_NAME/lib32 ]; then diff --git a/release/makesunpkg.in b/release/makesunpkg.in index aa2e735..2745d15 100644 --- a/release/makesunpkg.in +++ b/release/makesunpkg.in @@ -29,6 +29,7 @@ BUILD=@BUILD@ PKGARCH=@DEBARCH@ SRCDIR=@abs_top_srcdir@ BUILDDIR32=@abs_top_srcdir@/solx86 +WITH_JAVA=@WITH_JAVA@ if [ $# -gt 0 ]; then if [ "$1" = "combined" ]; then COMBINED=1 @@ -128,6 +129,10 @@ f none $PACKAGE_NAME/doc/README 0644 root bin f none $PACKAGE_NAME/doc/README-turbo.txt 0644 root bin f none $PACKAGE_NAME/doc/usage.txt 0644 root bin EOF +if [ $WITH_JAVA = 1 ]; then +echo d none $PACKAGE_NAME/classes 0755 root bin >>$TMPDIR/proto +echo f none $PACKAGE_NAME/classes/turbojpeg.jar 0644 root bin >>$TMPDIR/proto +fi pkgmk -o -r $TMPDIR/opt -d $TMPDIR -a i386 -f $TMPDIR/proto pkgtrans -s $TMPDIR $TMPDIR/$PACKAGE_NAME-$VERSION.pkg $PACKAGE_NAME diff --git a/release/uninstall.in b/release/uninstall.in index 94fc4f1..67b2a3e 100644 --- a/release/uninstall.in +++ b/release/uninstall.in @@ -63,6 +63,9 @@ fi if [ -d /opt/$PKGNAME/man ]; then rmdir /opt/$PKGNAME/man 2>&1 || RETCODE=-1 fi +if [ -d /opt/$PKGNAME/classes ]; then + rmdir /opt/$PKGNAME/classes 2>&1 || RETCODE=-1 +fi rmdir /opt/$PKGNAME 2>&1 || RETCODE=-1 rmdir /Library/Documentation/$PKGNAME 2>&1 || RETCODE=-1