add configure option --with-root-libdir

This allows the development link libraries to be installed in
/usr/lib, while the run-libraries are installed in /lib, which is
required by Debian policy.  This can be done via:

    configure --prefix=/ --libdir=/usr/lib --with-root-libdir=/lib

The technique of working around libtool's inflexibility is borrowed
from util-linux.

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Reviewed-by: Chao Yu <yuchao0@huawei.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
This commit is contained in:
Theodore Ts'o 2018-08-19 23:04:06 -04:00 committed by Jaegeuk Kim
parent 0ba902b378
commit b067004c92
3 changed files with 43 additions and 0 deletions

View File

@ -190,6 +190,17 @@ AM_CONDITIONAL([OSX], [test "$build_mac" = "yes"])
#AC_SUBST([sbindir], [/sbin])
#AC_SUBST([sysconfdir], [/etc])
#AC_SUBST([localstatedir], [/var])
AC_ARG_WITH([root-libdir],
[ --with-root-libdir=DIR override location for /lib/libf2fs.so],
root_libdir=$withval,
root_libdir=NONE)dnl
if test "$root_libdir" = NONE ; then
root_libdir="$libdir"
fi
AC_SUBST(root_libdir)
AC_CONFIG_FILES([
Makefile
man/Makefile

View File

@ -6,3 +6,20 @@ libf2fs_la_SOURCES = libf2fs.c libf2fs_io.c libf2fs_zoned.c
libf2fs_la_CFLAGS = -Wall
libf2fs_la_CPPFLAGS = -I$(top_srcdir)/include
libf2fs_la_LDFLAGS = -version-info $(LIBF2FS_CURRENT):$(LIBF2FS_REVISION):$(LIBF2FS_AGE)
root_libdir=@root_libdir@
install-exec-hook:
if test -n "$(root_libdir)" -a "$(libdir)" != "$(root_libdir)" -a \
-f "$(DESTDIR)$(libdir)/libf2fs.so"; then \
$(MKDIR_P) $(DESTDIR)$(root_libdir); \
mv $(DESTDIR)$(libdir)/libf2fs.so.* $(DESTDIR)$(root_libdir); \
so_img_name=$$(readlink $(DESTDIR)$(libdir)/libf2fs.so); \
so_img_rel_target=$$(echo $(libdir) | sed 's,\(^/\|\)[^/][^/]*,..,g'); \
(cd $(DESTDIR)$(libdir) && \
rm -f libf2fs.so && \
$(LN_S) $$so_img_rel_target$(root_libdir)/$$so_img_name libf2fs.so); \
fi
uninstall-hook:
rm -f $(DESTDIR)$(root_libdir)/libf2fs.so*

View File

@ -14,3 +14,18 @@ libf2fs_format_la_CFLAGS = -DWITH_BLKDISCARD
libf2fs_format_la_CPPFLAGS = -I$(top_srcdir)/include
libf2fs_format_la_LDFLAGS = -luuid -L$(top_builddir)/lib -lf2fs \
-version-info $(FMT_CURRENT):$(FMT_REVISION):$(FMT_AGE)
install-exec-hook:
if test -n "$(root_libdir)" -a "$(libdir)" != "$(root_libdir)" -a \
-f "$(DESTDIR)$(libdir)/libf2fs_format.so"; then \
$(MKDIR_P) $(DESTDIR)$(root_libdir); \
mv $(DESTDIR)$(libdir)/libf2fs_format.so.* $(DESTDIR)$(root_libdir); \
so_img_name=$$(readlink $(DESTDIR)$(libdir)/libf2fs_format.so); \
so_img_rel_target=$$(echo $(libdir) | sed 's,\(^/\|\)[^/][^/]*,..,g'); \
(cd $(DESTDIR)$(libdir) && \
rm -f libf2fs_format.so && \
$(LN_S) $$so_img_rel_target$(root_libdir)/$$so_img_name libf2fs_format.so); \
fi
uninstall-hook:
rm $(DESTDIR)$(root_libdir)/libf2fs_format.so*