From f4d01e231ac609889b18d9073bc314455b875c79 Mon Sep 17 00:00:00 2001 From: Tor Andersson Date: Mon, 9 Apr 2018 12:32:13 +0200 Subject: Clean up and simplify makefiles. * Use autogenerated header file dependencies. * Use mkdir to create target output directory directly. --- Makefile | 402 +++++++++++++++++++++++++++------------------------------------ 1 file changed, 172 insertions(+), 230 deletions(-) (limited to 'Makefile') diff --git a/Makefile b/Makefile index a88bb42c..2437f858 100644 --- a/Makefile +++ b/Makefile @@ -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) -- cgit v1.2.3