$NetBSD: patch-ac,v 1.29 2022/07/24 10:13:38 leot Exp $

- libtool support 
- Install target cleanup
- Also install muthreads and mupkcs7 libraries (needed by various tools)
- Do not force `-O0' flag when building
- Use sh instead of bash
- Get rid of unused VERSION variable and `version:' target (otherwise `git' can
  be invoked during the building phase)
- Install mupdf with curl support as `mupdf-curl'

--- Makefile.orig	2022-06-14 12:19:22.000000000 +0000
+++ Makefile
@@ -54,13 +54,13 @@ ifneq ($(verbose),yes)
 endif
 
 MKTGTDIR = mkdir -p $(dir $@)
-CC_CMD = $(QUIET_CC) $(MKTGTDIR) ; $(CC) $(CFLAGS) -MMD -MP -o $@ -c $<
-CXX_CMD = $(QUIET_CXX) $(MKTGTDIR) ; $(CXX) $(CFLAGS) $(XCXXFLAGS) -MMD -MP -o $@ -c $<
-AR_CMD = $(QUIET_AR) $(MKTGTDIR) ; $(AR) cr $@ $^
+CC_CMD = $(QUIET_CC) $(MKTGTDIR) ; $(LIBTOOL) --mode=compile $(CC) $(CFLAGS) -MMD -MP -o $@ -c $<
+CXX_CMD = $(QUIET_CXX) $(MKTGTDIR) ; $(LIBTOOL) --mode=compile $(CXX) $(CFLAGS) $(XCXXFLAGS) -MMD -MP -o $@ -c $<
+AR_CMD = $(QUIET_AR) $(MKTGTDIR) ; $(LIBTOOL) --mode=link $(CC) $(LDFLAGS) -o $@ -version-info 0:0:0 -rpath $(PREFIX)/lib $^
 ifdef RANLIB
   RANLIB_CMD = $(QUIET_RANLIB) $(RANLIB) $@
 endif
-LINK_CMD = $(QUIET_LINK) $(MKTGTDIR) ; $(CC) $(LDFLAGS) -o $@ $^ $(LIBS)
+LINK_CMD = $(QUIET_LINK) $(MKTGTDIR) ; $(LIBTOOL) --mode=link $(CC) $(LDFLAGS) -o $@ $^ $(LIBS)
 TAGS_CMD = $(QUIET_TAGS) ctags -R --c-kinds=+p --exclude=platform/python --exclude=platform/c++
 WINDRES_CMD = $(QUIET_WINDRES) $(MKTGTDIR) ; $(WINDRES) $< $@
 OBJCOPY_CMD = $(QUIET_OBJCOPY) $(MKTGTDIR) ; $(LD) -r -b binary -z noexecstack -o $@ $<
@@ -68,7 +68,7 @@ GENDEF_CMD = $(QUIET_GENDEF) gendef - $<
 DLLTOOL_CMD = $(QUIET_DLLTOOL) dlltool -d $< -D $(notdir $(^:%.def=%.dll)) -l $@
 
 ifeq ($(shared),yes)
-LINK_CMD = $(QUIET_LINK) $(MKTGTDIR) ; $(CC) $(LDFLAGS) -o $@ \
+LINK_CMD = $(QUIET_LINK) $(MKTGTDIR) ; $(LIBTOOL) --mode=link $(CC) $(LDFLAGS) -o $@ \
 	$(filter-out %.$(SO),$^) \
 	$(sort $(patsubst %,-L%,$(dir $(filter %.$(SO),$^)))) \
 	$(patsubst lib%.$(SO),-l%,$(notdir $(filter %.$(SO),$^))) \
@@ -77,7 +77,7 @@ endif
 
 # --- Rules ---
 
-$(OUT)/%.a :
+$(OUT)/%.la :
 	$(AR_CMD)
 	$(RANLIB_CMD)
 
@@ -93,39 +93,39 @@ $(OUT)/%.def: $(OUT)/%.$(SO)
 $(OUT)/%_$(SO).a: $(OUT)/%.def
 	$(DLLTOOL_CMD)
 
-$(OUT)/source/helpers/mu-threads/%.o : source/helpers/mu-threads/%.c
+$(OUT)/source/helpers/mu-threads/%.lo : source/helpers/mu-threads/%.c
 	$(CC_CMD) $(WARNING_CFLAGS) $(LIB_CFLAGS) $(THREADING_CFLAGS)
 
-$(OUT)/source/helpers/pkcs7/%.o : source/helpers/pkcs7/%.c
+$(OUT)/source/helpers/pkcs7/%.lo : source/helpers/pkcs7/%.c
 	$(CC_CMD) $(WARNING_CFLAGS) $(LIB_CFLAGS) $(LIBCRYPTO_CFLAGS)
 
-$(OUT)/source/tools/%.o : source/tools/%.c
+$(OUT)/source/tools/%.lo : source/tools/%.c
 	$(CC_CMD) $(WARNING_CFLAGS) $(THIRD_CFLAGS) $(THREADING_CFLAGS)
 
-$(OUT)/generated/%.o : generated/%.c
-	$(CC_CMD) $(WARNING_CFLAGS) $(LIB_CFLAGS) -O0
+$(OUT)/generated/%.lo : generated/%.c
+	$(CC_CMD) $(WARNING_CFLAGS) $(LIB_CFLAGS)
 
-$(OUT)/platform/x11/%.o : platform/x11/%.c
+$(OUT)/platform/x11/%.lo : platform/x11/%.c
 	$(CC_CMD) $(WARNING_CFLAGS) $(X11_CFLAGS)
 
-$(OUT)/platform/x11/curl/%.o : platform/x11/%.c
+$(OUT)/platform/x11/curl/%.lo : platform/x11/%.c
 	$(CC_CMD) $(WARNING_CFLAGS) $(X11_CFLAGS) $(CURL_CFLAGS)
 
-$(OUT)/platform/gl/%.o : platform/gl/%.c
+$(OUT)/platform/gl/%.lo : platform/gl/%.c
 	$(CC_CMD) $(WARNING_CFLAGS) $(THIRD_CFLAGS) $(THIRD_GLUT_CFLAGS)
 
 ifeq ($(HAVE_OBJCOPY),yes)
-  $(OUT)/source/fitz/noto.o : source/fitz/noto.c
+  $(OUT)/source/fitz/noto.lo : source/fitz/noto.c
 	$(CC_CMD) $(WARNING_CFLAGS) -Wdeclaration-after-statement -DHAVE_OBJCOPY $(LIB_CFLAGS) $(THIRD_CFLAGS)
 endif
 
-$(OUT)/source/fitz/memento.o : source/fitz/memento.c
+$(OUT)/source/fitz/memento.lo : source/fitz/memento.c
 	$(CC_CMD) $(WARNING_CFLAGS) $(LIB_CFLAGS) $(THIRD_CFLAGS) -DMEMENTO_MUPDF_HACKS
 
-$(OUT)/source/%.o : source/%.c
+$(OUT)/source/%.lo : source/%.c
 	$(CC_CMD) $(WARNING_CFLAGS) -Wdeclaration-after-statement $(LIB_CFLAGS) $(THIRD_CFLAGS)
 
-$(OUT)/source/%.o : source/%.cpp
+$(OUT)/source/%.lo : source/%.cpp
 	$(CXX_CMD) $(WARNING_CFLAGS) $(LIB_CFLAGS) $(THIRD_CFLAGS)
 
 ifeq ($(HAVE_TESSERACT),yes)
@@ -133,22 +133,22 @@ $(OUT)/source/fitz/tessocr.o : source/fi
 	$(CXX_CMD) $(WARNING_CFLAGS) $(LIB_CFLAGS) $(THIRD_CFLAGS) $(TESSERACT_CFLAGS) $(TESSERACT_DEFINES) $(TESSERACT_LANGFLAGS)
 endif
 
-$(OUT)/platform/%.o : platform/%.c
+$(OUT)/platform/%.lo : platform/%.c
 	$(CC_CMD) $(WARNING_CFLAGS)
 
-$(OUT)/%.o: %.rc
+$(OUT)/%.lo: %.rc
 	$(WINDRES_CMD)
 
-.PRECIOUS : $(OUT)/%.o # Keep intermediates from chained rules
+.PRECIOUS : $(OUT)/%.lo # Keep intermediates from chained rules
 .PRECIOUS : $(OUT)/%.exe # Keep intermediates from chained rules
 
 # --- File lists ---
 
-THIRD_OBJ := $(THIRD_SRC:%.c=$(OUT)/%.o)
-THIRD_OBJ := $(THIRD_OBJ:%.cc=$(OUT)/%.o)
-THIRD_OBJ := $(THIRD_OBJ:%.cpp=$(OUT)/%.o)
+THIRD_OBJ := $(THIRD_SRC:%.c=$(OUT)/%.lo)
+THIRD_OBJ := $(THIRD_OBJ:%.cc=$(OUT)/%.lo)
+THIRD_OBJ := $(THIRD_OBJ:%.cpp=$(OUT)/%.lo)
 
-THIRD_GLUT_OBJ := $(THIRD_GLUT_SRC:%.c=$(OUT)/%.o)
+THIRD_GLUT_OBJ := $(THIRD_GLUT_SRC:%.c=$(OUT)/%.lo)
 
 MUPDF_SRC := $(sort $(wildcard source/fitz/*.c))
 MUPDF_SRC += $(sort $(wildcard source/fitz/*.cpp))
@@ -159,14 +159,14 @@ MUPDF_SRC += $(sort $(wildcard source/ht
 MUPDF_SRC += $(sort $(wildcard source/reflow/*.c))
 MUPDF_SRC += $(sort $(wildcard source/cbz/*.c))
 
-MUPDF_OBJ := $(MUPDF_SRC:%.c=$(OUT)/%.o)
-MUPDF_OBJ := $(MUPDF_OBJ:%.cpp=$(OUT)/%.o)
+MUPDF_OBJ := $(MUPDF_SRC:%.c=$(OUT)/%.lo)
+MUPDF_OBJ := $(MUPDF_OBJ:%.cpp=$(OUT)/%.lo)
 
 THREAD_SRC := source/helpers/mu-threads/mu-threads.c
-THREAD_OBJ := $(THREAD_SRC:%.c=$(OUT)/%.o)
+THREAD_OBJ := $(THREAD_SRC:%.c=$(OUT)/%.lo)
 
 PKCS7_SRC += source/helpers/pkcs7/pkcs7-openssl.c
-PKCS7_OBJ := $(PKCS7_SRC:%.c=$(OUT)/%.o)
+PKCS7_OBJ := $(PKCS7_SRC:%.c=$(OUT)/%.lo)
 
 # --- Generated embedded font files ---
 
@@ -181,19 +181,19 @@ FONT_BIN += $(sort $(wildcard resources/
 
 FONT_GEN := $(FONT_BIN:%=generated/%.c)
 
-generated/%.cff.c : %.cff $(HEXDUMP_SH) ; $(QUIET_GEN) $(MKTGTDIR) ; bash $(HEXDUMP_SH) > $@ $<
-generated/%.otf.c : %.otf $(HEXDUMP_SH) ; $(QUIET_GEN) $(MKTGTDIR) ; bash $(HEXDUMP_SH) > $@ $<
-generated/%.ttf.c : %.ttf $(HEXDUMP_SH) ; $(QUIET_GEN) $(MKTGTDIR) ; bash $(HEXDUMP_SH) > $@ $<
-generated/%.ttc.c : %.ttc $(HEXDUMP_SH) ; $(QUIET_GEN) $(MKTGTDIR) ; bash $(HEXDUMP_SH) > $@ $<
+generated/%.cff.c : %.cff $(HEXDUMP_SH) ; $(QUIET_GEN) $(MKTGTDIR) ; sh $(HEXDUMP_SH) > $@ $<
+generated/%.otf.c : %.otf $(HEXDUMP_SH) ; $(QUIET_GEN) $(MKTGTDIR) ; sh $(HEXDUMP_SH) > $@ $<
+generated/%.ttf.c : %.ttf $(HEXDUMP_SH) ; $(QUIET_GEN) $(MKTGTDIR) ; sh $(HEXDUMP_SH) > $@ $<
+generated/%.ttc.c : %.ttc $(HEXDUMP_SH) ; $(QUIET_GEN) $(MKTGTDIR) ; sh $(HEXDUMP_SH) > $@ $<
 
 ifeq ($(HAVE_OBJCOPY),yes)
-  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)
+  MUPDF_OBJ += $(FONT_BIN:%=$(OUT)/%.lo)
+  $(OUT)/%.cff.lo : %.cff ; $(OBJCOPY_CMD)
+  $(OUT)/%.otf.lo : %.otf ; $(OBJCOPY_CMD)
+  $(OUT)/%.ttf.lo : %.ttf ; $(OBJCOPY_CMD)
+  $(OUT)/%.ttc.lo : %.ttc ; $(OBJCOPY_CMD)
 else
-  MUPDF_OBJ += $(FONT_GEN:%.c=$(OUT)/%.o)
+  MUPDF_OBJ += $(FONT_GEN:%.c=$(OUT)/%.lo)
 endif
 
 generate: $(FONT_GEN)
@@ -247,24 +247,24 @@ else
 LIBS_TO_INSTALL_IN_LIB = $(MUPDF_LIB)
 endif
 ifneq ($(USE_SYSTEM_GLUT),yes)
-THIRD_GLUT_LIB = $(OUT)/libmupdf-glut.a
+THIRD_GLUT_LIB = $(OUT)/libmupdf-glut.la
 endif
-THREAD_LIB = $(OUT)/libmupdf-threads.a
-PKCS7_LIB = $(OUT)/libmupdf-pkcs7.a
+THREAD_LIB = $(OUT)/libmupdf-threads.la
+PKCS7_LIB = $(OUT)/libmupdf-pkcs7.la
 
 $(MUPDF_LIB) : $(MUPDF_OBJ) $(THIRD_OBJ)
 $(THIRD_GLUT_LIB) : $(THIRD_GLUT_OBJ)
 $(THREAD_LIB) : $(THREAD_OBJ)
 $(PKCS7_LIB) : $(PKCS7_OBJ)
 else
-MUPDF_LIB = $(OUT)/libmupdf.a
-LIBS_TO_INSTALL_IN_LIB = $(MUPDF_LIB) $(THIRD_LIB)
-THIRD_LIB = $(OUT)/libmupdf-third.a
+MUPDF_LIB = $(OUT)/libmupdf.la
+LIBS_TO_INSTALL_IN_LIB = $(MUPDF_LIB) $(THIRD_LIB) $(THREAD_LIB) $(PKCS7_LIB)
+THIRD_LIB = $(OUT)/libmupdf-third.la
 ifneq ($(USE_SYSTEM_GLUT),yes)
-THIRD_GLUT_LIB = $(OUT)/libmupdf-glut.a
+THIRD_GLUT_LIB = $(OUT)/libmupdf-glut.la
 endif
-THREAD_LIB = $(OUT)/libmupdf-threads.a
-PKCS7_LIB = $(OUT)/libmupdf-pkcs7.a
+THREAD_LIB = $(OUT)/libmupdf-threads.la
+PKCS7_LIB = $(OUT)/libmupdf-pkcs7.la
 
 $(MUPDF_LIB) : $(MUPDF_OBJ)
 $(THIRD_LIB) : $(THIRD_OBJ)
@@ -287,13 +287,13 @@ 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 := $(MUTOOL_SRC:%.c=$(OUT)/%.lo)
 MUTOOL_EXE := $(OUT)/mutool$(EXE)
 $(MUTOOL_EXE) : $(MUTOOL_OBJ) $(MUPDF_LIB) $(THIRD_LIB) $(PKCS7_LIB) $(THREAD_LIB)
 	$(LINK_CMD) $(THIRD_LIBS) $(THREADING_LIBS) $(LIBCRYPTO_LIBS)
 TOOL_APPS += $(MUTOOL_EXE)
 
-MURASTER_OBJ := $(OUT)/source/tools/muraster.o
+MURASTER_OBJ := $(OUT)/source/tools/muraster.lo
 MURASTER_EXE := $(OUT)/muraster$(EXE)
 $(MURASTER_EXE) : $(MURASTER_OBJ) $(MUPDF_LIB) $(THIRD_LIB) $(PKCS7_LIB) $(THREAD_LIB)
 	$(LINK_CMD) $(THIRD_LIBS) $(THREADING_LIBS) $(LIBCRYPTO_LIBS)
@@ -301,7 +301,7 @@ TOOL_APPS += $(MURASTER_EXE)
 
 ifeq ($(HAVE_GLUT),yes)
   MUVIEW_GLUT_SRC += $(sort $(wildcard platform/gl/*.c))
-  MUVIEW_GLUT_OBJ := $(MUVIEW_GLUT_SRC:%.c=$(OUT)/%.o)
+  MUVIEW_GLUT_OBJ := $(MUVIEW_GLUT_SRC:%.c=$(OUT)/%.lo)
   MUVIEW_GLUT_EXE := $(OUT)/mupdf-gl$(EXE)
   $(MUVIEW_GLUT_EXE) : $(MUVIEW_GLUT_OBJ) $(MUPDF_LIB) $(THIRD_LIB) $(THIRD_GLUT_LIB) $(PKCS7_LIB)
 	$(LINK_CMD) $(THIRD_LIBS) $(LIBCRYPTO_LIBS) $(WIN32_LDFLAGS) $(THIRD_GLUT_LIBS)
@@ -309,10 +309,10 @@ ifeq ($(HAVE_GLUT),yes)
 endif
 
 ifeq ($(HAVE_X11),yes)
-  MUVIEW_X11_EXE := $(OUT)/mupdf-x11$(EXE)
-  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 := $(OUT)/mupdf$(EXE)
+  MUVIEW_X11_OBJ += $(OUT)/platform/x11/pdfapp.lo
+  MUVIEW_X11_OBJ += $(OUT)/platform/x11/x11_main.lo
+  MUVIEW_X11_OBJ += $(OUT)/platform/x11/x11_image.lo
   $(MUVIEW_X11_EXE) : $(MUVIEW_X11_OBJ) $(MUPDF_LIB) $(THIRD_LIB) $(PKCS7_LIB)
 	$(LINK_CMD) $(THIRD_LIBS) $(X11_LIBS) $(LIBCRYPTO_LIBS)
   VIEW_APPS += $(MUVIEW_X11_EXE)
@@ -320,9 +320,9 @@ endif
 
 ifeq ($(HAVE_WIN32),yes)
   MUVIEW_WIN32_EXE := $(OUT)/mupdf-w32$(EXE)
-  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_OBJ += $(OUT)/platform/x11/pdfapp.lo
+  MUVIEW_WIN32_OBJ += $(OUT)/platform/x11/win_main.lo
+  MUVIEW_WIN32_OBJ += $(OUT)/platform/x11/win_res.lo
   $(MUVIEW_WIN32_EXE) : $(MUVIEW_WIN32_OBJ) $(MUPDF_LIB) $(THIRD_LIB) $(PKCS7_LIB)
 	$(LINK_CMD) $(THIRD_LIBS) $(WIN32_LDFLAGS) $(WIN32_LIBS) $(LIBCRYPTO_LIBS)
   VIEW_APPS += $(MUVIEW_WIN32_EXE)
@@ -331,12 +331,12 @@ endif
 ifeq ($(HAVE_X11),yes)
 ifeq ($(HAVE_CURL),yes)
 ifeq ($(HAVE_PTHREAD),yes)
-  MUVIEW_X11_CURL_EXE := $(OUT)/mupdf-x11-curl$(EXE)
-  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_OBJ += $(OUT)/platform/x11/curl/prog_stream.o
+  MUVIEW_X11_CURL_EXE := $(OUT)/mupdf$(EXE)
+  MUVIEW_X11_CURL_OBJ += $(OUT)/platform/x11/curl/pdfapp.lo
+  MUVIEW_X11_CURL_OBJ += $(OUT)/platform/x11/curl/x11_main.lo
+  MUVIEW_X11_CURL_OBJ += $(OUT)/platform/x11/curl/x11_image.lo
+  MUVIEW_X11_CURL_OBJ += $(OUT)/platform/x11/curl/curl_stream.lo
+  MUVIEW_X11_CURL_OBJ += $(OUT)/platform/x11/curl/prog_stream.lo
   $(MUVIEW_X11_CURL_EXE) : $(MUVIEW_X11_CURL_OBJ) $(MUPDF_LIB) $(THIRD_LIB) $(PKCS7_LIB) $(CURL_LIB)
 	$(LINK_CMD) $(THIRD_LIBS) $(X11_LIBS) $(LIBCRYPTO_LIBS) $(CURL_LIBS) $(PTHREAD_LIBS)
   VIEW_APPS += $(MUVIEW_X11_CURL_EXE)
@@ -346,19 +346,19 @@ endif
 
 # --- Generated dependencies ---
 
--include $(MUPDF_OBJ:%.o=%.d)
--include $(PKCS7_OBJ:%.o=%.d)
--include $(THREAD_OBJ:%.o=%.d)
--include $(THIRD_OBJ:%.o=%.d)
--include $(THIRD_GLUT_OBJ:%.o=%.d)
-
--include $(MUTOOL_OBJ:%.o=%.d)
--include $(MUVIEW_GLUT_OBJ:%.o=%.d)
--include $(MUVIEW_X11_OBJ:%.o=%.d)
--include $(MUVIEW_WIN32_OBJ:%.o=%.d)
+-include $(MUPDF_OBJ:%.lo=%.d)
+-include $(PKCS7_OBJ:%.lo=%.d)
+-include $(THREAD_OBJ:%.lo=%.d)
+-include $(THIRD_OBJ:%.lo=%.d)
+-include $(THIRD_GLUT_OBJ:%.lo=%.d)
+
+-include $(MUTOOL_OBJ:%.lo=%.d)
+-include $(MUVIEW_GLUT_OBJ:%.lo=%.d)
+-include $(MUVIEW_X11_OBJ:%.lo=%.d)
+-include $(MUVIEW_WIN32_OBJ:%.lo=%.d)
 
--include $(MURASTER_OBJ:%.o=%.d)
--include $(MUVIEW_X11_CURL_OBJ:%.o=%.d)
+-include $(MURASTER_OBJ:%.lo=%.d)
+-include $(MUVIEW_X11_CURL_OBJ:%.lo=%.d)
 
 # --- Examples ---
 
@@ -371,10 +371,10 @@ $(OUT)/multi-threaded: docs/examples/mul
 
 # --- Update version string header ---
 
-VERSION = $(shell git describe --tags)
-
-version:
-	sed -i~ -e '/FZ_VERSION /s/".*"/"'$(VERSION)'"/' include/mupdf/fitz/version.h
+#VERSION = $(shell git describe --tags)
+#
+#version:
+#	sed -i~ -e '/FZ_VERSION /s/".*"/"'$(VERSION)'"/' include/mupdf/fitz/version.h
 
 # --- Format man pages ---
 
@@ -402,30 +402,34 @@ tools: $(TOOL_APPS)
 apps: $(TOOL_APPS) $(VIEW_APPS)
 
 install-libs: libs
-	install -d $(DESTDIR)$(incdir)/mupdf
-	install -d $(DESTDIR)$(incdir)/mupdf/fitz
-	install -d $(DESTDIR)$(incdir)/mupdf/pdf
-	install -m 644 include/mupdf/*.h $(DESTDIR)$(incdir)/mupdf
-	install -m 644 include/mupdf/fitz/*.h $(DESTDIR)$(incdir)/mupdf/fitz
-	install -m 644 include/mupdf/pdf/*.h $(DESTDIR)$(incdir)/mupdf/pdf
+	${BSD_INSTALL_DATA_DIR} $(DESTDIR)$(incdir)/mupdf
+	${BSD_INSTALL_DATA_DIR} $(DESTDIR)$(incdir)/mupdf/fitz
+	${BSD_INSTALL_DATA_DIR} $(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
 ifneq ($(LIBS_TO_INSTALL_IN_LIB),)
-	install -d $(DESTDIR)$(libdir)
-	install -m 644 $(LIBS_TO_INSTALL_IN_LIB) $(DESTDIR)$(libdir)
+	${BSD_INSTALL_DATA_DIR} $(DESTDIR)$(libdir)
+	for f in $(LIBS_TO_INSTALL_IN_LIB); do \
+		${LIBTOOL} --mode=install ${BSD_INSTALL_LIB} $$f $(DESTDIR)$(libdir); \
+	done
 endif
 
 install-apps: apps
-	install -d $(DESTDIR)$(bindir)
-	install -m 755 $(LIBS_TO_INSTALL_IN_BIN) $(TOOL_APPS) $(VIEW_APPS) $(DESTDIR)$(bindir)
+	${BSD_INSTALL_DATA_DIR} $(DESTDIR)$(bindir)
+	for f in $(LIBS_TO_INSTALL_IN_BIN) $(TOOL_APPS) $(VIEW_APPS); do \
+		${LIBTOOL} --mode=install ${BSD_INSTALL_LIB} $$f $(DESTDIR)$(bindir); \
+	done
 
 install-docs:
-	install -d $(DESTDIR)$(mandir)/man1
-	install -m 644 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 -d $(DESTDIR)$(docdir)/examples
-	install -m 644 README COPYING CHANGES $(DESTDIR)$(docdir)
-	install -m 644 docs/*.html docs/*.css docs/*.png $(DESTDIR)$(docdir)
-	install -m 644 docs/examples/* $(DESTDIR)$(docdir)/examples
+	${BSD_INSTALL_DATA_DIR} $(DESTDIR)$(docdir)
+	${BSD_INSTALL_DATA_DIR} $(DESTDIR)$(docdir)/examples
+	${BSD_INSTALL_DATA} README COPYING CHANGES $(DESTDIR)$(docdir)
+	${BSD_INSTALL_DATA} docs/*.html docs/*.css docs/*.png $(DESTDIR)$(docdir)
+	${BSD_INSTALL_DATA} docs/examples/* $(DESTDIR)$(docdir)/examples
 
 install: install-libs install-apps install-docs
 
