aboutsummaryrefslogtreecommitdiff
path: root/libphobos/m4/druntime/libraries.m4
diff options
context:
space:
mode:
authorIain Buclaw <ibuclaw@gdcproject.org>2019-04-12 20:13:34 +0000
committerIain Buclaw <ibuclaw@gcc.gnu.org>2019-04-12 20:13:34 +0000
commitbb50312e027994bb5260163a9c021b5444f86257 (patch)
treea54ece0354260e54a34472ff2bc81f5834fd2742 /libphobos/m4/druntime/libraries.m4
parent41fe51dd063c2d860f12311fc65c7ad8ed8e6df5 (diff)
downloadgcc-bb50312e027994bb5260163a9c021b5444f86257.zip
gcc-bb50312e027994bb5260163a9c021b5444f86257.tar.gz
gcc-bb50312e027994bb5260163a9c021b5444f86257.tar.bz2
libphobos: Add target-zlib to top-level configure
Removes the building of zlib from within libphobos, using instead the libz_convenience.a library. ChangeLog: 2019-04-12 Iain Buclaw <ibuclaw@gdcproject.org> * configure.ac: Add target-zlib to target_libraries. * configure: Regenerate. gcc/ChangeLog: 2019-04-12 Iain Buclaw <ibuclaw@gdcproject.org> * doc/install.texi: Document --with-target-system-zlib. libphobos/ChangeLog: 2019-04-12 Iain Buclaw <ibuclaw@gdcproject.org> * m4/druntime/libraries.m4 (DRUNTIME_LIBRARIES_ZLIB): Use libz_convenience.a if not using system zlib. * Makefile.in: Regenerate. * configure: Regenerate. * libdruntime/Makefile.in: Regenerate. * src/Makefile.am: Remove ZLIB_CSOURCES and AM_CFLAGS. * src/Makefile.in: Regenerate. * testsuite/Makefile.in: Regenerate. From-SVN: r270328
Diffstat (limited to 'libphobos/m4/druntime/libraries.m4')
-rw-r--r--libphobos/m4/druntime/libraries.m465
1 files changed, 48 insertions, 17 deletions
diff --git a/libphobos/m4/druntime/libraries.m4 b/libphobos/m4/druntime/libraries.m4
index 41c8880..6e81fd9 100644
--- a/libphobos/m4/druntime/libraries.m4
+++ b/libphobos/m4/druntime/libraries.m4
@@ -79,28 +79,59 @@ AC_DEFUN([DRUNTIME_LIBRARIES_NET],
# DRUNTIME_LIBRARIES_ZLIB
# -----------------------
# Allow specifying whether to use the system zlib or
-# compiling the zlib included in GCC. Define
-# DRUNTIME_ZLIB_SYSTEM conditional and add zlib to
-# LIBS if necessary.
+# compiling the zlib included in GCC. Adds substitute
+# for LIBZ or adds zlib to LIBS if necessary.
AC_DEFUN([DRUNTIME_LIBRARIES_ZLIB],
[
- AC_ARG_WITH(target-system-zlib,
- AS_HELP_STRING([--with-target-system-zlib],
- [use installed libz (default: no)]))
+ AC_LANG_PUSH([C])
+ LIBZ=""
- system_zlib=false
- AS_IF([test "x$with_target_system_zlib" = "xyes"], [
- AC_CHECK_LIB([z], [deflate], [
- system_zlib=yes
- ], [
- AC_MSG_ERROR([System zlib not found])
- ])
- ], [
- AC_MSG_CHECKING([for zlib])
+ AC_ARG_WITH(target-system-zlib,
+ AS_HELP_STRING([--with-target-system-zlib={yes,no,auto}],
+ [use installed libz (default: no)]),,
+ [with_target_system_zlib=no])
+
+ case "$with_target_system_zlib" in
+ yes|no|auto) ;;
+ *) AC_MSG_ERROR([Invalid argument for --with-target-system-zlib]) ;;
+ esac
+
+ AC_MSG_CHECKING([for system zlib])
+ save_LIBS=$LIBS
+ LIBS="$LIBS -lz"
+ dnl the link test is not good enough for ARM32 multilib detection,
+ dnl first check to link, then to run
+ AC_LINK_IFELSE(
+ [AC_LANG_PROGRAM([#include <zlib.h>],[gzopen("none", "rb")])],
+ [
+ AC_RUN_IFELSE([AC_LANG_SOURCE([[
+ #include <zlib.h>
+ int main() {
+ gzFile file = gzopen("none", "rb");
+ return 0;
+ }
+ ]])],
+ [system_zlib_found=yes],
+ [system_zlib_found=no],
+ dnl no system zlib for cross builds ...
+ [system_zlib_found=no]
+ )
+ ],
+ [system_zlib_found=no])
+ LIBS=$save_LIBS
+
+ if test x$system_zlib_found = xyes && test x$with_target_system_zlib != xno; then
+ AC_MSG_RESULT([found])
+ LIBS="$LIBS -lz"
+ elif test x$system_zlib_found = xno && test x$with_target_system_zlib = xyes; then
+ AC_MSG_ERROR([system zlib required but not found])
+ else
AC_MSG_RESULT([just compiled])
- ])
+ LIBZ=../../zlib/libz_convenience.la
+ fi
- AM_CONDITIONAL([DRUNTIME_ZLIB_SYSTEM], [test "$with_target_system_zlib" = yes])
+ AC_SUBST(LIBZ)
+ AC_LANG_POP([C])
])
# DRUNTIME_LIBRARIES_ATOMIC