summaryrefslogtreecommitdiff
path: root/platform/java/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'platform/java/Makefile')
-rw-r--r--platform/java/Makefile70
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)