From: Kay Sievers Date: Fri, 3 Jul 2009 21:18:36 +0000 (+0200) Subject: build-sys: reverse shlibs installation X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=999f44307005466f9507c01fb2a707042b242287;p=util-linux build-sys: reverse shlibs installation [kzak@redhat.com: Unfortunately, libtool does not provide a way how to install real libraries to /lib and devel libs (symlinks) to /usr/lib. We have to use install hooks to move these files. Currently we install to /lib and move devel files to /usr/lib. This concept is wrong, because the libdir= in .la libtool files must to match with the place where we install the devel .so libs. It means we have to install everything to /usr/lib and then move (by install hook) the real .so libs to /lib. This change is necessary to fix "make install", otherwise the install process will not work in clean change root. ] Signed-off-by: Kay Sievers Signed-off-by: Karel Zak --- diff --git a/shlibs/blkid/src/Makefile.am b/shlibs/blkid/src/Makefile.am index 8b1f46be..2771f3e8 100644 --- a/shlibs/blkid/src/Makefile.am +++ b/shlibs/blkid/src/Makefile.am @@ -21,7 +21,7 @@ AM_CPPFLAGS += -I$(ul_libblkid_srcdir) $(common_cflags) blkidincdir = $(includedir)/blkid blkidinc_HEADERS = blkid.h -lib_LTLIBRARIES = libblkid.la +usrlibexec_LTLIBRARIES = libblkid.la libblkid_la_SOURCES = cache.c dev.c devname.c devno.c getsize.c llseek.c \ probe.c read.c resolve.c save.c tag.c version.c verify.c \ encode.c blkid.h list.h blkidP.h probers/probers.h \ @@ -49,19 +49,15 @@ test_%: %.c $(COMPILE) -DTEST_PROGRAM $< .libs/libblkid.a -o $@ $(common_ldadd) -# move devel files from $(libdir) to $(usrlibexecdir) if needed +# move lib from $(usrlibexecdir) to $(libdir) if needed install-data-hook: - rm $(DESTDIR)$(libdir)/$(lib_LTLIBRARIES) if test "$(usrlibexecdir)" != "$(libdir)"; then \ - mkdir -p $(DESTDIR)$(usrlibexecdir); \ - mv $(DESTDIR)$(libdir)/libblkid.a $(DESTDIR)$(usrlibexecdir)/; \ - so_img_name=$$(readlink $(DESTDIR)$(libdir)/libblkid.so); \ - rm $(DESTDIR)$(libdir)/libblkid.so; \ + mkdir -p $(DESTDIR)$(libdir); \ + mv $(DESTDIR)$(usrlibexecdir)/libblkid.so.* $(DESTDIR)$(libdir); \ + so_img_name=$$(readlink $(DESTDIR)$(usrlibexecdir)/libblkid.so); \ so_img_rel_target=$$(echo $(usrlibexecdir) | sed 's,\(^/\|\)[^/][^/]*,..,g'); \ - ln -sf $$so_img_rel_target$(libdir)/$$so_img_name \ - $(DESTDIR)$(usrlibexecdir)/libblkid.so; \ + ln -sf $$so_img_rel_target$(libdir)/$$so_img_name $(DESTDIR)$(usrlibexecdir)/libblkid.so; \ fi uninstall-hook: - rm -f $(DESTDIR)$(usrlibexecdir)/libblkid.a - rm -f $(DESTDIR)$(usrlibexecdir)/libblkid.so* + rm -f $(DESTDIR)$(libdir)/libblkid.so* diff --git a/shlibs/uuid/src/Makefile.am b/shlibs/uuid/src/Makefile.am index fff11526..ddb55921 100644 --- a/shlibs/uuid/src/Makefile.am +++ b/shlibs/uuid/src/Makefile.am @@ -10,7 +10,7 @@ tst_uuid_CFLAGS = -I$(ul_libuuid_srcdir) uuidincdir = $(includedir)/uuid uuidinc_HEADERS = uuid.h -lib_LTLIBRARIES = libuuid.la +usrlibexec_LTLIBRARIES = libuuid.la libuuid_la_SOURCES = clear.c compare.c copy.c gen_uuid.c \ isnull.c pack.c parse.c unpack.c unparse.c uuidd.h \ uuidd.h uuidP.h uuid_time.c $(uuidinc_HEADERS) @@ -30,20 +30,16 @@ test_%: %.c $(COMPILE) -DTEST_PROGRAM $< .libs/libuuid.a -o $@ -# move devel files from $(libdir) to $(usrlibexecdir) if needed +# move lib from $(usrlibexecdir) to $(libdir) if needed install-data-hook: - rm $(DESTDIR)$(libdir)/$(lib_LTLIBRARIES) if test "$(usrlibexecdir)" != "$(libdir)"; then \ - mkdir -p $(DESTDIR)$(usrlibexecdir); \ - mv $(DESTDIR)$(libdir)/libuuid.a $(DESTDIR)$(usrlibexecdir)/; \ - so_img_name=$$(readlink $(DESTDIR)$(libdir)/libuuid.so); \ - rm $(DESTDIR)$(libdir)/libuuid.so; \ + mkdir -p $(DESTDIR)$(libdir); \ + mv $(DESTDIR)$(usrlibexecdir)/libuuid.so.* $(DESTDIR)$(libdir); \ + so_img_name=$$(readlink $(DESTDIR)$(usrlibexecdir)/libuuid.so); \ so_img_rel_target=$$(echo $(usrlibexecdir) | sed 's,\(^/\|\)[^/][^/]*,..,g'); \ - ln -sf $$so_img_rel_target$(libdir)/$$so_img_name \ - $(DESTDIR)$(usrlibexecdir)/libuuid.so; \ + ln -sf $$so_img_rel_target$(libdir)/$$so_img_name $(DESTDIR)$(usrlibexecdir)/libuuid.so; \ fi uninstall-hook: - rm -f $(DESTDIR)$(usrlibexecdir)/libuuid.a - rm -f $(DESTDIR)$(usrlibexecdir)/libuuid.so* + rm -f $(DESTDIR)$(libdir)/libuuid.so*