From f2579c4984615609847759cbd5883b8db821b1ba Mon Sep 17 00:00:00 2001 From: Jari Vetoniemi Date: Tue, 30 Oct 2018 21:02:52 +0200 Subject: Makefile: soversion symlinks and pkg-config --- Makefile | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) (limited to 'Makefile') diff --git a/Makefile b/Makefile index 3d31d75..25f9ca6 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,7 @@ PREFIX ?= /usr/local libdir ?= /lib includedir ?= /include +pkgconfigdir ?= /lib/pkgconfig MAKEFLAGS += --no-builtin-rules @@ -12,26 +13,38 @@ override CFLAGS += -std=c11 $(WARNINGS) override CPPFLAGS += -Iinclude libs = libasound.so +libsymlinks = libasound.so.2 libasound.so.2.0.0 +pkgconfigs = alsa.pc all: $(libs) %.so: - $(LINK.c) $(filter %.c,$^) $(LDLIBS) -fPIC -shared -o $@ + $(LINK.c) $(filter %.c,$^) $(LDLIBS) -fPIC -shared -Wl,-soname,$@.$(soabi).$(sompatch) -o $@.$(soabi).$(sompatch) + ln -fs $@.$(soabi).$(sompatch) $@.$(soabi) + ln -fs $@.$(soabi).$(sompatch) $@ +%.pc: %.pc.in + m4 -DINCLUDEDIR="$(PREFIX)$(includedir)" -DLIBDIR="$(PREFIX)$(libdir)" $^ > $@ + +libasound.so: private override soabi=2 +libasound.so: private override sompatch=0.0 libasound.so: private override CPPFLAGS += -D_POSIX_SOURCE libasound.so: private override CFLAGS += -Wno-unused-parameter -Wno-deprecated-declarations libasound.so: private override LDFLAGS += -Wl,--version-script=libasound.map libasound.so: private override LDLIBS += -lsndio -libasound.so: libasound.c libasound.map stubs.h symversioning-hell.h +libasound.so: libasound.c libasound.map stubs.h symversioning-hell.h alsa.pc -install-lib: $(libs) +install-lib: $(libs) $(libsymlinks) install -Dm755 $^ -t "$(DESTDIR)$(PREFIX)$(libdir)" +install-pkgconfig: $(pkgconfigs) + install -Dm755 $^ -t "$(DESTDIR)$(PREFIX)$(pkgconfigdir)" + install-include: install -Dm755 -d include/alsa "$(DESTDIR)$(PREFIX)$(includedir)" -install: install-lib install-include +install: install-lib install-pkgconfig install-include clean: - $(RM) $(libs) + $(RM) $(libs) $(libsymlinks) $(pkgconfigs) .PHONY: all clean install -- cgit v1.2.3