diff options
author | Tor Andersson <tor.andersson@artifex.com> | 2016-03-30 17:49:04 +0200 |
---|---|---|
committer | Tor Andersson <tor.andersson@artifex.com> | 2016-03-31 13:00:41 +0200 |
commit | d68576c3785572c1f5d41f83015b8fe6bbcbe9e8 (patch) | |
tree | 431a86edfac640864ba7f406611e8fe9929908cd /platform/java/Makefile | |
parent | 32cdb2246eeb9e8109a712ec2a5dd2938e30e9b6 (diff) | |
download | mupdf-d68576c3785572c1f5d41f83015b8fe6bbcbe9e8.tar.xz |
Reorganize java and android source.
platform/java and platform/android are reorganized:
platform/java
The new JNI Java classes, mupdf_native.{c,h}, Makefile and Makejar.
platform/java/example
The example desktop viewer classes.
platform/android/viewer
The original demo viewer.
ndk-build is used to build libmupdf_java.so,
making reference to mupdf_native.{c,h} in platform/java.
Diffstat (limited to 'platform/java/Makefile')
-rw-r--r-- | platform/java/Makefile | 70 |
1 files changed, 42 insertions, 28 deletions
diff --git a/platform/java/Makefile b/platform/java/Makefile index 3e7df255..fc889c1a 100644 --- a/platform/java/Makefile +++ b/platform/java/Makefile @@ -1,22 +1,44 @@ -default: libmupdf_java.so libmupdf.jar +OS ?= $(shell uname) -MUPDF_CORE = ../../build/java/libmupdf.a ../../build/java/libmupdfthird.a +ifeq "$(OS)" "Darwin" +MUPDF_JAVA := libmupdf_java.jnilib +JAVA_CFLAGS := \ + -I /Library/Java/JavaVirtualMachines/jdk1.8.0_66.jdk/Contents/Home/include \ + -I /Library/Java/JavaVirtualMachines/jdk1.8.0_66.jdk/Contents/Home/include/darwin +else +MUPDF_JAVA := libmupdf_java.so +JAVA_CFLAGS := \ + -I /usr/lib/jvm/java-7-openjdk-i386/include \ + -I /usr/lib/jvm/java-7-openjdk-i386/include/linux \ + -I /usr/lib/jvm/java-7-openjdk-amd64/include \ + -I /usr/lib/jvm/java-7-openjdk-amd64/include/linux +JAVA_LIBS := \ + $(shell pkg-config --cflags freetype2) -lz +endif + +default: $(MUPDF_JAVA) libmupdf.jar + +MUPDF_CORE := ../../build/java/libmupdf.a ../../build/java/libmupdfthird.a +ifeq "$(OS)" "Linux" +$(MUPDF_CORE) : + $(MAKE) -C ../.. OUT=build/java XCFLAGS=-fPIC FREETYPE_DIR=/foo ZLIB_DIR=/foo build=release libs +else +$(MUPDF_CORE) : + $(MAKE) -C ../.. OUT=build/java XCFLAGS=-fPIC build=release libs +endif LIBRARY_JAVA_SOURCES := $(sort $(wildcard com/artifex/mupdf/fitz/*.java)) LIBRARY_JAVA_OBJECTS := $(LIBRARY_JAVA_SOURCES:%.java=%.class) LIBRARY_JAVA_CLASSES := $(subst com/artifex/mupdf/fitz/,com.artifex.mupdf.fitz.,$(LIBRARY_JAVA_SOURCES:%.java=%)) -VIEWER_JAVA_SOURCES := $(sort $(wildcard *.java)) -VIEWER_JAVA_OBJECTS := $(VIEWER_JAVA_SOURCES:%.java=%.class) +$(LIBRARY_JAVA_OBJECTS) : $(LIBRARY_JAVA_SOURCES) + javac -source 1.7 -target 1.7 $^ -$(MUPDF_CORE) : - $(MAKE) -C ../.. OUT=build/java XCFLAGS=-fPIC \ - FREETYPE_DIR=/use/system/library \ - ZLIB_DIR=/use/system/library \ - build=release libs +EXAMPLE_JAVA_SOURCES := $(sort $(wildcard example/*.java)) +EXAMPLE_JAVA_OBJECTS := $(EXAMPLE_JAVA_SOURCES:%.java=%.class) -$(LIBRARY_JAVA_OBJECTS) : $(LIBRARY_JAVA_SOURCES) - javac $^ +$(EXAMPLE_JAVA_OBJECTS) : $(EXAMPLE_JAVA_SOURCES) + javac -source 1.7 -target 1.7 $^ libmupdf.jar : $(LIBRARY_JAVA_OBJECTS) rm -f $@ @@ -27,30 +49,22 @@ mupdf_native.h : $(LIBRARY_JAVA_OBJECTS) javah -o $@ $(LIBRARY_JAVA_CLASSES) mupdf_native.o : mupdf_native.c mupdf_native.h - $(CC) -g -fPIC -Wall -Wextra -Wno-unused-parameter \ - -I /usr/lib/jvm/java-7-openjdk-i386/include \ - -I /usr/lib/jvm/java-7-openjdk-i386/include/linux \ - -I /usr/lib/jvm/java-7-openjdk-amd64/include \ - -I /usr/lib/jvm/java-7-openjdk-amd64/include/linux \ - -I ../../include \ - -o $@ -c $< - -libmupdf_java.so : mupdf_native.o $(MUPDF_CORE) - $(CC) -shared -o $@ $^ -lfreetype -lz + $(CC) -g -o $@ -c $< -fPIC -Wall -Wextra -Wno-unused-parameter -I ../../include \ + $(JAVA_CFLAGS) -$(VIEWER_JAVA_OBJECTS) : $(VIEWER_JAVA_SOURCES) - javac $^ +$(MUPDF_JAVA) : mupdf_native.o $(MUPDF_CORE) + $(CC) -shared -o $(MUPDF_JAVA) $^ $(JAVA_LIBS) -viewer: libmupdf_java.so $(LIBRARY_JAVA_OBJECTS) $(VIEWER_JAVA_OBJECTS) - LD_LIBRARY_PATH=. java Viewer +viewer: $(MUPDF_JAVA) $(EXAMPLE_JAVA_OBJECTS) + LD_LIBRARY_PATH=. java example.Viewer clean: rm -f com/artifex/mupdf/fitz/*.class - rm -f *.class + rm -f example/*.class rm -f mupdf_native.o - rm -f libmupdf_java.so + rm -f $(MUPDF_JAVA) nuke: clean - $(MAKE) -C ../.. build=release OUT=build/java clean + $(MAKE) -C ../.. OUT=build/java clean .NOTPARALLEL : # disable -j option (it breaks since javac compiles all class files in one command) |