1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-04-30 11:50:28 +02:00
Commit graph

153 commits

Author SHA1 Message Date
Andy Wingo
ee1d374981 Revert "build: Compress with lzip too."
This reverts commit 89ce9fb31b.  It was
causing hydra builds to fail.
2017-03-02 08:40:18 +01:00
Ludovic Courtès
89ce9fb31b build: Compress with lzip too.
* configure.ac: Add 'dist-lzip' Automake option.
2016-10-12 12:23:48 +02:00
Andy Wingo
08d368012b Fix MinGW build error
* configure.ac: Fix for recent rename of win32-uname.c to posix-w32.c.
2016-07-16 10:35:21 +02:00
Andy Wingo
509c4205ba More robust setuid, setgid, etc detection
* configure.ac: Check for getuid, getgid, setuid, and setgid.
* libguile/posix.c (scm_getuid, scm_getgid, scm_setuid, scm_setgid):
  Only provide Scheme functions if the OS provides these facilities.
  (scm_geteuid, scm_getegid, scm_seteuid, scm_setegid): Provide if the
  host has getuid, getgid, etc, instead of being in a MinGW guard.
2016-07-11 22:14:38 +02:00
Ludovic Courtès
92b8087d7d build: Remove unneeded check for 'unsetenv'.
* configure.ac: Remove check for 'unsetenv', which is unneeded since we
use Gnulib's 'unsetenv'.
2016-07-11 11:01:51 +02:00
Andy Wingo
5b7b5749e1 Add meta/build-env
* meta/build-env.in: New file which sets up an environment that does not
  inherit GUILE_LOAD_PATH / GUILE_LOAD_COMPILED_PATH (unless
  cross-compiling).
* doc/ref/Makefile.am (autoconf-macros.texi):
* libguile/Makefile.am (snarf2checkedtexi):
* module/Makefile.am (ice-9/psyntax-pp.go):
* test-suite/standalone/Makefile.am (GUILE_INSTALL_LOCALE):
* am/guilec (.scm.go): Use build-env.
* configure.ac: Create build-env.
2016-07-10 13:21:38 +02:00
Andy Wingo
96f55b7f36 Check for strtod_l before using it.
Based on a patch by Andy Stormont <astormont@racktopsystems.com>.

* configure.ac: Check for strtod_l.
* libguile/i18n.c (scm_locale_string_to_integer): Fix style.
  (scm_locale_string_to_inexact): Check for strtod_l.
2016-06-26 22:37:47 +02:00
Andy Wingo
961e226104 Detect too-old libunistring at configure-time.
* configure.ac: Detect too-old libunistring at configure-time.  Fixes
  #17399.
2016-06-21 18:04:48 +02:00
Ludovic Courtès
efd8a438b3 build: Remove libguile/mkstemp.c, redundant with Gnulib.
Fixes <http://bugs.gnu.org/21425>.
Reported by Kouhei Sutou <kou@cozmixng.org>.

* configure.ac: Remove 'AC_REPLACE_FUNCS' for 'mkstemp'.
* libguile/Makefile.am (EXTRA_libguile_@GUILE_EFFECTIVE_VERSION@_la_SOURCES):
  Remove mkstemp.c.
* libguile/mkstemp.c: Remove.
2015-10-29 23:55:05 +01:00
Natanael Copa
ed0c14769a i18n: Check for non-POSIX strtol_l.
* configure.ac: Check for strtol_l.
* libguile/i18n.c: Check HAVE_STRTOL_L before using strtol_l.
2015-06-19 16:04:37 -04:00
Ludovic Courtès
5fac1a7ada Add the 'guild' and 'guile' variables to 'guile-2.0.pc'.
* configure.ac: Remove meta/guile-2.0.pc and
  meta/guile-2.0-uninstalled.pc from 'AC_CONFIG_FILES'.
* meta/Makefile.am (substitute): New variable.
  (guile-2.0.pc, guile-2.0-uninstalled.pc): New targets.
  (guile-config, guild): Use $(substitute) instead of duplicated sed
  script.
  (CLEANFILES): Add the .pc files.
* meta/guile-2.0.pc.in (bindir, guild, guile): New variables.
* doc/ref/libguile-parallel.texi (Parallel Installations): Document the
  'guild' and 'guile' pkg-config variables.
2014-12-03 18:59:36 +01:00
Mark H Weaver
30c5982a95 i18n: Add HAVE_USELOCALE as a requirement for USE_GNU_LOCALE_API.
* configure.ac: Check for uselocale.
* libguile/i18n.c: Add HAVE_USELOCALE to the list of requirements
  before defining USE_GNU_LOCALE_API.
2014-10-14 20:36:19 -04:00
Ludovic Courtès
f184e887a6 build: Support pthread builds without 'pthread_cancel' support (Android).
Reported by Sylvain Beucler <beuc@beuc.net>.

* configure.ac: Check for 'pthread_cancel'.
* libguile/threads.c (scm_cancel_thread): Conditionalize on
  !SCM_USE_PTHREAD_THREADS || defined HAVE_PTHREAD_CANCEL.
* test-suite/tests/threads.test (require-cancel-thread): New procedure.
  ("timed joining fails if timeout exceeded", "join-thread returns
  timeoutval on timeout", "cancel succeeds", "handler result passed to
  join", "can cancel self"): Use it.
2014-07-04 15:52:53 +02:00
Ludovic Courtès
8c75d3ae01 build: Use 'LT_LIB_M' to determine whether -lm is needed.
* configure.ac: Use 'LT_LIB_M' instead of 'AC_CHECK_LIB(m, cos)'.
  Suggested by Sylvain Beucler <beuc@beuc.net>.
2014-07-04 15:37:38 +02:00
Eli Zaretskii
317f6a2370 Unconditionally build and test the ice-9/popen module.
* module/Makefile.am (ICE_9_SOURCES): Add ice-9/popen.scm.
  (ICE_9_SOURCES) [BUILD_ICE_9_POPEN]: Remove conditional addition
  of ice-9/popen.scm.
  (SCRIPTS_SOURCES): Add scripts/autofrisk.scm and
  scripts/scan-api.scm unconditionally.
  (SCRIPTS_SOURCES) [BUILD_ICE_9_POPEN]: Remove conditional addition
  of scripts/autofrisk.scm and scripts/scan-api.scm.

* configure.ac: Remove the BUILD_ICE_9_POPEN condition.

* test-suite/tests/popen.test (if-supported): Don't test for 'fork
 feature being supported.
2014-07-03 19:20:00 +03:00
Ludovic Courtès
4a81f5b5d3 build: Honor program name transformation in 'guild'.
* configure.ac: Remove erroneous 'guile_program_name' substitute; see
  <https://lists.gnu.org/archive/html/autoconf/2014-04/msg00010.html>
  for details.  Remove 'meta/guild' config file.
* meta/Makefile.am (guild): New target.
  (CLEANFILES): Add 'guild'.
* meta/guild.in: Remove 'prefix' and 'exec_prefix' definitions; use
  @installed_guile@.
2014-04-24 11:55:27 +02:00
Ludovic Courtès
da7e43a6e0 build: Fix Gnulib compilation when $builddir != $srcdir.
* configure.ac: Add -I$top_srcdir_absolute to 'CPPFLAGS'.  Fixes
  out-of-source-tree compilation of lib/regex.c.  Reported at
  <https://lists.gnu.org/archive/html/guile-devel/2014-03/msg00022.html>.
2014-03-12 14:24:54 +01:00
Ludovic Courtès
8f7887d616 Provide glthread/lock.h implementation in terms of Guile threads.
Fixes <http://bugs.gnu.org/14404>.
Thanks to Paul Eggert <eggert@cs.ucla.edu> for the suggestion.

* m4/gnulib-cache.m4: Avoid 'lock' module.
* m4/lock.m4, m4/threadlib.m4, lib/glthread/threadlib.c,
  lib/glthread/lock.c: Remove.
* lib/glthread/lock.h: Rewrite in terms of libguile/threads.h.
* m4/gnulib-common.m4, m4/gnulib-comp.m4, lib/Makefile.am,
  lib/unistd.in.h, maint.mk : Update, from Gnulib v0.1-92-g546ff82.

* configure.ac (GNULIB_LOCK): Define 'GNULIB_LOCK'.  Define
  'USE_POSIX_THREADS' when building with pthread support.
* Makefile.am (noinst_HEADERS): New variable.
  (BUILT_SOURCES): Add libguile/scmconfig.h.
  (libguile/scmconfig.h): New target.
2014-03-12 00:02:01 +01:00
Mark H Weaver
de7aa61ac4 Improve compliance with C standards regarding signed integer shifts.
* configure.ac: Add -fwrapv when using GCC (or compatible), if
  supported.

* libguile/numbers.h (SCM_I_MAKINUM): Cast to scm_t_bits (unsigned)
  before shifting, to avoid undefined behavior.
2014-03-07 04:34:27 -05:00
Ludovic Courtès
8f5dbecb4b build: Bail out when 'PKG_CHECK_MODULES' is missing.
* configure.ac: Add 'm4_pattern_forbid' invocation.
2014-02-20 22:56:17 +01:00
Tom Tromey
2bbdd2ce1c Fix computation of LIBLOBJS.
Fixes <http://bugs.gnu.org/14193>.

* configure.ac (LIBLOBJS): Add prefix to computed .lo file name so
  dependencies work properly.
2013-12-12 21:43:31 -05:00
Ludovic Courtès
039300a1eb build: Tell gen-scmconfig' whether the system has struct timespec'.
* configure.ac: Reinstate `struct timespec' check removed in commit
  7e7c6f6a93, but define
  `HAVE_SYSTEM_STRUCT_TIMESPEC' instead of `HAVE_STRUCT_TIMESPEC'.
* libguile/gen-scmconfig.c (main): Change `HAVE_STRUCT_TIMESPEC' to
  `HAVE_SYSTEM_STRUCT_TIMESPEC'.
2013-04-10 01:39:02 +02:00
Andy Wingo
32cec09d13 simplify configure checks for functionality provided by gnulib
* configure.ac: Remove checks for pipe, stftime, times, and select, as
  our Gnulib modules already ensure they are provided.

* libguile/stime.c: Rely on gnulib providing `times'.
2013-04-09 21:58:30 +02:00
Ludovic Courtès
df3d365a99 build: Build and check (ice-9 popen) only when --enable-posix and HAVE_FORK.
Fixes <http://bugs.gnu.org/13848>.
Reported by Jan Schukat <shookie@email.de>.

* configure.ac: Rename `HAVE_FORK' conditional to `BUILD_ICE_9_POPEN'.
  Set it when both $enable_posix and $ac_cv_func_fork are true.
* libguile/posix.c (scm_init_posix): Add the `fork' feature.
* doc/ref/api-options.texi (Common Feature Symbols): Add `fork'.
* doc/ref/posix.texi (Pipes): Add footnote mentioning the `fork'
  feature.
* module/Makefile.am (SCRIPTS_SOURCES): Make `scripts/autofrisk.scm' and
  `scripts/scan-api.scm' conditional on `BUILD_ICE_9_POPEN'.
* test-suite/tests/popen.test (if-supported): New macro.
  Wrap body in `if-supported'.
2013-03-29 19:20:01 +01:00
Ludovic Courtès
7e7c6f6a93 build: Remove redundant check for `struct timespec'.
* m4/gnulib-cache.m4: Add `time'.
* lib/Makefile.am: Update, still from v0.0-7865-ga828bb2.
* configure.ac: Remove check for `struct timespec', which was redundant
  with Gnulib, and conflicted with pthread-win32's <pthread.h>:
  <http://lists.gnu.org/archive/html/bug-gnulib/2013-03/msg00096.html>.
2013-03-29 19:20:01 +01:00
Ludovic Courtès
07b390d582 Allow compilation with GMP < 5.0.0.
* libguile/numbers.c (VARARG_MPZ_ITERATOR)[!HAVE_DECL_MPZ_INITS]: New
  macro.
  (mpz_inits, mpz_clears)[!HAVE_DECL_MPZ_INITS]: New functions.
* configure.ac: Check for the declaration of `mpz_inits'.
2013-03-28 22:19:12 +01:00
Ludovic Courtès
fbac7c6113 Add bindings for `sendfile'.
* configure.ac: Check for <sys/sendfile.h> and `sendfile'.
* libguile/filesys.c (scm_sendfile): New function.
* libguile/filesys.h (scm_sendfile): New declaration.
* test-suite/tests/filesys.test ("sendfile"): New test prefix.
* doc/ref/posix.texi (File System): Document `sendfile'.
2013-03-22 22:21:13 +01:00
Ludovic Courtès
a9ea4f909b Avoid rebuild of `guile.info' at the user's site.
* configure.ac: Remove `doc/ref/effective-version.texi' from the
  `AC_CONFIG_FILES'.
* doc/ref/Makefile.am ($(srcdir)/effective-version.texi): New target.
2013-03-18 22:30:13 +01:00
Jason Earl
b5870f25ad rely on gnulib for `poll'
* configure.ac:
* libguile/fports.c (fport_input_waiting):
* libguile/poll.c (scm_primitive_poll): Rely on gnulib to provide poll
  for us.
2013-03-10 23:44:23 +01:00
Jason Earl
e9381f58d1 fix AC_CHECK_DECLS for `alarm'
* configure.ac: Fix decl check for `alarm'.
2013-03-10 20:20:49 +01:00
Andy Wingo
94c53e0601 provide getlogin declaration if needed.
* configure.ac: Check for getlogin decl.
* libguile/posix.c: Declare getlogin if needed.
2013-03-09 23:55:01 +01:00
Andy Wingo
cdd125e8d4 portability simplification with scmsigs.c and alarm
* configure.ac (alarm): Check for decl.
* libguile/scmsigs.c: Reorder includes to put system includes first.
  Fixes include order on mingw.  Remove #define for alarm, as we will
  use HAVE_DECL_ALARM.  Remove #defines for sleep and usleep, as they
  are not used.
  (scm_alarm): Only define if HAVE_DECL_ALARM.
2013-03-09 22:25:35 +01:00
Andy Wingo
09b204d387 squish remove some mingw-specific code that is covered by gnulib
* libguile/socket.c (scm_init_socket): Remove mingw-specific code.

* libguile/fports.c: Remove ftruncate redefine; mingw is fine.
  (scm_i_fdes_to_port): If we have no F_GETFL, just do an fstat.  The
  right place for an F_GETFL replacement would be in gnulib.
  (fport_input_waiting): Remove an outdated comment.

* libguile/error.c (SCM_I_STRERROR, SCM_I_ERRNO): Remove, replacing uses
  with strerror and errno.

* libguile/win32-socket.c:
* libguile/win32-socket.h: Remove.  Mingw has suitable replacements.

* configure.ac:
* libguile/Makefile.am (EXTRA_libguile_@GUILE_EFFECTIVE_VERSION@_la_SOURCES):
  (noinst_HEADERS): Update for win32-socket removal.
2013-03-09 16:47:21 +01:00
Andy Wingo
4c187d46d4 add check for struct pollfd
* configure.ac: Add check for struct pollfd.

* libguile/fports.c (fport_input_waiting):
* libguile/poll.c (scm_primitive_poll): Require struct pollfd.  Fixes
  bug 13903.
2013-03-09 11:56:56 +01:00
Ludovic Courtès
0f595d7d1d Use accessors instead of symbols deprecated in libgc 7.3.
* configure.ac: Check for `GC_set_all_interior_pointers',
  `GC_get_gc_no', and `GC_set_java_finalization'.
* libguile/gc.c (scm_gc_stats)[HAVE_GC_GET_GC_NO]: Use `GC_get_gc_no'.
  (scm_storage_prehistory)[HAVE_GC_SET_ALL_INTERIOR_POINTERS]: Use
  `GC_set_all_interior_pointers'.
* libguile/guardians.c (scm_init_guardians)[HAVE_GC_SET_JAVA_FINALIZATION]:
  Use `GC_set_java_finalization'.
2013-03-01 17:50:05 +01:00
Andy Wingo
a8fa310b04 require automake 1.12 for `serial-tests'.
* configure.ac: Require automake 1.12 for `serial-tests'.
2013-01-30 12:00:13 +01:00
Ludovic Courtès
ac28db6db1 build: Allow use of Automake 1.13.
Fixes <http://bugs.gnu.org/13558>.
Reported by DNS <dns@rbose.org>.

* configure.ac: Use the `serial-tests' Automake option to cope with
  Automake 1.13, which uses `parallel-tests' by default.
2013-01-28 22:28:42 +01:00
Ludovic Courtès
21982d68ab build: Require Automake 1.11.2 or later.
* configure.ac: Require Automake 1.11.2 or later.
  Reported by Sjoerd van Leent Privé <svanleent@gmail.com>
  in <http://bugs.gnu.org/13117>.
2012-12-10 23:41:06 +01:00
Ludovic Courtès
99b94347f9 Remove definition of the `SHARED_LIBRARY_PATH_VARIABLE' C macro.
This is a follow-up to fc32c44.

* configure.ac: Remove definition of `SHARED_LIBRARY_PATH_VARIABLE',
  which was added in e66ff09a.
2012-11-28 22:55:08 +01:00
Ludovic Courtès
712ca51ffe Remove reference to scm_init_popen' when fork' is unavailable.
Fixes <http://bugs.gnu.org/12477>.
Reported by lin ray <lin.wei.ray@gmail.com>.

* configure.ac: Define the `HAVE_FORK' Automake conditional.
* module/Makefile.am (ICE_9_SOURCES): Add `ice-9/popen.scm' only when
  HAVE_FORK.
* libguile/posix.c (scm_init_posix): Register `scm_init_popen' only when
  HAVE_FORK.
2012-11-23 23:37:29 +01:00
Ludovic Courtès
a8872c78a4 build: Use Automake's `color-tests'.
* configure.ac: Use Automake's `color-tests'.
2012-09-03 22:33:45 +02:00
Ludovic Courtès
1321a36ed6 build: Use `AM_PROG_AR'.
* configure.ac: Use `AM_PROG_AR', as suggested by Automake
  1.12.1 ("warning: 'libguilereadline-v-@LIBGUILEREADLINE_MAJOR@.la':
  linking libtool libraries using a non-POSIX archiver requires
  'AM_PROG_AR' in 'configure.ac'").
2012-07-07 11:41:39 +02:00
Ludovic Courtès
235c280489 Use `clock-time' directly from Gnulib, but with a local patch.
This is equivalent to the previous situation, but more easily
maintainable.

* acinclude.m4 (gl_CLOCK_TIME): Remove.

* configure.ac: Remove explicit use of `gl_CLOCK_TIME'.

* m4/gnulib-cache.m4 (gl_MODULES): Add `clock-time'.

* gnulib-local/m4/clock_time.m4.diff: New file.
* Makefile.am (EXTRA_DIST): Add it.
2012-07-06 23:56:05 +02:00
Andy Wingo
24dd9f6fe1 add --match pattern to git-version-gen
* configure.ac: Add --match pattern so we only get v2.0.x tagx.
2012-07-06 16:13:57 +02:00
Andy Wingo
5558cdaa30 add check for fchmod
* configure.ac: Add a check for fchmod.

* libguile/filesys.c (scm_chmod): Guard the fchmod case with
  HAVE_FCHMOD.
2012-07-06 11:01:51 +02:00
Ludovic Courtès
82171a2ea4 Build with `-Wpointer-arith' when available.
* configure.ac (POTENTIAL_GCC_CFLAGS): Add `-Wpointer-arith'.
2012-05-06 22:23:12 +02:00
Andy Wingo
9adbf27f4e more libgc 7.1 compat
* configure.ac:
* libguile/gc.c (GC_set_finalize_on_demand): Check for this function,
  and shim if it isn't present.
2012-03-08 23:50:41 +01:00
Andy Wingo
f740445a9b run finalizers asynchronously in asyncs
* libguile/finalizers.c: New excitement!  We'll be running finalizers
  asynchronously, from asyncs.  This will make it safer to allocate
  while holding a mutex.
  (GC_set_finalizer_notifier): Add back-compat shim.

* libguile/init.c (scm_i_init_guile): Init the async finalizer mechanism
  during boot.

* libguile/gc.c (scm_storage_prehistory): Tell libgc we'll be finalizing
  on demand.
  (scm_gc): Explicitly run finalizers here.

* libguile/threads.c (guilify_self_2): Run finalizers here if
  queue_finalizer_async happened to run during guilify_self_1.

* configure.ac: Add check for GC_set_finalizer_notifier.
2012-03-08 13:12:10 +01:00
Ludovic Courtès
a0919aefee i18n: Use Gnulib's `nl_langinfo' module.
* configure.ac: Remove checks for <langinfo.h> and <nl_types.h>, and
  `nl_langinfo'.

* libguile/i18n.c: Remove #ifdefs for HAVE_LANGINFO_H, HAVE_NL_TYPES_H,
  HAVE_NL_ITEM, and HAVE_LANGINFO_CODESET.
  (SCM_VALIDATE_OPTIONAL_LOCALE_COPY): Use `SCM_UNBNDP'.

* m4/gnulib-cache.m4 (gl_MODULES): Add `nl_langinfo'.

* module/ice-9/i18n.scm (define-vector-langinfo-mapping): Remove
  `defaults' parameter; assume (provided? 'nl-langinfo) is always true.
  Update users accordingly.
  (define-simple-langinfo-mapping): Likewise.
  (define-monetary-langinfo-mapping): Likewise, but do not assume
  LOCAL-ITEM and INTL-ITEM are always defined.
2012-02-03 14:14:14 +01:00
Ludovic Courtès
eb4a14ed47 Use Gnulib's `regex' module.
This should help with regex portability, as reported in
<http://bugs.gnu.org/10684> for Darwin 8.11.

* m4/gnulib-cache.m4 (gl_MODULES): Add `regex'.

* configure.ac: Remove header checks for regex.h, rxposix.h, and
  rx/rxposix.h.  Remove check for the `regcomp' function.  Remove
  definition of `HAVE_REGCOMP'.  Define `ENABLE_REGEX'.

* libguile/init.c: Check for `ENABLE_REGEX' instead of `HAVE_REGCOMP'.

* libguile/regex-posix.c: Always include <regex.h>.  Remove #ifdefs for
  rxposix.h and co.
2012-02-03 10:51:46 +01:00