$NetBSD: patch-Makefile,v 1.9 2024/09/19 09:01:15 nia Exp $ - Libtoolize. - Allow override of PREFIX. - Allow separate installation of utilities. - Move quantize.c back into libgif.so to fix various library users. --- Makefile.orig 2024-02-19 01:01:50.000000000 +0000 +++ Makefile @@ -8,13 +8,13 @@ # OFLAGS = -O0 -g OFLAGS = -O2 -CFLAGS = -std=gnu99 -fPIC -Wall -Wno-format-truncation $(OFLAGS) +CFLAGS += -std=gnu99 -fPIC SHELL = /bin/sh TAR = tar INSTALL = install -PREFIX = /usr/local +PREFIX?= /usr/local BINDIR = $(PREFIX)/bin INCDIR = $(PREFIX)/include LIBDIR = $(PREFIX)/lib @@ -29,13 +29,13 @@ LIBPOINT=0 LIBVER=$(LIBMAJOR).$(LIBMINOR).$(LIBPOINT) SOURCES = dgif_lib.c egif_lib.c gifalloc.c gif_err.c gif_font.c \ - gif_hash.c openbsd-reallocarray.c + gif_hash.c openbsd-reallocarray.c quantize.c HEADERS = gif_hash.h gif_lib.h gif_lib_private.h -OBJECTS = $(SOURCES:.c=.o) +OBJECTS = $(SOURCES:.c=.lo) -USOURCES = qprintf.c quantize.c getarg.c +USOURCES = qprintf.c getarg.c UHEADERS = getarg.h -UOBJECTS = $(USOURCES:.c=.o) +UOBJECTS = $(USOURCES:.c=.lo) UNAME:=$(shell uname) @@ -61,7 +61,7 @@ UTILS = $(INSTALLABLE) \ gifsponge \ gifwedge -LDLIBS=libgif.a -lm +LDLIBS=-lm MANUAL_PAGES = \ doc/gif2rgb.xml \ @@ -72,45 +72,30 @@ MANUAL_PAGES = \ doc/giftext.xml \ doc/giftool.xml -SOEXTENSION = so +SOEXTENSION = la LIBGIFSO = libgif.$(SOEXTENSION) LIBGIFSOMAJOR = libgif.$(SOEXTENSION).$(LIBMAJOR) LIBGIFSOVER = libgif.$(SOEXTENSION).$(LIBVER) LIBUTILSO = libutil.$(SOEXTENSION) LIBUTILSOMAJOR = libutil.$(SOEXTENSION).$(LIBMAJOR) -ifeq ($(UNAME), Darwin) -SOEXTENSION = dylib -LIBGIFSO = libgif.$(SOEXTENSION) -LIBGIFSOMAJOR = libgif.$(LIBMAJOR).$(SOEXTENSION) -LIBGIFSOVER = libgif.$(LIBVER).$(SOEXTENSION) -LIBUTILSO = libutil.$(SOEXTENSION) -LIBUTILSOMAJOR = libutil.$(LIBMAJOR).$(SOEXTENSION) -endif -all: $(LIBGIFSO) libgif.a $(LIBUTILSO) libutil.a $(UTILS) -ifeq ($(UNAME), Darwin) -else - $(MAKE) -C doc -endif +all: $(LIBGIFSO) $(LIBUTILSO) -$(UTILS):: libgif.a libutil.a +.SUFFIXES: .lo -$(LIBGIFSO): $(OBJECTS) $(HEADERS) -ifeq ($(UNAME), Darwin) - $(CC) $(CFLAGS) -dynamiclib -current_version $(LIBVER) $(OBJECTS) -o $(LIBGIFSO) -else - $(CC) $(CFLAGS) -shared $(LDFLAGS) -Wl,-soname -Wl,$(LIBGIFSOMAJOR) -o $(LIBGIFSO) $(OBJECTS) -endif +.c.lo: + $(LIBTOOL) --tag=CC --mode=compile $(CC) $(CFLAGS) -c $< + +.libs/libgif.a: $(LIBGIFSO) +.libs/libutil.a: $(LIBUTILSO) -libgif.a: $(OBJECTS) $(HEADERS) - $(AR) rcs libgif.a $(OBJECTS) +$(UTILS): .libs/libutil.a .libs/libgif.a + +$(LIBGIFSO): $(OBJECTS) $(HEADERS) + $(LIBTOOL) --mode=link --tag=CC $(CC) $(CFLAGS) $(LDFLAGS) -version-info $(LIBMAJOR):0:0 -rpath $(PREFIX)/lib -o $(LIBGIFSO) $(OBJECTS) $(LIBUTILSO): $(UOBJECTS) $(UHEADERS) -ifeq ($(UNAME), Darwin) - $(CC) $(CFLAGS) -dynamiclib -current_version $(LIBVER) $(OBJECTS) -o $(LIBUTILSO) -else - $(CC) $(CFLAGS) -shared $(LDFLAGS) -Wl,-soname -Wl,$(LIBUTILMAJOR) -o $(LIBUTILSO) $(UOBJECTS) -endif + $(LIBTOOL) --mode=link --tag=CC $(CC) $(CFLAGS) $(LDFLAGS) -version-info $(LIBMAJOR):0:0 -rpath $(PREFIX)/lib -o $(LIBUTILSO) $(UOBJECTS) libutil.a: $(UOBJECTS) $(UHEADERS) $(AR) rcs libutil.a $(UOBJECTS) @@ -129,11 +114,7 @@ reflow: # Installation/uninstallation -ifeq ($(UNAME), Darwin) -install: all install-bin install-include install-lib -else install: all install-bin install-include install-lib install-man -endif install-bin: $(INSTALLABLE) $(INSTALL) -d "$(DESTDIR)$(BINDIR)" @@ -143,10 +124,7 @@ install-include: $(INSTALL) -m 644 gif_lib.h "$(DESTDIR)$(INCDIR)" install-lib: $(INSTALL) -d "$(DESTDIR)$(LIBDIR)" - $(INSTALL) -m 644 libgif.a "$(DESTDIR)$(LIBDIR)/libgif.a" - $(INSTALL) -m 755 $(LIBGIFSO) "$(DESTDIR)$(LIBDIR)/$(LIBGIFSOVER)" - ln -sf $(LIBGIFSOVER) "$(DESTDIR)$(LIBDIR)/$(LIBGIFSOMAJOR)" - ln -sf $(LIBGIFSOMAJOR) "$(DESTDIR)$(LIBDIR)/$(LIBGIFSO)" + $(LIBTOOL) --mode=install --tag=CC $(BSD_INSTALL_LIB) $(LIBGIFSO) "$(DESTDIR)$(LIBDIR)" install-man: $(INSTALL) -d "$(DESTDIR)$(MANDIR)/man1" $(INSTALL) -m 644 $(MANUAL_PAGES) "$(DESTDIR)$(MANDIR)/man1"