$NetBSD: patch-lib_Makefile,v 1.13 2024/07/23 06:22:37 adam Exp $ Make portable (inc. libtoolize). Unlock install target. Use pkgsrc install scripts. --- lib/Makefile.orig 2024-07-21 17:29:49.000000000 +0000 +++ lib/Makefile @@ -34,9 +34,9 @@ SED ?= sed # Version numbers -LIBVER_MAJOR_SCRIPT:=`$(SED) -n '/define[[:blank:]][[:blank:]]*LZ4_VERSION_MAJOR/s/.*[[:blank:]]\([0-9][0-9]*\).*/\1/p' < ./lz4.h` -LIBVER_MINOR_SCRIPT:=`$(SED) -n '/define[[:blank:]][[:blank:]]*LZ4_VERSION_MINOR/s/.*[[:blank:]]\([0-9][0-9]*\).*/\1/p' < ./lz4.h` -LIBVER_PATCH_SCRIPT:=`$(SED) -n '/define[[:blank:]][[:blank:]]*LZ4_VERSION_RELEASE/s/.*[[:blank:]]\([0-9][0-9]*\).*/\1/p' < ./lz4.h` +LIBVER_MAJOR_SCRIPT:=`awk '$$2=="LZ4_VERSION_MAJOR" {print $$3}' < lz4.h` +LIBVER_MINOR_SCRIPT:=`awk '$$2=="LZ4_VERSION_MINOR" {print $$3}' < lz4.h` +LIBVER_PATCH_SCRIPT:=`awk '$$2=="LZ4_VERSION_RELEASE" {print $$3}' < lz4.h` LIBVER_SCRIPT:= $(LIBVER_MAJOR_SCRIPT).$(LIBVER_MINOR_SCRIPT).$(LIBVER_PATCH_SCRIPT) LIBVER_MAJOR := $(shell echo $(LIBVER_MAJOR_SCRIPT)) LIBVER_MINOR := $(shell echo $(LIBVER_MINOR_SCRIPT)) @@ -55,6 +55,7 @@ CFLAGS = $(DEBUGFLAGS) $(USERCFLAGS) ALLFLAGS = $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) SRCFILES := $(sort $(wildcard *.c)) +OBJFILES := $(patsubst %.c,%.lo,$(SRCFILES)) include ../Makefile.inc @@ -97,11 +98,15 @@ all: lib liblz4.pc all32: CFLAGS+=-m32 all32: all +.SUFFIXES: .lo +.c.lo: + $(LIBTOOL) --mode=compile --tag=CC $(CC) $(CFLAGS) $(CPPFLAGS) -c $^ -o $@ + + CLEAN += liblz4.a -liblz4.a: $(SRCFILES) +liblz4.a: $(OBJFILES) ifeq ($(BUILD_STATIC),yes) # can be disabled on command line @echo compiling static library - $(COMPILE.c) $^ $(AR) rcs $@ *.o endif @@ -128,29 +133,26 @@ $(LIBLZ4): $(SRCFILES) liblz4-dll.o else # not windows -$(LIBLZ4): $(SRCFILES) +liblz4.la: $(OBJFILES) ifeq ($(BUILD_SHARED),yes) @echo compiling dynamic library $(LIBVER) - $(CC) $(ALLFLAGS) -shared $^ -fPIC -fvisibility=hidden $(SONAME_FLAGS) -o $@ - @echo creating versioned links - $(LN_SF) $@ liblz4.$(SHARED_EXT_MAJOR) - $(LN_SF) $@ liblz4.$(SHARED_EXT) + $(LIBTOOL) --mode=link --tag=CC $(CC) $(LDFLAGS) -rpath $(PREFIX)/lib -version-info $(LIBVER_MAJOR):0 $^ -o $@ endif endif CLEAN += $(LIBLZ4) .PHONY: liblz4 -liblz4: $(LIBLZ4) +liblz4: liblz4.la CLEAN += liblz4.pc liblz4.pc: liblz4.pc.in Makefile @echo creating pkgconfig - $(SED) -e 's|@PREFIX@|$(prefix)|' \ - -e 's|@LIBDIR@|$(libdir)|' \ - -e 's|@INCLUDEDIR@|$(includedir)|' \ - -e 's|@VERSION@|$(LIBVER)|' \ - -e 's|=${prefix}/|=$${prefix}/|' \ + $(SED) -e 's|@PREFIX@|$(prefix)|g' \ + -e 's|@LIBDIR@|$(libdir)|g' \ + -e 's|@INCLUDEDIR@|$(includedir)|g' \ + -e 's|@VERSION@|$(LIBVER)|g' \ + -e 's|=${prefix}/|=$${prefix}/|g' \ $< >$@ .PHONY: clean @@ -195,13 +197,13 @@ pkgconfigdir ?= $(PKGCONFIGDIR) .PHONY: install install: lib liblz4.pc - $(MAKE_DIR) $(DESTDIR)$(pkgconfigdir)/ $(DESTDIR)$(includedir)/ $(DESTDIR)$(libdir)/ $(DESTDIR)$(bindir)/ - $(INSTALL_DATA) liblz4.pc $(DESTDIR)$(pkgconfigdir)/ + $(BSD_INSTALL_DATA_DIR) $(DESTDIR)$(pkgconfigdir)/ $(DESTDIR)$(includedir)/ $(DESTDIR)$(libdir)/ $(DESTDIR)$(bindir)/ + $(BSD_INSTALL_DATA) liblz4.pc $(DESTDIR)$(pkgconfigdir)/ @echo Installing libraries in $(DESTDIR)$(libdir) ifeq ($(BUILD_STATIC),yes) - $(INSTALL_DATA) liblz4.a $(DESTDIR)$(libdir)/liblz4.a - $(INSTALL_DATA) lz4frame_static.h $(DESTDIR)$(includedir)/lz4frame_static.h - $(INSTALL_DATA) lz4file.h $(DESTDIR)$(includedir)/lz4file.h + $(BSD_INSTALL_LIB) liblz4.a $(DESTDIR)$(libdir)/liblz4.a + $(BSD_INSTALL_DATA) lz4frame_static.h $(DESTDIR)$(includedir)/lz4frame_static.h + $(BSD_INSTALL_DATA) lz4file.h $(DESTDIR)$(includedir)/lz4file.h endif ifeq ($(BUILD_SHARED),yes) # Traditionally, one installs the DLLs in the bin directory as programs @@ -211,15 +213,13 @@ install: lib liblz4.pc $(INSTALL_PROGRAM) $(LIBLZ4) $(DESTDIR)$(bindir) $(INSTALL_PROGRAM) $(LIBLZ4_EXP) $(DESTDIR)$(libdir) else - $(INSTALL_PROGRAM) liblz4.$(SHARED_EXT_VER) $(DESTDIR)$(libdir) - $(LN_SF) liblz4.$(SHARED_EXT_VER) $(DESTDIR)$(libdir)/liblz4.$(SHARED_EXT_MAJOR) - $(LN_SF) liblz4.$(SHARED_EXT_VER) $(DESTDIR)$(libdir)/liblz4.$(SHARED_EXT) + $(LIBTOOL) --mode install $(BSD_INSTALL_LIB) liblz4.la $(DESTDIR)$(libdir) endif endif @echo Installing headers in $(DESTDIR)$(includedir) - $(INSTALL_DATA) lz4.h $(DESTDIR)$(includedir)/lz4.h - $(INSTALL_DATA) lz4hc.h $(DESTDIR)$(includedir)/lz4hc.h - $(INSTALL_DATA) lz4frame.h $(DESTDIR)$(includedir)/lz4frame.h + $(BSD_INSTALL_DATA) lz4.h $(DESTDIR)$(includedir)/lz4.h + $(BSD_INSTALL_DATA) lz4hc.h $(DESTDIR)$(includedir)/lz4hc.h + $(BSD_INSTALL_DATA) lz4frame.h $(DESTDIR)$(includedir)/lz4frame.h @echo lz4 libraries installed .PHONY: uninstall