summaryrefslogtreecommitdiff
path: root/platform/java/Makefile
blob: 3e7df2553143922458f394742eac63624ef07067 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
default: libmupdf_java.so libmupdf.jar

MUPDF_CORE = ../../build/java/libmupdf.a ../../build/java/libmupdfthird.a

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)

$(MUPDF_CORE) :
	$(MAKE) -C ../.. OUT=build/java XCFLAGS=-fPIC \
		FREETYPE_DIR=/use/system/library \
		ZLIB_DIR=/use/system/library \
		build=release libs

$(LIBRARY_JAVA_OBJECTS) : $(LIBRARY_JAVA_SOURCES)
	javac $^

libmupdf.jar : $(LIBRARY_JAVA_OBJECTS)
	rm -f $@
	jar cf $@ $^

mupdf_native.h : $(LIBRARY_JAVA_OBJECTS)
	rm -f $@
	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

$(VIEWER_JAVA_OBJECTS) : $(VIEWER_JAVA_SOURCES)
	javac $^

viewer: libmupdf_java.so $(LIBRARY_JAVA_OBJECTS) $(VIEWER_JAVA_OBJECTS)
	LD_LIBRARY_PATH=. java Viewer

clean:
	rm -f com/artifex/mupdf/fitz/*.class
	rm -f *.class
	rm -f mupdf_native.o
	rm -f libmupdf_java.so

nuke: clean
	$(MAKE) -C ../.. build=release OUT=build/java clean

.NOTPARALLEL : # disable -j option (it breaks since javac compiles all class files in one command)