summaryrefslogtreecommitdiff
path: root/platform/java/Android.mk
diff options
context:
space:
mode:
authorSebastian Rasmussen <sebras@gmail.com>2017-01-18 02:58:10 +0100
committerTor Andersson <tor.andersson@artifex.com>2017-01-23 13:57:04 +0100
commit13788c56859fcd8a8e4999d7553a0864c0176a10 (patch)
tree723d934bb4fde202f3b4513eb3b8d3dd5960c21e /platform/java/Android.mk
parentad6807ba2a3fbd1c276ad5797a27ec771aeaf59b (diff)
downloadmupdf-13788c56859fcd8a8e4999d7553a0864c0176a10.tar.xz
android: Add ndk-build makefile to build JNI library for android viewers.
Run 'make android' to invoke ndk-build with the proper arguments. The results are placed in build/android.
Diffstat (limited to 'platform/java/Android.mk')
-rw-r--r--platform/java/Android.mk276
1 files changed, 276 insertions, 0 deletions
diff --git a/platform/java/Android.mk b/platform/java/Android.mk
new file mode 100644
index 00000000..83cff536
--- /dev/null
+++ b/platform/java/Android.mk
@@ -0,0 +1,276 @@
+# Android makefile to be used with ndk-build.
+#
+# Run ndk-build with the following arguments:
+# APP_BUILD_SCRIPT=platform/java/Android.mk (this file)
+# APP_PROJECT_DIR=build/android (where you want the output)
+# APP_PLATFORM=android-16
+# APP_OPTIM=release (or debug)
+# APP_ABI=all (or armeabi, armeabi-v7a, arm64-v8a, x86, x86_64, mips, mips64)
+#
+# The top-level Makefile will invoke ndk-build with appropriate arguments
+# if you run 'make android'.
+#
+# LOCAL_C_INCLUDES paths are relative to the NDK root directory.
+# LOCAL_SRC_FILES paths are relative to LOCAL_PATH.
+#
+# We make sure to use absolute paths everywhere, so this makefile works
+# regardless of where it is called from.
+
+LOCAL_PATH := $(call my-dir)
+MUPDF_PATH := $(realpath $(LOCAL_PATH)/../..)
+
+# --- Include pre-built ghostscript library if building with gproof support ---
+
+ifdef FZ_ENABLE_GPRF
+include $(CLEAR_VARS)
+LOCAL_MODULE := gsso
+LOCAL_SRC_FILES := libgs.so
+include $(PREBUILT_SHARED_LIBRARY)
+endif
+
+# --- Build a local static library for core mupdf ---
+
+include $(CLEAR_VARS)
+
+LOCAL_MODULE := mupdf_core
+
+ifdef FZ_ENABLE_GPRF
+LOCAL_CFLAGS += -DFZ_ENABLE_GPRF
+endif
+
+LOCAL_C_INCLUDES := \
+ $(MUPDF_PATH)/include \
+ $(MUPDF_PATH)/generated \
+ $(MUPDF_PATH)/scripts/freetype \
+ $(MUPDF_PATH)/scripts/jpeg \
+ $(MUPDF_PATH)/thirdparty/freetype/include \
+ $(MUPDF_PATH)/thirdparty/harfbuzz/src \
+ $(MUPDF_PATH)/thirdparty/jbig2dec \
+ $(MUPDF_PATH)/thirdparty/jpeg \
+ $(MUPDF_PATH)/thirdparty/mujs \
+ $(MUPDF_PATH)/thirdparty/openjpeg/src/lib/openjp2 \
+ $(MUPDF_PATH)/thirdparty/zlib \
+
+LOCAL_CFLAGS := \
+ -ffunction-sections -fdata-sections \
+ -DAA_BITS=8 \
+
+LOCAL_SRC_FILES += \
+ $(wildcard $(MUPDF_PATH)/source/fitz/*.c) \
+ $(wildcard $(MUPDF_PATH)/source/pdf/*.c) \
+ $(wildcard $(MUPDF_PATH)/source/xps/*.c) \
+ $(wildcard $(MUPDF_PATH)/source/svg/*.c) \
+ $(wildcard $(MUPDF_PATH)/source/cbz/*.c) \
+ $(wildcard $(MUPDF_PATH)/source/gprf/*.c) \
+ $(wildcard $(MUPDF_PATH)/source/html/*.c) \
+ $(wildcard $(MUPDF_PATH)/generated/*.c) \
+
+include $(BUILD_STATIC_LIBRARY)
+
+# --- Build a local static library for thirdparty libraries ---
+
+include $(CLEAR_VARS)
+
+LOCAL_MODULE := mupdf_thirdparty
+
+LOCAL_CPP_EXTENSION := .cc
+
+LOCAL_C_INCLUDES := \
+ $(MUPDF_PATH)/include \
+ $(MUPDF_PATH)/scripts/freetype \
+ $(MUPDF_PATH)/scripts/jpeg \
+ $(MUPDF_PATH)/thirdparty/freetype/include \
+ $(MUPDF_PATH)/thirdparty/harfbuzz/src \
+ $(MUPDF_PATH)/thirdparty/jbig2dec \
+ $(MUPDF_PATH)/thirdparty/jpeg \
+ $(MUPDF_PATH)/thirdparty/mujs \
+ $(MUPDF_PATH)/thirdparty/openjpeg/src/lib/openjp2 \
+ $(MUPDF_PATH)/thirdparty/zlib \
+
+LOCAL_CFLAGS := \
+ -ffunction-sections -fdata-sections \
+ -DFT2_BUILD_LIBRARY -DDARWIN_NO_CARBON \
+ '-DFT_CONFIG_MODULES_H="slimftmodules.h"' \
+ '-DFT_CONFIG_OPTIONS_H="slimftoptions.h"' \
+ -DHAVE_STDINT_H \
+ -DOPJ_STATIC -DOPJ_HAVE_INTTYPES_H -DOPJ_HAVE_STDINT_H -DUSE_JPIP \
+
+LOCAL_CPPFLAGS := \
+ -ffunction-sections -fdata-sections \
+ -fno-rtti -fno-exceptions -fvisibility-inlines-hidden --std=c++0x \
+ -DHAVE_OT -DHAVE_UCDN -DHB_NO_MT \
+ -Dhb_malloc_impl=hb_malloc \
+ -Dhb_calloc_impl=hb_calloc \
+ -Dhb_realloc_impl=hb_realloc \
+ -Dhb_free_impl=hb_free \
+
+LOCAL_SRC_FILES += \
+ $(MUPDF_PATH)/thirdparty/freetype/src/base/ftbase.c \
+ $(MUPDF_PATH)/thirdparty/freetype/src/base/ftbbox.c \
+ $(MUPDF_PATH)/thirdparty/freetype/src/base/ftbitmap.c \
+ $(MUPDF_PATH)/thirdparty/freetype/src/base/ftfntfmt.c \
+ $(MUPDF_PATH)/thirdparty/freetype/src/base/ftgasp.c \
+ $(MUPDF_PATH)/thirdparty/freetype/src/base/ftglyph.c \
+ $(MUPDF_PATH)/thirdparty/freetype/src/base/ftinit.c \
+ $(MUPDF_PATH)/thirdparty/freetype/src/base/ftstroke.c \
+ $(MUPDF_PATH)/thirdparty/freetype/src/base/ftsynth.c \
+ $(MUPDF_PATH)/thirdparty/freetype/src/base/ftsystem.c \
+ $(MUPDF_PATH)/thirdparty/freetype/src/base/fttype1.c \
+ $(MUPDF_PATH)/thirdparty/freetype/src/cff/cff.c \
+ $(MUPDF_PATH)/thirdparty/freetype/src/cid/type1cid.c \
+ $(MUPDF_PATH)/thirdparty/freetype/src/psaux/psaux.c \
+ $(MUPDF_PATH)/thirdparty/freetype/src/pshinter/pshinter.c \
+ $(MUPDF_PATH)/thirdparty/freetype/src/psnames/psnames.c \
+ $(MUPDF_PATH)/thirdparty/freetype/src/raster/raster.c \
+ $(MUPDF_PATH)/thirdparty/freetype/src/sfnt/sfnt.c \
+ $(MUPDF_PATH)/thirdparty/freetype/src/smooth/smooth.c \
+ $(MUPDF_PATH)/thirdparty/freetype/src/truetype/truetype.c \
+ $(MUPDF_PATH)/thirdparty/freetype/src/type1/type1.c \
+
+LOCAL_SRC_FILES += \
+ $(MUPDF_PATH)/thirdparty/harfbuzz/src/hb-blob.cc \
+ $(MUPDF_PATH)/thirdparty/harfbuzz/src/hb-buffer-serialize.cc \
+ $(MUPDF_PATH)/thirdparty/harfbuzz/src/hb-buffer.cc \
+ $(MUPDF_PATH)/thirdparty/harfbuzz/src/hb-common.cc \
+ $(MUPDF_PATH)/thirdparty/harfbuzz/src/hb-face.cc \
+ $(MUPDF_PATH)/thirdparty/harfbuzz/src/hb-fallback-shape.cc \
+ $(MUPDF_PATH)/thirdparty/harfbuzz/src/hb-font.cc \
+ $(MUPDF_PATH)/thirdparty/harfbuzz/src/hb-ft.cc \
+ $(MUPDF_PATH)/thirdparty/harfbuzz/src/hb-ot-font.cc \
+ $(MUPDF_PATH)/thirdparty/harfbuzz/src/hb-ot-layout.cc \
+ $(MUPDF_PATH)/thirdparty/harfbuzz/src/hb-ot-map.cc \
+ $(MUPDF_PATH)/thirdparty/harfbuzz/src/hb-ot-shape-complex-arabic.cc \
+ $(MUPDF_PATH)/thirdparty/harfbuzz/src/hb-ot-shape-complex-default.cc \
+ $(MUPDF_PATH)/thirdparty/harfbuzz/src/hb-ot-shape-complex-hangul.cc \
+ $(MUPDF_PATH)/thirdparty/harfbuzz/src/hb-ot-shape-complex-hebrew.cc \
+ $(MUPDF_PATH)/thirdparty/harfbuzz/src/hb-ot-shape-complex-indic-table.cc \
+ $(MUPDF_PATH)/thirdparty/harfbuzz/src/hb-ot-shape-complex-indic.cc \
+ $(MUPDF_PATH)/thirdparty/harfbuzz/src/hb-ot-shape-complex-myanmar.cc \
+ $(MUPDF_PATH)/thirdparty/harfbuzz/src/hb-ot-shape-complex-thai.cc \
+ $(MUPDF_PATH)/thirdparty/harfbuzz/src/hb-ot-shape-complex-tibetan.cc \
+ $(MUPDF_PATH)/thirdparty/harfbuzz/src/hb-ot-shape-complex-use-table.cc \
+ $(MUPDF_PATH)/thirdparty/harfbuzz/src/hb-ot-shape-complex-use.cc \
+ $(MUPDF_PATH)/thirdparty/harfbuzz/src/hb-ot-shape-fallback.cc \
+ $(MUPDF_PATH)/thirdparty/harfbuzz/src/hb-ot-shape-normalize.cc \
+ $(MUPDF_PATH)/thirdparty/harfbuzz/src/hb-ot-shape.cc \
+ $(MUPDF_PATH)/thirdparty/harfbuzz/src/hb-ot-tag.cc \
+ $(MUPDF_PATH)/thirdparty/harfbuzz/src/hb-set.cc \
+ $(MUPDF_PATH)/thirdparty/harfbuzz/src/hb-shape-plan.cc \
+ $(MUPDF_PATH)/thirdparty/harfbuzz/src/hb-shape.cc \
+ $(MUPDF_PATH)/thirdparty/harfbuzz/src/hb-shaper.cc \
+ $(MUPDF_PATH)/thirdparty/harfbuzz/src/hb-ucdn.cc \
+ $(MUPDF_PATH)/thirdparty/harfbuzz/src/hb-unicode.cc \
+ $(MUPDF_PATH)/thirdparty/harfbuzz/src/hb-warning.cc \
+
+LOCAL_SRC_FILES += \
+ $(MUPDF_PATH)/thirdparty/jbig2dec/jbig2.c \
+ $(MUPDF_PATH)/thirdparty/jbig2dec/jbig2_arith.c \
+ $(MUPDF_PATH)/thirdparty/jbig2dec/jbig2_arith_iaid.c \
+ $(MUPDF_PATH)/thirdparty/jbig2dec/jbig2_arith_int.c \
+ $(MUPDF_PATH)/thirdparty/jbig2dec/jbig2_generic.c \
+ $(MUPDF_PATH)/thirdparty/jbig2dec/jbig2_halftone.c \
+ $(MUPDF_PATH)/thirdparty/jbig2dec/jbig2_huffman.c \
+ $(MUPDF_PATH)/thirdparty/jbig2dec/jbig2_image.c \
+ $(MUPDF_PATH)/thirdparty/jbig2dec/jbig2_metadata.c \
+ $(MUPDF_PATH)/thirdparty/jbig2dec/jbig2_mmr.c \
+ $(MUPDF_PATH)/thirdparty/jbig2dec/jbig2_page.c \
+ $(MUPDF_PATH)/thirdparty/jbig2dec/jbig2_refinement.c \
+ $(MUPDF_PATH)/thirdparty/jbig2dec/jbig2_segment.c \
+ $(MUPDF_PATH)/thirdparty/jbig2dec/jbig2_symbol_dict.c \
+ $(MUPDF_PATH)/thirdparty/jbig2dec/jbig2_text.c \
+
+LOCAL_SRC_FILES += \
+ $(MUPDF_PATH)/thirdparty/jpeg/jaricom.c \
+ $(MUPDF_PATH)/thirdparty/jpeg/jcomapi.c \
+ $(MUPDF_PATH)/thirdparty/jpeg/jdapimin.c \
+ $(MUPDF_PATH)/thirdparty/jpeg/jdapistd.c \
+ $(MUPDF_PATH)/thirdparty/jpeg/jdarith.c \
+ $(MUPDF_PATH)/thirdparty/jpeg/jdatadst.c \
+ $(MUPDF_PATH)/thirdparty/jpeg/jdatasrc.c \
+ $(MUPDF_PATH)/thirdparty/jpeg/jdcoefct.c \
+ $(MUPDF_PATH)/thirdparty/jpeg/jdcolor.c \
+ $(MUPDF_PATH)/thirdparty/jpeg/jddctmgr.c \
+ $(MUPDF_PATH)/thirdparty/jpeg/jdhuff.c \
+ $(MUPDF_PATH)/thirdparty/jpeg/jdinput.c \
+ $(MUPDF_PATH)/thirdparty/jpeg/jdmainct.c \
+ $(MUPDF_PATH)/thirdparty/jpeg/jdmarker.c \
+ $(MUPDF_PATH)/thirdparty/jpeg/jdmaster.c \
+ $(MUPDF_PATH)/thirdparty/jpeg/jdmerge.c \
+ $(MUPDF_PATH)/thirdparty/jpeg/jdpostct.c \
+ $(MUPDF_PATH)/thirdparty/jpeg/jdsample.c \
+ $(MUPDF_PATH)/thirdparty/jpeg/jdtrans.c \
+ $(MUPDF_PATH)/thirdparty/jpeg/jerror.c \
+ $(MUPDF_PATH)/thirdparty/jpeg/jfdctflt.c \
+ $(MUPDF_PATH)/thirdparty/jpeg/jfdctfst.c \
+ $(MUPDF_PATH)/thirdparty/jpeg/jfdctint.c \
+ $(MUPDF_PATH)/thirdparty/jpeg/jidctflt.c \
+ $(MUPDF_PATH)/thirdparty/jpeg/jidctfst.c \
+ $(MUPDF_PATH)/thirdparty/jpeg/jidctint.c \
+ $(MUPDF_PATH)/thirdparty/jpeg/jmemmgr.c \
+ $(MUPDF_PATH)/thirdparty/jpeg/jquant1.c \
+ $(MUPDF_PATH)/thirdparty/jpeg/jquant2.c \
+ $(MUPDF_PATH)/thirdparty/jpeg/jutils.c \
+
+LOCAL_SRC_FILES += \
+ $(MUPDF_PATH)/thirdparty/mujs/one.c \
+
+LOCAL_SRC_FILES += \
+ $(MUPDF_PATH)/thirdparty/openjpeg/src/lib/openjp2/bio.c \
+ $(MUPDF_PATH)/thirdparty/openjpeg/src/lib/openjp2/cidx_manager.c \
+ $(MUPDF_PATH)/thirdparty/openjpeg/src/lib/openjp2/cio.c \
+ $(MUPDF_PATH)/thirdparty/openjpeg/src/lib/openjp2/dwt.c \
+ $(MUPDF_PATH)/thirdparty/openjpeg/src/lib/openjp2/event.c \
+ $(MUPDF_PATH)/thirdparty/openjpeg/src/lib/openjp2/function_list.c \
+ $(MUPDF_PATH)/thirdparty/openjpeg/src/lib/openjp2/image.c \
+ $(MUPDF_PATH)/thirdparty/openjpeg/src/lib/openjp2/invert.c \
+ $(MUPDF_PATH)/thirdparty/openjpeg/src/lib/openjp2/j2k.c \
+ $(MUPDF_PATH)/thirdparty/openjpeg/src/lib/openjp2/jp2.c \
+ $(MUPDF_PATH)/thirdparty/openjpeg/src/lib/openjp2/mct.c \
+ $(MUPDF_PATH)/thirdparty/openjpeg/src/lib/openjp2/mqc.c \
+ $(MUPDF_PATH)/thirdparty/openjpeg/src/lib/openjp2/openjpeg.c \
+ $(MUPDF_PATH)/thirdparty/openjpeg/src/lib/openjp2/phix_manager.c \
+ $(MUPDF_PATH)/thirdparty/openjpeg/src/lib/openjp2/pi.c \
+ $(MUPDF_PATH)/thirdparty/openjpeg/src/lib/openjp2/ppix_manager.c \
+ $(MUPDF_PATH)/thirdparty/openjpeg/src/lib/openjp2/raw.c \
+ $(MUPDF_PATH)/thirdparty/openjpeg/src/lib/openjp2/t1.c \
+ $(MUPDF_PATH)/thirdparty/openjpeg/src/lib/openjp2/t2.c \
+ $(MUPDF_PATH)/thirdparty/openjpeg/src/lib/openjp2/tcd.c \
+ $(MUPDF_PATH)/thirdparty/openjpeg/src/lib/openjp2/tgt.c \
+ $(MUPDF_PATH)/thirdparty/openjpeg/src/lib/openjp2/thix_manager.c \
+ $(MUPDF_PATH)/thirdparty/openjpeg/src/lib/openjp2/thread.c \
+ $(MUPDF_PATH)/thirdparty/openjpeg/src/lib/openjp2/tpix_manager.c \
+
+LOCAL_SRC_FILES += \
+ $(MUPDF_PATH)/thirdparty/zlib/adler32.c \
+ $(MUPDF_PATH)/thirdparty/zlib/compress.c \
+ $(MUPDF_PATH)/thirdparty/zlib/crc32.c \
+ $(MUPDF_PATH)/thirdparty/zlib/deflate.c \
+ $(MUPDF_PATH)/thirdparty/zlib/inffast.c \
+ $(MUPDF_PATH)/thirdparty/zlib/inflate.c \
+ $(MUPDF_PATH)/thirdparty/zlib/inftrees.c \
+ $(MUPDF_PATH)/thirdparty/zlib/trees.c \
+ $(MUPDF_PATH)/thirdparty/zlib/uncompr.c \
+ $(MUPDF_PATH)/thirdparty/zlib/zutil.c \
+
+include $(BUILD_STATIC_LIBRARY)
+
+# --- Build the final JNI shared library ---
+
+include $(CLEAR_VARS)
+
+LOCAL_MODULE := mupdf_java
+
+LOCAL_C_INCLUDES := \
+ $(MUPDF_PATH)/include
+
+LOCAL_CFLAGS := \
+ -DHAVE_ANDROID
+
+LOCAL_SRC_FILES := \
+ $(MUPDF_PATH)/platform/java/mupdf_native.c
+
+LOCAL_STATIC_LIBRARIES := mupdf_core mupdf_thirdparty
+LOCAL_LDLIBS := -ljnigraphics -llog -lm
+LOCAL_LDFLAGS := -Wl,--gc-sections
+
+include $(BUILD_SHARED_LIBRARY)