build: Force order of library installation
authorSjoerd Simons <sjoerd@luon.net>
Fri, 17 Feb 2012 21:11:59 +0000 (22:11 +0100)
committerArun Raghavan <arun.raghavan@collabora.co.uk>
Mon, 20 Feb 2012 09:09:52 +0000 (14:39 +0530)
libtools causing relinking on installation, to make this succeed
libpulsecommon needs to be installed before the other libraries and the
padsp libraries needs to be installed afterwards.

Unfortunately autotools doesn't consider dependencies when running the
install target, thus we have to enforce the ordering ourselves

src/Makefile.am

index fe7794b..39e9522 100644 (file)
@@ -762,7 +762,8 @@ libpulse_mainloop_glib_la_LDFLAGS = $(AM_LDFLAGS) $(VERSIONING_LDFLAGS) -version
 ###################################
 
 if HAVE_OSS_WRAPPER
-pkglib_LTLIBRARIES += libpulsedsp.la
+padsplibdir = $(pkglibdir)
+padsplib_LTLIBRARIES = libpulsedsp.la
 bin_SCRIPTS += utils/padsp
 
 edit = @sed \
@@ -1991,4 +1992,23 @@ update-map-file:
 
 update-all: update-ffmpeg update-sbc update-map-file
 
+# Force installation order of libraries. libtool relinks on install time, in
+# which case libpulsecommon has to be install before others, but the padsp
+# preload library has to be done after the normal libraries (e.g. libpulse)
+# ...
+# Unfortunately automake behaviour means that rules without commands also
+# override build-in rules, so it's not trivial to add dependencies.
+# See http://debbugs.gnu.org/cgi/bugreport.cgi?bug=7328 for the workaround
+# ...
+# Isn't libtool/autotools fun!
+
+installlibLTLIBRARIES = install-libLTLIBRARIES
+$(installlibLTLIBRARIES): install-pkglibLTLIBRARIES
+
+installmodlibexecLTLIBRARIES = install-modlibexecLTLIBRARIES
+$(installmodlibexecLTLIBRARIES): install-pkglibLTLIBRARIES
+
+installpadsplibLTLIBRARIES = install-padsplibLTLIBRARIES
+$(installpadsplibLTLIBRARIES): install-libLTLIBRARIES
+
 .PHONY: utils/padsp massif update-all update-ffmpeg update-sbc update-map-file