2013-09-22 Paul Smith <psmith@gnu.org>
+ * guile.c (guile_gmake_setup): Don't initialize Guile so early.
+ (func_guile): Lazily initialize Guile the first time the $(guile ..)
+ function is invoked. Guile can steal file descriptors which
+ confuses our jobserver FD checking, so we don't want to initialize
+ it before we have to.
+
VMS port updates by Hartmut Becker <becker.ismaning@freenet.de>
* makefile.com: Add output to the filelist.
static char *
func_guile (const char *funcname UNUSED, int argc UNUSED, char **argv)
{
+ static int init = 0;
+
+ if (! init)
+ {
+ /* Initialize the Guile interpreter. */
+ scm_with_guile (guile_init, NULL);
+ init = 1;
+ }
+
if (argv[0] && argv[0][0] != '\0')
return scm_with_guile (internal_guile_eval, argv[0]);
int
guile_gmake_setup (const gmk_floc *flocp UNUSED)
{
- /* Initialize the Guile interpreter. */
- scm_with_guile (guile_init, NULL);
-
/* Create a make function "guile". */
gmk_add_function ("guile", func_guile, 0, 1, 1);