$NetBSD: patch-Makefile,v 1.9 2025/11/19 15:54:26 gutteridge Exp $ Libtoolize for portable shared libraries. --- Makefile.orig 2025-11-17 03:25:46.000000000 +0000 +++ Makefile @@ -1,5 +1,6 @@ .PHONY: regress regen_regress valgrind .SUFFIXES: .xml .md .html .pdf .1 .1.html .3 .3.html .5 .5.html .thumb.jpg .png .in.pc .pc .old.md +.SUFFIXES: .lo include Makefile.configure WWWDIR = /var/www/vhosts/kristaps.bsd.lv/htdocs/lowdown @@ -189,7 +190,12 @@ REGRESS_ARGS += "--parse-no-deflists" REGRESS_ENV = LC_ALL=en_US.UTF-8 -all: bins lowdown.pc $(LIB_SO) +LIBTOOL = libtool --tag=CC +LT_OBJS = $(OBJS:C/\.o$/.lo/g) +LT_COMPAT_OBJS = $(COMPAT_OBJS:C/\.o$/.lo/g) + +all: bins lowdown.pc liblowdown.la + bins: lowdown lowdown-diff www: all $(HTMLS) $(PDFS) $(THUMBS) lowdown.tar.gz lowdown.tar.gz.sha512 @@ -202,15 +208,20 @@ installwww: www $(INSTALL) -m 0444 lowdown.tar.gz $(WWWDIR)/snapshots $(INSTALL) -m 0444 lowdown.tar.gz.sha512 $(WWWDIR)/snapshots -lowdown: $(LIB_LOWDOWN) $(MAIN_OBJS) main.o - $(CC) -o $@ main.o $(MAIN_OBJS) $(LIB_LOWDOWN) $(LDFLAGS) $(LDADD_MD5) -lm $(LDADD) +lowdown: liblowdown.la $(LT_COMPAT_OBJS) main.o + $(LIBTOOL) --mode=link $(CC) -o $@ main.o $(LT_COMPAT_OBJS) liblowdown.la $(LDFLAGS) $(LDADD_MD5) -lm $(LDADD) +# For regress, we build this (just like lowdown) so that its libtool wrapper works. +# At install, we'll still just make a hard link to lowdown like upstream. lowdown-diff: lowdown - ln -f lowdown lowdown-diff + $(LIBTOOL) --mode=link $(CC) -o $@ main.o $(LT_COMPAT_OBJS) liblowdown.la $(LDFLAGS) $(LDADD_MD5) -lm $(LDADD) $(LIB_ST): $(OBJS) $(COMPAT_OBJS) $(AR) rs $@ $(OBJS) $(COMPAT_OBJS) +liblowdown.la: $(LT_OBJS) $(LT_COMPAT_OBJS) + $(LIBTOOL) --mode=link $(CC) -o $@ $(LT_OBJS) $(LT_COMPAT_OBJS) $(LDFLAGS) $(LDADD_MD5) -lm $(LDLIBS) -version-number $(LIBVER) -rpath $(LIBDIR) + $(LIB_SO): $(OBJS) $(COMPAT_OBJS) $(CC) $(LINKER_SOFLAG) -o $(LIB_SOVER) $(OBJS) $(COMPAT_OBJS) \ $(LDFLAGS) $(LDADD_MD5) -lm \ @@ -240,8 +251,8 @@ install: bins $(INSTALL_DATA) share/man/* $(DESTDIR)$(SHAREDIR)/lowdown/man $(INSTALL_DATA) share/ms/* $(DESTDIR)$(SHAREDIR)/lowdown/ms $(INSTALL_DATA) share/odt/* $(DESTDIR)$(SHAREDIR)/lowdown/odt - $(INSTALL_PROGRAM) lowdown $(DESTDIR)$(BINDIR) - $(INSTALL_PROGRAM) lowdown-diff $(DESTDIR)$(BINDIR) + $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) lowdown $(DESTDIR)$(BINDIR) + ln $(DESTDIR)$(BINDIR)/lowdown $(DESTDIR)$(BINDIR)/lowdown-diff for f in $(MAN1S) $(MAN5S) ; do \ name=`basename $$f .html` ; \ section=$${name##*.} ; \ @@ -272,6 +283,9 @@ install_lib_common: lowdown.pc uninstall_shared: uninstall_lib_common rm -f $(LIBDIR)/$(LIB_SOVER) $(LIBDIR)/$(LIB_SO) +install_pkgsrc: liblowdown.la install_lib_common + $(LIBTOOL) --mode=install $(BSD_INSTALL_LIB) liblowdown.la $(DESTDIR)$(LIBDIR) + install_shared: $(LIB_SO) install_lib_common $(INSTALL_LIB) $(LIB_SOVER) $(DESTDIR)$(LIBDIR) ( cd $(DESTDIR)$(LIBDIR) && ln -sf $(LIB_SOVER) $(LIB_SO) ) @@ -344,6 +358,9 @@ diff.diff.pdf: diff.md diff.old.md lowdo $(HTMLS): versions.xml lowdown +.c.lo: + $(LIBTOOL) --mode=compile $(CC) $(CFLAGS) -c -o $@ $< + .md.xml: lowdown ( echo "" ; \ echo "
" ; \ @@ -396,13 +413,13 @@ lowdown.tar.gz: ( cd .dist/ && tar zcf ../$@ lowdown-$(VERSION) ) rm -rf .dist/ -$(OBJS) $(COMPAT_OBJS) main.o: config.h +$(LT_OBJS) $(LT_COMPAT_OBJS) main.lo: config.h -$(OBJS): extern.h lowdown.h +$(LT_OBJS): extern.h lowdown.h -term.o: term.h +term.lo: term.h -main.o: lowdown.h +main.lo: lowdown.h clean: rm -f $(OBJS) $(COMPAT_OBJS) main.o