diff options
author | Lasse Collin <lasse.collin@tukaani.org> | 2009-02-07 21:17:07 +0200 |
---|---|---|
committer | Lasse Collin <lasse.collin@tukaani.org> | 2009-02-07 21:17:07 +0200 |
commit | 880c3309386aac58fc4f3d7ca99bd31bcb1526a3 (patch) | |
tree | e96c422423cd0ba79e36df013de1f129d32135ec | |
parent | add gitignore files (diff) | |
download | xz-880c3309386aac58fc4f3d7ca99bd31bcb1526a3.tar.xz |
Make it easy to choose if command line tools should be
linked statically or dynamically against liblzma. The
default is still to use static liblzma, but it can now
be changed by passing --enable-dynamic to configure.
Thanks to Mike Frysinger for the original patch.
Fixed a few minor bugs in configure.ac.
-rw-r--r-- | configure.ac | 39 | ||||
-rw-r--r-- | src/xz/Makefile.am | 8 | ||||
-rw-r--r-- | src/xzdec/Makefile.am | 5 |
3 files changed, 45 insertions, 7 deletions
diff --git a/configure.ac b/configure.ac index afd5afc1..3a606cfc 100644 --- a/configure.ac +++ b/configure.ac @@ -387,11 +387,50 @@ AC_ARG_ENABLE([threads], AC_HELP_STRING([--disable-threads], This makes some things thread-unsafe.]), [], [enable_threads=yes]) if test "x$enable_threads" != xyes && test "x$enable_threads" != xno; then + AC_MSG_RESULT([]) AC_MSG_ERROR([--enable-threads accepts only \`yes' or \`no']) fi +AC_MSG_RESULT([$enable_threads]) # We use the actual result a little later. +############################################ +# xz/xzdec/lzmadec linkage against liblzma # +############################################ + +# Link the command line tool statically against liblzma unless using +# --enable-dynamic. Using static liblzma gives a little bit faster executable +# on x86, because no register is wasted for PIC. We also have one dependency +# less, which allows users to more freely copy the xz binary to other boxes. +# However, I wouldn't be surprised if distro maintainers still prefer dynamic +# linking, so let's make it easy for them. + +AC_MSG_CHECKING([how command line tools should be linked against liblzma]) +AC_ARG_ENABLE([dynamic], [AC_HELP_STRING([--enable-dynamic], + [Link command line tools dynamically against liblzma. + The default is to use static liblzma if it was + built.])], + [], [enable_dynamic=no]) +case $enable_dynamic in + yes) + STATIC_CPPFLAGS= + STATIC_LDFLAGS= + AC_MSG_RESULT([dynamically]) + ;; + no) + STATIC_CPPFLAGS="-DLZMA_API_STATIC" + STATIC_LDFLAGS="-static" + AC_MSG_RESULT([statically]) + ;; + *) + AC_MSG_RESULT([]) + AC_MSG_ERROR([--enable-dynamic accepts only \`yes' or \`no']) + ;; +esac +AC_SUBST([STATIC_CPPFLAGS]) +AC_SUBST([STATIC_LDFLAGS]) + + ############################################################################### # Checks for programs. ############################################################################### diff --git a/src/xz/Makefile.am b/src/xz/Makefile.am index 5deed299..02dd8357 100644 --- a/src/xz/Makefile.am +++ b/src/xz/Makefile.am @@ -42,12 +42,10 @@ xz_CPPFLAGS = \ -I@top_srcdir@/src/common \ -I@top_srcdir@/src/liblzma/api \ -I@top_builddir@/lib \ - -I@top_srcdir@/lib + -I@top_srcdir@/lib \ + @STATIC_CPPFLAGS@ -## Always link the command line tool statically against liblzma. It is -## faster on x86, because no need for PIC. We also have one dependency less, -## which allows users to more freely copy the xz binary to other boxes. -xz_LDFLAGS = -static +xz_LDFLAGS = @STATIC_LDFLAGS@ xz_LDADD = \ @top_builddir@/src/liblzma/liblzma.la \ @LTLIBINTL@ diff --git a/src/xzdec/Makefile.am b/src/xzdec/Makefile.am index 84183fc0..0f85e4e8 100644 --- a/src/xzdec/Makefile.am +++ b/src/xzdec/Makefile.am @@ -18,8 +18,9 @@ xzdec_SOURCES = xzdec.c xzdec_CPPFLAGS = \ -I@top_srcdir@/src/common \ -I@top_srcdir@/src/liblzma/api \ - -I@top_builddir@/lib -xzdec_LDFLAGS = -static + -I@top_builddir@/lib \ + @STATIC_CPPFLAGS@ +xzdec_LDFLAGS = @STATIC_LDFLAGS@ xzdec_LDADD = \ @top_builddir@/src/liblzma/liblzma.la \ @LTLIBINTL@ |