mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-05-17 23:12:25 +02:00
From Ken Raeburn: The Mac build off of "master" fails for me currently in srfi-13.c, with the comparison-always-false warning Greg discussed. I hacked around that, but then guile-readline doesn't build: Making all in guile-readline ../libguile/guile-snarf -o readline.x ../../guile-readline/readline.c - DHAVE_CONFIG_H -I. -I.. -I../../guile-readline/.. -I../../guile- readline/lib -I./lib -g -O2 In file included from ../../guile-readline/readline.c:29: ../../guile-readline/../libguile.h:25:17: error: gmp.h: No such file or directory In file included from ../../guile-readline/../libguile.h:95, from ../../guile-readline/readline.c:29: ../../guile-readline/../libguile/strings.h:26:21: error: uniconv.h: No such file or directory Neither the path specified for libgmp nor the path specified for libunistring at configure time is included here. I don't think any of this is Mac-specific; I'm surprised that it works on GNU/Linux systems. Perhaps I'm building it in ways that are unusual for the other developers (build dir != src dir, libgmp and guile-1.8 installed in the same place, libgmp and libunistring installed in different nonstandard directories)? If I use CPPFLAGS=... and LDFLAGS=... instead of --with-libfoo-prefix configure options to specify paths to find libgmp and libunistring, the tests still pick old, installed Guile headers (which this time I've poisoned to highlight the problem) from those locations instead of the in-tree versions: Making all in test-suite Making all in standalone ../../libguile/guile-snarf -o test-asmobs-lib.x ../../../test-suite/ standalone/test-asmobs-lib.c -DHAVE_CONFIG_H -I. -I../../../test-suite/ standalone -I../.. -I/opt/local/include -I/Users/raeburn/dev/guile/ libunistring-0.9.1/I/include -g -O2 -I../../.. -I../../../lib -I../../ lib -I../.. In file included from /opt/local/include/libguile.h:30, from ../../../test-suite/standalone/test-asmobs- lib.c:23: /opt/local/include/libguile/__scm.h:3:2: error: #error Poison! I might be building Guile as part of a larger package (*cough*Emacs*cough*) that wants to include stuff from the same system directories (e.g., for MacPorts, pkgsrc, whatever) where an old version of Guile is installed, and thus Guile gets passed CPPFLAGS/ LDFLAGS settings that add that old version to the search paths. So I think the CPPFLAGS/LDFLAGS version needs to be made to work, as well as the --with-libfoo-prefix version. With the attached patch, I can get guile to build with CPPFLAGS= and LDFLAGS= ... someone more familiar than I am with automake will have to fix the guile-readline stuff. |
||
---|---|---|
.. | ||
.gitignore | ||
Makefile.am | ||
README | ||
test-asmobs | ||
test-asmobs-lib.c | ||
test-bad-identifiers | ||
test-conversion.c | ||
test-extensions | ||
test-extensions-lib.c | ||
test-fast-slot-ref.in | ||
test-list.c | ||
test-num2integral.c | ||
test-require-extension | ||
test-round.c | ||
test-scm-c-read.c | ||
test-scm-take-locale-symbol.c | ||
test-scm-with-guile.c | ||
test-system-cmds | ||
test-unwind.c | ||
test-use-srfi.in | ||
test-with-guile-module.c |
-*-text-*- These tests use the standard automake TESTS mechanism. Tests should be listed in TESTS in Makefile.am, and should exit with 0 on success, non-zero on failure, and 77 if the result should be ignored. See the automake info pages for more information. If you want to use a scheme script, prefix it as follows: #!/bin/sh exec guile -s "$0" "$@" !# Makefile.am will arrange for all tests (scripts or executables) to be run under uninstalled-env so that the PATH, LD_LIBRARY_PATH, and GUILE_LOAD_PATH will be augmented appropriately. The Makefile.am has an example of creating a shared library to be used from a test scheme script as well. You can also create standalone executables that include your own code, are linked against libguile, and that run a given test script (or scripts). One way to do this is to create the binary, make sure it calls scm_shell (argc, argv) as its final action, and put this bit at the top of your test script: #!./my-test-binary -s !#