mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-04-30 11:50:28 +02:00
Try to detect when people are using one version of libguile and a
different version of ice-9. People have been skewing things and sending in bug reports. * Makefile.am (versiondat.h): New file to generate. * version.c: #include "versiondat.h", to get version info. (scm_libguile_config_stamp): New function. * script.c: #include "version.h". (scm_compile_switches): Call scm_version to get version number. * scmconfig.h.in, Makefile.in: Regenerated. * Makefile.in: Regenerated. * Makefile.am (ETAGS_ARGS): Catch SCM_PROC, etc. so we can find primitive definitions under their Scheme names. * Makefile.am (libguile_la_LDFLAGS): Update library version to 1:2. Helps avoid confusion between installed and uninstalled libs.
This commit is contained in:
parent
7c86ae051a
commit
fef07353a8
5 changed files with 48 additions and 12 deletions
|
@ -7,6 +7,8 @@ AUTOMAKE_OPTIONS = foreign
|
||||||
## building.
|
## building.
|
||||||
INCLUDES = -I.. -I$(srcdir)/..
|
INCLUDES = -I.. -I$(srcdir)/..
|
||||||
|
|
||||||
|
ETAGS_ARGS = --regex='/SCM_\(GLOBAL_\)?\(PROC\|PROC1\|SYMBOL\|VCELL\|CONST_LONG\).*\"\([^\"]\)*\"/\3/'
|
||||||
|
|
||||||
lib_LTLIBRARIES = libguile.la
|
lib_LTLIBRARIES = libguile.la
|
||||||
bin_PROGRAMS = guile
|
bin_PROGRAMS = guile
|
||||||
|
|
||||||
|
@ -39,7 +41,7 @@ noinst_HEADERS = coop-threads.c coop-threads.h coop.c
|
||||||
|
|
||||||
libguile_la_DEPENDENCIES = @LIBLOBJS@
|
libguile_la_DEPENDENCIES = @LIBLOBJS@
|
||||||
libguile_la_LIBADD = @LIBLOBJS@
|
libguile_la_LIBADD = @LIBLOBJS@
|
||||||
libguile_la_LDFLAGS = -version-info 1:1 -rpath $(libdir)
|
libguile_la_LDFLAGS = -version-info 1:2 -rpath $(libdir)
|
||||||
|
|
||||||
include_HEADERS = libguile.h
|
include_HEADERS = libguile.h
|
||||||
|
|
||||||
|
@ -83,9 +85,7 @@ EXTRA_DIST = ChangeLog-gh ChangeLog-scm ChangeLog-threads dynl-dl.c \
|
||||||
cpp_err_symbols.in cpp_sig_symbols.in cpp_cnvt.awk coop-threads.h.cygnus \
|
cpp_err_symbols.in cpp_sig_symbols.in cpp_cnvt.awk coop-threads.h.cygnus \
|
||||||
coop-threads.c.cygnus mit-pthreads.h mit-pthreads.c fsu-pthreads.h
|
coop-threads.c.cygnus mit-pthreads.h mit-pthreads.c fsu-pthreads.h
|
||||||
|
|
||||||
## FIXME: shouldn't directly generate file; instead generate temp file
|
## FIXME: Consider using timestamp file, to avoid unnecessary rebuilds.
|
||||||
## and "mv". Consider using timestamp file as well, to avoid
|
|
||||||
## unnecessary rebuilds.
|
|
||||||
libpath.h: Makefile
|
libpath.h: Makefile
|
||||||
rm -f libpath.tmp
|
rm -f libpath.tmp
|
||||||
echo '/* generated by Makefile */' > libpath.tmp
|
echo '/* generated by Makefile */' > libpath.tmp
|
||||||
|
@ -94,6 +94,18 @@ libpath.h: Makefile
|
||||||
echo '#define SCM_SITE_DIR "$(pkgdatadir)/site"' >> libpath.tmp
|
echo '#define SCM_SITE_DIR "$(pkgdatadir)/site"' >> libpath.tmp
|
||||||
mv libpath.tmp libpath.h
|
mv libpath.tmp libpath.h
|
||||||
|
|
||||||
|
## FIXME: Consider using timestamp file, to avoid unnecessary rebuilds.
|
||||||
|
versiondat.h: Makefile
|
||||||
|
rm -f versiondat.tmp
|
||||||
|
echo '/* generated by Makefile */' > versiondat.tmp
|
||||||
|
echo '#define GUILE_VERSION "$(GUILE_VERSION)"' >> versiondat.tmp
|
||||||
|
echo '#define GUILE_MAJOR_VERSION "$(GUILE_MAJOR_VERSION)"' \
|
||||||
|
>> versiondat.tmp
|
||||||
|
echo '#define GUILE_MINOR_VERSION "$(GUILE_MINOR_VERSION)"' \
|
||||||
|
>> versiondat.tmp
|
||||||
|
echo '#define GUILE_STAMP "$(GUILE_STAMP)"' >> versiondat.tmp
|
||||||
|
mv versiondat.tmp versiondat.h
|
||||||
|
|
||||||
SUFFIXES = .x
|
SUFFIXES = .x
|
||||||
.c.x:
|
.c.x:
|
||||||
./guile-snarf $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $< > $@
|
./guile-snarf $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $< > $@
|
||||||
|
|
|
@ -58,6 +58,11 @@ AUTOMAKE = @AUTOMAKE@
|
||||||
AWK = @AWK@
|
AWK = @AWK@
|
||||||
CC = @CC@
|
CC = @CC@
|
||||||
CPP = @CPP@
|
CPP = @CPP@
|
||||||
|
GUILE_MAJOR_VERSION = @GUILE_MAJOR_VERSION@
|
||||||
|
GUILE_MINOR_VERSION = @GUILE_MINOR_VERSION@
|
||||||
|
GUILE_STAMP = @GUILE_STAMP@
|
||||||
|
GUILE_VERSION = @GUILE_VERSION@
|
||||||
|
LD = @LD@
|
||||||
LIBLOBJS = @LIBLOBJS@
|
LIBLOBJS = @LIBLOBJS@
|
||||||
LIBTOOL = @LIBTOOL@
|
LIBTOOL = @LIBTOOL@
|
||||||
MAINT = @MAINT@
|
MAINT = @MAINT@
|
||||||
|
@ -77,6 +82,8 @@ AUTOMAKE_OPTIONS = foreign
|
||||||
|
|
||||||
INCLUDES = -I.. -I$(srcdir)/..
|
INCLUDES = -I.. -I$(srcdir)/..
|
||||||
|
|
||||||
|
ETAGS_ARGS = --regex='/SCM_\(GLOBAL_\)?\(PROC\|PROC1\|SYMBOL\|VCELL\|CONST_LONG\).*\"\([^\"]\)*\"/\3/'
|
||||||
|
|
||||||
lib_LTLIBRARIES = libguile.la
|
lib_LTLIBRARIES = libguile.la
|
||||||
bin_PROGRAMS = guile
|
bin_PROGRAMS = guile
|
||||||
|
|
||||||
|
@ -105,7 +112,7 @@ noinst_HEADERS = coop-threads.c coop-threads.h coop.c
|
||||||
|
|
||||||
libguile_la_DEPENDENCIES = @LIBLOBJS@
|
libguile_la_DEPENDENCIES = @LIBLOBJS@
|
||||||
libguile_la_LIBADD = @LIBLOBJS@
|
libguile_la_LIBADD = @LIBLOBJS@
|
||||||
libguile_la_LDFLAGS = -version-info 1:1 -rpath $(libdir)
|
libguile_la_LDFLAGS = -version-info 1:2 -rpath $(libdir)
|
||||||
|
|
||||||
include_HEADERS = libguile.h
|
include_HEADERS = libguile.h
|
||||||
|
|
||||||
|
@ -593,6 +600,17 @@ libpath.h: Makefile
|
||||||
echo '#define SCM_LIBRARY_DIR "$(pkgdatadir)/$(VERSION)"' >>libpath.tmp
|
echo '#define SCM_LIBRARY_DIR "$(pkgdatadir)/$(VERSION)"' >>libpath.tmp
|
||||||
echo '#define SCM_SITE_DIR "$(pkgdatadir)/site"' >> libpath.tmp
|
echo '#define SCM_SITE_DIR "$(pkgdatadir)/site"' >> libpath.tmp
|
||||||
mv libpath.tmp libpath.h
|
mv libpath.tmp libpath.h
|
||||||
|
|
||||||
|
versiondat.h: Makefile
|
||||||
|
rm -f versiondat.tmp
|
||||||
|
echo '/* generated by Makefile */' > versiondat.tmp
|
||||||
|
echo '#define GUILE_VERSION "$(GUILE_VERSION)"' >> versiondat.tmp
|
||||||
|
echo '#define GUILE_MAJOR_VERSION "$(GUILE_MAJOR_VERSION)"' \
|
||||||
|
>> versiondat.tmp
|
||||||
|
echo '#define GUILE_MINOR_VERSION "$(GUILE_MINOR_VERSION)"' \
|
||||||
|
>> versiondat.tmp
|
||||||
|
echo '#define GUILE_STAMP "$(GUILE_STAMP)"' >> versiondat.tmp
|
||||||
|
mv versiondat.tmp versiondat.h
|
||||||
.c.x:
|
.c.x:
|
||||||
./guile-snarf $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $< > $@
|
./guile-snarf $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $< > $@
|
||||||
|
|
||||||
|
|
|
@ -130,12 +130,6 @@
|
||||||
aclocal.m4. */
|
aclocal.m4. */
|
||||||
#undef LIBC_H_WITH_UNISTD_H
|
#undef LIBC_H_WITH_UNISTD_H
|
||||||
|
|
||||||
/* Define these to indicate the current version of Guile. These
|
|
||||||
values are supposed to be supplied by the configuration system. */
|
|
||||||
#undef GUILE_MAJOR_VERSION
|
|
||||||
#undef GUILE_MINOR_VERSION
|
|
||||||
#undef GUILE_VERSION
|
|
||||||
|
|
||||||
/* Define this to include various undocumented functions used to debug
|
/* Define this to include various undocumented functions used to debug
|
||||||
the Guile library itself. */
|
the Guile library itself. */
|
||||||
#undef GUILE_DEBUG
|
#undef GUILE_DEBUG
|
||||||
|
|
|
@ -46,6 +46,7 @@
|
||||||
#include "_scm.h"
|
#include "_scm.h"
|
||||||
#include "gh.h"
|
#include "gh.h"
|
||||||
#include "load.h"
|
#include "load.h"
|
||||||
|
#include "version.h"
|
||||||
|
|
||||||
#include "script.h"
|
#include "script.h"
|
||||||
|
|
||||||
|
@ -570,7 +571,7 @@ scm_compile_shell_switches (int argc, char **argv)
|
||||||
"certain other uses are permitted as well. For details, see the file\n"
|
"certain other uses are permitted as well. For details, see the file\n"
|
||||||
"`COPYING', which is included in the Guile distribution.\n"
|
"`COPYING', which is included in the Guile distribution.\n"
|
||||||
"There is no warranty, to the extent permitted by law.\n",
|
"There is no warranty, to the extent permitted by law.\n",
|
||||||
GUILE_VERSION);
|
SCM_CHARS (scm_version ()));
|
||||||
exit (0);
|
exit (0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -41,6 +41,7 @@
|
||||||
|
|
||||||
|
|
||||||
#include "_scm.h"
|
#include "_scm.h"
|
||||||
|
#include "versiondat.h"
|
||||||
|
|
||||||
#include "version.h"
|
#include "version.h"
|
||||||
|
|
||||||
|
@ -75,6 +76,16 @@ scm_version ()
|
||||||
return scm_makfrom0str (GUILE_VERSION);
|
return scm_makfrom0str (GUILE_VERSION);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Return a Scheme string containing Guile's configuration stamp. */
|
||||||
|
|
||||||
|
SCM_PROC(s_libguile_config_stamp, "libguile-config-stamp", 0, 0, 0, scm_libguile_config_stamp);
|
||||||
|
|
||||||
|
SCM
|
||||||
|
scm_libguile_config_stamp ()
|
||||||
|
{
|
||||||
|
return scm_makfrom0str (GUILE_STAMP);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue