]> granicus.if.org Git - libjpeg-turbo/commitdiff
Build and package TurboJPEG/OSS Java wrapper into JAR file
authorDRC <dcommander@users.sourceforge.net>
Fri, 1 Apr 2011 00:20:33 +0000 (00:20 +0000)
committerDRC <dcommander@users.sourceforge.net>
Fri, 1 Apr 2011 00:20:33 +0000 (00:20 +0000)
git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/trunk@549 632fc199-4ca6-4c93-a231-07263d6284db

Makefile.am
configure.ac
java/MANIFEST.MF [new file with mode: 0644]
java/Makefile.am [new file with mode: 0644]
release/libjpeg-turbo.spec.in
release/makemacpkg.in
release/makesunpkg.in
release/uninstall.in

index 0703153b8337ffe66cb49d8988432e4131991558..b06da6eca3c3b8cdc5d99c664e2dec2de9c84cf9 100644 (file)
@@ -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
index c3d682953436b482169f6ffe35a9ce267886516a..6c483e6a40fd12588e0ba2b19bb62972211a6eca 100644 (file)
@@ -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 (file)
index 0000000..723bc51
--- /dev/null
@@ -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 (file)
index 0000000..647c165
--- /dev/null
@@ -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
index c21eef851bdb3b12af43c1524309ab105bc36351..73afb640346f6da90ffadd5792b1c85372f66579 100644 (file)
@@ -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
index a93718825c149868151dfefac8f7fd32957c2f95..6cd13c335472ba0bcca6c5e6369d25ba2acaad2c 100644 (file)
@@ -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
index aa2e7352dd5f70d8f62542c25a3e85d5e8515c17..2745d15028f07f704ba14aa86c8358861b684f62 100644 (file)
@@ -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
index 94fc4f15f6c16e6ce895f187f2966dbd808e5129..67b2a3e857a67128c8192bcd13479be9af67976d 100644 (file)
@@ -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