$NetBSD: patch-ac,v 1.12 2015/11/12 21:11:31 leot Exp $

o libtool support 
o Install target cleanup
o Install only one "mupdf" binary, prefer the featureful one and always
 install it as "mupdf"
o libmujs support: install like a non-thirdparty mupdf's library

--- Makefile.orig	2015-11-10 16:19:51.000000000 +0000
+++ Makefile
@@ -41,22 +41,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 ---
 
@@ -91,33 +81,33 @@ 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))))
 
 # --- Choice of Javascript library ---
 
 ifeq "$(HAVE_MUJS)" "yes"
-PDF_OBJ += $(OUT)/pdf/js/pdf-js.o
-PDF_OBJ += $(OUT)/pdf/js/pdf-jsimp-mu.o
+PDF_OBJ += $(OUT)/pdf/js/pdf-js.lo
+PDF_OBJ += $(OUT)/pdf/js/pdf-jsimp-mu.lo
 THIRD_LIBS += $(MUJS_LIB)
 LIBS += $(MUJS_LIBS)
 CFLAGS += $(MUJS_CFLAGS)
 else ifeq "$(HAVE_JSCORE)" "yes"
-PDF_OBJ += $(OUT)/pdf/js/pdf-js.o
-PDF_OBJ += $(OUT)/pdf/js/pdf-jsimp-jscore.o
+PDF_OBJ += $(OUT)/pdf/js/pdf-js.lo
+PDF_OBJ += $(OUT)/pdf/js/pdf-jsimp-jscore.lo
 LIBS += $(JSCORE_LIBS)
 CFLAGS += $(JSCORE_CFLAGS)
 else ifeq "$(HAVE_V8)" "yes"
-PDF_OBJ += $(OUT)/pdf/js/pdf-js.o
-PDF_OBJ += $(OUT)/pdf/js/pdf-jsimp-cpp.o $(OUT)/pdf/js/pdf-jsimp-v8.o
+PDF_OBJ += $(OUT)/pdf/js/pdf-js.lo
+PDF_OBJ += $(OUT)/pdf/js/pdf-jsimp-cpp.lo $(OUT)/pdf/js/pdf-jsimp-v8.lo
 LIBS += $(V8_LIBS)
 CFLAGS += $(V8_CFLAGS)
 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)
@@ -129,47 +119,50 @@ $(GPRF_OBJ) : $(FITZ_HDR) $(GPRF_HDR) $(
 
 # --- Library ---
 
-MUPDF_LIB := $(OUT)/libmupdf.a
+MUPDF_LIB := $(OUT)/libmupdf.la
 
 $(MUPDF_LIB) : $(FITZ_OBJ) $(PDF_OBJ) $(XPS_OBJ) $(CBZ_OBJ) $(HTML_OBJ) $(GPRF_OBJ)
 
 INSTALL_LIBS := $(MUPDF_LIB)
+ifeq "$(HAVE_MUJS)" "yes"
+INSTALL_LIBS += $(MUJS_LIB)
+endif
 
 # --- Rules ---
 
 $(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)/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, FONT and JAVASCRIPT files ---
 
@@ -233,17 +226,17 @@ endif
 
 generate: $(CMAP_GEN) $(FONT_GEN) $(JAVASCRIPT_GEN) $(ADOBECA_GEN) $(NAME_GEN)
 
-$(OUT)/pdf/pdf-cmap-table.o : $(CMAP_GEN)
-$(OUT)/pdf/pdf-fontfile.o : $(FONT_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-fontfile.lo : $(FONT_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 pdfclean.o pdfextract.o pdfinfo.o pdfposter.o pdfshow.o pdfpages.o)
+MUTOOL_OBJ := $(addprefix $(OUT)/tools/, mutool.lo mudraw.lo pdfclean.lo pdfextract.lo pdfinfo.lo pdfposter.lo pdfshow.lo pdfpages.lo)
 $(MUTOOL_OBJ): $(FITZ_HDR) $(PDF_HDR)
 $(MUTOOL) : $(MUPDF_LIB) $(THIRD_LIBS)
 $(MUTOOL) : $(MUTOOL_OBJ)
@@ -251,19 +244,19 @@ $(MUTOOL) : $(MUTOOL_OBJ)
 
 MJSGEN := $(OUT)/mjsgen
 $(MJSGEN) : $(MUPDF_LIB) $(THIRD_LIBS)
-$(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_LIBS)
 $(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_LIBS)
 $(MUVIEW_X11) : $(MUVIEW_X11_OBJ)
@@ -271,7 +264,7 @@ $(MUVIEW_X11) : $(MUVIEW_X11_OBJ)
 
 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_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_LIBS) $(GLFW_LIB)
 $(MUVIEW_GLFW) : $(MUVIEW_GLFW_OBJ)
@@ -279,8 +272,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_LIBS) $(CURL_LIB)
 $(MUVIEW_X11_CURL) : $(MUVIEW_X11_CURL_OBJ)
@@ -290,7 +283,7 @@ 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_LIBS)
 $(MUVIEW_WIN32) : $(MUVIEW_WIN32_OBJ)
@@ -300,7 +293,12 @@ endif
 MUVIEW := $(MUVIEW_X11) $(MUVIEW_WIN32) $(MUVIEW_GLFW)
 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
 
 # --- Examples ---
 
@@ -343,24 +341,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
