summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore19
-rw-r--r--Makefile6
-rw-r--r--Makethird4
-rw-r--r--platform/java/Android.mk276
-rw-r--r--platform/java/mupdf_native.c1
-rw-r--r--platform/java/src/com/artifex/mupdf/fitz/Context.java6
-rw-r--r--platform/java/winmake.bat2
-rw-r--r--source/fitz/load-jpx.c7
8 files changed, 294 insertions, 27 deletions
diff --git a/.gitignore b/.gitignore
index a60e3540..55c17efc 100644
--- a/.gitignore
+++ b/.gitignore
@@ -9,8 +9,6 @@ include/mupdf/pdf/name-table.h
source/pdf/pdf-name-table.h
tags
cscope.*
-platform/android/bin
-platform/android/.idea
# Editor and file browser turds:
*~
@@ -47,10 +45,13 @@ platform/android/.idea
*.jar
*.o
*.so
-DerivedData
*.zip
-*.apk
*.dll
+DerivedData
+
+platform/java/obj
+platform/java/libs
+platform/java/local.properties
platform/win32/*.user
platform/win32/*.ncb
@@ -62,13 +63,3 @@ platform/win32/Release
platform/win32/ReleaseOpenssl
platform/win32/Memento
platform/win32/x64
-
-platform/android/*/obj
-platform/android/*/bin
-platform/android/*/libs
-platform/android/*/gen
-platform/android/*/jni/andprof
-platform/android/*/local.properties
-platform/android/*/.classpath
-platform/android/*/.project
-platform/android/*/.settings
diff --git a/Makefile b/Makefile
index c3ff2482..8b423144 100644
--- a/Makefile
+++ b/Makefile
@@ -422,6 +422,10 @@ debug:
$(MAKE) build=debug
android: generate
- $(MAKE) -C platform/android/viewer
+ ndk-build -j8 \
+ APP_BUILD_SCRIPT=platform/java/Android.mk \
+ APP_PROJECT_PATH=build/android \
+ APP_PLATFORM=android-16 \
+ APP_OPTIM=$(build)
.PHONY: all clean nuke install third libs apps generate
diff --git a/Makethird b/Makethird
index ad480111..cfd1dfe2 100644
--- a/Makethird
+++ b/Makethird
@@ -404,9 +404,9 @@ OPENJPEG_OBJ := $(addprefix $(OPENJPEG_OUT)/, $(OPENJPEG_SRC:%.c=%.o))
$(OPENJPEG_OUT):
$(MKDIR_CMD)
$(OPENJPEG_OUT)/%.o: $(OPENJPEG_DIR)/%.c | $(OPENJPEG_OUT)
- $(CC_CMD) -DOPJ_STATIC -DOPJ_HAVE_STDINT_H
+ $(CC_CMD) -DOPJ_STATIC -DOPJ_HAVE_STDINT_H -DOPJ_HAVE_INTTYPES_H -DUSE_JPIP
-OPENJPEG_CFLAGS += -I$(OPENJPEG_DIR) -DOPJ_HAVE_INTTYPES_H=1 -DUSE_JPIP=1
+OPENJPEG_CFLAGS += -I$(OPENJPEG_DIR)
else
OPENJPEG_CFLAGS := $(SYS_OPENJPEG_CFLAGS)
OPENJPEG_LIBS := $(SYS_OPENJPEG_LIBS)
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)
diff --git a/platform/java/mupdf_native.c b/platform/java/mupdf_native.c
index 94c8b61c..cbb3dd7a 100644
--- a/platform/java/mupdf_native.c
+++ b/platform/java/mupdf_native.c
@@ -3917,7 +3917,6 @@ JNIEXPORT jstring JNICALL
FUN(Document_proofNative)(JNIEnv *env, jobject self, jstring jCurrentPath, jstring jPrintProfile, jstring jDisplayProfile, jint inResolution)
{
#ifdef FZ_ENABLE_GPRF
-
fz_context *ctx = get_context(env);
fz_document *doc = from_Document(env, self);
char *tmp;
diff --git a/platform/java/src/com/artifex/mupdf/fitz/Context.java b/platform/java/src/com/artifex/mupdf/fitz/Context.java
index 7734a274..5ad384db 100644
--- a/platform/java/src/com/artifex/mupdf/fitz/Context.java
+++ b/platform/java/src/com/artifex/mupdf/fitz/Context.java
@@ -16,12 +16,12 @@ public class Context
if (!inited) {
inited = true;
try {
- System.loadLibrary("mupdf_java64");
+ System.loadLibrary("mupdf_java");
} catch (UnsatisfiedLinkError e) {
try {
- System.loadLibrary("mupdf_java32");
+ System.loadLibrary("mupdf_java64");
} catch (UnsatisfiedLinkError ee) {
- System.loadLibrary("mupdf_java");
+ System.loadLibrary("mupdf_java32");
}
}
if (initNative() < 0)
diff --git a/platform/java/winmake.bat b/platform/java/winmake.bat
index ac18b5f6..94608d9e 100644
--- a/platform/java/winmake.bat
+++ b/platform/java/winmake.bat
@@ -14,4 +14,4 @@ javac -source 1.7 -target 1.7 com/artifex/mupdf/fitz/*.java
@copy ..\win32\%1\javaviewerlib.dll mupdf_java.dll /y
@echo Packaging into jar (incomplete as missing manifest)
-jar cf javaviewer.jar mupdf_java.dll com\artifex\mupdf\fitz\*.java example\viewer.java
+jar cf mupdf-java-viewer.jar mupdf_java.dll com\artifex\mupdf\fitz\*.class example\*.class
diff --git a/source/fitz/load-jpx.c b/source/fitz/load-jpx.c
index c52d68d8..c133bce4 100644
--- a/source/fitz/load-jpx.c
+++ b/source/fitz/load-jpx.c
@@ -443,13 +443,10 @@ fz_load_jpx_info(fz_context *ctx, unsigned char *data, size_t size, int *wp, int
#else /* HAVE_LURATECH */
-/* Without the definition of OPJ_STATIC, compilation fails on windows
- * due to the use of __stdcall. We believe it is required on some
- * linux toolchains too. */
#define OPJ_STATIC
-#ifndef _MSC_VER
+#define OPJ_HAVE_INTTYPES_H
#define OPJ_HAVE_STDINT_H
-#endif
+#define USE_JPIP
#include <openjpeg.h>