summaryrefslogtreecommitdiff
path: root/configure.ac
AgeCommit message (Collapse)AuthorFilesLines
2021-03-11For MinGW use Windows filepaths in libpath.hMichael Gran1-0/+3
* configure.ac (MINGW_LIBPATH): new automake conditional and test * libguile/Makefile.am (libpath.h) [MINGW_LIBPATH]: use Windows-style paths
2021-03-07More informative error message if GMP not foundAndy Wingo1-1/+1
* configure.ac: Mention --enable-mini-gmp if GMP not found.
2021-03-03don't presume availability of gmp.pcMichael Gran1-16/+9
This suggests moving the conditional that determines if mini-gmp is used into scmconfig.h. * configure.ac: replace PKG_CHECK_MODULES for gmp with AC_LIB_HAVE_LINKFLAGS Remove ENABLE_MINI_GMP define. Also don't run mpz_inits test for --enable-mini-gmp. * libguile/gen-scmconfig.c (main) [ENABLE_MINI_GMP]: replace ENABLE_MINI_GMP with SCM_I_GSC_ENABLE_MINI_GMP * libguile/bytevectors.c [ENABLE_MINI_GMP]: replace ENABLE_MINI_GMP with SCM_ENABLE_MINI_GMP * libguile/init.c [ENABLE_MINI_GMP]: replace ENABLE_MINI_GMP with SCM_ENABLE_MINI_GMP * libguile/numbers.c: include scm.h [SCM_ENABLE_MINI_GMP]: provide mpz_inits and mpz_clears [ENABLE_MINI_GMP]: prefer SCM_ENABLE_MINI_GMP to ENABLE_MINI_GMP * libguile/numbers.h: include scm.h * libguile/random.c [ENABLE_MINI_GMP]: replace ENABLE_MINI_GMP with SCM_ENABLE_MINI_GMP * libguile/socket.c [ENABLE_MINI_GMP]: replace ENABLE_MINI_GMP with SCM_ENABLE_MINI_GMP
2021-03-02improve autoconfigury for minigmpMichael Gran1-4/+9
* configure.ac: add SCM_I_GSC_ENABLE_MINI_GMP var and rename GUILE_MINI_GMP to ENABLE_MINI_GMP * libguile/bytevectors (GUILE_MINI_GMP): rename to ENABLE_MINI_GMP * libguile/gen-scmconfig.c: renamed GUILE_MINI_GMP to ENABLE_MINI_GMP. rename GUILE_MINI_GMP to SCM_ENABLE_MINI_GMP * libguile/gen-scmconfig.h: add SCM_I_GSC_ENABLE_MINI_GMP * libguile/init.c [GUILE_MINI_GMP]: prefer ENABLE_MINI_GMP * libguile/numbers.c [GUILE_MINI_GMP]: prefer ENABLE_MINI_GMP * libguile/numbers.h: include scmconfig.h rename GUILE_MINI_GMP to SCM_ENABLE_MINI_GMP * libguile/random.c [GUILE_MINI_GMP]: prefer ENABLE_MINI_GMP * libguile/socket.c [GUILE_MINI_GMP]: prefer ENABLE_MINI_GMP * libguile.h [GUILE_MINI_GMP]: prefer SCM_ENABLE_MINI_GMP
2021-03-02Enable option to prefer mini-gmp over libgmpMichael Gran1-12/+18
* configure.ac: rework gmp library detection. Add new flag. * libguile.h: modify gmp header inclusion * libguile/Makefile.am: add mini-gmp.[ch] files * libguile/bytevectors.c: add mini-gmp headers * libguile/gen-scmconfig.c: new #include variable GUILE_MINI_GMP * libguile/init.c: add mini-gmp header * libguile/mini-gmp.c: new file * libguile/mini-gmp.h: new file * libguile/numbers.c: add fallback for missing mpz_get_d_2exp * libguile/numbers.h: yse mini-gmp header * libguile/random.c: use mini-gmp header * libguile/socket.c: use mini-gmp header
2021-02-06build: Use 'AM_GNU_GETTEXT_VERSION'.Ludovic Courtès1-0/+1
* configure.ac: Add 'AM_GNU_GETTEXT_VERSION', as required by Autoconf 2.70.
2021-02-03Replace libltdl with raw dlopen, dlsymAndy Wingo1-6/+2
* NEWS: Update. * am/bootstrap.am (SOURCES): * module/Makefile.am (SOURCES): Add system/foreign-library.scm. * configure.ac: Replace ltdl check with -ldl check. * libguile/dynl.c: Rewrite to just expose core dlopen / dlsym / etc to a helper Scheme module. (scm_dynamic_link, scm_dynamic_pointer, scm_dynamic_function) (scm_dynamic_object_p, scm_dynamic_call): Rewrite in terms of (system foreign-library). * libguile/extensions.c (load_extension): Avoid scm_dynamic_call. * module/system/foreign-library.scm: New file. * module/oop/goops.scm (<dynamic-object>): Hackily export <foreign-library> instead of a class here. * doc/ref/api-foreign.texi (Foreign Function Interface): Rewrite to only document the new interfaces. Eventually we will deprecate dynamic-link and friends. * doc/ref/guile.texi (API Reference): Move Foreign Objects after Foreign Function Interface. Seems there should be some closer relationship but this will do for now. * doc/ref/tour.texi (Putting Extensions into Modules): * doc/ref/libguile-parallel.texi (Parallel Installations): Update for rename of Modules and Extensions to Foreign Extensions. * libguile/deprecated.h: * libguile/deprecated.c (scm_dynamic_unlink): Deprecate. * libguile/guile.c: Remove ltdl include. * test-suite/tests/foreign.test: Update tests to use new API, and update error expectations.
2021-01-20Update Gnulib to v0.1-4379-g2ef5a9b4bAndy Wingo1-1/+1
Also bump required autoconf version to 2.64, as required by Gnulib.
2021-01-19New procedure mkdtemp! to create unique temporary directoryMichael Gran1-11/+11
* configure.ac (AC_CHECK_FUNCS): add mkdtemp! test * doc/ref/posix.texi: document mkdtemp! * libguile/filesys.c (scm_mkdtemp_x): new function * libguile/filesys.h: new declaration for scm_mkdtemp_x * test-suite/tests/filesys.test: add tests for mkdtemp! Adapted from a patch by Rob Browning.
2020-03-22Deprecate 'tmpnam' and add '--disable-tmpnam' configure option.Matt Wette1-0/+8
* configure.ac: Add '--disable-tmpnam'. * libguile/posix.c (tmpnam): Conditionalize on 'SCM_ENABLE_DEPRECATED' and 'ENABLE_TMPNAM'. Call 'scm_c_issue_deprecation_warning'. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2020-01-15Fix version computation for v3.0v3.0.0Andy Wingo1-2/+2
* configure.ac: Fix git-version-gen invocation.
2019-09-27Remove "vm" testsAndy Wingo1-1/+0
These tests are no longer useful. * configure.ac: * test-suite/Makefile.am: Remove mentions. * test-suite/vm/Makefile.am: * test-suite/vm/run-vm-tests.scm: * test-suite/vm/t-basic-contructs.scm: * test-suite/vm/t-call-cc.scm: * test-suite/vm/t-catch.scm: * test-suite/vm/t-closure.scm: * test-suite/vm/t-closure2.scm: * test-suite/vm/t-closure3.scm: * test-suite/vm/t-closure4.scm: * test-suite/vm/t-do-loop.scm: * test-suite/vm/t-global-bindings.scm: * test-suite/vm/t-literal-integers.scm: * test-suite/vm/t-macros.scm: * test-suite/vm/t-macros2.scm: * test-suite/vm/t-map.scm: * test-suite/vm/t-match.scm: * test-suite/vm/t-mutual-toplevel-defines.scm: * test-suite/vm/t-or.scm: * test-suite/vm/t-proc-with-setter.scm: * test-suite/vm/t-quasiquote.scm: * test-suite/vm/t-records.scm: * test-suite/vm/t-values.scm: Remove.
2019-08-02Merge from stable-2.2Andy Wingo1-1/+1
2019-07-07build: Do not record LDFLAGS in .pc file.Ludovic Courtès1-1/+1
Fixes <https://bugs.gnu.org/36339>. Reported by Cyprien Nicolas <cyprien@nicolas.tf>. * configure.ac (GUILE_LIBS): Remove $LDFLAGS.
2019-05-23Handle newlib C library's langinfo constant namesMichael Gran1-0/+3
The newlib C library (used in Cygwin) has alternative names for nl_langinfo GNU extensions * configure.ac (_NL_NUMERIC_GROUPING): new test * libguile/i18n.c (INT_CURR_SYMBOL, MON_DECIMAL_POINT, MON_THOUSANDS_SEP) (MON_GROUPING, POSITIVE_SIGN, NEGATIVE_SIGN, GROUPING, INT_FRAC_DIGITS) (FRAC_DIGITS, P_CS_PRECEDES, P_SEP_BY_SPACE, N_CS_PRECEDES, N_SEP_BY_SPACE) (P_SIGN_POSN, N_SIGN_POSN, INT_P_CS_PRECEDES, INT_P_SEP_BY_SPACE) (INT_N_CS_PRECEDES, INT_N_SEP_BY_SPACE, INT_P_SIGN_POSN, INT_N_SIGN_POSN) [HAVE_DECL__NL_NUMERIC_GROUPING]: map to newlib C constants, when present
2019-04-03Remove -Wdeclaration-after-statementAndy Wingo1-3/+2
* configure.ac (HOST_CC): Now that we have C99, there's no need to warn on mixed statements and declarations.
2019-02-23Handle newlib C library's langinfo constant namesMichael Gran1-1/+4
The newlib C library (used in Cygwin) has alternative names for nl_langinfo GNU extensions * configure.ac (_NL_NUMERIC_GROUPING): new test * libguile/i18n.c (INT_CURR_SYMBOL, MON_DECIMAL_POINT, MON_THOUSANDS_SEP) (MON_GROUPING, POSITIVE_SIGN, NEGATIVE_SIGN, GROUPING, INT_FRAC_DIGITS) (FRAC_DIGITS, P_CS_PRECEDES, P_SEP_BY_SPACE, N_CS_PRECEDES, N_SEP_BY_SPACE) (P_SIGN_POSN, N_SIGN_POSN, INT_P_CS_PRECEDES, INT_P_SEP_BY_SPACE) (INT_N_CS_PRECEDES, INT_N_SEP_BY_SPACE, INT_P_SIGN_POSN, INT_N_SIGN_POSN) [HAVE_DECL__NL_NUMERIC_GROUPING]: map to newlib C constants, when present
2018-10-10Bump prerelease version numbering to 2.9.xAndy Wingo1-1/+1
* GUILE-VERSION (GUILE_MINOR_VERSION): Bump to 9. * NEWS: Update expected version numbers. * configure.ac: Update pattern.
2018-09-20Configure uses 2.3.x tags for versionAndy Wingo1-1/+1
* configure.ac: Only pick 2.3.x tags for the version. Will need to bump when we do 3.0.
2018-09-17Fix --disable-jit compilationlightningAndy Wingo1-0/+2
* libguile/jit.c: Wrap the whole thing in ENABLE_JIT. * libguile/threads.c (on_thread_exit): * libguile/vm.c (scm_call_n): * libguile/init.c (scm_i_init_guile): * libguile/vm-engine.c (VM_NAME): Wrap calls into jit.c with ENABLE_JIT. * configure.ac: Move up AC_CANONICAL_TARGET, as autoconf was complaining about it coming after AC_ARG_PROGRAM. * acinclude.m4 (GUILE_ENABLE_JIT): Fix to honor --enable-jit arg.
2018-07-03Remove -Wswitch-enum from compile flagsAndy Wingo1-1/+1
* configure.ac (POTENTIAL_GCC_CFLAGS): Remove -Wswitch-enum, which requires that switch statements mention all enumerated values, even if there is a default clause. Note that -Wall enables -Wswitch, which is the same except it's silent if there's a default clause. The reason is that lightning has a number of switches like this.
2018-07-02Wire JIT availability check into Guile configureAndy Wingo1-0/+3
* acinclude.m4 (GUILE_ENABLE_JIT): Add missing AC_CANONICAL_TARGET. * configure.ac: Add check if JIT is available.
2018-07-01Update copyright years in '--version' and the manual.Ludovic Courtès1-1/+2
* module/ice-9/command-line.scm (version-etc): Change #:copyright-year to 2018. * doc/ref/guile.texi: Add 2017 and 2018 to the copyright years. * configure.ac (GUILE_CONFIGURE_COPYRIGHT): Add 2018.
2018-06-21Start to use C99 stdint in gen-scmconfigAndy Wingo1-305/+0
* configure.ac: Remove checks for stdint.h; we require C99 so it must be there; and in any case for our purposes we use gnulib, so it will be there. No need to check for inttypes.h. No need to check for what type maps to e.g. uint32_t either. * libguile/deprecated.h (SCM_HAVE_T_INT64, SCM_HAVE_T_UINT64): Deprecate these, as they are always 1. (SCM_HAVE_ARRAYS): Likewise deprecate; it's always 1. * libguile/gen-scmconfig.c: Always include stdint.h and stddef.h, and make it so that scmconfig.h also includes these. Use C99 types. * libguile/gen-scmconfig.h.in: Remove configure-substed vars that are no longer defined.
2018-06-20Update license notices in all C filesAndy Wingo1-11/+8
Update to newest recommended license notices from the FSF. Everything stays LGPLv3+ except guile-readline which is GPLv3+.
2018-06-20Remove (C) from copyright statementsAndy Wingo1-1/+1
As the FSF advises, 'There is no legal significance to using the three-character sequence “(C)”, but it does no harm.' It does take up space though! For that reason, we remove it here from our C files.
2018-06-17Require C99 to build GuileAndy Wingo1-4/+5
* configure.ac: Refactor check to require C99, not just try to get C99.
2018-06-17Add configure check for auxiliary stacksAndy Wingo1-2/+7
* configure.ac: Add a check for struct GC_stack_base.reg_base, which is a proxy for checking for the only aspect of ia64 that we care about. * libguile/gen-scmconfig.c: * libguile/gen-scmconfig.h.in: Arrange to define SCM_HAVE_AUXILIARY_STACK.
2017-04-20Restore libgc 7.2 compatibilityAndy Wingo1-1/+1
* configure.ac: Check for GC_is_heap_ptr, added after libgc 7.2. * libguile/pairs.h (GC_is_heap_ptr): Define a shim for GC_is_heap_ptr, inside BUILDING_LIBGUILE so as not to expose it to users.
2017-04-19Add --with-bdw-gc and update READMEAndy Wingo1-1/+5
* README: Update to 2.2. Add instructions for FreeBSD based on notes from Matt Wette. * configure.ac: Add --with-bdw-gc argument.
2017-03-14build: Compress with lzip too.Ludovic Courtès1-1/+1
* configure.ac: Add 'dist-lzip' Automake option.
2017-03-14configure detects which set of prebuilt binaries to useAndy Wingo1-0/+12
* configure.ac: Use detected endianness and word size to automatically select which set of prebuilt binaries to use. * meta/build-env.in (top_builddir): * meta/uninstalled-env.in (top_builddir): Update to use SCM_PREBUILT_BINARIES for prebuilt entry in GUILE_LOAD_COMPILED_PATH. * prebuilt/32-bit-big-endian: * prebuilt/32-bit-little-endian: * prebuilt/64-bit-little-endian: New links. * prebuilt/x86_64-pc-linux-gnu: Remove this link now that it's unneeded.
2017-03-06Check for working profiling and virtual itimersMike Gran1-1/+52
* configure.ac (HAVE_USABLE_GETITIMER_PROF, HAVE_USABLE_GETITIMER_VIRTUAL): new tests * doc/ref/posix.texi (setitimer, getitimer): document provided? 'ITIMER_VIRTUAL and 'ITIMER_PROF * doc/ref/statprof.texi (statprof): document ITIMER_PROF requirements * libguile/scmsigs.c (scm_setitimer, scm_getitimer): document (provided? 'ITIMER_VIRTUAL) and (provided? 'ITIMER_PROF) (scm_init_scmsigs): add features ITIMER_VIRTUAL and ITIMER_PROF * test-suite/tests/asyncs.test ("prevention via sigprof"): throw when unsupported * test-suite/tests/signals.test: throw when not supported * test-suite/tests/statprof.test: throw when not supported
2017-03-02Revert "build: Compress with lzip too."Andy Wingo1-1/+1
This reverts commit 89ce9fb31b00f1f243fe6f2450db50372cc0b86d. It was causing the hydra builds to fail.
2017-03-01build: Compress with lzip too.Ludovic Courtès1-1/+1
* configure.ac: Add 'dist-lzip' Automake option.
2017-02-21Fix make-polar signedness of zeros on macOSMatt Wette1-1/+2
* configure.ac: Check for __sincos. * libguile/numbers.c (scm_c_make_polar): Fall back to __sincos if possible. Fixes zero signedness of make-polar on macOS.
2016-12-06Refine check for when atomics are available.Andy Wingo1-0/+1
* configure.ac: * libguile/atomics-internal.h: Use HAVE_STDATOMIC_H to know when to use atomics.
2016-12-06Use readdir instead of readdir_rAndy Wingo1-1/+1
* libguile/filesys.c: * configure.ac: Remove readdir_r / readdir64_r checks and usage. glibc's impls are thread-safe, the _r variants are squirrely and now deprecated in glibc, and it is expected that POSIX will mandate that readdir{,64} be thread-safe already. See https://sourceware.org/ml/libc-alpha/2016-02/msg00093.html.
2016-11-27Ensure autoconf doesn't downgrade us to C99Andy Wingo1-0/+12
* configure.ac: Add -std=gnu11 if the compiler is GCC (or clang). This prevents AC_PROG_CC_C99 from downgrading us by adding -std=gnu99. Fixes regression whereby we were always using the fallback implementation of atomics.
2016-08-31Require C99 to build Guile.Andy Wingo1-1/+2
* configure.ac: Require C99 or later. Emacs does, therefore so can we. Note that by default GCC compiles in "gnu11" mode these days, and this declaration doesn't change that.
2016-07-25Fix MinGW build errorAndy Wingo1-1/+1
* configure.ac: Fix for recent rename of win32-uname.c to posix-w32.c.
2016-07-25More robust setuid, setgid, etc detectionAndy Wingo1-2/+2
* 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-25build: Remove unneeded check for 'unsetenv'.Ludovic Courtès1-2/+2
* configure.ac: Remove check for 'unsetenv', which is unneeded since we use Gnulib's 'unsetenv'.
2016-07-10Add meta/build-envAndy Wingo1-0/+1
* 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/bootstrap.am (.scm.go): * am/guilec (.scm.go): Use build-env. * configure.ac: Create build-env.
2016-06-24Check for strtod_l before using it.Andy Wingo1-1/+1
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-21Detect too-old libunistring at configure-time.Andy Wingo1-0/+7
* configure.ac: Detect too-old libunistring at configure-time. Fixes #17399.
2016-05-22build: Remove libguile/mkstemp.c, redundant with Gnulib.Ludovic Courtès1-1/+1
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.
2016-05-22i18n: Check for non-POSIX strtol_l.Natanael Copa1-2/+3
* configure.ac: Check for strtol_l. * libguile/i18n.c: Check HAVE_STRTOL_L before using strtol_l.
2016-01-29Distribute prebuilt bootstraps for common hostsAndy Wingo1-0/+5
* am/bootstrap.am: New file, factored out of bootstrap/Makefile.am. * bootstrap/Makefile.am: Use bootstrap.am. * prebuilt/Makefile.am: * prebuilt/i686-pc-linux-gnu/Makefile.am: * prebuilt/mips-unknown-linux-gnu/Makefile.am: * prebuilt/x86_64-unknown-linux-gnu/Makefile.am: New files. * configure.ac: Output the prebuilt/ makefiles. * Makefile.am: Descend into prebuilt/ when making dist. * meta/uninstalled-env.in: Arrange to put prebuilt/ in the beginning of the GUILE_LOAD_COMPILED_PATH. Also fix a case where bootstrap/ wasn't being correctly added to the load path.
2015-10-23Use a bootstrapped -O0 compiler to compile the -O2 GuileAndy Wingo1-0/+1
This reduces total build time to around 30 minutes or so. * Makefile.am (SUBDIRS): Visit bootstrap/ before module/. * bootstrap/Makefile.am: New file. * configure.ac: Generate bootstrap/Makefile. * meta/uninstalled-env.in (top_builddir): Add bootstrap/ to the GUILE_LOAD_COMPILED_PATH. * module/Makefile.am: Simplify to just sort files in alphabetical order; since bootstrap/ was already compiled, we don't need to try to optimize compilation order. Although the compiler will get faster as more of the compiler itself is optimized, this isn't a significant enough effect to worry about.