1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-04-30 03:40:34 +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:
Jim Blandy 1997-06-22 23:42:40 +00:00
parent 7c86ae051a
commit fef07353a8
5 changed files with 48 additions and 12 deletions

View file

@ -7,6 +7,8 @@ AUTOMAKE_OPTIONS = foreign
## building.
INCLUDES = -I.. -I$(srcdir)/..
ETAGS_ARGS = --regex='/SCM_\(GLOBAL_\)?\(PROC\|PROC1\|SYMBOL\|VCELL\|CONST_LONG\).*\"\([^\"]\)*\"/\3/'
lib_LTLIBRARIES = libguile.la
bin_PROGRAMS = guile
@ -39,7 +41,7 @@ noinst_HEADERS = coop-threads.c coop-threads.h coop.c
libguile_la_DEPENDENCIES = @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
@ -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 \
coop-threads.c.cygnus mit-pthreads.h mit-pthreads.c fsu-pthreads.h
## FIXME: shouldn't directly generate file; instead generate temp file
## and "mv". Consider using timestamp file as well, to avoid
## unnecessary rebuilds.
## FIXME: Consider using timestamp file, to avoid unnecessary rebuilds.
libpath.h: Makefile
rm -f libpath.tmp
echo '/* generated by Makefile */' > libpath.tmp
@ -94,6 +94,18 @@ libpath.h: Makefile
echo '#define SCM_SITE_DIR "$(pkgdatadir)/site"' >> libpath.tmp
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
.c.x:
./guile-snarf $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $< > $@

View file

@ -58,6 +58,11 @@ AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
CC = @CC@
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@
LIBTOOL = @LIBTOOL@
MAINT = @MAINT@
@ -77,6 +82,8 @@ AUTOMAKE_OPTIONS = foreign
INCLUDES = -I.. -I$(srcdir)/..
ETAGS_ARGS = --regex='/SCM_\(GLOBAL_\)?\(PROC\|PROC1\|SYMBOL\|VCELL\|CONST_LONG\).*\"\([^\"]\)*\"/\3/'
lib_LTLIBRARIES = libguile.la
bin_PROGRAMS = guile
@ -105,7 +112,7 @@ noinst_HEADERS = coop-threads.c coop-threads.h coop.c
libguile_la_DEPENDENCIES = @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
@ -593,6 +600,17 @@ libpath.h: Makefile
echo '#define SCM_LIBRARY_DIR "$(pkgdatadir)/$(VERSION)"' >>libpath.tmp
echo '#define SCM_SITE_DIR "$(pkgdatadir)/site"' >> libpath.tmp
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:
./guile-snarf $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $< > $@

View file

@ -130,12 +130,6 @@
aclocal.m4. */
#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
the Guile library itself. */
#undef GUILE_DEBUG

View file

@ -46,6 +46,7 @@
#include "_scm.h"
#include "gh.h"
#include "load.h"
#include "version.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"
"`COPYING', which is included in the Guile distribution.\n"
"There is no warranty, to the extent permitted by law.\n",
GUILE_VERSION);
SCM_CHARS (scm_version ()));
exit (0);
}

View file

@ -41,6 +41,7 @@
#include "_scm.h"
#include "versiondat.h"
#include "version.h"
@ -75,6 +76,16 @@ scm_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);
}