aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--configure.ac39
-rw-r--r--src/xz/Makefile.am8
-rw-r--r--src/xzdec/Makefile.am5
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@