1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-05-17 23:12:25 +02:00
guile/test-suite/standalone
Ken Raeburn a66480374e Pick up in tree headers rather than installed ones
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.
2009-08-26 23:07:17 +01:00
..
.gitignore Have `scm_take_locale_symbol ()' return an interned symbol (fixes bug #25865). 2009-03-19 22:17:40 +01:00
Makefile.am Pick up in tree headers rather than installed ones 2009-08-26 23:07:17 +01:00
README allow building against uninstalled guile; move some things to meta/ 2009-03-27 14:03:03 -07:00
test-asmobs Use `-q' when running standalone tests. 2008-07-06 23:58:38 +02:00
test-asmobs-lib.c Change Guile license to LGPLv3+ 2009-06-17 00:22:09 +01:00
test-bad-identifiers Use `-q' when running standalone tests. 2008-07-06 23:58:38 +02:00
test-conversion.c Change Guile license to LGPLv3+ 2009-06-17 00:22:09 +01:00
test-extensions add test case for load-extension bug, fix gdb-uninstalled-guile 2009-03-30 20:28:30 -07:00
test-extensions-lib.c Change Guile license to LGPLv3+ 2009-06-17 00:22:09 +01:00
test-fast-slot-ref.in Change Guile license to LGPLv3+ 2009-06-17 00:22:09 +01:00
test-list.c Change Guile license to LGPLv3+ 2009-06-17 00:22:09 +01:00
test-num2integral.c Change Guile license to LGPLv3+ 2009-06-17 00:22:09 +01:00
test-require-extension Use `-q' when running standalone tests. 2008-07-06 23:58:38 +02:00
test-round.c Change Guile license to LGPLv3+ 2009-06-17 00:22:09 +01:00
test-scm-c-read.c Change Guile license to LGPLv3+ 2009-06-17 00:22:09 +01:00
test-scm-take-locale-symbol.c Change Guile license to LGPLv3+ 2009-06-17 00:22:09 +01:00
test-scm-with-guile.c Change Guile license to LGPLv3+ 2009-06-17 00:22:09 +01:00
test-system-cmds Use `-q' when running standalone tests. 2008-07-06 23:58:38 +02:00
test-unwind.c Change Guile license to LGPLv3+ 2009-06-17 00:22:09 +01:00
test-use-srfi.in Change Guile license to LGPLv3+ 2009-06-17 00:22:09 +01:00
test-with-guile-module.c Change Guile license to LGPLv3+ 2009-06-17 00:22:09 +01:00

-*-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
  !#