diff options
author | Andy Wingo <wingo@pobox.com> | 2011-05-04 20:16:55 +0200 |
---|---|---|
committer | Andy Wingo <wingo@pobox.com> | 2011-05-04 20:19:11 +0200 |
commit | e3b8bce8f4fb5adf93e42bfa3263f7368ad4a3be (patch) | |
tree | 0dfaba4684bca3ece4ec46e4b005076651093560 | |
parent | 7ff0f239b2534cba823adc351dda8e64db6f4a08 (diff) | |
download | guile-e3b8bce8f4fb5adf93e42bfa3263f7368ad4a3be.tar.gz |
build support for detecting clock_gettime, with -lrt if needed
* acinclude.m4 (gl_CLOCK_TIME):
* configure.ac: Locally include gl_CLOCK_TIME. To be fixed properly
when gnulib updates their license to reflect the actual BSD state of
things.
* libguile/Makefile.am (libguile_@GUILE_EFFECTIVE_VERSION@_la_LDFLAGS):
Add -lrt for clock_gettime, if needed.
* meta/guile-2.0-uninstalled.pc.in:
* meta/guile-2.0.pc.in: Likewise, in Libs.private.
-rw-r--r-- | acinclude.m4 | 32 | ||||
-rw-r--r-- | configure.ac | 3 | ||||
-rw-r--r-- | libguile/Makefile.am | 1 | ||||
-rw-r--r-- | meta/guile-2.0-uninstalled.pc.in | 2 | ||||
-rw-r--r-- | meta/guile-2.0.pc.in | 2 |
5 files changed, 38 insertions, 2 deletions
diff --git a/acinclude.m4 b/acinclude.m4 index 0938671c0..ba8b09031 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -502,3 +502,35 @@ AC_DEFUN([GUILE_LIBUNISTRING_WITH_ICONV_SUPPORT], [ dnl Declare file $1 to be a script that needs configuring, dnl and arrange to make it executable in the process. AC_DEFUN([GUILE_CONFIG_SCRIPT],[AC_CONFIG_FILES([$1],[chmod +x $1])]) + +# clock_time.m4 serial 10 +dnl Copyright (C) 2002-2006, 2009-2011 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +# Check for clock_gettime and clock_settime, and set LIB_CLOCK_GETTIME. +# For a program named, say foo, you should add a line like the following +# in the corresponding Makefile.am file: +# foo_LDADD = $(LDADD) $(LIB_CLOCK_GETTIME) + +AC_DEFUN([gl_CLOCK_TIME], +[ + dnl Persuade glibc and Solaris <time.h> to declare these functions. + AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) + + # Solaris 2.5.1 needs -lposix4 to get the clock_gettime function. + # Solaris 7 prefers the library name -lrt to the obsolescent name -lposix4. + + # Save and restore LIBS so e.g., -lrt, isn't added to it. Otherwise, *all* + # programs in the package would end up linked with that potentially-shared + # library, inducing unnecessary run-time overhead. + LIB_CLOCK_GETTIME= + AC_SUBST([LIB_CLOCK_GETTIME]) + gl_saved_libs=$LIBS + AC_SEARCH_LIBS([clock_gettime], [rt posix4], + [test "$ac_cv_search_clock_gettime" = "none required" || + LIB_CLOCK_GETTIME=$ac_cv_search_clock_gettime]) + AC_CHECK_FUNCS([clock_gettime clock_settime]) + LIBS=$gl_saved_libs +]) diff --git a/configure.ac b/configure.ac index 64cab9a1a..146b77b00 100644 --- a/configure.ac +++ b/configure.ac @@ -65,6 +65,9 @@ AC_PROG_AWK dnl Gnulib. gl_INIT +dnl FIXME: remove me and the acinclude.m4 code when clock-gettime is +dnl LGPL-compatible and can be imported normally. +gl_CLOCK_TIME AC_PROG_CC_C89 diff --git a/libguile/Makefile.am b/libguile/Makefile.am index 4ec7ee5ab..263d6b04c 100644 --- a/libguile/Makefile.am +++ b/libguile/Makefile.am @@ -472,6 +472,7 @@ libguile_@GUILE_EFFECTIVE_VERSION@_la_LDFLAGS = \ $(ISNANF_LIBM) \ $(ISNANL_LIBM) \ $(LDEXP_LIBM) \ + $(LIB_CLOCK_GETTIME) \ $(LIBSOCKET) \ $(LOG1P_LIBM) \ $(LTLIBICONV) \ diff --git a/meta/guile-2.0-uninstalled.pc.in b/meta/guile-2.0-uninstalled.pc.in index 9cc1aaf18..6d8c36b18 100644 --- a/meta/guile-2.0-uninstalled.pc.in +++ b/meta/guile-2.0-uninstalled.pc.in @@ -5,5 +5,5 @@ Name: GNU Guile (uninstalled) Description: GNU's Ubiquitous Intelligent Language for Extension (uninstalled) Version: @GUILE_VERSION@ Libs: -L${builddir}/libguile -lguile-@GUILE_EFFECTIVE_VERSION@ @BDW_GC_LIBS@ -Libs.private: @LIBGMP@ @LIBLTDL@ @LIBFFI_LIBS@ @GUILE_LIBS@ +Libs.private: @LIB_CLOCK_GETTIME@ @LIBGMP@ @LIBLTDL@ @LIBFFI_LIBS@ @GUILE_LIBS@ Cflags: -I${srcdir} -I${builddir} @GUILE_CFLAGS@ @BDW_GC_CFLAGS@ diff --git a/meta/guile-2.0.pc.in b/meta/guile-2.0.pc.in index f76dd0156..ecca778e1 100644 --- a/meta/guile-2.0.pc.in +++ b/meta/guile-2.0.pc.in @@ -15,5 +15,5 @@ Name: GNU Guile Description: GNU's Ubiquitous Intelligent Language for Extension Version: @GUILE_VERSION@ Libs: -L${libdir} -lguile-@GUILE_EFFECTIVE_VERSION@ @BDW_GC_LIBS@ -Libs.private: @LIBGMP@ @LIBLTDL@ @LIBFFI_LIBS@ @GUILE_LIBS@ +Libs.private: @LIB_CLOCK_GETTIME@ @LIBGMP@ @LIBLTDL@ @LIBFFI_LIBS@ @GUILE_LIBS@ Cflags: -I${pkgincludedir}/@GUILE_EFFECTIVE_VERSION@ @GUILE_CFLAGS@ @BDW_GC_CFLAGS@ |