diff options
-rw-r--r-- | .gitattributes | 6 | ||||
-rw-r--r-- | .gitignore | 3 | ||||
-rw-r--r-- | CHANGES | 5 | ||||
-rw-r--r-- | Makefile | 402 | ||||
-rw-r--r-- | Makerules | 277 | ||||
-rw-r--r-- | Makethird | 1013 | ||||
-rw-r--r-- | platform/java/Android.mk | 1 | ||||
-rw-r--r-- | scripts/freetype/slimftoptions.h | 1 |
8 files changed, 642 insertions, 1066 deletions
diff --git a/.gitattributes b/.gitattributes index ee6c99f4..c297def4 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,11 +1,13 @@ # Macros: [attr]tabs whitespace=trailing-space,space-before-tab,indent-with-non-tab,tabwidth=4 [attr]spaces whitespace=trailing-space,space-before-tab,tabs-in-indent +[attr]makefile whitespace=trailing-space,space-before-tab,indent-with-non-tab,tabwidth=8 # Source files: * text=auto -Make* tabs -*.mk tabs +Make* makefile +*.mk makefile +*.make makefile *.[chm] tabs *.java tabs *.xml tabs @@ -1,6 +1,8 @@ # Optional thirdparty libraryes thirdparty/luratech thirdparty/jpegxr +thirdparty/mapping-resources-pdf +thirdparty/cmap-resources # Generated files: build @@ -19,6 +21,7 @@ cscope.* .gradle *.xcworkspace *.xcuserdatad +user.make # Test files: *.pdf @@ -1,3 +1,8 @@ +* Build system simplifications: + * Auto-generated CMap, ICC, and JS source files are checked in to git. + * Embedded CMap resources are now generated by a python script. + * Embedded font resources are linked directly if using GNU ld. + List of changes in MuPDF 1.13.0 * This is primarily a bugfix release. @@ -1,8 +1,14 @@ # GNU Makefile -build ?= release +-include user.make -OUT := build/$(build) +ifndef build + build := release +endif + +ifndef OUT + OUT := build/$(build) +endif default: all @@ -17,174 +23,116 @@ include Makethird CFLAGS += $(XCFLAGS) -Iinclude LIBS += $(XLIBS) -lm -LIBS += $(FREETYPE_LIBS) -LIBS += $(HARFBUZZ_LIBS) -LIBS += $(JBIG2DEC_LIBS) -LIBS += $(JPEGXR_LIB) -LIBS += $(LCMS2_LIBS) -LIBS += $(LIBCRYPTO_LIBS) -LIBS += $(LIBJPEG_LIBS) -LIBS += $(LURATECH_LIBS) -LIBS += $(MUJS_LIBS) -LIBS += $(OPENJPEG_LIBS) -LIBS += $(ZLIB_LIBS) - -CFLAGS += $(FREETYPE_CFLAGS) -CFLAGS += $(HARFBUZZ_CFLAGS) -CFLAGS += $(JBIG2DEC_CFLAGS) -CFLAGS += $(JPEGXR_CFLAGS) -CFLAGS += $(LCMS2_CFLAGS) -CFLAGS += $(LIBCRYPTO_CFLAGS) -CFLAGS += $(LIBJPEG_CFLAGS) -CFLAGS += $(LURATECH_CFLAGS) -CFLAGS += $(MUJS_CFLAGS) -CFLAGS += $(OPENJPEG_CFLAGS) -CFLAGS += $(ZLIB_CFLAGS) - -ALL_DIR := $(OUT)/generated -ALL_DIR += $(OUT)/scripts -ALL_DIR += $(OUT)/source/fitz -ALL_DIR += $(OUT)/source/pdf -ALL_DIR += $(OUT)/source/xps -ALL_DIR += $(OUT)/source/svg -ALL_DIR += $(OUT)/source/cbz -ALL_DIR += $(OUT)/source/html -ALL_DIR += $(OUT)/source/gprf -ALL_DIR += $(OUT)/source/tools -ALL_DIR += $(OUT)/source/helpers -ALL_DIR += $(OUT)/source/helpers/mu-threads -ALL_DIR += $(OUT)/source/helpers/pkcs7 -ALL_DIR += $(OUT)/platform/x11 -ALL_DIR += $(OUT)/platform/x11/curl -ALL_DIR += $(OUT)/platform/gl +ifneq ($(threading),no) + ifeq ($(HAVE_PTHREAD),yes) + THREADING_CFLAGS := $(PTHREAD_CFLAGS) -DHAVE_PTHREAD + THREADING_LIBS := $(PTHREAD_LIBS) + endif +endif + +ifeq ($(HAVE_WIN32),yes) + WIN32_LIBS := -lcomdlg32 -lgdi32 + WIN32_LDFLAGS := -Wl,-subsystem,windows +endif # --- Commands --- -ifneq "$(verbose)" "yes" -QUIET_AR = @ echo ' ' ' ' AR $@ ; -QUIET_CC = @ echo ' ' ' ' CC $@ ; -QUIET_CXX = @ echo ' ' ' ' CXX $@ ; -QUIET_GEN = @ echo ' ' ' ' GEN $@ ; -QUIET_LINK = @ echo ' ' ' ' LINK $@ ; -QUIET_MKDIR = @ echo ' ' ' ' MKDIR $@ ; -QUIET_RM = @ echo ' ' ' ' RM $@ ; -QUIET_TAGS = @ echo ' ' ' ' TAGS $@ ; -QUIET_WINDRES = @ echo ' ' ' ' WINDRES $@ ; -QUIET_OBJCOPY = @ echo ' ' ' ' OBJCOPY $@ ; +ifneq ($(verbose),yes) + QUIET_AR = @ echo " AR $@" ; + QUIET_RANLIB = @ echo " RANLIB $@" ; + QUIET_CC = @ echo " CC $@" ; + QUIET_CXX = @ echo " CXX $@" ; + QUIET_GEN = @ echo " GEN $@" ; + QUIET_LINK = @ echo " LINK $@" ; + QUIET_RM = @ echo " RM $@" ; + QUIET_TAGS = @ echo " TAGS $@" ; + QUIET_WINDRES = @ echo " WINDRES $@" ; + QUIET_OBJCOPY = @ echo " OBJCOPY $@" ; endif -CC_CMD = $(QUIET_CC) $(CC) $(CFLAGS) -o $@ -c $< -CXX_CMD = $(QUIET_CXX) $(CXX) $(filter-out -Wdeclaration-after-statement,$(CFLAGS)) -o $@ -c $< -AR_CMD = $(QUIET_AR) $(AR) cr $@ $^ -LINK_CMD = $(QUIET_LINK) $(CC) $(LDFLAGS) -o $@ $^ $(LIBS) -MKDIR_CMD = $(QUIET_MKDIR) mkdir -p $@ -RM_CMD = $(QUIET_RM) rm -f $@ +MKTGTDIR = mkdir -p $(dir $@) +CC_CMD = $(QUIET_CC) $(MKTGTDIR) ; $(CC) $(CFLAGS) -MMD -MP -o $@ -c $< +CXX_CMD = $(QUIET_CXX) $(MKTGTDIR) ; $(CXX) $(CFLAGS) -MMD -MP -o $@ -c $< +AR_CMD = $(QUIET_AR) $(MKTGTDIR) ; $(AR) cr $@ $^ +ifdef RANLIB + RANLIB_CMD = $(QUIET_RANLIB) $(RANLIB) $@ +endif +LINK_CMD = $(QUIET_LINK) $(MKTGTDIR) ; $(CC) $(LDFLAGS) -o $@ $^ $(LIBS) TAGS_CMD = $(QUIET_TAGS) ctags $^ -WINDRES_CMD = $(QUIET_WINDRES) $(WINDRES) $< $@ -OBJCOPY_CMD = $(QUIET_OBJCOPY) mkdir -p $(dir $@) ; $(LD) -r -b binary -o $@ $< +WINDRES_CMD = $(QUIET_WINDRES) $(MKTGTDIR) ; $(WINDRES) $< $@ +OBJCOPY_CMD = $(QUIET_OBJCOPY) $(MKTGTDIR) ; $(LD) -r -b binary -o $@ $< # --- Rules --- -$(ALL_DIR) $(OUT) generated : - $(MKDIR_CMD) - $(OUT)/%.a : - $(RM_CMD) $(AR_CMD) $(RANLIB_CMD) -$(OUT)/%.exe: $(OUT)/%.o | $(ALL_DIR) +$(OUT)/%.exe: %.c $(LINK_CMD) -$(OUT)/source/helpers/mu-threads/%.o : source/helpers/mu-threads/%.c | $(ALL_DIR) +$(OUT)/source/helpers/mu-threads/%.o : source/helpers/mu-threads/%.c $(CC_CMD) $(THREADING_CFLAGS) -$(OUT)/source/helpers/pkcs7/%.o : source/helpers/pkcs7/%.c | $(ALL_DIR) +$(OUT)/source/helpers/pkcs7/%.o : source/helpers/pkcs7/%.c $(CC_CMD) -$(OUT)/source/tools/%.o : source/tools/%.c | $(ALL_DIR) - $(CC_CMD) $(THREADING_CFLAGS) +$(OUT)/source/tools/%.o : source/tools/%.c + $(CC_CMD) -Wall $(THIRD_CFLAGS) $(THREADING_CFLAGS) -$(OUT)/generated/%.o : generated/%.c | $(ALL_DIR) - @ mkdir -p $(dir $@) +$(OUT)/generated/%.o : generated/%.c $(CC_CMD) -O0 -$(OUT)/platform/x11/%.o : platform/x11/%.c | $(ALL_DIR) - $(CC_CMD) $(X11_CFLAGS) +$(OUT)/platform/x11/%.o : platform/x11/%.c + $(CC_CMD) -Wall $(X11_CFLAGS) -$(OUT)/platform/x11/%.o: platform/x11/%.rc | $(ALL_DIR) - $(WINDRES_CMD) +$(OUT)/platform/x11/curl/%.o : platform/x11/%.c + $(CC_CMD) -Wall $(X11_CFLAGS) $(CURL_CFLAGS) -DHAVE_CURL -$(OUT)/platform/x11/curl/%.o : platform/x11/%.c | $(ALL_DIR) - $(CC_CMD) $(X11_CFLAGS) $(CURL_CFLAGS) -DHAVE_CURL +$(OUT)/platform/gl/%.o : platform/gl/%.c + $(CC_CMD) -Wall $(GLUT_CFLAGS) -$(OUT)/platform/gl/%.o : platform/gl/%.c | $(ALL_DIR) - $(CC_CMD) $(GLUT_CFLAGS) +$(OUT)/source/%.o : source/%.c + $(CC_CMD) -Wall -Wdeclaration-after-statement $(THIRD_CFLAGS) -$(OUT)/%.o : %.c | $(ALL_DIR) - $(CC_CMD) +$(OUT)/platform/%.o : platform/%.c + $(CC_CMD) -Wall -$(OUT)/%.o : %.cpp | $(ALL_DIR) - $(CXX_CMD) +$(OUT)/%.o: %.rc + $(WINDRES_CMD) .PRECIOUS : $(OUT)/%.o # Keep intermediates from chained rules +.PRECIOUS : $(OUT)/%.exe # Keep intermediates from chained rules # --- File lists --- -FITZ_HDR := include/mupdf/fitz.h $(wildcard include/mupdf/fitz/*.h) -PDF_HDR := include/mupdf/pdf.h $(wildcard include/mupdf/pdf/*.h) -THREAD_HDR := include/mupdf/helpers/mu-threads.h -PKCS7_HDR := $(sort $(wildcard include/mupdf/helpers/pkcs7-*.h)) - -FITZ_SRC := $(sort $(wildcard source/fitz/*.c)) -PDF_SRC := $(sort $(wildcard source/pdf/*.c)) -XPS_SRC := $(sort $(wildcard source/xps/*.c)) -SVG_SRC := $(sort $(wildcard source/svg/*.c)) -CBZ_SRC := $(sort $(wildcard source/cbz/*.c)) -HTML_SRC := $(sort $(wildcard source/html/*.c)) -GPRF_SRC := $(sort $(wildcard source/gprf/*.c)) -THREAD_SRC := $(sort $(wildcard source/helpers/mu-threads/*.c)) -PKCS7_SRC := $(wildcard source/helpers/pkcs7/pkcs7-check.c) -ifeq "$(HAVE_LIBCRYPTO)" "yes" -PKCS7_SRC += $(wildcard source/helpers/pkcs7/pkcs7-openssl.c) -endif +THIRD_OBJ := $(THIRD_SRC:%.c=$(OUT)/%.o) +THIRD_OBJ := $(THIRD_OBJ:%.cc=$(OUT)/%.o) + +MUPDF_SRC := $(sort $(wildcard source/fitz/*.c)) +MUPDF_SRC += $(sort $(wildcard source/pdf/*.c)) +MUPDF_SRC += $(sort $(wildcard source/xps/*.c)) +MUPDF_SRC += $(sort $(wildcard source/svg/*.c)) +MUPDF_SRC += $(sort $(wildcard source/html/*.c)) +MUPDF_SRC += $(sort $(wildcard source/cbz/*.c)) +MUPDF_SRC += $(sort $(wildcard source/gprf/*.c)) + +MUPDF_OBJ := $(MUPDF_SRC:%.c=$(OUT)/%.o) -FITZ_SRC_HDR := $(wildcard source/fitz/*.h) -PDF_SRC_HDR := $(wildcard source/pdf/*.h) -XPS_SRC_HDR := $(wildcard source/xps/*.h) -SVG_SRC_HDR := $(wildcard source/svg/*.h) -HTML_SRC_HDR := $(wildcard source/html/*.h) -GPRF_SRC_HDR := $(wildcard source/gprf/*.h) - -FITZ_OBJ := $(FITZ_SRC:%.c=$(OUT)/%.o) -PDF_OBJ := $(PDF_SRC:%.c=$(OUT)/%.o) -XPS_OBJ := $(XPS_SRC:%.c=$(OUT)/%.o) -SVG_OBJ := $(SVG_SRC:%.c=$(OUT)/%.o) -CBZ_OBJ := $(CBZ_SRC:%.c=$(OUT)/%.o) -HTML_OBJ := $(HTML_SRC:%.c=$(OUT)/%.o) -GPRF_OBJ := $(GPRF_SRC:%.c=$(OUT)/%.o) +THREAD_SRC := source/helpers/mu-threads/mu-threads.c THREAD_OBJ := $(THREAD_SRC:%.c=$(OUT)/%.o) + +PKCS7_SRC := source/helpers/pkcs7/pkcs7-check.c +ifeq ($(HAVE_LIBCRYPTO),yes) + PKCS7_SRC += source/helpers/pkcs7/pkcs7-openssl.c +endif PKCS7_OBJ := $(PKCS7_SRC:%.c=$(OUT)/%.o) -SIGNATURE_OBJ := $(OUT)/platform/x11/pdfapp.o $(OUT)/source/tools/pdfsign.o - -$(FITZ_OBJ) : $(FITZ_HDR) $(FITZ_SRC_HDR) -$(PDF_OBJ) : $(FITZ_HDR) $(PDF_HDR) $(PDF_SRC_HDR) -$(PDF_OBJ) : $(FITZ_SRC_HDR) # ugh, ugly hack for fitz-imp.h + colorspace-imp.h -$(XPS_OBJ) : $(FITZ_HDR) $(XPS_HDR) $(XPS_SRC_HDR) -$(XPS_OBJ) : $(FITZ_SRC_HDR) # ugh, ugly hack for fitz-imp.h -$(SVG_OBJ) : $(FITZ_HDR) $(SVG_HDR) $(SVG_SRC_HDR) -$(CBZ_OBJ) : $(FITZ_HDR) $(CBZ_HDR) $(CBZ_SRC_HDR) -$(HTML_OBJ) : $(FITZ_HDR) $(HTML_HDR) $(HTML_SRC_HDR) -$(GPRF_OBJ) : $(FITZ_HDR) $(GPRF_HDR) $(GPRF_SRC_HDR) -$(THREAD_OBJ) : $(THREAD_HDR) -$(PKCS7_OBJ) : $(FITZ_HDR) $(PDF_HDR) $(PKCS7_HDR) -$(SIGNATURE_OBJ) : $(PKCS7_HDR) # --- Generated embedded font files --- HEXDUMP_EXE := $(OUT)/scripts/hexdump.exe -FONT_BIN := $(sort $(wildcard resources/fonts/urw/*.cff)) +FONT_BIN := $(sort $(wildcard resources/fonts/urw/*.cff)) FONT_BIN += $(sort $(wildcard resources/fonts/han/*.ttc)) FONT_BIN += $(sort $(wildcard resources/fonts/droid/*.ttf)) FONT_BIN += $(sort $(wildcard resources/fonts/noto/*.otf)) @@ -193,50 +141,46 @@ FONT_BIN += $(sort $(wildcard resources/fonts/sil/*.cff)) FONT_GEN := $(FONT_BIN:%=generated/%.c) -generated/%.cff.c : %.cff $(HEXDUMP_EXE) ; $(QUIET_GEN) mkdir -p $(dir $@) ; $(HEXDUMP_EXE) -s $@ $< -generated/%.otf.c : %.otf $(HEXDUMP_EXE) ; $(QUIET_GEN) mkdir -p $(dir $@) ; $(HEXDUMP_EXE) -s $@ $< -generated/%.ttf.c : %.ttf $(HEXDUMP_EXE) ; $(QUIET_GEN) mkdir -p $(dir $@) ; $(HEXDUMP_EXE) -s $@ $< -generated/%.ttc.c : %.ttc $(HEXDUMP_EXE) ; $(QUIET_GEN) mkdir -p $(dir $@) ; $(HEXDUMP_EXE) -s $@ $< +generated/%.cff.c : %.cff $(HEXDUMP_EXE) ; $(QUIET_GEN) $(MKTGTDIR) ; $(HEXDUMP_EXE) -s $@ $< +generated/%.otf.c : %.otf $(HEXDUMP_EXE) ; $(QUIET_GEN) $(MKTGTDIR) ; $(HEXDUMP_EXE) -s $@ $< +generated/%.ttf.c : %.ttf $(HEXDUMP_EXE) ; $(QUIET_GEN) $(MKTGTDIR) ; $(HEXDUMP_EXE) -s $@ $< +generated/%.ttc.c : %.ttc $(HEXDUMP_EXE) ; $(QUIET_GEN) $(MKTGTDIR) ; $(HEXDUMP_EXE) -s $@ $< -ifeq "$(OS)" "Linux" - FONT_OBJ := $(FONT_BIN:%=$(OUT)/%.o) +ifeq ($(OS),Linux) + MUPDF_OBJ += $(FONT_BIN:%=$(OUT)/%.o) $(OUT)/%.cff.o : %.cff ; $(OBJCOPY_CMD) $(OUT)/%.otf.o : %.otf ; $(OBJCOPY_CMD) $(OUT)/%.ttf.o : %.ttf ; $(OBJCOPY_CMD) $(OUT)/%.ttc.o : %.ttc ; $(OBJCOPY_CMD) else - FONT_OBJ := $(FONT_GEN:%.c=$(OUT)/%.o) + MUPDF_OBJ += $(FONT_GEN:%.c=$(OUT)/%.o) endif generate: $(FONT_GEN) # --- Generated ICC profiles --- -source/fitz/icc/gray.icc.h: resources/icc/gray.icc - $(QUIET_GEN) xxd -i $< | sed 's/unsigned/static const unsigned/' > $@ -source/fitz/icc/rgb.icc.h: resources/icc/rgb.icc - $(QUIET_GEN) xxd -i $< | sed 's/unsigned/static const unsigned/' > $@ -source/fitz/icc/cmyk.icc.h: resources/icc/cmyk.icc - $(QUIET_GEN) xxd -i $< | sed 's/unsigned/static const unsigned/' > $@ -source/fitz/icc/lab.icc.h: resources/icc/lab.icc +source/fitz/icc/%.icc.h: resources/icc/%.icc $(QUIET_GEN) xxd -i $< | sed 's/unsigned/static const unsigned/' > $@ -generate: source/fitz/icc/gray.icc.h source/fitz/icc/rgb.icc.h source/fitz/icc/cmyk.icc.h source/fitz/icc/lab.icc.h +generate: source/fitz/icc/gray.icc.h +generate: source/fitz/icc/rgb.icc.h +generate: source/fitz/icc/cmyk.icc.h +generate: source/fitz/icc/lab.icc.h # --- Generated CMap files --- CMAP_GEN := $(notdir $(sort $(wildcard resources/cmaps/*))) CMAP_GEN := $(CMAP_GEN:%=source/pdf/cmaps/%.h) -source/pdf/cmaps/%.h: resources/cmaps/% - $(MKTGTDIR) +source/pdf/cmaps/%.h: resources/cmaps/% scripts/cmapdump.py $(QUIET_GEN) python scripts/cmapdump.py > $@ $< generate: $(CMAP_GEN) # --- Generated embedded javascript files --- -source/pdf/js/util.js.h: source/pdf/js/util.js scripts/jsdump.sed +source/pdf/js/%.js.h: source/pdf/js/%.js scripts/jsdump.sed $(QUIET_GEN) sed -f scripts/jsdump.sed < $< > $@ generate: source/pdf/js/util.js.h @@ -244,34 +188,9 @@ generate: source/pdf/js/util.js.h # --- Library --- MUPDF_LIB = $(OUT)/libmupdf.a -THIRD_LIB = $(OUT)/libmupdfthird.a -THREAD_LIB = $(OUT)/libmuthreads.a -PKCS7_LIB = $(OUT)/libmupkcs7.a - -MUPDF_OBJ := \ - $(FITZ_OBJ) \ - $(PDF_OBJ) \ - $(CMAP_OBJ) \ - $(FONT_OBJ) \ - $(JAVASCRIPT_OBJ) \ - $(XPS_OBJ) \ - $(SVG_OBJ) \ - $(CBZ_OBJ) \ - $(HTML_OBJ) \ - $(GPRF_OBJ) \ - $(ICC_OBJ) - -THIRD_OBJ := \ - $(FREETYPE_OBJ) \ - $(HARFBUZZ_OBJ) \ - $(JBIG2DEC_OBJ) \ - $(JPEGXR_OBJ) \ - $(LIBJPEG_OBJ) \ - $(LURATECH_OBJ) \ - $(MUJS_OBJ) \ - $(OPENJPEG_OBJ) \ - $(ZLIB_OBJ) \ - $(LCMS2_OBJ) +THIRD_LIB = $(OUT)/libmupdf-third.a +THREAD_LIB = $(OUT)/libmupdf-threads.a +PKCS7_LIB = $(OUT)/libmupdf-pkcs7.a $(MUPDF_LIB) : $(MUPDF_OBJ) $(THIRD_LIB) : $(THIRD_OBJ) @@ -280,83 +199,106 @@ $(PKCS7_LIB) : $(PKCS7_OBJ) INSTALL_LIBS := $(MUPDF_LIB) $(THIRD_LIB) -# --- Tools and Apps --- +# --- Main tools and viewers --- -MUTOOL_EXE := $(OUT)/mutool -MUTOOL_SRC := source/tools/mutool.c source/tools/muconvert.c source/tools/mudraw.c source/tools/murun.c source/tools/mutrace.c source/tools/cmapdump.c +MUTOOL_SRC := source/tools/mutool.c +MUTOOL_SRC += source/tools/muconvert.c +MUTOOL_SRC += source/tools/mudraw.c +MUTOOL_SRC += source/tools/murun.c +MUTOOL_SRC += source/tools/mutrace.c +MUTOOL_SRC += source/tools/cmapdump.c MUTOOL_SRC += $(sort $(wildcard source/tools/pdf*.c)) MUTOOL_OBJ := $(MUTOOL_SRC:%.c=$(OUT)/%.o) -$(MUTOOL_OBJ) : $(FITZ_HDR) $(PDF_HDR) -$(MUTOOL_EXE) : $(MUTOOL_OBJ) $(MUPDF_LIB) $(THIRD_LIB) $(THREAD_LIB) $(PKCS7_LIB) - $(LINK_CMD) $(THREADING_LIBS) +MUTOOL_EXE := $(OUT)/mutool +$(MUTOOL_EXE) : $(MUTOOL_OBJ) $(MUPDF_LIB) $(THIRD_LIB) $(PKCS7_LIB) $(THREAD_LIB) + $(LINK_CMD) $(THIRD_LIBS) $(THREADING_LIBS) +INSTALL_APPS += $(MUTOOL_EXE) + +ifeq ($(HAVE_GLUT),yes) + MUVIEW_GLUT_SRC += $(sort $(wildcard platform/gl/*.c)) + MUVIEW_GLUT_OBJ := $(MUVIEW_GLUT_SRC:%.c=$(OUT)/%.o) + MUVIEW_GLUT_EXE := $(OUT)/mupdf-gl + $(MUVIEW_GLUT_EXE) : $(MUVIEW_GLUT_OBJ) $(MUPDF_LIB) $(THIRD_LIB) $(GLUT_LIB) + $(LINK_CMD) $(THIRD_LIBS) $(WIN32_LDFLAGS) $(GLUT_LIBS) + INSTALL_APPS += $(MUVIEW_GLUT_EXE) +endif + +ifeq ($(HAVE_X11),yes) + MUVIEW_X11_EXE := $(OUT)/mupdf-x11 + MUVIEW_X11_OBJ += $(OUT)/platform/x11/pdfapp.o + MUVIEW_X11_OBJ += $(OUT)/platform/x11/x11_main.o + MUVIEW_X11_OBJ += $(OUT)/platform/x11/x11_image.o + $(MUVIEW_X11_EXE) : $(MUVIEW_X11_OBJ) $(MUPDF_LIB) $(THIRD_LIB) $(PKCS7_LIB) + $(LINK_CMD) $(THIRD_LIBS) $(X11_LIBS) + INSTALL_APPS += $(MUVIEW_X11_EXE) +endif + +ifeq ($(HAVE_WIN32),yes) + MUVIEW_WIN32_EXE := $(OUT)/mupdf-w32 + MUVIEW_WIN32_OBJ += $(OUT)/platform/x11/pdfapp.o + MUVIEW_WIN32_OBJ += $(OUT)/platform/x11/win_main.o + MUVIEW_WIN32_OBJ += $(OUT)/platform/x11/win_res.o + $(MUVIEW_WIN32_EXE) : $(MUVIEW_WIN32_OBJ) $(MUPDF_LIB) $(THIRD_LIB) $(PKCS7_LIB) + $(LINK_CMD) $(THIRD_LIBS) $(WIN32_LDFLAGS) $(WIN32_LIBS) + INSTALL_APPS += $(MUVIEW_WIN32_EXE) +endif + +# --- Extra tools and viewers --- -MURASTER_EXE := $(OUT)/muraster MURASTER_OBJ := $(OUT)/source/tools/muraster.o -$(MURASTER_OBJ) : $(FITZ_HDR) +MURASTER_EXE := $(OUT)/muraster $(MURASTER_EXE) : $(MURASTER_OBJ) $(MUPDF_LIB) $(THIRD_LIB) $(THREAD_LIB) - $(LINK_CMD) $(THREADING_LIBS) + $(LINK_CMD) $(THIRD_LIBS) $(THREADING_LIBS) +EXTRA_APPS += $(MURASTER_EXE) -MJSGEN_EXE := $(OUT)/mjsgen MJSGEN_OBJ := $(OUT)/source/tools/mjsgen.o -$(MJSGEN_OBJ) : $(FITZ_HDR) $(PDF_HDR) +MJSGEN_EXE := $(OUT)/mjsgen $(MJSGEN_EXE) : $(MJSGEN_OBJ) $(MUPDF_LIB) $(THIRD_LIB) - $(LINK_CMD) + $(LINK_CMD) $(THIRD_LIBS) +EXTRA_APPS += $(MJSGEN_EXE) -MUJSTEST_EXE := $(OUT)/mujstest MUJSTEST_OBJ := $(addprefix $(OUT)/platform/x11/, jstest_main.o pdfapp.o) -$(MUJSTEST_OBJ) : $(FITZ_HDR) $(PDF_HDR) +MUJSTEST_EXE := $(OUT)/mujstest $(MUJSTEST_EXE) : $(MUJSTEST_OBJ) $(MUPDF_LIB) $(THIRD_LIB) $(PKCS7_LIB) - $(LINK_CMD) + $(LINK_CMD) $(THIRD_LIBS) +EXTRA_APPS += $(MUJSTEST_EXE) -ifeq "$(HAVE_X11)" "yes" -MUVIEW_X11_EXE := $(OUT)/mupdf-x11 -MUVIEW_X11_OBJ := $(addprefix $(OUT)/platform/x11/, x11_main.o x11_image.o pdfapp.o) -$(MUVIEW_X11_OBJ) : $(FITZ_HDR) $(PDF_HDR) -$(MUVIEW_X11_EXE) : $(MUVIEW_X11_OBJ) $(MUPDF_LIB) $(THIRD_LIB) $(PKCS7_LIB) - $(LINK_CMD) $(X11_LIBS) - -ifeq "$(HAVE_CURL)" "yes" -MUVIEW_X11_CURL_EXE := $(OUT)/mupdf-x11-curl -MUVIEW_X11_CURL_OBJ := $(addprefix $(OUT)/platform/x11/curl/, x11_main.o x11_image.o pdfapp.o curl_stream.o) -$(MUVIEW_X11_CURL_OBJ) : $(FITZ_HDR) $(PDF_HDR) -$(MUVIEW_X11_CURL_EXE) : $(MUVIEW_X11_CURL_OBJ) $(MUPDF_LIB) $(THIRD_LIB) $(CURL_LIB) $(PKCS7_LIB) - $(LINK_CMD) $(X11_LIBS) $(CURL_LIBS) $(SYS_CURL_DEPS) +ifeq ($(HAVE_X11),yes) +ifeq ($(HAVE_CURL),yes) + MUVIEW_X11_CURL_EXE := $(OUT)/mupdf-x11-curl + MUVIEW_X11_CURL_OBJ += $(OUT)/platform/x11/curl/pdfapp.o + MUVIEW_X11_CURL_OBJ += $(OUT)/platform/x11/curl/x11_main.o + MUVIEW_X11_CURL_OBJ += $(OUT)/platform/x11/curl/x11_image.o + MUVIEW_X11_CURL_OBJ += $(OUT)/platform/x11/curl/curl_stream.o + $(MUVIEW_X11_CURL_EXE) : $(MUVIEW_X11_CURL_OBJ) $(MUPDF_LIB) $(THIRD_LIB) $(PKCS7_LIB) $(CURL_LIB) + $(LINK_CMD) $(THIRD_LIBS) $(X11_LIBS) $(CURL_LIBS) + EXTRA_APPS += $(MUVIEW_X11_CURL_EXE) endif endif -ifeq "$(HAVE_GLUT)" "yes" -MUVIEW_GLUT_EXE := $(OUT)/mupdf-gl -MUVIEW_GLUT_OBJ := $(addprefix $(OUT)/platform/gl/, gl-font.o gl-input.o gl-main.o) -$(MUVIEW_GLUT_OBJ) : $(FITZ_HDR) $(PDF_HDR) platform/gl/gl-app.h -$(MUVIEW_GLUT_EXE) : $(MUVIEW_GLUT_OBJ) $(MUPDF_LIB) $(THIRD_LIB) $(GLUT_LIB) - $(LINK_CMD) $(GLUT_LIB) $(GLUT_LIBS) -endif +# --- Generated dependencies --- -ifeq "$(HAVE_WIN32)" "yes" -MUVIEW_WIN32_EXE := $(OUT)/mupdf -MUVIEW_WIN32_OBJ := $(addprefix $(OUT)/platform/x11/, win_main.o pdfapp.o win_res.o) -$(MUVIEW_WIN32_OBJ) : $(FITZ_HDR) $(PDF_HDR) -$(MUVIEW_WIN32_EXE) : $(MUVIEW_WIN32_OBJ) $(MUPDF_LIB) $(THIRD_LIB) $(PKCS7_LIB) - $(LINK_CMD) $(WIN32_LIBS) -endif +-include $(MUPDF_OBJ:%.o=%.d) +-include $(PKCS7_OBJ:%.o=%.d) +-include $(THREAD_OBJ:%.o=%.d) +-include $(THIRD_OBJ:%.o=%.d) +-include $(GLUT_OBJ:%.o=%.d) +-include $(CURL_OBJ:%.o=%.d) -MUVIEW_EXE := $(MUVIEW_X11_EXE) $(MUVIEW_WIN32_EXE) $(MUVIEW_GLUT_EXE) -MUVIEW_CURL_EXE := $(MUVIEW_X11_CURL_EXE) $(MUVIEW_WIN32_CURL_EXE) +-include $(MUTOOL_OBJ:%.o=%.d) +-include $(MUVIEW_GLUT_OBJ:%.o=%.d) +-include $(MUVIEW_X11_OBJ:%.o=%.d) +-include $(MUVIEW_WIN32_OBJ:%.o=%.d) -INSTALL_APPS := $(MUTOOL_EXE) $(MUVIEW_EXE) -EXTRA_APPS += $(MURASTER_EXE) -EXTRA_APPS += $(MUVIEW_CURL_EXE) -EXTRA_APPS += $(MUJSTEST_EXE) -EXTRA_APPS += $(MJSGEN_EXE) +-include $(MURASTER_OBJ:%.o=%.d) +-include $(MUVIEW_X11_CURL_OBJ:%.o=%.d) # --- Examples --- -examples: $(OUT)/example $(OUT)/multi-threaded - $(OUT)/example: docs/examples/example.c $(MUPDF_LIB) $(THIRD_LIB) - $(LINK_CMD) $(CFLAGS) + $(LINK_CMD) $(CFLAGS) $(THIRD_LIBS) $(OUT)/multi-threaded: docs/examples/multi-threaded.c $(MUPDF_LIB) $(THIRD_LIB) - $(LINK_CMD) $(CFLAGS) -lpthread + $(LINK_CMD) $(CFLAGS) $(THIRD_LIBS) -lpthread # --- Update version string header --- @@ -370,7 +312,7 @@ version: %.txt: %.1 nroff -man $< | col -b | expand > $@ -MAN_FILES := $(wildcard docs/man/*.1) +MAN_FILES := $(sort $(wildcard docs/man/*.1)) TXT_FILES := $(MAN_FILES:%.1=%.txt) catman: $(TXT_FILES) @@ -1,145 +1,146 @@ # Configuration for the Makefile -OS ?= $(shell uname) +OS := $(shell uname) OS := $(OS:MINGW%=MINGW) OS := $(OS:MSYS%=MINGW) OS := $(OS:Windows_NT=MINGW) OS := $(OS:Darwin=MACOS) -HAVE_LIBDL ?= yes - -CFLAGS += -Wall -Wdeclaration-after-statement - -ifeq (,$(findstring -fembed-bitcode,$(XCFLAGS))) -# clang does not support these in combination with -fembed-bitcode -CFLAGS += -ffunction-sections -fdata-sections +ifeq ($(findstring -fembed-bitcode,$(XCFLAGS)),) + # clang does not support these in combination with -fembed-bitcode + CFLAGS += -ffunction-sections -fdata-sections endif -ifeq "$(OS)" "MACOS" -LDREMOVEUNREACH := -Wl,-dead_strip +ifeq ($(OS),MACOS) + LDREMOVEUNREACH := -Wl,-dead_strip else -LDREMOVEUNREACH := -Wl,--gc-sections + LDREMOVEUNREACH := -Wl,--gc-sections endif -SANITIZE_FLAGS := -fsanitize=address +SANITIZE_FLAGS += -fsanitize=address SANITIZE_FLAGS += -fsanitize=leak -ifeq "$(build)" "debug" -CFLAGS += -pipe -g -LDFLAGS += -g -else ifeq "$(build)" "release" -CFLAGS += -pipe -O2 -DNDEBUG -fomit-frame-pointer -LDFLAGS += $(LDREMOVEUNREACH) -Wl,-s -else ifeq "$(build)" "small" -CFLAGS += -pipe -Os -DNDEBUG -fomit-frame-pointer -LDFLAGS += $(LDREMOVEUNREACH) -Wl,-s -else ifeq "$(build)" "valgrind" -CFLAGS += -pipe -O2 -DNDEBUG -DPACIFY_VALGRIND -fno-omit-frame-pointer -LDFLAGS += $(LDREMOVEUNREACH) -Wl,-s -else ifeq "$(build)" "sanitize" -CFLAGS += -pipe -g -fno-omit-frame-pointer $(SANITIZE_FLAGS) -LDFLAGS += -g $(SANITIZE_FLAGS) -else ifeq "$(build)" "sanitize-release" -CFLAGS += -pipe -O2 -DNDEBUG -fno-omit-frame-pointer $(SANITIZE_FLAGS) -LDFLAGS += $(LDREMOVEUNREACH) -Wl,-s $(SANITIZE_FLAGS) -else ifeq "$(build)" "profile" -CFLAGS += -pipe -O2 -DNDEBUG -pg -LDFLAGS += -pg -else ifeq "$(build)" "coverage" -CFLAGS += -pipe -g -pg -fprofile-arcs -ftest-coverage -LIBS += -lgcov -else ifeq "$(build)" "native" -CFLAGS += -pipe -O2 -DNDEBUG -fomit-frame-pointer -march=native -mfpmath=sse -LDFLAGS += $(LDREMOVEUNREACH) -Wl,-s -else ifeq "$(build)" "memento" -CFLAGS += -pipe -g -DMEMENTO -LDFLAGS += -g -d -rdynamic -ifeq "$(HAVE_LIBDL)" "yes" -CFLAGS += -DHAVE_LIBDL -LIBS += -ldl -endif -else ifeq "$(build)" "gperf" -CFLAGS += -pipe -O2 -DNDEBUG -fomit-frame-pointer -DGPERF -LIBS += -lprofiler +ifeq ($(build),debug) + CFLAGS += -pipe -g + LDFLAGS += -g +else ifeq ($(build),release) + CFLAGS += -pipe -O2 -DNDEBUG -fomit-frame-pointer + LDFLAGS += $(LDREMOVEUNREACH) -Wl,-s +else ifeq ($(build),small) + CFLAGS += -pipe -Os -DNDEBUG -fomit-frame-pointer + LDFLAGS += $(LDREMOVEUNREACH) -Wl,-s +else ifeq ($(build),valgrind) + CFLAGS += -pipe -O2 -DNDEBUG -DPACIFY_VALGRIND -fno-omit-frame-pointer + LDFLAGS += $(LDREMOVEUNREACH) -Wl,-s +else ifeq ($(build),sanitize) + CFLAGS += -pipe -g -fno-omit-frame-pointer $(SANITIZE_FLAGS) + LDFLAGS += -g $(SANITIZE_FLAGS) +else ifeq ($(build),sanitize-release) + CFLAGS += -pipe -O2 -DNDEBUG -fno-omit-frame-pointer $(SANITIZE_FLAGS) + LDFLAGS += $(LDREMOVEUNREACH) -Wl,-s $(SANITIZE_FLAGS) +else ifeq ($(build),profile) + CFLAGS += -pipe -O2 -DNDEBUG -pg + LDFLAGS += -pg +else ifeq ($(build),coverage) + CFLAGS += -pipe -g -pg -fprofile-arcs -ftest-coverage + LIBS += -lgcov +else ifeq ($(build),native) + CFLAGS += -pipe -O2 -DNDEBUG -fomit-frame-pointer -march=native -mfpmath=sse + LDFLAGS += $(LDREMOVEUNREACH) -Wl,-s +else ifeq ($(build),memento) + CFLAGS += -pipe -g -DMEMENTO + LDFLAGS += -g -d -rdynamic + ifneq ($(HAVE_LIBDL),no) + CFLAGS += -DHAVE_LIBDL + LIBS += -ldl + endif +else ifeq ($(build),gperf) + CFLAGS += -pipe -O2 -DNDEBUG -fomit-frame-pointer -DGPERF + LIBS += -lprofiler else -$(error unknown build setting: '$(build)') -endif - -# Windows (MINGW) build doesn't use system libraries. -ifeq "$(OS)" "MINGW" - -WINDRES := windres -HAVE_X11 ?= no -HAVE_WIN32 := yes - -# Mac OS X doesn't have pkg-config so we hard code paths. -else ifeq "$(OS)" "MACOS" - -HAVE_X11 ?= no - -HAVE_GLUT ?= yes -SYS_GLUT_CFLAGS := -Wno-deprecated-declarations -SYS_GLUT_LIBS := -framework GLUT -framework OpenGL - -CC = xcrun cc -AR = xcrun ar -LD = xcrun ld -RANLIB_CMD = xcrun ranlib $@ - -# Linux uses pkg-config for system libraries. -else ifeq "$(OS)" "Linux" - -HAVE_PTHREAD := yes -SYS_PTHREAD_CFLAGS := -SYS_PTHREAD_LIBS := -lpthread - -HAVE_GLUT := yes -SYS_GLUT_CFLAGS := -SYS_GLUT_LIBS := -lglut -lGL - -ifeq "$(shell pkg-config --exists 'libcrypto >= 1.1.0' && echo yes)" "yes" -HAVE_LIBCRYPTO := yes -SYS_LIBCRYPTO_CFLAGS := -DHAVE_LIBCRYPTO $(shell pkg-config --cflags libcrypto) -SYS_LIBCRYPTO_LIBS := $(shell pkg-config --libs libcrypto) -endif - -ifeq "$(shell pkg-config --exists libcurl && echo yes)" "yes" -HAVE_CURL := yes -SYS_CURL_CFLAGS := $(shell pkg-config --cflags libcurl) -SYS_CURL_LIBS := $(shell pkg-config --libs libcurl) -ifeq "$(shell pkg-config --exists openssl && echo yes)" "yes" -HAVE_OPENSSL_SSL := yes -SYS_CURL_CFLAGS += $(shell pkg-config --cflags openssl) -SYS_CURL_DEPS += $(shell pkg-config --libs openssl) -endif -endif -SYS_CURL_DEPS += -lpthread -lrt - -ifeq "$(shell pkg-config --exists x11 xext && echo yes)" "yes" -HAVE_X11 := yes -SYS_X11_CFLAGS := $(shell pkg-config --cflags x11 xext) -SYS_X11_LIBS := $(shell pkg-config --libs x11 xext) -endif - -ifeq "$(shell pkg-config --exists harfbuzz && echo yes)" "yes" -SYS_HARFBUZZ_CFLAGS := $(shell pkg-config --cflags harfbuzz) -SYS_HARFBUZZ_LIBS := $(shell pkg-config --libs harfbuzz) -endif - -ifeq "$(shell pkg-config --exists freetype2 && echo yes)" "yes" -SYS_FREETYPE_CFLAGS := $(shell pkg-config --cflags freetype2) -SYS_FREETYPE_LIBS := $(shell pkg-config --libs freetype2) -endif - -ifeq "$(shell pkg-config --exists libopenjp2 && echo yes)" "yes" -SYS_OPENJPEG_CFLAGS := $(shell pkg-config --cflags libopenjp2) -SYS_OPENJPEG_LIBS := $(shell pkg-config --libs libopenjp2) + $(error unknown build setting: '$(build)') endif +# Default system libraries +SYS_FREETYPE_LIBS := -lfreetype2 +SYS_HARFBUZZ_LIBS := -lharfbuzz SYS_JBIG2DEC_LIBS := -ljbig2dec +SYS_JPEGXR_LIBS := -ljpegxr +SYS_LCMS2_LIBS := -llcms2-art SYS_LIBJPEG_LIBS := -ljpeg +SYS_MUJS_LIBS := -lmujs +SYS_OPENJPEG_LIBS := -lopenjp2 SYS_ZLIB_LIBS := -lz +ifeq ($(OS),MINGW) + WINDRES := windres + HAVE_WIN32 := yes + +else ifeq ($(OS),MACOS) + HAVE_GLUT := yes + SYS_GLUT_CFLAGS := -Wno-deprecated-declarations + SYS_GLUT_LIBS := -framework GLUT -framework OpenGL + CC = xcrun cc + AR = xcrun ar + LD = xcrun ld + RANLIB = xcrun ranlib + +else ifeq ($(OS),Linux) + ifeq ($(shell pkg-config --exists freetype2 && echo yes),yes) + SYS_FREETYPE_CFLAGS := $(shell pkg-config --cflags freetype2) + SYS_FREETYPE_LIBS := $(shell pkg-config --libs freetype2) + endif + ifeq ($(shell pkg-config --exists harfbuzz && echo yes),yes) + SYS_HARFBUZZ_CFLAGS := $(shell pkg-config --cflags harfbuzz) + SYS_HARFBUZZ_LIBS := $(shell pkg-config --libs harfbuzz) + endif + ifeq ($(shell pkg-config --exists lcms2 && echo yes),yes) + SYS_LCMS2_CFLAGS := $(shell pkg-config --cflags lcms2) + SYS_LCMS2_LIBS := $(shell pkg-config --libs lcms2) + endif + ifeq ($(shell pkg-config --exists libjpeg && echo yes),yes) + SYS_LIBJPEG_CFLAGS := $(shell pkg-config --cflags libjpeg) + SYS_LIBJPEG_LIBS := $(shell pkg-config --libs libjpeg) + endif + ifeq ($(shell pkg-config --exists libopenjp2 && echo yes),yes) + SYS_OPENJPEG_CFLAGS := $(shell pkg-config --cflags libopenjp2) + SYS_OPENJPEG_LIBS := $(shell pkg-config --libs libopenjp2) + endif + ifeq ($(shell pkg-config --exists zlib && echo yes),yes) + SYS_ZLIB_CFLAGS := $(shell pkg-config --cflags zlib) + SYS_ZLIB_LIBS := $(shell pkg-config --libs zlib) + endif + + HAVE_CURL := $(shell pkg-config --exists libcurl && echo yes) + ifeq ($(HAVE_CURL),yes) + SYS_CURL_CFLAGS := $(shell pkg-config --cflags libcurl) + SYS_CURL_LIBS := $(shell pkg-config --libs libcurl) + endif + + HAVE_GLUT := yes + ifeq ($(HAVE_GLUT),yes) + SYS_GLUT_CFLAGS := + SYS_GLUT_LIBS := -lglut -lGL + endif + + HAVE_X11 := $(shell pkg-config --exists x11 xext && echo yes) + ifeq ($(HAVE_X11),yes) + X11_CFLAGS := $(shell pkg-config --cflags x11 xext) + X11_LIBS := $(shell pkg-config --libs x11 xext) + endif + + HAVE_LIBCRYPTO := $(shell pkg-config --exists 'libcrypto >= 1.1.0' && echo yes) + ifeq ($(HAVE_LIBCRYPTO),yes) + LIBCRYPTO_CFLAGS := $(shell pkg-config --cflags libcrypto) -DHAVE_LIBCRYPTO + LIBCRYPTO_LIBS := $(shell pkg-config --libs libcrypto) + endif + + HAVE_PTHREAD := yes + ifeq ($(HAVE_PTHREAD),yes) + PTHREAD_CFLAGS := + PTHREAD_LIBS := -lpthread + endif + endif # The following section is an example of how to simply do cross-compilation @@ -161,10 +162,9 @@ CXX = arm-none-linux-gnueabi-g++ LD = arm-none-linux-gnueabi-gcc AR = arm-none-linux-gnueabi-ar CFLAGS += -O3 -mfpu=neon -mcpu=cortex-a8 -mfloat-abi=softfp -ftree-vectorize -ffast-math -fsingle-precision-constant -CROSSCOMPILE=yes HAVE_PTHREAD := yes -SYS_PTHREAD_CFLAGS := -SYS_PTHREAD_LIBS := -lpthread +PTHREAD_CFLAGS := +PTHREAD_LIBS := -lpthread endif ifeq "$(OS)" "webos-pre-cross" @@ -173,7 +173,6 @@ CXX = arm-none-linux-gnueabi-g++ LD = arm-none-linux-gnueabi-gcc AR = arm-none-linux-gnueabi-ar CFLAGS += -O3 -mcpu=cortex-a8 -mfpu=neon -mfloat-abi=softfp -ftree-vectorize -ffast-math -fsingle-precision-constant -CROSSCOMPILE=yes endif ifeq "$(OS)" "webos-pixi-cross" @@ -182,7 +181,6 @@ CXX = arm-none-linux-gnueabi-g++ LD = arm-none-linux-gnueabi-gcc AR = arm-none-linux-gnueabi-ar CFLAGS += -O3 -mcpu=arm1136jf-s -mfpu=vfp -mfloat-abi=softfp -ffast-math -fsingle-precision-constant -CROSSCOMPILE=yes endif ifeq "$(OS)" "w64_x86-cross-mingw32" @@ -191,7 +189,6 @@ CXX = i686-w64-mingw32-g++ LD = i686-w64-mingw32-gcc AR = i686-w64-mingw32-ar WINDRES = i686-w64-mingw32-windres -CROSSCOMPILE=yes HAVE_WIN32=yes endif @@ -201,7 +198,6 @@ CXX = x86_64-w64-mingw32-g++ LD = x86_64-w64-mingw32-gcc AR = x86_64-w64-mingw32-ar WINDRES = x86-64-mingw32-windres -CROSSCOMPILE=yes HAVE_WIN32=yes endif @@ -214,7 +210,6 @@ CXX = $(PNACL_CXX) LD = $(PNACL_LD) AR = $(PNACL_LIB) CFLAGS += -D__NACL__ -CROSSCOMPILE=yes # Don't install libjpeg, libz, or libfreetype, since these are already # provided by naclports and the versions compiled here cause problems @@ -230,12 +225,11 @@ endif # The following section works for both device and simulator builds. ifeq "$(OS)" "ios" -CC = xcrun cc -CXX = xcrun c++ -AR = xcrun ar -LD = xcrun ld -RANLIB_CMD = xcrun ranlib $@ -CROSSCOMPILE=yes + CC = xcrun cc + CXX = xcrun c++ + AR = xcrun ar + LD = xcrun ld + RANLIB = xcrun ranlib endif ifeq "$(OS)" "tizen-arm" @@ -245,7 +239,6 @@ CC = $(TIZEN_TOOLS)gcc $(TIZEN_FLAGS) CXX = $(TIZEN_TOOLS)g++ $(TIZEN_FLAGS) AR = $(TIZEN_TOOLS)ar LD = $(TIZEN_TOOLS)ld $(TIZEN_FLAGS) -CROSSCOMPILE=yes endif ifeq "$(OS)" "tizen-x86" @@ -255,16 +248,4 @@ CC = $(TIZEN_TOOLS)gcc $(TIZEN_FLAGS) CXX = $(TIZEN_TOOLS)g++ $(TIZEN_FLAGS) AR = $(TIZEN_TOOLS)ar $(TIZEN_FLAGS) LD = $(TIZEN_TOOLS)ld $(TIZEN_FLAGS) -CROSSCOMPILE=yes -endif - -ifeq "$(HAVE_WIN32)" "yes" -WIN32_LIBS=-lcomdlg32 -lgdi32 -LDFLAGS += -Wl,-subsystem,windows -endif - -# TODO: If crosscompiling, why not just call "make libs" instead of this exception? -ifeq "$(CROSSCOMPILE)" "yes" -HAVE_X11 ?= no -HAVE_GLUT ?= no endif @@ -1,758 +1,399 @@ # GNU Makefile for third party libraries used by MuPDF -# -# If thirdparty libraries are supplied, they will be built as -# static libraries. -# -# Use 'git submodule init' and 'git submodule update' to check -# out the thirdparty libraries from git. - -FREETYPE_DIR := thirdparty/freetype -HARFBUZZ_DIR := thirdparty/harfbuzz -JBIG2DEC_DIR := thirdparty/jbig2dec -JPEGXR_DIR := thirdparty/jpegxr -LCMS2_DIR := thirdparty/lcms2 -LIBJPEG_DIR := thirdparty/libjpeg -LURATECH_DIR := thirdparty/luratech -MUJS_DIR := thirdparty/mujs -OPENJPEG_DIR := thirdparty/openjpeg/src/lib/openjp2 -ZLIB_DIR := thirdparty/zlib - -CURL_DIR := thirdparty/curl -GLUT_DIR := thirdparty/freeglut -# --- MuJS --- +ifeq ($(USE_SYSTEM_LIBS),yes) + USE_SYSTEM_FREETYPE := yes + USE_SYSTEM_HARFBUZZ := yes + USE_SYSTEM_JBIG2DEC := yes + USE_SYSTEM_JPEGXR := no # not available + USE_SYSTEM_LCMS2 := no # need lcms2-art fork + USE_SYSTEM_LIBJPEG := yes + USE_SYSTEM_MUJS := no # not available + USE_SYSTEM_OPENJPEG := yes + USE_SYSTEM_ZLIB := yes + USE_SYSTEM_GLUT := yes + USE_SYSTEM_CURL := yes +endif -ifneq "$(wildcard $(MUJS_DIR)/README)" "" +ifeq ($(OS),MACOS) + USE_SYSTEM_GLUT := yes +endif -MUJS_OUT := $(OUT)/thirdparty/mujs -MUJS_SRC := one.c +# --- FREETYPE 2 --- -MUJS_OBJ := $(addprefix $(MUJS_OUT)/, $(MUJS_SRC:%.c=%.o)) +ifeq ($(USE_SYSTEM_FREETYPE),yes) + FREETYPE_CFLAGS += $(SYS_FREETYPE_CFLAGS) + THIRD_CFLAGS += $(FREETYPE_CFLAGS) + THIRD_LIBS += $(SYS_FREETYPE_LIBS) +else -$(MUJS_OUT)/one.o: $(wildcard $(MUJS_DIR)/js*.c $(MUJS_DIR)/utf*.c $(MUJS_DIR)/regex.c $(MUJS_DIR)/*.h) +FREETYPE_CFLAGS += -Iscripts/freetype -Ithirdparty/freetype/include + +THIRD_SRC += thirdparty/freetype/src/base/ftbase.c +THIRD_SRC += thirdparty/freetype/src/base/ftbbox.c +THIRD_SRC += thirdparty/freetype/src/base/ftbitmap.c +THIRD_SRC += thirdparty/freetype/src/base/ftdebug.c +THIRD_SRC += thirdparty/freetype/src/base/ftfntfmt.c +THIRD_SRC += thirdparty/freetype/src/base/ftgasp.c +THIRD_SRC += thirdparty/freetype/src/base/ftglyph.c +THIRD_SRC += thirdparty/freetype/src/base/ftinit.c +THIRD_SRC += thirdparty/freetype/src/base/ftlcdfil.c +THIRD_SRC += thirdparty/freetype/src/base/ftstroke.c +THIRD_SRC += thirdparty/freetype/src/base/ftsynth.c +THIRD_SRC += thirdparty/freetype/src/base/ftsystem.c +THIRD_SRC += thirdparty/freetype/src/base/fttype1.c +THIRD_SRC += thirdparty/freetype/src/cff/cff.c +THIRD_SRC += thirdparty/freetype/src/cid/type1cid.c +THIRD_SRC += thirdparty/freetype/src/psaux/psaux.c +THIRD_SRC += thirdparty/freetype/src/pshinter/pshinter.c +THIRD_SRC += thirdparty/freetype/src/psnames/psnames.c +THIRD_SRC += thirdparty/freetype/src/raster/raster.c +THIRD_SRC += thirdparty/freetype/src/sfnt/sfnt.c +THIRD_SRC += thirdparty/freetype/src/smooth/smooth.c +THIRD_SRC += thirdparty/freetype/src/truetype/truetype.c +THIRD_SRC += thirdparty/freetype/src/type1/type1.c + +THIRD_CFLAGS += $(FREETYPE_CFLAGS) + +$(OUT)/thirdparty/freetype/%.o: thirdparty/freetype/%.c + $(CC_CMD) $(FREETYPE_CFLAGS) \ + -DFT_CONFIG_MODULES_H=\"slimftmodules.h\" \ + -DFT_CONFIG_OPTIONS_H=\"slimftoptions.h\" \ + -DFT2_BUILD_LIBRARY -$(MUJS_OUT): - $(MKDIR_CMD) -$(MUJS_OUT)/%.o: $(MUJS_DIR)/%.c | $(MUJS_OUT) - $(CC_CMD) +endif -MUJS_CFLAGS := -I$(MUJS_DIR) +# --- HARFBUZZ --- +ifeq ($(USE_SYSTEM_HARFBUZZ),yes) + THIRD_CFLAGS += $(SYS_HARFBUZZ_CFLAGS) + THIRD_LIBS += $(SYS_HARFBUZZ_LIBS) else -MUJS_CFLAGS := -DFZ_ENABLE_JS=0 +THIRD_SRC += thirdparty/harfbuzz/src/hb-blob.cc +THIRD_SRC += thirdparty/harfbuzz/src/hb-buffer.cc +THIRD_SRC += thirdparty/harfbuzz/src/hb-buffer-serialize.cc +THIRD_SRC += thirdparty/harfbuzz/src/hb-common.cc +THIRD_SRC += thirdparty/harfbuzz/src/hb-face.cc +THIRD_SRC += thirdparty/harfbuzz/src/hb-fallback-shape.cc +THIRD_SRC += thirdparty/harfbuzz/src/hb-font.cc +THIRD_SRC += thirdparty/harfbuzz/src/hb-ft.cc +THIRD_SRC += thirdparty/harfbuzz/src/hb-ot-font.cc +THIRD_SRC += thirdparty/harfbuzz/src/hb-ot-layout.cc +THIRD_SRC += thirdparty/harfbuzz/src/hb-ot-map.cc +THIRD_SRC += thirdparty/harfbuzz/src/hb-ot-shape-complex-arabic.cc +THIRD_SRC += thirdparty/harfbuzz/src/hb-ot-shape-complex-default.cc +THIRD_SRC += thirdparty/harfbuzz/src/hb-ot-shape-complex-hangul.cc +THIRD_SRC += thirdparty/harfbuzz/src/hb-ot-shape-complex-hebrew.cc +THIRD_SRC += thirdparty/harfbuzz/src/hb-ot-shape-complex-indic-table.cc +THIRD_SRC += thirdparty/harfbuzz/src/hb-ot-shape-complex-indic.cc +THIRD_SRC += thirdparty/harfbuzz/src/hb-ot-shape-complex-myanmar.cc +THIRD_SRC += thirdparty/harfbuzz/src/hb-ot-shape-complex-thai.cc +THIRD_SRC += thirdparty/harfbuzz/src/hb-ot-shape-complex-tibetan.cc +THIRD_SRC += thirdparty/harfbuzz/src/hb-ot-shape-complex-use-table.cc +THIRD_SRC += thirdparty/harfbuzz/src/hb-ot-shape-complex-use.cc +THIRD_SRC += thirdparty/harfbuzz/src/hb-ot-shape-fallback.cc +THIRD_SRC += thirdparty/harfbuzz/src/hb-ot-shape-normalize.cc +THIRD_SRC += thirdparty/harfbuzz/src/hb-ot-shape.cc +THIRD_SRC += thirdparty/harfbuzz/src/hb-ot-tag.cc +THIRD_SRC += thirdparty/harfbuzz/src/hb-set.cc +THIRD_SRC += thirdparty/harfbuzz/src/hb-shape-plan.cc +THIRD_SRC += thirdparty/harfbuzz/src/hb-shape.cc +THIRD_SRC += thirdparty/harfbuzz/src/hb-shaper.cc +THIRD_SRC += thirdparty/harfbuzz/src/hb-ucdn.cc +THIRD_SRC += thirdparty/harfbuzz/src/hb-unicode.cc +THIRD_SRC += thirdparty/harfbuzz/src/hb-warning.cc + +THIRD_CFLAGS += -Ithirdparty/harfbuzz/src + +$(OUT)/thirdparty/harfbuzz/%.o: thirdparty/harfbuzz/%.cc + $(CXX_CMD) $(FREETYPE_CFLAGS) \ + -DHAVE_OT -DHAVE_UCDN -DHB_NO_MT \ + -Dhb_malloc_impl=fz_hb_malloc \ + -Dhb_calloc_impl=fz_hb_calloc \ + -Dhb_free_impl=fz_hb_free \ + -Dhb_realloc_impl=fz_hb_realloc \ + -fno-rtti -fno-exceptions -fvisibility-inlines-hidden endif -# --- FreeType 2 --- - -ifneq "$(wildcard $(FREETYPE_DIR)/README)" "" - -FREETYPE_OUT := $(OUT)/thirdparty/freetype -FREETYPE_SRC := \ - ftbase.c \ - ftbbox.c \ - ftbitmap.c \ - ftdebug.c \ - ftfntfmt.c \ - ftgasp.c \ - ftglyph.c \ - ftinit.c \ - ftstroke.c \ - ftsynth.c \ - ftsystem.c \ - fttype1.c \ - cff.c \ - psaux.c \ - pshinter.c \ - psnames.c \ - raster.c \ - sfnt.c \ - smooth.c \ - truetype.c \ - type1.c \ - type1cid.c \ - -FREETYPE_OBJ := $(addprefix $(FREETYPE_OUT)/, $(FREETYPE_SRC:%.c=%.o)) - -$(FREETYPE_OUT): - $(MKDIR_CMD) - -FT_CFLAGS := -Wno-unused-function \ - -DFT2_BUILD_LIBRARY -DDARWIN_NO_CARBON \ - '-DFT_CONFIG_MODULES_H="slimftmodules.h"' \ - '-DFT_CONFIG_OPTIONS_H="slimftoptions.h"' - -$(FREETYPE_OUT)/%.o: $(FREETYPE_DIR)/src/base/%.c | $(FREETYPE_OUT) - $(CC_CMD) $(FT_CFLAGS) -$(FREETYPE_OUT)/%.o: $(FREETYPE_DIR)/src/cff/%.c | $(FREETYPE_OUT) - $(CC_CMD) $(FT_CFLAGS) -$(FREETYPE_OUT)/%.o: $(FREETYPE_DIR)/src/cid/%.c | $(FREETYPE_OUT) - $(CC_CMD) $(FT_CFLAGS) -$(FREETYPE_OUT)/%.o: $(FREETYPE_DIR)/src/psaux/%.c | $(FREETYPE_OUT) - $(CC_CMD) $(FT_CFLAGS) -$(FREETYPE_OUT)/%.o: $(FREETYPE_DIR)/src/pshinter/%.c | $(FREETYPE_OUT) - $(CC_CMD) $(FT_CFLAGS) -$(FREETYPE_OUT)/%.o: $(FREETYPE_DIR)/src/psnames/%.c | $(FREETYPE_OUT) - $(CC_CMD) $(FT_CFLAGS) -$(FREETYPE_OUT)/%.o: $(FREETYPE_DIR)/src/raster/%.c | $(FREETYPE_OUT) - $(CC_CMD) $(FT_CFLAGS) -$(FREETYPE_OUT)/%.o: $(FREETYPE_DIR)/src/smooth/%.c | $(FREETYPE_OUT) - $(CC_CMD) $(FT_CFLAGS) -$(FREETYPE_OUT)/%.o: $(FREETYPE_DIR)/src/sfnt/%.c | $(FREETYPE_OUT) - $(CC_CMD) $(FT_CFLAGS) -$(FREETYPE_OUT)/%.o: $(FREETYPE_DIR)/src/truetype/%.c | $(FREETYPE_OUT) - $(CC_CMD) $(FT_CFLAGS) -$(FREETYPE_OUT)/%.o: $(FREETYPE_DIR)/src/type1/%.c | $(FREETYPE_OUT) - $(CC_CMD) $(FT_CFLAGS) - -FREETYPE_CFLAGS := -Iscripts/freetype -I$(FREETYPE_DIR)/include +# --- JPEG-XR --- + +ifeq ($(HAVE_JPEGXR),yes) +ifeq ($(USE_SYSTEM_JPEGXR),yes) + THIRD_CFLAGS += $(SYS_JPEGXR_CFLAGS) -DHAVE_JPEGXR + THIRD_LIBS += $(SYS_JPEGXR_LIBS) else -FREETYPE_CFLAGS := $(SYS_FREETYPE_CFLAGS) -FREETYPE_LIBS := $(SYS_FREETYPE_LIBS) + +THIRD_SRC += thirdparty/jpegxr/Software/algo.c +THIRD_SRC += thirdparty/jpegxr/Software/api.c +THIRD_SRC += thirdparty/jpegxr/Software/cr_parse.c +THIRD_SRC += thirdparty/jpegxr/Software/flags.c +THIRD_SRC += thirdparty/jpegxr/Software/init.c +THIRD_SRC += thirdparty/jpegxr/Software/io.c +THIRD_SRC += thirdparty/jpegxr/Software/jpegxr_pixelformat.c +THIRD_SRC += thirdparty/jpegxr/Software/r_parse.c +THIRD_SRC += thirdparty/jpegxr/Software/r_strip.c +THIRD_SRC += thirdparty/jpegxr/Software/r_tile_frequency.c +THIRD_SRC += thirdparty/jpegxr/Software/r_tile_spatial.c +THIRD_SRC += thirdparty/jpegxr/Software/x_strip.c + +THIRD_CFLAGS += -Ithirdparty/jpegxr +THIRD_CFLAGS += -Ithirdparty/jpegxr/Software +THIRD_CFLAGS += -DHAVE_JPEGXR + +$(OUT)/thirdparty/jpegxr/%.o: thirdparty/jpegxr/%.c + $(CC_CMD) -Ithirdparty/jpegxr -Ithirdparty/jpegxr/Software -Wno-tautological-compare + +endif endif -# --- HarfBuzz --- - -ifneq "$(wildcard $(HARFBUZZ_DIR)/README)" "" - -HARFBUZZ_OUT := $(OUT)/thirdparty/harfbuzz -HARFBUZZ_SRC := \ - hb-blob.cc \ - hb-buffer.cc \ - hb-buffer-serialize.cc \ - hb-common.cc \ - hb-face.cc \ - hb-fallback-shape.cc \ - hb-font.cc \ - hb-ft.cc \ - hb-ot-font.cc \ - hb-ot-layout.cc \ - hb-ot-map.cc \ - hb-ot-shape-complex-arabic.cc \ - hb-ot-shape-complex-default.cc \ - hb-ot-shape-complex-hangul.cc \ - hb-ot-shape-complex-hebrew.cc \ - hb-ot-shape-complex-indic-table.cc \ - hb-ot-shape-complex-indic.cc \ - hb-ot-shape-complex-myanmar.cc \ - hb-ot-shape-complex-thai.cc \ - hb-ot-shape-complex-tibetan.cc \ - hb-ot-shape-complex-use-table.cc \ - hb-ot-shape-complex-use.cc \ - hb-ot-shape-fallback.cc \ - hb-ot-shape-normalize.cc \ - hb-ot-shape.cc \ - hb-ot-tag.cc \ - hb-set.cc \ - hb-shape-plan.cc \ - hb-shape.cc \ - hb-shaper.cc \ - hb-ucdn.cc \ - hb-unicode.cc \ - hb-warning.cc - -# hb-coretext.cc -# hb-directwrite.cc -# hb-glib.cc -# hb-gobject-structs.cc -# hb-graphite2.cc -# hb-icu.cc -# hb-uniscribe.cc - -HARFBUZZ_OBJ := $(addprefix $(HARFBUZZ_OUT)/, $(HARFBUZZ_SRC:%.cc=%.o)) - -$(HARFBUZZ_OUT): - $(MKDIR_CMD) -$(HARFBUZZ_OUT)/%.o: $(HARFBUZZ_DIR)/src/%.cc | $(HARFBUZZ_OUT) - $(CXX_CMD) -DHAVE_OT -DHAVE_UCDN -DHB_NO_MT $(FREETYPE_CFLAGS) \ - -Dhb_malloc_impl=fz_hb_malloc -Dhb_calloc_impl=fz_hb_calloc \ - -Dhb_free_impl=fz_hb_free -Dhb_realloc_impl=fz_hb_realloc \ - -fno-rtti -fno-exceptions -fvisibility-inlines-hidden --std=gnu++0x - -HARFBUZZ_CFLAGS := -I$(HARFBUZZ_DIR)/src +# --- LIBJPEG --- + +ifeq ($(USE_SYSTEM_LIBJPEG),yes) + THIRD_CFLAGS += $(SYS_LIBJPEG_CFLAGS) -DSHARE_JPEG + THIRD_LIBS += $(SYS_LIBJPEG_LIBS) else -HARFBUZZ_CFLAGS := $(SYS_HARFBUZZ_CFLAGS) -HARFBUZZ_LIBS := $(SYS_HARFBUZZ_LIBS) + +THIRD_SRC += thirdparty/libjpeg/jaricom.c +THIRD_SRC += thirdparty/libjpeg/jcomapi.c +THIRD_SRC += thirdparty/libjpeg/jdapimin.c +THIRD_SRC += thirdparty/libjpeg/jdapistd.c +THIRD_SRC += thirdparty/libjpeg/jdarith.c +THIRD_SRC += thirdparty/libjpeg/jdatadst.c +THIRD_SRC += thirdparty/libjpeg/jdatasrc.c +THIRD_SRC += thirdparty/libjpeg/jdcoefct.c +THIRD_SRC += thirdparty/libjpeg/jdcolor.c +THIRD_SRC += thirdparty/libjpeg/jddctmgr.c +THIRD_SRC += thirdparty/libjpeg/jdhuff.c +THIRD_SRC += thirdparty/libjpeg/jdinput.c +THIRD_SRC += thirdparty/libjpeg/jdmainct.c +THIRD_SRC += thirdparty/libjpeg/jdmarker.c +THIRD_SRC += thirdparty/libjpeg/jdmaster.c +THIRD_SRC += thirdparty/libjpeg/jdmerge.c +THIRD_SRC += thirdparty/libjpeg/jdpostct.c +THIRD_SRC += thirdparty/libjpeg/jdsample.c +THIRD_SRC += thirdparty/libjpeg/jdtrans.c +THIRD_SRC += thirdparty/libjpeg/jerror.c +THIRD_SRC += thirdparty/libjpeg/jfdctflt.c +THIRD_SRC += thirdparty/libjpeg/jfdctfst.c +THIRD_SRC += thirdparty/libjpeg/jfdctint.c +THIRD_SRC += thirdparty/libjpeg/jidctflt.c +THIRD_SRC += thirdparty/libjpeg/jidctfst.c +THIRD_SRC += thirdparty/libjpeg/jidctint.c +THIRD_SRC += thirdparty/libjpeg/jmemmgr.c +THIRD_SRC += thirdparty/libjpeg/jquant1.c +THIRD_SRC += thirdparty/libjpeg/jquant2.c +THIRD_SRC += thirdparty/libjpeg/jutils.c + +THIRD_CFLAGS += -Iscripts/libjpeg -Ithirdparty/libjpeg + +$(OUT)/thirdparty/libjpeg/%.o: thirdparty/libjpeg/%.c + $(CC_CMD) -Iscripts/libjpeg + endif -# --- LURATECH --- +# --- LCMS2 --- -ifneq "$(wildcard $(LURATECH_DIR)/ldf_jb2)$(wildcard $(LURATECH_DIR)/lwf_jp2)" "" - -LURATECH_OUT := $(OUT)/thirdparty/luratech -LURATECH_SRC := \ - jb2_adt_cache.c \ - jb2_adt_decoder_halftone_region.c \ - jb2_adt_encoder_text_region.c \ - jb2_adt_huffman_tree.c \ - jb2_adt_symbol_instance.c \ - jb2_adt_context_ref_encoder.c \ - jb2_adt_context_ref_buffer.c \ - jb2_adt_context_ref_encoder.c \ - jb2_adt_mq_encoder.c \ - jb2_adt_decoder_text_region.c \ - jb2_adt_huffman_table_user_defined.c \ - jb2_adt_mmr_tables.c \ - jb2_adt_huffman_table_symbol.c \ - jb2_adt_component.c \ - jb2_adt_context_buffer.c \ - jb2_adt_context_decoder.c \ - jb2_adt_context_encoder.c \ - jb2_adt_context_ref_decoder.c \ - jb2_adt_decoder_collective_bitmap.c \ - jb2_adt_decoder_generic_region.c \ - jb2_adt_decoder_pattern_dict.c \ - jb2_adt_decoder_symbol_dict.c \ - jb2_adt_encoder_symbol_dict.c \ - jb2_adt_external_cache.c \ - jb2_adt_file.c \ - jb2_adt_file_extras.c \ - jb2_adt_handle_document.c \ - jb2_adt_huffman_decoder.c \ - jb2_adt_huffman_encoder.c \ - jb2_adt_huffman_table.c \ - jb2_adt_huffman_table_standard.c \ - jb2_adt_location.c \ - jb2_adt_memory.c \ - jb2_adt_message.c \ - jb2_adt_mmr_decoder.c \ - jb2_adt_mq_decoder.c \ - jb2_adt_mq_encoder.c \ - jb2_adt_mq_state.c \ - jb2_adt_pattern_dict.c \ - jb2_adt_pdf_file.c \ - jb2_adt_pdf_stream.c \ - jb2_adt_props_decompress.c \ - jb2_adt_read_bit_buffer.c \ - jb2_adt_read_data.c \ - jb2_adt_render_common.c \ - jb2_adt_render_generic_region.c \ - jb2_adt_render_halftone_region.c \ - jb2_adt_render_text_region.c \ - jb2_adt_run_array.c \ - jb2_adt_segment_array.c \ - jb2_adt_segment.c \ - jb2_adt_segment_end_of_stripe.c \ - jb2_adt_segment_generic_region.c \ - jb2_adt_segment_halftone_region.c \ - jb2_adt_segment_page_info.c \ - jb2_adt_segment_pattern_dict.c \ - jb2_adt_segment_region.c \ - jb2_adt_segment_symbol_dict.c \ - jb2_adt_segment_table.c \ - jb2_adt_segment_text_region.c \ - jb2_adt_segment_types.c \ - jb2_adt_stack.c \ - jb2_adt_symbol.c \ - jb2_adt_symbol_dict.c \ - jb2_adt_symbol_unify.c \ - jb2_adt_write_bits.c \ - jb2_adt_write_data.c \ - jb2_adt_write_pdf.c \ - jb2_common.c \ - jb2_license_dummy.c \ - jp2_adt_band_array.c \ - jp2_adt_band_buffer.c \ - jp2_adt_block_array.c \ - jp2_adt_cache.c \ - jp2_adt_comp.c \ - jp2_adt_component_array.c \ - jp2_adt_decomp.c \ - jp2_adt_ebcot_decoder.c \ - jp2_adt_external_cache.c \ - jp2_adt_image.c \ - jp2_adt_memory.c \ - jp2_adt_mq_decoder.c \ - jp2_adt_mq_state.c \ - jp2_adt_packet_decoder.c \ - jp2_adt_precinct_array.c \ - jp2_adt_rate.c \ - jp2_adt_rate_list.c \ - jp2_adt_read_bits.c \ - jp2_adt_read_data.c \ - jp2_adt_reader_requirements.c \ - jp2_adt_resolution_array.c \ - jp2_adt_tile_array.c \ - jp2_adt_tlm_marker_array.c \ - jp2_adt_write_data.c \ - jp2_buffer.c \ - jp2c_code_cb.c \ - jp2c_coder.c \ - jp2c_codestream.c \ - jp2c_file_format.c \ - jp2c_format.c \ - jp2c_memory.c \ - jp2_code_cb.c \ - jp2_common.c \ - jp2c_progression.c \ - jp2c_quant.c \ - jp2c_wavelet.c \ - jp2c_wavelet_lifting.c \ - jp2c_weights.c \ - jp2c_write.c \ - jp2d_codestream.c \ - jp2d_decoder.c \ - jp2d_file_format.c \ - jp2d_format.c \ - jp2d_image.c \ - jp2d_memory.c \ - jp2d_partial_decoding.c \ - jp2d_progression.c \ - jp2d_quant.c \ - jp2d_scale.c \ - jp2d_wavelet.c \ - jp2d_wavelet_lifting.c \ - jp2d_write.c \ - jp2_icc.c \ - jp2_license.c \ - jp2_packet.c \ - jp2_tag_tree.c - -LURATECH_OBJ := $(addprefix $(LURATECH_OUT)/, $(LURATECH_SRC:%.c=%.o)) - -$(LURATECH_OUT): - $(MKDIR_CMD) -$(LURATECH_OUT)/%.o: $(LURATECH_DIR)/ldf_jb2/source/common/%.c | $(LURATECH_OUT) - $(CC_CMD) \ - -I$(LURATECH_DIR)/ldf_jb2/source/common \ - -DLINUX -$(LURATECH_OUT)/%.o: $(LURATECH_DIR)/ldf_jb2/source/compress/%.c | $(LURATECH_OUT) - $(CC_CMD) \ - -I$(LURATECH_DIR)/ldf_jb2/source/common \ - -DLINUX -$(LURATECH_OUT)/%.o: $(LURATECH_DIR)/lwf_jp2/library/source/%.c | $(LURATECH_OUT) - $(CC_CMD) \ - -I$(LURATECH_DIR)/ldf_jb2/source/common \ - -DLINUX - -LURATECH_CFLAGS := \ --I$(LURATECH_DIR)/ldf_jb2/source/common \ - -I$(LURATECH_DIR)/ldf_jb2/source/libraries \ - -I$(LURATECH_DIR)/ldf_jb2/source/compress \ - -I$(LURATECH_DIR)/lwf_jp2/library/source \ - -DHAVE_LURATECH - -else # --- LURATECH --- +ifeq ($(USE_SYSTEM_LCMS2),yes) + THIRD_CFLAGS += $(SYS_LCMS2_CFLAGS) + THIRD_LIBS += $(SYS_LCMS2_CFLAGS) +else -# --- JBIG2DEC --- +THIRD_SRC += $(sort $(wildcard thirdparty/lcms2/src/cms*.c)) -ifneq "$(wildcard $(JBIG2DEC_DIR)/README)" "" - -JBIG2DEC_OUT := $(OUT)/thirdparty/jbig2dec -JBIG2DEC_SRC := \ - jbig2.c \ - jbig2_arith.c \ - jbig2_arith_iaid.c \ - jbig2_arith_int.c \ - jbig2_generic.c \ - jbig2_halftone.c \ - jbig2_huffman.c \ - jbig2_image.c \ - jbig2_metadata.c \ - jbig2_mmr.c \ - jbig2_page.c \ - jbig2_refinement.c \ - jbig2_segment.c \ - jbig2_symbol_dict.c \ - jbig2_text.c - -JBIG2DEC_OBJ := $(addprefix $(JBIG2DEC_OUT)/, $(JBIG2DEC_SRC:%.c=%.o)) - -$(JBIG2DEC_OUT): - $(MKDIR_CMD) -$(JBIG2DEC_OUT)/%.o: $(JBIG2DEC_DIR)/%.c | $(JBIG2DEC_OUT) - $(CC_CMD) -DHAVE_STDINT_H -DJBIG_EXTERNAL_MEMENTO_H=\"mupdf/memento.h\" +THIRD_CFLAGS += -Ithirdparty/lcms2/include + +$(OUT)/thirdparty/lcms2/%.o: thirdparty/lcms2/%.c + $(CC_CMD) -Ithirdparty/lcms2/include -JBIG2DEC_CFLAGS := -I$(JBIG2DEC_DIR) -else -JBIG2DEC_CFLAGS := $(SYS_JBIG2DEC_CFLAGS) -JBIG2DEC_LIBS := $(SYS_JBIG2DEC_LIBS) endif -# --- OpenJPEG --- - -ifneq "$(wildcard $(OPENJPEG_DIR)/openjpeg.h)" "" - -OPENJPEG_OUT := $(OUT)/thirdparty/openjpeg -OPENJPEG_SRC := \ - bio.c \ - cio.c \ - dwt.c \ - event.c \ - function_list.c \ - image.c \ - invert.c \ - j2k.c \ - jp2.c \ - mct.c \ - mqc.c \ - openjpeg.c \ - pi.c \ - raw.c \ - t1.c \ - t2.c \ - tcd.c \ - tgt.c \ - thread.c - -OPENJPEG_OBJ := $(addprefix $(OPENJPEG_OUT)/, $(OPENJPEG_SRC:%.c=%.o)) - -$(OPENJPEG_OUT): - $(MKDIR_CMD) -$(OPENJPEG_OUT)/%.o: $(OPENJPEG_DIR)/%.c | $(OPENJPEG_OUT) - $(CC_CMD) $(OPENJPEG_CFLAGS) +# --- MuJS --- -OPENJPEG_CFLAGS += -I$(OPENJPEG_DIR) -DOPJ_STATIC -DOPJ_HAVE_STDINT_H -DOPJ_HAVE_INTTYPES_H +ifeq ($(USE_SYSTEM_MUJS),yes) + THIRD_CFLAGS += $(SYS_MUJS_CFLAGS) + THIRD_LIBS += $(SYS_MUJS_LIBS) else -OPENJPEG_CFLAGS := $(SYS_OPENJPEG_CFLAGS) -OPENJPEG_LIBS := $(SYS_OPENJPEG_LIBS) + +THIRD_SRC += thirdparty/mujs/one.c +THIRD_CFLAGS += -Ithirdparty/mujs + +$(OUT)/thirdparty/mujs/%.o: thirdparty/mujs/%.c + $(CC_CMD) + endif -endif # --- LURATECH --- - -# --- JPEG library from IJG --- - -ifneq "$(wildcard $(LIBJPEG_DIR)/README)" "" - -LIBJPEG_OUT := $(OUT)/thirdparty/libjpeg -LIBJPEG_SRC := \ - jaricom.c \ - jcomapi.c \ - jdapimin.c \ - jdapistd.c \ - jdarith.c \ - jdatadst.c \ - jdatasrc.c \ - jdcoefct.c \ - jdcolor.c \ - jddctmgr.c \ - jdhuff.c \ - jdinput.c \ - jdmainct.c \ - jdmarker.c \ - jdmaster.c \ - jdmerge.c \ - jdpostct.c \ - jdsample.c \ - jdtrans.c \ - jerror.c \ - jfdctflt.c \ - jfdctfst.c \ - jfdctint.c \ - jidctflt.c \ - jidctfst.c \ - jidctint.c \ - jmemmgr.c \ - jquant1.c \ - jquant2.c \ - jutils.c \ - -LIBJPEG_OBJ := $(addprefix $(LIBJPEG_OUT)/, $(LIBJPEG_SRC:%.c=%.o)) - -$(LIBJPEG_OUT): - $(MKDIR_CMD) -$(LIBJPEG_OUT)/%.o: $(LIBJPEG_DIR)/%.c | $(LIBJPEG_OUT) - $(CC_CMD) -Dmain=xxxmain - -LIBJPEG_CFLAGS := -Iscripts/libjpeg -I$(LIBJPEG_DIR) +# --- ZLIB --- + +ifeq ($(USE_SYSTEM_ZLIB),yes) + THIRD_CFLAGS += $(SYS_ZLIB_CFLAGS) + THIRD_LIBS += $(SYS_ZLIB_LIBS) else -LIBJPEG_CFLAGS := $(SYS_LIBJPEG_CFLAGS) -DSHARE_JPEG -LIBJPEG_LIBS := $(SYS_LIBJPEG_LIBS) -endif -# --- jpegxr --- +THIRD_SRC += thirdparty/zlib/adler32.c +THIRD_SRC += thirdparty/zlib/compress.c +THIRD_SRC += thirdparty/zlib/crc32.c +THIRD_SRC += thirdparty/zlib/deflate.c +THIRD_SRC += thirdparty/zlib/inffast.c +THIRD_SRC += thirdparty/zlib/inflate.c +THIRD_SRC += thirdparty/zlib/inftrees.c +THIRD_SRC += thirdparty/zlib/trees.c +THIRD_SRC += thirdparty/zlib/uncompr.c +THIRD_SRC += thirdparty/zlib/zutil.c + +THIRD_CFLAGS += -Ithirdparty/zlib -ifneq "$(wildcard $(JPEGXR_DIR)/T835E.pdf)" "" +$(OUT)/thirdparty/zlib/%.o: thirdparty/zlib/%.c + $(CC_CMD) -DHAVE_UNISTD_H -DHAVE_STDARG_H -JPEGXR_OUT := $(OUT)/thirdparty/jpegxr -JPEGXR_SRC := \ - algo.c \ - api.c \ - flags.c \ - init.c \ - io.c \ - cr_parse.c \ - jpegxr_pixelformat.c \ - r_parse.c \ - r_strip.c \ - r_tile_spatial.c \ - r_tile_frequency.c \ - x_strip.c +endif -JPEGXR_OBJ := $(addprefix $(JPEGXR_OUT)/, $(JPEGXR_SRC:%.c=%.o)) +# --- LURATECH --- -$(JPEGXR_OUT): - $(MKDIR_CMD) +ifeq ($(HAVE_LURATECH),yes) -$(JPEGXR_OUT)/%.o: $(JPEGXR_DIR)/Software/%.c | $(JPEGXR_OUT) - $(CC_CMD) $(JPEGXR_CFLAGS) +THIRD_SRC += $(sort $(wildcard thirdparty/luratech/ldf_jb2/source/common/*.c)) +THIRD_SRC += $(sort $(wildcard thirdparty/luratech/ldf_jb2/source/compress/*.c)) +THIRD_SRC += $(sort $(wildcard thirdparty/luratech/lwf_jp2/library/source/*.c)) -JPEGXR_CFLAGS := \ - -I$(JPEGXR_DIR) \ - -I$(JPEGXR_DIR)/Software \ - -DHAVE_JPEGXR +LURATECH_CFLAGS += -Ithirdparty/luratech/ldf_jb2/source/libraries +LURATECH_CFLAGS += -Ithirdparty/luratech/ldf_jb2/source/compress +LURATECH_CFLAGS += -Ithirdparty/luratech/ldf_jb2/source/common +LURATECH_CFLAGS += -Ithirdparty/luratech/lwf_jp2/library/source -endif +THIRD_CFLAGS += $(LURATECH_CFLAGS) -DHAVE_LURATECH=1 -# --- ZLIB --- +$(OUT)/thirdparty/luratech/%.o: thirdparty/luratech/%.c + $(CC_CMD) -DLINUX $(LURATECH_CFLAGS) -Wno-tautological-compare -Wno-absolute-value -ifneq "$(wildcard $(ZLIB_DIR)/README)" "" - -ZLIB_OUT := $(OUT)/thirdparty/zlib -ZLIB_SRC := \ - adler32.c \ - compress.c \ - crc32.c \ - deflate.c \ - inffast.c \ - inflate.c \ - inftrees.c \ - trees.c \ - uncompr.c \ - zutil.c \ - gzlib.c \ - gzwrite.c \ - gzclose.c \ - gzread.c \ - -ZLIB_OBJ := $(addprefix $(ZLIB_OUT)/, $(ZLIB_SRC:%.c=%.o)) - -$(ZLIB_OUT): - $(MKDIR_CMD) -$(ZLIB_OUT)/%.o: $(ZLIB_DIR)/%.c | $(ZLIB_OUT) - $(CC_CMD) -Dverbose=-1 -DHAVE_UNISTD_H -DHAVE_STDARG_H - -ZLIB_CFLAGS := -I$(ZLIB_DIR) -else -ZLIB_CFLAGS := $(SYS_ZLIB_CFLAGS) -ZLIB_LIBS := $(SYS_ZLIB_LIBS) -endif +else # HAVE_LURATECH -# --- LCMS2 --- +# --- JBIG2DEC --- -ifneq "$(wildcard $(LCMS2_DIR)/INSTALL)" "" - -LCMS2_OUT := $(OUT)/lcms2 -LCMS2_SRC := \ - cmsalpha.c \ - cmscam02.c \ - cmscgats.c \ - cmscnvrt.c \ - cmserr.c \ - cmsgamma.c \ - cmsgmt.c \ - cmshalf.c \ - cmsintrp.c \ - cmsio0.c \ - cmsio1.c \ - cmslut.c \ - cmsmd5.c \ - cmsmtrx.c \ - cmsnamed.c \ - cmsopt.c \ - cmspack.c \ - cmspcs.c \ - cmsplugin.c \ - cmsps2.c \ - cmssamp.c \ - cmssm.c \ - cmstypes.c \ - cmsvirt.c \ - cmswtpnt.c \ - cmsxform.c \ - -LCMS2_OBJ := $(addprefix $(LCMS2_OUT)/, $(LCMS2_SRC:%.c=%.o)) - -$(LCMS2_OUT): - $(MKDIR_CMD) -$(LCMS2_OUT)/%.o: $(LCMS2_DIR)/src/%.c | $(LCMS2_OUT) - $(CC_CMD) -I$(LCMS2_DIR)/include - -LCMS2_CFLAGS := -I$(LCMS2_DIR)/include +ifeq ($(USE_SYSTEM_JBIG2DEC),yes) + THIRD_CFLAGS += $(SYS_JBIG2DEC_CFLAGS) + THIRD_LIBS += $(SYS_JBIG2DEC_LIBS) else -LCMS2_CFLAGS := -DNO_ICC -endif -# --- cURL --- - -ifneq "$(wildcard $(CURL_DIR)/README)" "" +THIRD_SRC += thirdparty/jbig2dec/jbig2.c +THIRD_SRC += thirdparty/jbig2dec/jbig2_arith.c +THIRD_SRC += thirdparty/jbig2dec/jbig2_arith_iaid.c +THIRD_SRC += thirdparty/jbig2dec/jbig2_arith_int.c +THIRD_SRC += thirdparty/jbig2dec/jbig2_generic.c +THIRD_SRC += thirdparty/jbig2dec/jbig2_halftone.c +THIRD_SRC += thirdparty/jbig2dec/jbig2_huffman.c +THIRD_SRC += thirdparty/jbig2dec/jbig2_image.c +THIRD_SRC += thirdparty/jbig2dec/jbig2_metadata.c +THIRD_SRC += thirdparty/jbig2dec/jbig2_mmr.c +THIRD_SRC += thirdparty/jbig2dec/jbig2_page.c +THIRD_SRC += thirdparty/jbig2dec/jbig2_refinement.c +THIRD_SRC += thirdparty/jbig2dec/jbig2_segment.c +THIRD_SRC += thirdparty/jbig2dec/jbig2_symbol_dict.c +THIRD_SRC += thirdparty/jbig2dec/jbig2_text.c + +THIRD_CFLAGS += -Ithirdparty/jbig2dec + +$(OUT)/thirdparty/jbig2dec/%.o: thirdparty/jbig2dec/%.c + $(CC_CMD) -DHAVE_STDINT_H -DJBIG_EXTERNAL_MEMENTO_H=\"mupdf/memento.h\" -CURL_LIB := $(OUT)/libcurl.a -CURL_OUT := $(OUT)/thirdparty/curl -CURL_SRC := \ - base64.c \ - conncache.c \ - connect.c \ - content_encoding.c \ - curl_addrinfo.c \ - dotdot.c \ - easy.c \ - escape.c \ - fileinfo.c \ - formdata.c \ - getenv.c \ - getinfo.c \ - hash.c \ - hostcheck.c \ - hostip4.c \ - hostip.c \ - hostsyn.c \ - http.c \ - http_chunks.c \ - if2ip.c \ - llist.c \ - mprintf.c \ - multi.c \ - netrc.c \ - nonblock.c \ - openssl.c \ - parsedate.c \ - pipeline.c \ - progress.c \ - select.c \ - sendf.c \ - share.c \ - slist.c \ - speedcheck.c \ - splay.c \ - strcase.c \ - strdup.c \ - strerror.c \ - timeval.c \ - transfer.c \ - url.c \ - version.c \ - vtls.c \ - warnless.c \ - wildcard.c - -$(CURL_LIB): $(addprefix $(CURL_OUT)/, $(CURL_SRC:%.c=%.o)) - -$(CURL_OUT): - $(MKDIR_CMD) - -CRL_CFLAGS := -DHAVE_CONFIG_H -DBUILDING_LIBCURL -DCURL_STATICLIB \ - -DCURL_DISABLE_LDAP -I$(CURL_DIR)/include -I$(CURL_DIR)/lib -ifeq "$(HAVE_OPENSSL_SSL)" "yes" -CRL_CFLAGS += -DUSE_OPENSSL endif -$(CURL_OUT)/%.o: $(CURL_DIR)/lib/%.c | $(CURL_OUT) - $(CC_CMD) $(CRL_CFLAGS) +# --- OPENJPEG --- -$(CURL_OUT)/%.o: $(CURL_DIR)/lib/vtls/%.c | $(CURL_OUT) - $(CC_CMD) $(CRL_CFLAGS) - -CURL_CFLAGS := -I$(CURL_DIR)/include -CURL_LIBS := $(SYS_CURL_DEPS) +ifeq ($(USE_SYSTEM_OPENJPEG),yes) + THIRD_CFLAGS += $(SYS_OPENJPEG_CFLAGS) + THIRD_LIBS += $(SYS_OPENJPEG_LIBS) +else -HAVE_CURL := yes +OPENJPEG_CFLAGS += -Ithirdparty/openjpeg/src/lib/openjp2 +OPENJPEG_CFLAGS += -DOPJ_STATIC +OPENJPEG_CFLAGS += -DOPJ_HAVE_STDINT_H -DOPJ_HAVE_INTTYPES_H + +THIRD_SRC += thirdparty/openjpeg/src/lib/openjp2/bio.c +THIRD_SRC += thirdparty/openjpeg/src/lib/openjp2/cio.c +THIRD_SRC += thirdparty/openjpeg/src/lib/openjp2/dwt.c +THIRD_SRC += thirdparty/openjpeg/src/lib/openjp2/event.c +THIRD_SRC += thirdparty/openjpeg/src/lib/openjp2/function_list.c +THIRD_SRC += thirdparty/openjpeg/src/lib/openjp2/image.c +THIRD_SRC += thirdparty/openjpeg/src/lib/openjp2/invert.c +THIRD_SRC += thirdparty/openjpeg/src/lib/openjp2/j2k.c +THIRD_SRC += thirdparty/openjpeg/src/lib/openjp2/jp2.c +THIRD_SRC += thirdparty/openjpeg/src/lib/openjp2/mct.c +THIRD_SRC += thirdparty/openjpeg/src/lib/openjp2/mqc.c +THIRD_SRC += thirdparty/openjpeg/src/lib/openjp2/openjpeg.c +THIRD_SRC += thirdparty/openjpeg/src/lib/openjp2/pi.c +THIRD_SRC += thirdparty/openjpeg/src/lib/openjp2/raw.c +THIRD_SRC += thirdparty/openjpeg/src/lib/openjp2/t1.c +THIRD_SRC += thirdparty/openjpeg/src/lib/openjp2/t2.c +THIRD_SRC += thirdparty/openjpeg/src/lib/openjp2/tcd.c +THIRD_SRC += thirdparty/openjpeg/src/lib/openjp2/tgt.c +THIRD_SRC += thirdparty/openjpeg/src/lib/openjp2/thread.c + +THIRD_CFLAGS += $(OPENJPEG_CFLAGS) + +$(OUT)/thirdparty/openjpeg/%.o: thirdparty/openjpeg/%.c + $(CC_CMD) $(OPENJPEG_CFLAGS) -else ifeq "$(HAVE_CURL)" "yes" -CURL_CFLAGS := $(SYS_CURL_CFLAGS) -CURL_LIBS := $(SYS_CURL_LIBS) endif -# --- FreeGLUT --- +endif # HAVE_LURATECH -ifneq "$(wildcard $(GLUT_DIR)/README)" "" +# --- FreeGLUT --- -ifeq "$(OS)" "MACOS" -GLUT_CFLAGS := $(SYS_GLUT_CFLAGS) -GLUT_LIBS := $(SYS_GLUT_LIBS) +ifeq ($(USE_SYSTEM_GLUT),yes) + GLUT_CFLAGS := $(SYS_GLUT_CFLAGS) + GLUT_LIBS := $(SYS_GLUT_LIBS) else -HAVE_GLUT := yes +GLUT_SRC += $(sort $(wildcard thirdparty/freeglut/src/fg_*.c)) +GLUT_SRC += $(sort $(wildcard thirdparty/freeglut/src/x11/*.c)) + +GLUT_OBJ := $(GLUT_SRC:%.c=$(OUT)/%.o) + +LOCAL_GLUT_CFLAGS += -Ithirdparty/freeglut/include +LOCAL_GLUT_CFLAGS += -Ithirdparty/freeglut/src +LOCAL_GLUT_CFLAGS += -DHAVE_UNISTD_H -DHAVE_STDINT_H -DHAVE_X11_EXTENSIONS_XRANDR_H GLUT_LIB := $(OUT)/libfreeglut.a -GLUT_OUT := $(OUT)/thirdparty/freeglut -GLUT_SRC := \ - fg_callbacks.c \ - fg_cursor.c \ - fg_display.c \ - fg_ext.c \ - fg_font.c \ - fg_font_data.c \ - fg_gamemode.c \ - fg_geometry.c \ - fg_gl2.c \ - fg_init.c \ - fg_input_devices.c \ - fg_joystick.c \ - fg_main.c \ - fg_menu.c \ - fg_misc.c \ - fg_overlay.c \ - fg_spaceball.c \ - fg_state.c \ - fg_stroke_mono_roman.c \ - fg_stroke_roman.c \ - fg_structure.c \ - fg_teapot.c \ - fg_videoresize.c \ - fg_window.c - -GLUT_X11_SRC := \ - fg_cursor_x11.c \ - fg_display_x11_glx.c \ - fg_ext_x11.c \ - fg_gamemode_x11.c \ - fg_glutfont_definitions_x11.c \ - fg_init_x11.c \ - fg_input_devices_x11.c \ - fg_joystick_x11.c \ - fg_main_x11.c \ - fg_menu_x11.c \ - fg_spaceball_x11.c \ - fg_state_x11.c \ - fg_state_x11_glx.c \ - fg_structure_x11.c \ - fg_window_x11.c \ - fg_window_x11_glx.c \ - fg_xinput_x11.c - -GLUT_OBJ := $(addprefix $(GLUT_OUT)/, $(GLUT_SRC:%.c=%.o)) -GLUT_OBJ += $(addprefix $(GLUT_OUT)/, $(GLUT_X11_SRC:%.c=%.o)) $(GLUT_LIB): $(GLUT_OBJ) -$(GLUT_OUT): - $(MKDIR_CMD) -$(GLUT_OUT)/%.o: $(GLUT_DIR)/src/%.c | $(GLUT_OUT) - $(CC_CMD) -I$(GLUT_DIR)/include -I$(GLUT_DIR)/src -Wno-unused-function -Wno-unused-const-variable \ - -DHAVE_UNISTD_H -DHAVE_STDINT_H -DHAVE_X11_EXTENSIONS_XRANDR_H -$(GLUT_OUT)/%.o: $(GLUT_DIR)/src/x11/%.c | $(GLUT_OUT) - $(CC_CMD) -I$(GLUT_DIR)/include -I$(GLUT_DIR)/src -Wno-unused-function \ - -DHAVE_UNISTD_H -DHAVE_STDINT_H -DHAVE_X11_EXTENSIONS_XRANDR_H - -GLUT_CFLAGS := -I$(GLUT_DIR)/include + +$(OUT)/thirdparty/freeglut/%.o: thirdparty/freeglut/%.c + $(CC_CMD) $(LOCAL_GLUT_CFLAGS) + +GLUT_CFLAGS := -Ithirdparty/freeglut/include GLUT_LIBS := -lGL -lX11 -lXrandr endif + +# --- cURL --- + +ifeq ($(USE_SYSTEM_CURL),yes) + CURL_CFLAGS := $(SYS_CURL_CFLAGS) + CURL_LIBS := $(SYS_CURL_LIBS) else -GLUT_CFLAGS := $(SYS_GLUT_CFLAGS) -GLUT_LIBS := $(SYS_GLUT_LIBS) -endif -# --- X11 --- +CURL_SRC += $(sort $(wildcard thirdparty/curl/lib/*.c)) +CURL_SRC += $(sort $(wildcard thirdparty/curl/lib/vauth/*.c)) +CURL_SRC += $(sort $(wildcard thirdparty/curl/lib/vtls/*.c)) -ifeq "$(HAVE_X11)" "yes" -X11_CFLAGS := $(SYS_X11_CFLAGS) -X11_LIBS := $(SYS_X11_LIBS) -endif +CURL_OBJ := $(CURL_SRC:%.c=$(OUT)/%.o) -# --- OpenSSL --- +LOCAL_CURL_CFLAGS += -DHAVE_CONFIG_H +LOCAL_CURL_CFLAGS += -DBUILDING_LIBCURL +LOCAL_CURL_CFLAGS += -DCURL_STATICLIB +LOCAL_CURL_CFLAGS += -DCURL_DISABLE_LDAP +LOCAL_CURL_CFLAGS += -Ithirdparty/curl/include +LOCAL_CURL_CFLAGS += -Ithirdparty/curl/lib -ifeq "$(HAVE_LIBCRYPTO)" "yes" -LIBCRYPTO_CFLAGS := $(SYS_LIBCRYPTO_CFLAGS) -LIBCRYPTO_LIBS := $(SYS_LIBCRYPTO_LIBS) -endif +CURL_LIB := $(OUT)/libcurl.a -# --- pthread --- +$(CURL_LIB): $(CURL_OBJ) + +$(OUT)/thirdparty/curl/%.o: thirdparty/curl/%.c + $(CC_CMD) $(LOCAL_CURL_CFLAGS) + +CURL_CFLAGS := -Ithirdparty/curl/include +CURL_LIBS := -lpthread -ifneq "$(threading)" "no" -ifeq "$(HAVE_PTHREAD)" "yes" -THREADING_CFLAGS := $(SYS_PTHREAD_CFLAGS) -DHAVE_PTHREAD -THREADING_LIBS := $(SYS_PTHREAD_LIBS) -endif endif diff --git a/platform/java/Android.mk b/platform/java/Android.mk index 1d3c1a68..d29c07da 100644 --- a/platform/java/Android.mk +++ b/platform/java/Android.mk @@ -129,6 +129,7 @@ LOCAL_SRC_FILES += \ $(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/ftlcdfil.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 \ diff --git a/scripts/freetype/slimftoptions.h b/scripts/freetype/slimftoptions.h index b51f4b40..395eb1dd 100644 --- a/scripts/freetype/slimftoptions.h +++ b/scripts/freetype/slimftoptions.h @@ -9,6 +9,7 @@ #undef FT_CONFIG_OPTION_USE_HARFBUZZ #undef FT_CONFIG_OPTION_MAC_FONTS #undef FT_CONFIG_OPTION_INCREMENTAL +#undef FT_CONFIG_OPTION_SUBPIXEL_RENDERING #undef TT_CONFIG_OPTION_EMBEDDED_BITMAPS #undef TT_CONFIG_OPTION_SFNT_NAMES |