$NetBSD: patch-Makefile,v 1.4 2023/11/23 18:50:30 schmonz Exp $ Libtoolize for shared libraries on Darwin. --- Makefile.orig 2023-11-17 05:03:33.000000000 +0000 +++ Makefile @@ -17,6 +17,8 @@ CC = $(error Please use ./configure firs -include config.mak include package/deps.mak +LIBTOOL=libtool --tag=CC + version_m := $(basename $(version)) version_M := $(basename $(version_m)) version_l := $(basename $(version_M)) @@ -79,8 +81,8 @@ endif install: install-sysconf install-sysdeps install-dynlib install-lib install-include install-sysconf: $(ALL_DATA:src/etc/%=$(DESTDIR)$(sysconfdir)/%) install-sysdeps: $(ALL_SYSDEPS:$(sysdeps)/%=$(DESTDIR)$(sysdepdir)/%) -install-dynlib: $(SHARED_LIBS:lib%.so.xyzzy=$(DESTDIR)$(dynlibdir)/lib%.so) -install-lib: $(STATIC_LIBS:lib%.a.xyzzy=$(DESTDIR)$(libdir)/lib%.a) +install-dynlib: $(SHARED_LIBS:lib%.la=$(DESTDIR)$(dynlibdir)/lib%.la) +install-lib: install-include: $(ALL_INCLUDES:src/include/$(package)/%.h=$(DESTDIR)$(includedir)/$(package)/%.h) ifneq ($(exthome),) @@ -105,29 +107,22 @@ $(DESTDIR)$(sysconfdir)/%: src/etc/% $(DESTDIR)$(sysdepdir)/%: $(sysdeps)/% exec $(INSTALL) -D -m 644 $< $@ -$(DESTDIR)$(dynlibdir)/lib%.so $(DESTDIR)$(dynlibdir)/lib%.so.$(version_M): lib%.so.xyzzy - $(INSTALL) -D -m 755 $< $@.$(version) && \ - $(INSTALL) -l $(@F).$(version) $@.$(version_M) && \ - exec $(INSTALL) -l $(@F).$(version_M) $@ - -$(DESTDIR)$(libdir)/lib%.a: lib%.a.xyzzy - exec $(INSTALL) -D -m 644 $< $@ +$(DESTDIR)$(dynlibdir)/%.la: %.la + exec $(LIBTOOL) --mode=install $(BSD_INSTALL_LIB) $< $@ $(DESTDIR)$(includedir)/$(package)/%.h: src/include/$(package)/%.h exec $(INSTALL) -D -m 644 $< $@ -%.o: %.c - exec $(CC) $(CPPFLAGS_ALL) $(CFLAGS_ALL) -c -o $@ $< - %.lo: %.c - exec $(CC) $(CPPFLAGS_ALL) $(CFLAGS_ALL) $(CFLAGS_SHARED) -c -o $@ $< + exec $(LIBTOOL) --mode=compile $(CC) $(CPPFLAGS_ALL) $(CFLAGS_ALL) $(CFLAGS_SHARED) -c -o $@ $< + +libskarnet.a.xyzzy: libskarnet.la -libskarnet.a.xyzzy: $(ALL_SOBJS) - exec $(AR) rc $@ $^ - exec $(RANLIB) $@ +libskarnet.la: libtool-version-number $(ALL_DOBJS) + exec $(LIBTOOL) --mode=link $(CC) -o $@ $(CFLAGS_ALL) $(CFLAGS_SHARED) $(LDFLAGS_ALL) $^ $(SOCKET_LIB) $(SPAWN_LIB) $(SYSCLOCK_LIB) $(TAINNOW_LIB) $(TIMER_LIB) $(UTIL_LIB) -version-number `cat libtool-version-number` -rpath $(dynlibdir) -libskarnet.so.xyzzy: $(ALL_DOBJS) - exec $(CC) -o $@ $(CFLAGS_ALL) $(CFLAGS_SHARED) $(LDFLAGS_ALL) $(LDFLAGS_SHARED) -Wl,-soname,libskarnet.so.$(version_M) $^ $(SOCKET_LIB) $(SPAWN_LIB) $(SYSCLOCK_LIB) $(TAINNOW_LIB) $(TIMER_LIB) $(UTIL_LIB) +libtool-version-number: + echo $(version_m) | awk -F. '{ printf "%d:%d:%d", $$1, $$2, $$3 }' > $@ .PHONY: it all clean distclean tgz strip install install-data install-sysdeps install-dynlib install-lib install-include