$NetBSD: patch-ac,v 1.14 2016/04/27 12:34:58 leot Exp $ o libtool support o Install target cleanup o Do not force `-O0' flag when building o Install only one "mupdf" binary, prefer the featureful one and always install it as "mupdf" --- Makefile.orig 2016-04-21 11:14:32.000000000 +0000 +++ Makefile @@ -38,22 +38,12 @@ CFLAGS += $(ZLIB_CFLAGS) # --- 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 $@ ; -endif - -CC_CMD = $(QUIET_CC) $(CC) $(CFLAGS) -o $@ -c $< -CXX_CMD = $(QUIET_CXX) $(CXX) $(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 $@ +CC_CMD = ${LIBTOOL} --mode=compile $(CC) $(CFLAGS) -o $@ -c $< +CXX_CMD = ${LIBTOOL} --mode=compile $(CXX) $(CFLAGS) -o $@ -c $< +AR_CMD = ${LIBTOOL} --mode=link $(CC) -o $@ -version-info 0:0:0 -rpath ${PREFIX}/lib $^ +LINK_CMD = ${LIBTOOL} --mode=link $(CC) -o $@ $^ $(LDFLAGS) $(LIBS) +MKDIR_CMD = mkdir -p $@ +RM_CMD = rm -f $@ # --- File lists --- @@ -89,17 +79,17 @@ XPS_SRC_HDR := $(wildcard source/xps/*.h HTML_SRC_HDR := $(wildcard source/html/*.h) GPRF_SRC_HDR := $(wildcard source/gprf/*.h) -FITZ_OBJ := $(subst source/, $(OUT)/, $(addsuffix .o, $(basename $(FITZ_SRC)))) -PDF_OBJ := $(subst source/, $(OUT)/, $(addsuffix .o, $(basename $(PDF_SRC)))) -XPS_OBJ := $(subst source/, $(OUT)/, $(addsuffix .o, $(basename $(XPS_SRC)))) -CBZ_OBJ := $(subst source/, $(OUT)/, $(addsuffix .o, $(basename $(CBZ_SRC)))) -HTML_OBJ := $(subst source/, $(OUT)/, $(addsuffix .o, $(basename $(HTML_SRC)))) -GPRF_OBJ := $(subst source/, $(OUT)/, $(addsuffix .o, $(basename $(GPRF_SRC)))) +FITZ_OBJ := $(subst source/, $(OUT)/, $(addsuffix .lo, $(basename $(FITZ_SRC)))) +PDF_OBJ := $(subst source/, $(OUT)/, $(addsuffix .lo, $(basename $(PDF_SRC)))) +XPS_OBJ := $(subst source/, $(OUT)/, $(addsuffix .lo, $(basename $(XPS_SRC)))) +CBZ_OBJ := $(subst source/, $(OUT)/, $(addsuffix .lo, $(basename $(CBZ_SRC)))) +HTML_OBJ := $(subst source/, $(OUT)/, $(addsuffix .lo, $(basename $(HTML_SRC)))) +GPRF_OBJ := $(subst source/, $(OUT)/, $(addsuffix .lo, $(basename $(GPRF_SRC)))) ifeq "$(HAVE_MUJS)" "yes" -PDF_OBJ += $(OUT)/pdf/js/pdf-js.o +PDF_OBJ += $(OUT)/pdf/js/pdf-js.lo else -PDF_OBJ += $(OUT)/pdf/js/pdf-js-none.o +PDF_OBJ += $(OUT)/pdf/js/pdf-js-none.lo endif $(FITZ_OBJ) : $(FITZ_HDR) $(FITZ_SRC_HDR) @@ -123,7 +113,7 @@ FONT_GEN_SIL := $(subst resources/fonts/ FONT_BIN := $(FONT_BIN_DROID) $(FONT_BIN_NOTO) $(FONT_BIN_URW) $(FONT_BIN_SIL) FONT_GEN := $(FONT_GEN_DROID) $(FONT_GEN_NOTO) $(FONT_GEN_URW) $(FONT_GEN_SIL) -FONT_OBJ := $(subst $(GEN)/, $(OUT)/fonts/, $(addsuffix .o, $(basename $(FONT_GEN)))) +FONT_OBJ := $(subst $(GEN)/, $(OUT)/fonts/, $(addsuffix .lo, $(basename $(FONT_GEN)))) $(GEN)/%.c : resources/fonts/droid/%.ttc $(FONTDUMP) $(QUIET_GEN) $(FONTDUMP) $@ $< @@ -141,8 +131,8 @@ $(FONT_GEN_URW) : $(FONT_BIN_URW) # --- Library --- -MUPDF_LIB = $(OUT)/libmupdf.a -THIRD_LIB = $(OUT)/libmupdfthird.a +MUPDF_LIB = $(OUT)/libmupdf.la +THIRD_LIB = $(OUT)/libmupdfthird.la MUPDF_OBJ := $(FITZ_OBJ) $(FONT_OBJ) $(PDF_OBJ) $(XPS_OBJ) $(CBZ_OBJ) $(HTML_OBJ) $(GPRF_OBJ) THIRD_OBJ := $(FREETYPE_OBJ) $(HARFBUZZ_OBJ) $(JBIG2DEC_OBJ) $(JPEG_OBJ) $(MUJS_OBJ) $(OPENJPEG_OBJ) $(ZLIB_OBJ) @@ -157,39 +147,39 @@ INSTALL_LIBS := $(MUPDF_LIB) $(THIRD_LIB $(ALL_DIR) $(OUT) $(GEN) : $(MKDIR_CMD) -$(OUT)/%.a : +$(OUT)/%.la : $(RM_CMD) $(AR_CMD) $(RANLIB_CMD) -$(OUT)/%: $(OUT)/%.o +$(OUT)/%: $(OUT)/%.lo $(LINK_CMD) -$(OUT)/%.o : source/%.c | $(ALL_DIR) +$(OUT)/%.lo : source/%.c | $(ALL_DIR) $(CC_CMD) -$(OUT)/%.o : source/%.cpp | $(ALL_DIR) +$(OUT)/%.lo : source/%.cpp | $(ALL_DIR) $(CXX_CMD) -$(OUT)/%.o : scripts/%.c | $(OUT) +$(OUT)/%.lo : scripts/%.c | $(OUT) $(CC_CMD) -$(OUT)/fonts/%.o : $(GEN)/%.c | $(ALL_DIR) - $(CC_CMD) -O0 +$(OUT)/fonts/%.lo : $(GEN)/%.c | $(ALL_DIR) + $(CC_CMD) -$(OUT)/platform/x11/%.o : platform/x11/%.c | $(ALL_DIR) +$(OUT)/platform/x11/%.lo : platform/x11/%.c | $(ALL_DIR) $(CC_CMD) $(X11_CFLAGS) -$(OUT)/platform/x11/%.o: platform/x11/%.rc | $(OUT) +$(OUT)/platform/x11/%.lo: platform/x11/%.rc | $(OUT) windres $< $@ -$(OUT)/platform/x11/curl/%.o : platform/x11/%.c | $(ALL_DIR) +$(OUT)/platform/x11/curl/%.lo : platform/x11/%.c | $(ALL_DIR) $(CC_CMD) $(X11_CFLAGS) $(CURL_CFLAGS) -DHAVE_CURL -$(OUT)/platform/gl/%.o : platform/gl/%.c | $(ALL_DIR) +$(OUT)/platform/gl/%.lo : platform/gl/%.c | $(ALL_DIR) $(CC_CMD) $(GLFW_CFLAGS) -.PRECIOUS : $(OUT)/%.o # Keep intermediates from chained rules +.PRECIOUS : $(OUT)/%.lo # Keep intermediates from chained rules # --- Generated CMap and JavaScript files --- @@ -240,16 +230,16 @@ endif generate: $(CMAP_GEN) $(FONT_GEN) $(JAVASCRIPT_GEN) $(ADOBECA_GEN) $(NAME_GEN) -$(OUT)/pdf/pdf-cmap-table.o : $(CMAP_GEN) -$(OUT)/pdf/pdf-pkcs7.o : $(ADOBECA_GEN) -$(OUT)/pdf/js/pdf-js.o : $(JAVASCRIPT_GEN) -$(OUT)/pdf/pdf-object.o : source/pdf/pdf-name-table.h -$(OUT)/cmapdump.o : include/mupdf/pdf/cmap.h source/pdf/pdf-cmap.c source/pdf/pdf-cmap-parse.c source/pdf/pdf-name-table.h +$(OUT)/pdf/pdf-cmap-table.lo : $(CMAP_GEN) +$(OUT)/pdf/pdf-pkcs7.lo : $(ADOBECA_GEN) +$(OUT)/pdf/js/pdf-js.lo : $(JAVASCRIPT_GEN) +$(OUT)/pdf/pdf-object.lo : source/pdf/pdf-name-table.h +$(OUT)/cmapdump.lo : include/mupdf/pdf/cmap.h source/pdf/pdf-cmap.c source/pdf/pdf-cmap-parse.c source/pdf/pdf-name-table.h # --- Tools and Apps --- MUTOOL := $(addprefix $(OUT)/, mutool) -MUTOOL_OBJ := $(addprefix $(OUT)/tools/, mutool.o mudraw.o murun.o pdfclean.o pdfcreate.o pdfextract.o pdfinfo.o pdfposter.o pdfshow.o pdfpages.o pdfmerge.o) +MUTOOL_OBJ := $(addprefix $(OUT)/tools/, mutool.lo mudraw.lo murun.lo pdfclean.lo pdfcreate.lo pdfextract.lo pdfinfo.lo pdfposter.lo pdfshow.lo pdfpages.lo pdfmerge.lo) $(MUTOOL_OBJ): $(FITZ_HDR) $(PDF_HDR) $(MUTOOL) : $(MUPDF_LIB) $(THIRD_LIB) $(MUTOOL) : $(MUTOOL_OBJ) @@ -257,27 +247,27 @@ $(MUTOOL) : $(MUTOOL_OBJ) MJSGEN := $(OUT)/mjsgen $(MJSGEN) : $(MUPDF_LIB) $(THIRD_LIB) -$(MJSGEN) : $(addprefix $(OUT)/tools/, mjsgen.o) +$(MJSGEN) : $(addprefix $(OUT)/tools/, mjsgen.lo) $(LINK_CMD) MUJSTEST := $(OUT)/mujstest -MUJSTEST_OBJ := $(addprefix $(OUT)/platform/x11/, jstest_main.o pdfapp.o) +MUJSTEST_OBJ := $(addprefix $(OUT)/platform/x11/, jstest_main.lo pdfapp.lo) $(MUJSTEST_OBJ) : $(FITZ_HDR) $(PDF_HDR) $(MUJSTEST) : $(MUPDF_LIB) $(THIRD_LIB) $(MUJSTEST) : $(MUJSTEST_OBJ) $(LINK_CMD) ifeq "$(HAVE_X11)" "yes" -MUVIEW_X11 := $(OUT)/mupdf-x11 -MUVIEW_X11_OBJ := $(addprefix $(OUT)/platform/x11/, x11_main.o x11_image.o pdfapp.o) +MUVIEW_X11 := $(OUT)/platform/x11/mupdf +MUVIEW_X11_OBJ := $(addprefix $(OUT)/platform/x11/, x11_main.lo x11_image.lo pdfapp.lo) $(MUVIEW_X11_OBJ) : $(FITZ_HDR) $(PDF_HDR) $(MUVIEW_X11) : $(MUPDF_LIB) $(THIRD_LIB) $(MUVIEW_X11) : $(MUVIEW_X11_OBJ) $(LINK_CMD) $(X11_LIBS) ifeq "$(HAVE_GLFW)" "yes" -MUVIEW_GLFW := $(OUT)/mupdf-gl -MUVIEW_GLFW_OBJ := $(addprefix $(OUT)/platform/gl/, gl-font.o gl-input.o gl-main.o) +MUVIEW_GLFW := $(OUT)/platform/gl/mupdf-gl +MUVIEW_GLFW_OBJ := $(addprefix $(OUT)/platform/gl/, gl-font.lo gl-input.lo gl-main.lo) $(MUVIEW_GLFW_OBJ) : $(FITZ_HDR) $(PDF_HDR) platform/gl/gl-app.h $(MUVIEW_GLFW) : $(MUPDF_LIB) $(THIRD_LIB) $(GLFW_LIB) $(MUVIEW_GLFW) : $(MUVIEW_GLFW_OBJ) @@ -285,8 +275,8 @@ $(MUVIEW_GLFW) : $(MUVIEW_GLFW_OBJ) endif ifeq "$(HAVE_CURL)" "yes" -MUVIEW_X11_CURL := $(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 := $(OUT)/platform/x11/curl/mupdf +MUVIEW_X11_CURL_OBJ := $(addprefix $(OUT)/platform/x11/curl/, x11_main.lo x11_image.lo pdfapp.lo curl_stream.lo) $(MUVIEW_X11_CURL_OBJ) : $(FITZ_HDR) $(PDF_HDR) $(MUVIEW_X11_CURL) : $(MUPDF_LIB) $(THIRD_LIB) $(CURL_LIB) $(MUVIEW_X11_CURL) : $(MUVIEW_X11_CURL_OBJ) @@ -296,17 +286,26 @@ endif ifeq "$(HAVE_WIN32)" "yes" MUVIEW_WIN32 := $(OUT)/mupdf -MUVIEW_WIN32_OBJ := $(addprefix $(OUT)/platform/x11/, win_main.o pdfapp.o win_res.o) +MUVIEW_WIN32_OBJ := $(addprefix $(OUT)/platform/x11/, win_main.lo pdfapp.lo win_res.lo) $(MUVIEW_WIN32_OBJ) : $(FITZ_HDR) $(PDF_HDR) $(MUVIEW_WIN32) : $(MUPDF_LIB) $(THIRD_LIB) $(MUVIEW_WIN32) : $(MUVIEW_WIN32_OBJ) $(LINK_CMD) $(WIN32_LIBS) endif -MUVIEW := $(MUVIEW_X11) $(MUVIEW_WIN32) $(MUVIEW_GLFW) +MUVIEW := $(MUVIEW_X11) $(MUVIEW_WIN32) MUVIEW_CURL := $(MUVIEW_X11_CURL) $(MUVIEW_WIN32_CURL) -INSTALL_APPS := $(MUTOOL) $(MUVIEW) $(MUJSTEST) $(MUVIEW_CURL) +INSTALL_APPS := $(MUTOOL) $(MUJSTEST) +ifeq "$(HAVE_CURL)" "yes" +INSTALL_APPS += $(MUVIEW_CURL) +else ifeq "$(HAVE_X11)" "yes" +INSTALL_APPS += $(MUVIEW) +endif + +ifeq "$(HAVE_GLFW)" "yes" +INSTALL_APPS += $(MUVIEW_GLFW) +endif # --- Examples --- @@ -349,24 +348,26 @@ libs: $(INSTALL_LIBS) apps: $(INSTALL_APPS) install: libs apps - install -d $(DESTDIR)$(incdir)/mupdf - install -d $(DESTDIR)$(incdir)/mupdf/fitz - install -d $(DESTDIR)$(incdir)/mupdf/pdf - install include/mupdf/*.h $(DESTDIR)$(incdir)/mupdf - install include/mupdf/fitz/*.h $(DESTDIR)$(incdir)/mupdf/fitz - install include/mupdf/pdf/*.h $(DESTDIR)$(incdir)/mupdf/pdf - - install -d $(DESTDIR)$(libdir) - install $(INSTALL_LIBS) $(DESTDIR)$(libdir) - - install -d $(DESTDIR)$(bindir) - install $(INSTALL_APPS) $(DESTDIR)$(bindir) + ${BSD_INSTALL_DATA_DIR} $(DESTDIR)$(incdir) $(DESTDIR)$(incdir)/mupdf $(DESTDIR)$(incdir)/mupdf/fitz $(DESTDIR)$(incdir)/mupdf/pdf + ${BSD_INSTALL_DATA} include/mupdf/*.h $(DESTDIR)$(incdir)/mupdf + ${BSD_INSTALL_DATA} include/mupdf/fitz/*.h $(DESTDIR)$(incdir)/mupdf/fitz + ${BSD_INSTALL_DATA} include/mupdf/pdf/*.h $(DESTDIR)$(incdir)/mupdf/pdf + + ${BSD_INSTALL_LIB_DIR} $(DESTDIR)$(libdir) + for f in $(INSTALL_LIBS); do \ + ${LIBTOOL} --mode=install ${BSD_INSTALL_LIB} $$f $(DESTDIR)$(libdir); \ + done + + ${BSD_INSTALL_PROGRAM_DIR} $(DESTDIR)$(bindir) + for f in $(INSTALL_APPS); do \ + ${LIBTOOL} --mode=install ${BSD_INSTALL_PROGRAM} $$f $(DESTDIR)$(bindir); \ + done - install -d $(DESTDIR)$(mandir)/man1 - install docs/man/*.1 $(DESTDIR)$(mandir)/man1 + ${BSD_INSTALL_MAN_DIR} $(DESTDIR)$(mandir)/man1 + ${BSD_INSTALL_MAN} docs/man/*.1 $(DESTDIR)$(mandir)/man1 - install -d $(DESTDIR)$(docdir) - install README COPYING CHANGES docs/*.txt $(DESTDIR)$(docdir) + ${BSD_INSTALL_DATA_DIR} $(DESTDIR)$(docdir) + ${BSD_INSTALL_DATA} README COPYING CHANGES docs/*.txt $(DESTDIR)$(docdir) tarball: bash scripts/archive.sh