Finished the port to MingW32.

This commit is contained in:
jjgarcia 2003-12-01 11:21:47 +00:00
parent bbb36b39df
commit b55dafa58d
32 changed files with 345 additions and 228 deletions

View file

@ -77,9 +77,9 @@ Makefile: Makefile.in build/config.status
# ==================== Installation ====================
install: build/Makefile
(cd build; $(MAKE) install)
cd build; $(MAKE) install
uninstall:
(cd build; $(MAKE) uninstall)
cd build; $(MAKE) uninstall
# ==================== Documentation ====================
@ -96,7 +96,7 @@ dvi:
# record the configuration. Also preserve files that could be made
# by building, but normally aren't because the distribution comes
# with them.
#
#
clean:
cd build; $(MAKE) clean
@ -174,5 +174,11 @@ binary-dist: all
PREFIX=`pwd`/tmp; cd build; $(MAKE) install PREFIX="$${PREFIX}"
su -c "chown -R root.root tmp && cd tmp; tar czf ../ecl-$(VERSION)-$(MACHINE).tgz * && cd .. && rm -rf tmp"
# This creates a ZIP file with a flattened directory structure
windows-dist: all
cd build; rm -rf $(TAR_DIR); mkdir $(TAR_DIR); \
$(MAKE) flatinstall PREFIX=`pwd`/$(TAR_DIR); \
zip -r $(TAR_DIR).zip $(TAR_DIR)
dist:
cd dist; make-dist

14
configure vendored
View file

@ -4,11 +4,12 @@
# This script identifies the machine, and creates a directory for
# the installation, where it runs ${srcdir}/configure.
if uname -a | grep -i 'mingw32' > /dev/null; then
srcdir=`pwd -W`/src;
else
srcdir=`pwd`/src
fi
#if uname -a | grep -i 'mingw32' > /dev/null; then
# srcdir=`pwd -W`/src;
#else
# srcdir=`pwd`/src
#fi
srcdir=`pwd`/src
buildir=build
if [ ! -d ${buildir} ] ; then
@ -22,7 +23,8 @@ echo Switching to directory "\`${buildir}'" to continue configuration.
# There are two ways to configure ECL. If we use our own version of GMP,
# we let it configure itself and later on retrieve the appropiate flags
#
if ( echo $* | grep enable-local-gmp ); then
if ( echo $* | grep enable-local-gmp ) ||\
( echo $* | grep enable-simple-conf ); then
cd ${buildir}
${srcdir}/configure --srcdir=${srcdir} $*
else

View file

@ -1662,6 +1662,8 @@ ECL 0.9d
* Supported platforms:
- ECL now builds under Windows using MinGW-32.
- It is possible now under OS/X to build ECL as a shared library and
to compile and load code on the fly.
@ -1741,6 +1743,12 @@ ECL 0.9d
- SI:FILE-COLUMN now always returns a number, which may be 0 for
streams that do not have that information.
- The compiler (COMPILE-FILE, COMPILE, etc), now understands
logical pathnames.
- Under windows, the system directory is defined to be the place
where ecl.exe resides.
TODO:
=====

View file

@ -78,25 +78,26 @@ sysfun.lsp:
BUILD-STAMP: config.status
(echo "#"; uname -a) > $@
head -8 config.status | tail -6 >> $@
install: BUILD-STAMP
install: BUILD-STAMP install-base
cd c; $(MAKE) PREFIX="$(PREFIX)" install
cd doc; $(MAKE) PREFIX="$(PREFIX)" install
install-base:
$(mkinstalldirs) $(PREFIX)$(bindir) $(PREFIX)$(libdir)/h
for i in $(TARGETS); do \
$(INSTALL) -s $$i $(PREFIX)$(bindir); \
done
$(INSTALL_PROGRAM) -s $(TARGETS) $(PREFIX)$(bindir)
sed 's,~A,$(libdir),;s,~\*,,;' ecl-config > aux; \
$(INSTALL_PROGRAM) aux $(PREFIX)$(bindir)/ecl-config; \
rm aux
sed 's,~A,$(libdir),;s,~\*,,;' ecl-config > foo; \
$(INSTALL_PROGRAM) foo $(PREFIX)$(bindir)/ecl-config; \
rm foo
for i in BUILD-STAMP $(LSP_LIBRARIES) $(LIBRARIES) c/dpp* help.doc ; do \
$(INSTALL_DATA) $$i $(PREFIX)$(libdir); \
done
$(INSTALL_DATA) h/config.h $(PREFIX)$(libdir)/h
if (echo $(SUBDIR) | grep gc); then $(MAKE) installgc; fi
if (echo $(SUBDIR) | grep gmp); then $(MAKE) installgmp; fi
cd c; $(MAKE) PREFIX="$(PREFIX)" install
cd doc; $(MAKE) PREFIX="$(PREFIX)" install
installgc:
$(mkinstalldirs) $(PREFIX)$(libdir)
$(mkinstalldirs) $(PREFIX)$(libdir)/h/private
for i in $(srcdir)/gc/include/*.h; do \
$(INSTALL_DATA) $$i $(PREFIX)$(libdir)/h/; \
done
@ -106,6 +107,11 @@ installgc:
installgmp:
$(INSTALL_DATA) h/gmp.h $(PREFIX)$(libdir)/h/
flatinstall: BUILD-STAMP
$(MAKE) install PREFIX= bindir=$(PREFIX) libdir=$(PREFIX) install-base
cd c; $(MAKE) PREFIX=$(PREFIX) flatinstall
cd doc; $(MAKE) PREFIX=$(PREFIX) flatinstall
uninstall:
for i in $(TARGETS) ecl-config; do rm -rf $(bindir)/$$i; done
rm -rf $(libdir)

18
src/aclocal.m4 vendored
View file

@ -79,11 +79,20 @@ dnl avoid running the path through pwd unnecessarily, since pwd can
dnl give you automounter prefixes, which can go away.
dnl
AC_DEFUN(ECL_MAKE_ABSOLUTE_SRCDIR,[
AC_SUBST(true_srcdir)
AC_SUBST(true_builddir)
PWDCMD="pwd";
case "${srcdir}" in
/* | ?:/* ) ;;
* ) srcdir="`(cd ${srcdir}; ${PWDCMD})`";
esac
if uname -a | grep -i 'mingw32' > /dev/null; then
true_srcdir=`(cd ${srcdir}; pwd -W)`
true_builddir=`pwd -W`
else
true_srcdir=`(cd ${srcdir}; pwd)`
true_builddir=`pwd`
fi
])
dnl
@ -171,6 +180,15 @@ case "${host_os}" in
BUNDLE_LDFLAGS=''
SHAREDEXT='dll'
;;
mingw*)
thehost='mingw32'
CLIBS='-lwsock32'
shared='no'
SHARED_LDFLAGS=''
BUNDLE_LDFLAGS=''
SHAREDEXT='dll'
PICFLAG=''
;;
darwin*)
thehost='darwin'
shared='yes'

View file

@ -1,5 +1,5 @@
top_srcdir=@top_srcdir@
srcdir=@srcdir@
top_srcdir=@true_srcdir@
srcdir=$(top_srcdir)/ansi-tests
RM=rm -fr
MV=mv -f
@ -8,7 +8,7 @@ MKDIR=mkdir -p
.PHONY: clisp sbcl normal safe ecl ecl_min
ecl:
ln -sf ../../src/h/*.h ../h/
cp $(top_srcdir)/h/*.h ../h/
(echo '(setf (logical-pathname-translations "SYS")'; \
echo " '"'(("*.*" "../*.*")))'; \
echo '(setf (logical-pathname-translations "SRC")'; \
@ -18,7 +18,7 @@ ecl:
true
ecl_min:
ln -sf ../../src/h/*.h ../h/
cp $(top_srcdir)/src/h/*.h ../h/
(echo '(load "bare.lsp")'; \
echo '(setf (logical-pathname-translations "SYS")'; \
echo " '"'(("*.*" "../*.*")))'; \

View file

@ -4,6 +4,14 @@
;;; environment (either interpreted, as in ECL_MIN, or compiled, as in ECL),
;;; that the compiler is loaded, that we use the headers in this directory,
;;; etc.
;;;
;;; * By redefining "SYS:" ECL will be able to
;;; find headers and libraries in the build directory.
;;;
(si::pathname-translations "SRC" `(("**;*.*" "@true_srcdir@/**/*.*")))
(si::pathname-translations "BUILD" `(("**;*.*" "@true_builddir@/**/*.*")))
(si::pathname-translations "SYS" '(("**;*.*" "@true_builddir@/**/*.*")))
;;;
;;; * Set ourselves in the 'SYSTEM package
;;;
@ -14,7 +22,7 @@
;;; * Load Common-Lisp base library
;;;
(if (member "ECL-MIN" *features* :test #'string-equal)
(load "@abs_builddir@/lsp/load.lsp" :verbose nil))
(load "lsp/load.lsp" :verbose nil))
(defun si::process-command-args () )
;;;
@ -22,13 +30,7 @@
;;;
(setf sys::*gc-verbose* nil)
#+(and wants-clos ecl-min)
(load "@abs_builddir@/clos/load.lsp")
;;;
;;; * By redefining "SYS:" ECL will be able to
;;; find headers and libraries in the build directory.
;;;
(si::pathname-translations "SYS" '(("*.*" "@abs_builddir@/*.*")))
(load "clos/load.lsp")
;;;
;;; * Load the compiler.
@ -36,13 +38,8 @@
#-threads
(defmacro c::with-lock ((lock) &body body)
`(progn ,@body))
(load #+(or cross ecl-min) "@abs_builddir@/cmp/load.lsp"
#-(or cross ecl-min) "@abs_builddir@/cmp.so")
;;;
;;; * Add include path to not yet installed headers
;;;
(setq compiler::*cc-flags* (concatenate 'string compiler::*cc-flags* " -I@srcdir@/h -I@srcdir@/gmp "))
(load #+(or cross ecl-min) "cmp/load.lsp"
#-(or cross ecl-min) "cmp.so")
;;;
;;; * Remove documentation from compiled files

View file

@ -58,6 +58,11 @@ install: $(HFILES)
for i in $(HFILES); do $(INSTALL_DATA) $$i $(PREFIX)$(libdir)/h/; done
sed '/-CUT-/,$$d' ../h/config.h > ../h/config-install.h
$(INSTALL_DATA) ../h/config-install.h $(PREFIX)$(libdir)/h/config.h
flatinstall: $(HFILES)
for i in $(HFILES); do $(INSTALL_DATA) $$i $(PREFIX)/h/; done
sed '/-CUT-/,$$d' ../h/config.h > ../h/config-install.h
$(INSTALL_DATA) ../h/config-install.h $(PREFIX)/h/config.h
../libecl.a: $(OBJS)
$(RM) $@

View file

@ -245,7 +245,7 @@ open_stream(cl_object fn, enum ecl_smmode smm, cl_object if_exists,
{
cl_object x;
FILE *fp;
cl_object filename = coerce_to_filename(fn);
cl_object filename = si_coerce_to_filename(fn);
char *fname = filename->string.self;
if (smm == smm_input || smm == smm_probe) {
@ -1129,6 +1129,7 @@ flisten(FILE *fp)
if (FILE_CNT(fp) > 0)
return(TRUE);
#endif
#if !defined(mingw32)
#if defined(HAVE_SELECT)
fd = fileno(fp);
FD_ZERO(&fds);
@ -1144,6 +1145,7 @@ flisten(FILE *fp)
return(FALSE);
}
#endif /* FIONREAD */
#endif
return(TRUE);
}

View file

@ -112,7 +112,7 @@ si_load_binary(cl_object filename, cl_object verbose, cl_object print)
si_gc(Ct);
/* We need the full pathname */
filename = coerce_to_filename(cl_truename(filename));
filename = si_coerce_to_filename(cl_truename(filename));
#ifdef ECL_THREADS
/* Loading binary code is not thread safe. When another thread tries
@ -245,7 +245,7 @@ si_load_source(cl_object source, cl_object verbose, cl_object print)
if (!Null(pntype) && (pntype != @':wild')) {
/* If filename already has an extension, make sure
that the file exists */
filename = coerce_to_filename(pathname);
filename = si_coerce_to_filename(pathname);
if (si_file_kind(filename, Ct) != @':file') {
filename = Cnil;
} else {
@ -255,7 +255,7 @@ si_load_source(cl_object source, cl_object verbose, cl_object print)
/* Otherwise try with known extensions until a matching
file is found */
pathname->pathname.type = CAAR(hooks);
filename = coerce_to_filename(pathname);
filename = si_coerce_to_filename(pathname);
function = CDAR(hooks);
if (si_file_kind(filename, Ct) == @':file')
break;

View file

@ -261,15 +261,16 @@ cl_boot(int argc, char **argv)
ECL_SET(@'mp::+load-compile-lock+',
mp_make_lock(2, @':name', @'mp::+load-compile-lock+'));
#endif
ECL_SET(@'si::*load-hooks*', cl_list(
#ifdef ENABLE_DLOPEN
aux = cl_list(
#ifdef ECL_DLOPEN
4,CONS(make_simple_string("fas"), @'si::load-binary'),
#else
3,
#endif
CONS(make_simple_string("lsp"), @'si::load-source'),
CONS(make_simple_string("lisp"), @'si::load-source'),
CONS(Cnil, @'si::load-source')));
CONS(Cnil, @'si::load-source'));
ECL_SET(@'si::*load-hooks*', aux);
#ifdef PDE
ECL_SET(@'si::*record-source-pathname-p*', Cnil);
#endif

View file

@ -22,6 +22,14 @@
#define isnanf(x) isnan(x)
#endif
#ifndef M_PI
# ifdef PI
# define M_PI PI
# else
# define M_PI 3.14159265358979323846
# endif
#endif
cl_fixnum
fixint(cl_object x)
{

View file

@ -31,6 +31,8 @@
# endif
#endif
typedef int (*delim_fn)(int);
static void
error_directory(cl_object d) {
FEerror("make-pathname: ~A is not a valid directory", 1, d);
@ -170,6 +172,12 @@ make_one(const char *s, cl_index end)
return(x);
}
static int is_colon(int c) { return c == ':'; }
static int is_slash(int c) { return IS_DIR_SEPARATOR(c); }
static int is_semicolon(int c) { return c == ';'; }
static int is_dot(int c) { return c == '.'; }
static int is_null(int c) { return c == '\0'; }
/*
* Parses a word from string `S' until either:
* 1) character `DELIM' is found
@ -182,8 +190,8 @@ make_one(const char *s, cl_index end)
* 5) A non empty string
*/
static cl_object
parse_word(const char *s, char delim, int flags, cl_index start, cl_index end,
cl_index *end_of_word)
parse_word(const char *s, delim_fn delim, int flags, cl_index start,
cl_index end, cl_index *end_of_word)
{
cl_index i, j;
bool wild_inferiors = FALSE;
@ -191,10 +199,10 @@ parse_word(const char *s, char delim, int flags, cl_index start, cl_index end,
i = j = start;
if ((flags & WORD_ALLOW_LEADING_DOT) &&
(i < end) &&
(s[i] == delim)) {
delim(s[i])) {
i++;
}
for (; i < end && s[i] != delim; i++) {
for (; i < end && !delim(s[i]); i++) {
char c = s[i];
bool valid_char;
if (c == '*') {
@ -266,7 +274,7 @@ parse_directories(const char *s, int flags, cl_index start, cl_index end,
cl_index i, j;
cl_object path = Cnil;
cl_object *plast = &path;
char delim = (flags & WORD_LOGICAL) ? ';' : '/';
delim_fn delim = (flags & WORD_LOGICAL) ? is_semicolon : is_slash;
flags |= WORD_INCLUDE_DELIM | WORD_ALLOW_ASTERISK;
*end_of_dir = start;
@ -334,7 +342,8 @@ parse_namestring(const char *s, cl_index start, cl_index end, cl_index *ep,
* there is no supplied *logical* host name. All other failures
* result in Cnil as output.
*/
host = parse_word(s, ':', WORD_LOGICAL | WORD_INCLUDE_DELIM, start, end, ep);
host = parse_word(s, is_colon, WORD_LOGICAL | WORD_INCLUDE_DELIM,
start, end, ep);
if (default_host != Cnil) {
if (host == Cnil || host == @':error')
host = default_host;
@ -357,9 +366,9 @@ parse_namestring(const char *s, cl_index start, cl_index end, cl_index *ep,
}
if (path == @':error')
return Cnil;
name = parse_word(s, '.', WORD_LOGICAL | WORD_ALLOW_ASTERISK |
name = parse_word(s, is_dot, WORD_LOGICAL | WORD_ALLOW_ASTERISK |
WORD_EMPTY_IS_NIL, *ep, end, ep);
type = parse_word(s, '\0', WORD_LOGICAL | WORD_ALLOW_ASTERISK |
type = parse_word(s, is_null, WORD_LOGICAL | WORD_ALLOW_ASTERISK |
WORD_EMPTY_IS_NIL, *ep, end, ep);
if (type == @':error')
return Cnil;
@ -370,7 +379,7 @@ parse_namestring(const char *s, cl_index start, cl_index end, cl_index *ep,
* [device:][[//hostname]/][directory-component/]*[pathname-name][.pathname-type]
*/
logical = FALSE;
device = parse_word(s, ':', WORD_INCLUDE_DELIM | WORD_EMPTY_IS_NIL,
device = parse_word(s, is_colon, WORD_INCLUDE_DELIM|WORD_EMPTY_IS_NIL,
start, end, ep);
if (device == @':error')
device = Cnil;
@ -381,11 +390,12 @@ parse_namestring(const char *s, cl_index start, cl_index end, cl_index *ep,
device = Cnil;
}
start = *ep;
if (start <= end - 2 && s[start] == '/' && s[start+1] == '/') {
host = parse_word(s, '/', WORD_EMPTY_IS_NIL, start+2, end, ep);
if (start <= end - 2 && is_slash(s[start]) && is_slash(s[start+1])) {
host = parse_word(s, is_slash, WORD_EMPTY_IS_NIL,
start+2, end, ep);
if (host != Cnil) {
start = *ep;
if (s[--start] == '/') *ep = start;
if (is_slash(s[--start])) *ep = start;
}
} else
host = Cnil;
@ -404,13 +414,13 @@ parse_namestring(const char *s, cl_index start, cl_index end, cl_index *ep,
}
if (path == @':error')
return Cnil;
name = parse_word(s, '.', WORD_ALLOW_LEADING_DOT |
name = parse_word(s, is_dot, WORD_ALLOW_LEADING_DOT |
WORD_ALLOW_ASTERISK | WORD_EMPTY_IS_NIL,
*ep, end, ep);
type = parse_word(s, '\0', WORD_ALLOW_ASTERISK | WORD_EMPTY_IS_NIL, *ep,
end, ep);
version = parse_word(s, '\0', WORD_ALLOW_ASTERISK | WORD_EMPTY_IS_NIL, *ep,
end, ep);
type = parse_word(s, is_null, WORD_ALLOW_ASTERISK | WORD_EMPTY_IS_NIL,
*ep, end, ep);
version = parse_word(s, is_null, WORD_ALLOW_ASTERISK|WORD_EMPTY_IS_NIL,
*ep, end, ep);
if (version == @':error')
return Cnil;
make_it:
@ -506,12 +516,12 @@ coerce_to_physical_pathname(cl_object x)
}
/*
* coerce_to_filename(P) converts P to a physical pathname and then to
* si_coerce_to_filename(P) converts P to a physical pathname and then to
* a namestring. The output must always be a simple-string which can
* be used by the C library.
*/
cl_object
coerce_to_filename(cl_object pathname)
si_coerce_to_filename(cl_object pathname)
{
cl_object namestring;
@ -1056,7 +1066,8 @@ coerce_to_from_pathname(cl_object x, cl_object host)
/* Check that host is a valid host name */
assert_type_string(host);
length = host->string.fillp;
parse_word(host->string.self, '\0', WORD_LOGICAL, 0, length, &parsed_length);
parse_word(host->string.self, is_null, WORD_LOGICAL, 0, length,
&parsed_length);
if (parsed_length < host->string.fillp)
FEerror("Wrong host syntax ~S", 1, host);

View file

@ -1376,6 +1376,7 @@ cl_symbols[] = {
{SYS_ "*STEP-LEVEL*", SI_SPECIAL, OBJNULL, -1, MAKE_FIXNUM(0)},
{SYS_ "*STEP-ACTION*", SI_SPECIAL, OBJNULL, -1, Cnil},
{SYS_ "STEPPER", SI_ORDINARY, OBJNULL, -1, OBJNULL},
{SYS_ "COERCE-TO-FILENAME", SI_ORDINARY, si_coerce_to_filename, 1, OBJNULL},
/* Tag for end of list */
{NULL, CL_ORDINARY, NULL, -1, OBJNULL}};

View file

@ -104,8 +104,7 @@ file_kind(char *filename, bool follow_links) {
cl_object
si_file_kind(cl_object filename, cl_object follow_links) {
filename = coerce_to_filename(filename);
filename = si_coerce_to_filename(filename);
@(return file_kind(filename->string.self, !Null(follow_links)))
}
@ -114,7 +113,7 @@ si_follow_symlink(cl_object filename) {
cl_object output, kind;
int size = 128, written;
output = coerce_to_filename(filename);
output = si_coerce_to_filename(filename);
kind = file_kind(output->string.self, FALSE);
#ifdef HAVE_LSTAT
while (kind == @':link') {
@ -199,8 +198,8 @@ cl_rename_file(cl_object oldn, cl_object newn)
newn = coerce_to_file_pathname(newn);
newn = merge_pathnames(newn, oldn, Cnil);
old_truename = cl_truename(oldn);
filename = coerce_to_filename(oldn);
newfilename = coerce_to_filename(newn);
filename = si_coerce_to_filename(oldn);
newfilename = si_coerce_to_filename(newn);
if (rename(filename->string.self, newfilename->string.self) < 0)
FElibc_error("Cannot rename the file ~S to ~S.", 2, oldn, newn);
new_truename = cl_truename(newn);
@ -212,7 +211,7 @@ cl_delete_file(cl_object file)
{
cl_object filename;
filename = coerce_to_filename(file);
filename = si_coerce_to_filename(file);
if (unlink(filename->string.self) < 0)
FElibc_error("Cannot delete the file ~S.", 1, file);
@(return Ct)
@ -230,7 +229,7 @@ cl_file_write_date(cl_object file)
cl_object filename, time;
struct stat filestatus;
filename = coerce_to_filename(file);
filename = si_coerce_to_filename(file);
if (stat(filename->string.self, &filestatus) < 0)
time = Cnil;
else
@ -241,7 +240,7 @@ cl_file_write_date(cl_object file)
cl_object
cl_file_author(cl_object file)
{
cl_object filename = coerce_to_filename(file);
cl_object filename = si_coerce_to_filename(file);
#ifdef HAVE_PWD_H
struct stat filestatus;
struct passwd *pwent;
@ -639,8 +638,7 @@ si_mkdir(cl_object directory, cl_object mode)
cl_object filename;
cl_index modeint;
/* INV: coerce_to_filename() checks types */
filename = coerce_to_filename(directory);
filename = si_coerce_to_filename(directory);
modeint = fixnnint(mode);
#ifdef mingw32
if (mkdir(filename->string.self) < 0)

View file

@ -55,6 +55,7 @@ signal_catcher(int sig)
return;
}
signal(sig, signal_catcher);
#ifdef HAVE_SIGPROCMASK
CL_UNWIND_PROTECT_BEGIN {
handle_signal(sig);
} CL_UNWIND_PROTECT_EXIT {
@ -67,6 +68,9 @@ signal_catcher(int sig)
sigprocmask(SIG_UNBLOCK, &block_mask, NULL);
#endif
} CL_UNWIND_PROTECT_END;
#else
handle_signal(sig);
#endif
}
cl_object

View file

@ -1,21 +1,21 @@
(defconstant +clos-module-files+
'("@srcdir@/walk.lsp"
"@srcdir@/macros.lsp"
"@srcdir@/kernel.lsp"
"@srcdir@/method.lsp"
"@srcdir@/slot.lsp"
"@srcdir@/combin.lsp"
"@srcdir@/precomp.lsp"
"@srcdir@/boot.lsp"
"@srcdir@/defclass.lsp"
"@srcdir@/standard.lsp"
"@srcdir@/print.lsp"
"@srcdir@/change.lsp"
"@srcdir@/builtin.lsp"
"@srcdir@/stdmethod.lsp"
"@srcdir@/generic.lsp"
"@srcdir@/fixup.lsp"
"@srcdir@/inspect.lsp"
"@srcdir@/conditions.lsp"))
'("src:clos;walk.lsp"
"src:clos;macros.lsp"
"src:clos;kernel.lsp"
"src:clos;method.lsp"
"src:clos;slot.lsp"
"src:clos;combin.lsp"
"src:clos;precomp.lsp"
"src:clos;boot.lsp"
"src:clos;defclass.lsp"
"src:clos;standard.lsp"
"src:clos;print.lsp"
"src:clos;change.lsp"
"src:clos;builtin.lsp"
"src:clos;stdmethod.lsp"
"src:clos;generic.lsp"
"src:clos;fixup.lsp"
"src:clos;inspect.lsp"
"src:clos;conditions.lsp"))
(mapc #'(lambda (x) (load x :verbose nil)) +clos-module-files+)

View file

@ -1,21 +1,21 @@
(defconstant +clx-module-files+
'("@abs_srcdir@/ecldep"
"@abs_srcdir@/depdefs"
"@abs_srcdir@/clxmain"
"@abs_srcdir@/dependent"
"@abs_srcdir@/macros"
"@abs_srcdir@/bufmac"
"@abs_srcdir@/buffer"
"@abs_srcdir@/display"
"@abs_srcdir@/gcontext"
"@abs_srcdir@/input"
"@abs_srcdir@/requests"
"@abs_srcdir@/fonts"
"@abs_srcdir@/graphics"
"@abs_srcdir@/texts"
"@abs_srcdir@/attributes"
"@abs_srcdir@/translate"
"@abs_srcdir@/keysyms"
"@abs_srcdir@/manager"
"@abs_srcdir@/image"
"@abs_srcdir@/resource"))
'("src:clx;ecldep"
"src:clx;depdefs"
"src:clx;clxmain"
"src:clx;dependent"
"src:clx;macros"
"src:clx;bufmac"
"src:clx;buffer"
"src:clx;display"
"src:clx;gcontext"
"src:clx;input"
"src:clx;requests"
"src:clx;fonts"
"src:clx;graphics"
"src:clx;texts"
"src:clx;attributes"
"src:clx;translate"
"src:clx;keysyms"
"src:clx;manager"
"src:clx;image"
"src:clx;resource"))

View file

@ -19,4 +19,3 @@
+static-library-format+ "@LIBPREFIX@~a.@LIBEXT@"
+object-file-extension+ "@OBJEXT@"
+executable-file-format+ "~a@EXEEXT@"))
(load "sys:sysfun.lsp" :verbose nil :print nil)

View file

@ -73,7 +73,7 @@ coprocessor).")
(format nil
*ld-format*
*cc*
(namestring o-pathname)
(si::coerce-to-filename o-pathname)
(namestring (translate-logical-pathname "SYS:"))
options
*ld-flags* (namestring (translate-logical-pathname "SYS:")))))
@ -84,7 +84,7 @@ coprocessor).")
(format nil
*ld-format*
*cc*
(namestring o-pathname)
(si::coerce-to-filename o-pathname)
(namestring (translate-logical-pathname "SYS:"))
options
*ld-shared-flags*
@ -96,7 +96,7 @@ coprocessor).")
(format nil
*ld-format*
*cc*
(namestring o-pathname)
(si::coerce-to-filename o-pathname)
(namestring (translate-logical-pathname "SYS:"))
options
*ld-bundle-flags*
@ -177,8 +177,10 @@ main(int argc, char **argv)
(epilogue-code (if (eq target :program) "
funcall(1,_intern(\"TOP-LEVEL\",cl_core.system_package));
return 0;" "")))
(let* ((c-name (namestring (compile-file-pathname output-name :type :c)))
(o-name (namestring (compile-file-pathname output-name :type :object)))
(let* ((c-name (si::coerce-to-filename
(compile-file-pathname output-name :type :c)))
(o-name (si::coerce-to-filename
(compile-file-pathname output-name :type :object)))
(init-name (string-upcase (pathname-name c-name)))
submodules
c-file)
@ -187,7 +189,8 @@ main(int argc, char **argv)
(push (format nil "-l~A" (string-downcase item)) ld-flags)
(push (init-function-name item) submodules))
(t
(push (namestring (compile-file-pathname item :type :object)) ld-flags)
(push (si::coerce-to-filename
(compile-file-pathname item :type :object)) ld-flags)
(setq item (pathname-name item))
(push (init-function-name item) submodules))))
(setq c-file (open c-name :direction :output))
@ -303,6 +306,9 @@ cl_object Cblock;
#+PDE sys:*source-pathname*)
(declare (notinline compiler-cc))
#-ecl-min
(require 'sysfun "sys:sysfun")
#-dlopen
(unless system-p
(format t "~%;;;~
@ -458,6 +464,9 @@ Cannot compile ~a."
(unless (symbolp name) (error "~s is not a symbol." name))
#-ecl-min
(require 'sysfun "sys:sysfun")
(when *compiler-in-use*
(format t "~&;;; The compiler was called recursively.~
~%Cannot compile ~s." name)
@ -554,7 +563,8 @@ Cannot compile ~a."
((and (consp thing) (eq (car thing) 'LAMBDA))
(setq disassembled-form `(defun gazonk ,@(cdr thing))))
(t (setq disassembled-form thing)))
#-ecl-min
(require 'sysfun "sys:sysfun")
(when *compiler-in-use*
(format t "~&;;; The compiler was called recursively.~
~%Cannot disassemble ~a." thing)
@ -587,8 +597,8 @@ Cannot compile ~a."
(t1expr disassembled-form)
(if (zerop *error-count*)
(catch *cmperr-tag* (ctop-write "code"
(if h-file (namestring h-file) "")
(if data-file (namestring data-file) "")
(if h-file h-file "")
(if data-file data-file "")
:system-p nil))
(setq *error-p* t))
(data-dump data-file)
@ -606,8 +616,8 @@ Cannot compile ~a."
(with-open-file (*compiler-output2* h-pathname :direction :output)
(wt-nl1 "#include " *cmpinclude*)
(catch *cmperr-tag* (ctop-write (string-upcase init-name)
(namestring h-pathname)
(namestring data-pathname)
h-pathname
data-pathname
:system-p system-p
:shared-data shared-data))
(terpri *compiler-output1*)
@ -619,8 +629,8 @@ Cannot compile ~a."
*cc-format*
*cc* *cc-flags* (>= *speed* 2) *cc-optimize*
(namestring (translate-logical-pathname "SYS:"))
(namestring c-pathname)
(namestring o-pathname))
(si::coerce-to-filename c-pathname)
(si::coerce-to-filename o-pathname))
; Since the SUN4 assembler loops with big files, you might want to use this:
; (format nil
; "~A ~@[~*-O1~] -S -I. -I~A -w ~A ; as -o ~A ~A"

View file

@ -78,15 +78,14 @@
(emit-local-funs)
(setq *funarg-vars* nil)))
(defun ctop-write (name h-namestring data-namestring
(defun ctop-write (name h-pathname data-pathname
&key system-p shared-data
&aux def top-output-string
(*volatile* " volatile "))
;(let ((*print-level* 3)) (pprint *top-level-forms*))
(setq *top-level-forms* (nreverse *top-level-forms*))
(wt-nl1 "#include \"" h-namestring "\"")
(wt-nl1 "#include \"" (si::coerce-to-filename h-pathname) "\"")
(wt-h "#ifdef __cplusplus")
(wt-h "extern \"C\" {")
(wt-h "#endif")
@ -99,7 +98,7 @@
(*compiler-declared-globals* (make-hash-table))
#+PDE (optimize-space (>= *space* 3)))
(unless shared-data
(wt-nl1 "#include \"" data-namestring "\""))
(wt-nl1 "#include \"" (si::coerce-to-filename data-pathname) "\""))
(wt-nl1 "#ifdef __cplusplus")
(wt-nl1 "extern \"C\"")
(wt-nl1 "#endif")

View file

@ -1,33 +1,33 @@
(defconstant +cmp-module-files+
'("@abs_srcdir@/cmpdefs.lsp"
"@abs_srcdir@/cmpmac.lsp"
"@abs_srcdir@/cmpinline.lsp"
"@abs_srcdir@/cmputil.lsp"
"@abs_srcdir@/cmptype.lsp"
"@abs_srcdir@/cmpbind.lsp"
"@abs_srcdir@/cmpblock.lsp"
"@abs_srcdir@/cmpcall.lsp"
"@abs_srcdir@/cmpcatch.lsp"
"@abs_srcdir@/cmpenv.lsp"
"@abs_srcdir@/cmpeval.lsp"
"@abs_srcdir@/cmpexit.lsp"
"@abs_srcdir@/cmpflet.lsp"
"@abs_srcdir@/cmpfun.lsp"
"@abs_srcdir@/cmpif.lsp"
"@abs_srcdir@/cmplam.lsp"
"@abs_srcdir@/cmplet.lsp"
"@abs_srcdir@/cmploc.lsp"
"@abs_srcdir@/cmpmap.lsp"
"@abs_srcdir@/cmpmulti.lsp"
"@abs_srcdir@/cmpspecial.lsp"
"@abs_srcdir@/cmptag.lsp"
"@abs_srcdir@/cmptop.lsp"
"@abs_srcdir@/cmpvar.lsp"
"@abs_srcdir@/cmpwt.lsp"
"@abs_srcdir@/cmpffi.lsp"
"@abs_builddir@/cmpcfg.lsp"
"@abs_srcdir@/cmpmain.lsp"))
'("src:cmp;cmpdefs.lsp"
"src:cmp;cmpmac.lsp"
"src:cmp;cmpinline.lsp"
"src:cmp;cmputil.lsp"
"src:cmp;cmptype.lsp"
"src:cmp;cmpbind.lsp"
"src:cmp;cmpblock.lsp"
"src:cmp;cmpcall.lsp"
"src:cmp;cmpcatch.lsp"
"src:cmp;cmpenv.lsp"
"src:cmp;cmpeval.lsp"
"src:cmp;cmpexit.lsp"
"src:cmp;cmpflet.lsp"
"src:cmp;cmpfun.lsp"
"src:cmp;cmpif.lsp"
"src:cmp;cmplam.lsp"
"src:cmp;cmplet.lsp"
"src:cmp;cmploc.lsp"
"src:cmp;cmpmap.lsp"
"src:cmp;cmpmulti.lsp"
"src:cmp;cmpspecial.lsp"
"src:cmp;cmptag.lsp"
"src:cmp;cmptop.lsp"
"src:cmp;cmpvar.lsp"
"src:cmp;cmpwt.lsp"
"src:cmp;cmpffi.lsp"
"build:cmp;cmpcfg.lsp"
"src:cmp;cmpmain.lsp"))
(mapc #'(lambda (x) (load x :verbose nil)) +cmp-module-files+)
(load "@abs_srcdir@/sysfun" :verbose nil)
(load "src:cmp;sysfun" :verbose nil)

View file

@ -18,8 +18,8 @@
;;;
#+stage1
(progn
(load "@srcdir@/doc/help.lsp")
(si::dump-documentation "@abs_builddir@/help.doc"))
(load "@true_srcdir@/doc/help.lsp")
(si::dump-documentation "@true_builddir@/help.doc"))
;;;
;;; * Trick to make names shorter in C files
@ -27,35 +27,38 @@
(si::package-lock "CL" nil)
(rename-package "CL" "CL" '("COMMON-LISP" "LISP"))
;;;
;;; * Add include path to not yet installed headers
;;;
(setq compiler::*cc-flags*
(concatenate 'string compiler::*cc-flags*
" -I@true_srcdir@/h -I@true_srcdir@/gmp -I@true_builddir@/h"))
;;;
;;; * Compile, load and link Common-Lisp base library
;;;
(setq si::*keep-documentation* nil)
(proclaim '(optimize (safety 2) (space 3)))
(let ((objects (compile-if-old "@abs_builddir@/lsp/" +lisp-module-files+
(let ((objects (compile-if-old "build:lsp;" +lisp-module-files+
:system-p t :c-file t :data-file t :h-file t)))
(c::build-static-library "lsp" :lisp-files objects))
(si::pathname-translations "SYS" '(("**;*.*" "@abs_builddir@/**/*.*")))
(setq compiler::*cc-flags* (concatenate 'string compiler::*cc-flags* " -I@srcdir@/h -I@srcdir@/gmp -I@builddir@/h"))
;;;
;;; * Compile, load and link PCL based Common-Lisp Object System
;;;
(proclaim '(optimize (safety 2) (space 3)))
#+CLOS
(let* ((c::*compile-to-linking-call* nil)
(objects (compile-if-old "@abs_builddir@/clos/" +clos-module-files+
(objects (compile-if-old "build:clos;" +clos-module-files+
:system-p t :c-file t :data-file t :h-file t)))
(c::build-static-library "clos" :lisp-files objects))
(si::system (format nil "
(test -d tmp || mkdir tmp); ~
(si::system (print (format nil "sh -c 'mkdir tmp; ~
cd tmp; rm -f *; ~
ar -x ../@LIBPREFIX@lsp.@LIBEXT@; for i in *.@OBJEXT@; do mv $i lsp_$i; done; ar -r ../@LIBPREFIX@ecl.@LIBEXT@ *.@OBJEXT@; rm *.@OBJEXT@; ~
ar -x ../@LIBPREFIX@clos.@LIBEXT@; for i in *.@OBJEXT@; do mv $i lsp_$i; done; ar -r ../@LIBPREFIX@ecl.@LIBEXT@ *.@OBJEXT@; rm *.@OBJEXT@; ~
@RANLIB@ ../@LIBPREFIX@ecl.@LIBEXT@; ~
cd ..; rm -rf tmp/* @LIBPREFIX@{lsp,clos} "))
ar -x ../liblsp.a; for i in *.o; do mv $i lsp_$i; done; ar -r ../libecl.a *.o; rm *.o; ~
ar -x ../libclos.a; for i in *.o; do mv $i lsp_$i; done; ar -r ../libecl.a *.o; rm *.o; ~
ranlib ../libecl.a; ~
cd ..; rm -rf tmp/*'")))
;;
;; Notice that we must explicitely mention libecl.so/ecl.dll instead
@ -64,7 +67,7 @@ cd ..; rm -rf tmp/* @LIBPREFIX@{lsp,clos} "))
;;
(setf c::*ld-flags*
#+dlopen "@LDFLAGS@ @LDRPATH@ @SHAREDPREFIX@ecl.@SHAREDEXT@ @CLIBS@"
#-dlopen "@LDFLAGS@ @LDRPATH@ @LIBPREFIX@ecl.@LIBEXT@ @CLIBS@"
#-dlopen "@LDFLAGS@ @LDRPATH@ @LIBPREFIX@ecl.@LIBEXT@ -lgmp -lgc @CLIBS@"
)
#+dlopen
@ -85,13 +88,13 @@ cd ..; rm -rf tmp/* @LIBPREFIX@{lsp,clos} "))
;;;
(proclaim '(optimize (safety 2) (space 3)))
#+(or (not stage1) WANTS-CMP)
(let ((objects (compile-if-old "@abs_builddir@/cmp/" +cmp-module-files+
(let ((objects (compile-if-old "build:cmp;" +cmp-module-files+
:system-p t :c-file t :data-file t :h-file t)))
(c::build-static-library "cmp" :lisp-files objects)
#+dlopen
(c::build-fasl "cmp" :lisp-files objects))
(si::pathname-translations "SYS" '(("**;*.*" "@libdir@/**/*.*")))
;(si::pathname-translations "SYS" '(("**;*.*" "@libdir@/**/*.*")))
(compiler::build-program
#+(or cross stage1) "ecl"
@ -104,7 +107,7 @@ cd ..; rm -rf tmp/* @LIBPREFIX@{lsp,clos} "))
(proclaim '(optimize (safety 2) (space 3)))
(load "clx/load.lsp")
(push :clx-ansi-common-lisp *features*)
(let* ((objects (compile-if-old "@abs_builddir@/clx/" +clx-module-files+
(let* ((objects (compile-if-old "build:clx;" +clx-module-files+
:system-p t :c-file t :data-file t :h-file t)))
(c::build-program "eclx" :lisp-files `(#+(and (not dlopen) wants-cmp) cmp
,@objects))))

40
src/configure vendored
View file

@ -309,7 +309,7 @@ ac_includes_default="\
# include <unistd.h>
#endif"
ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS ECL_VERSION build build_cpu build_vendor build_os host host_cpu host_vendor host_os builddir top_srcdir CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CXX CXXFLAGS ac_ct_CXX CPP RANLIB ac_ct_RANLIB INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA LN_S ECL_CC LSPCFLAGS CLIBS SHARED_LDFLAGS BUNDLE_LDFLAGS SHORT_SITE_NAME LONG_SITE_NAME EXTRA_OBJS TARGETS TKLIBS SUBDIR LIBRARIES LSP_LIBRARIES BOEHM_HEADERS EGREP CP RM MV EXE_SUFFIX ARCHITECTURE SOFTWARE_TYPE SOFTWARE_VERSION MACHINE_INSTANCE MACHINE_VERSION LDRPATH LIBPREFIX LIBEXT SHAREDEXT SHAREDPREFIX LDINSTALLNAME ECL_SETJMP ECL_LONGJMP ECL_FILE_CNT CL_FIXNUM_TYPE CL_FIXNUM_BITS CL_FIXNUM_MAX CL_FIXNUM_MIN X_CFLAGS X_PRE_LIBS X_LIBS X_EXTRA_LIBS XINCLUDES XLIBS LIBOBJS LTLIBOBJS'
ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS ECL_VERSION build build_cpu build_vendor build_os host host_cpu host_vendor host_os thehost builddir top_srcdir CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CXX CXXFLAGS ac_ct_CXX CPP RANLIB ac_ct_RANLIB INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA LN_S ECL_CC LSPCFLAGS CLIBS SHARED_LDFLAGS BUNDLE_LDFLAGS SHORT_SITE_NAME LONG_SITE_NAME EXTRA_OBJS TARGETS TKLIBS SUBDIR LIBRARIES LSP_LIBRARIES BOEHM_HEADERS EGREP true_srcdir true_builddir CP RM MV EXE_SUFFIX ARCHITECTURE SOFTWARE_TYPE SOFTWARE_VERSION MACHINE_INSTANCE MACHINE_VERSION LDRPATH LIBPREFIX LIBEXT SHAREDEXT SHAREDPREFIX LDINSTALLNAME ECL_SETJMP ECL_LONGJMP ECL_FILE_CNT CL_FIXNUM_TYPE CL_FIXNUM_BITS CL_FIXNUM_MAX CL_FIXNUM_MIN X_CFLAGS X_PRE_LIBS X_LIBS X_EXTRA_LIBS XINCLUDES XLIBS LIBOBJS LTLIBOBJS'
ac_subst_files=''
# Initialize some variables set by options.
@ -3550,8 +3550,9 @@ done
for ac_func in nanosleep alarm times isnanf select setenv putenv\
lstat mkstemp
lstat mkstemp sigprocmask
do
as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
echo "$as_me:$LINENO: checking for $ac_func" >&5
@ -3750,11 +3751,20 @@ mandir="${prefix}/man"
infodir="${prefix}/info"
PWDCMD="pwd";
case "${srcdir}" in
/* | ?:/* ) ;;
* ) srcdir="`(cd ${srcdir}; ${PWDCMD})`";
esac
if uname -a | grep -i 'mingw32' > /dev/null; then
true_srcdir=`(cd ${srcdir}; pwd -W)`
true_builddir=`pwd -W`
else
true_srcdir=`(cd ${srcdir}; pwd)`
true_builddir=`pwd`
fi
if test "x${cross_compiling}" = "xyes"; then
@ -3903,6 +3913,15 @@ case "${host_os}" in
BUNDLE_LDFLAGS=''
SHAREDEXT='dll'
;;
mingw*)
thehost='mingw32'
CLIBS='-lwsock32'
shared='no'
SHARED_LDFLAGS=''
BUNDLE_LDFLAGS=''
SHAREDEXT='dll'
PICFLAG=''
;;
darwin*)
thehost='darwin'
shared='yes'
@ -4339,8 +4358,8 @@ if test "${locative}" ; then
_ACEOF
fi
echo "$as_me:$LINENO: checking Checking for threads support" >&5
echo $ECHO_N "checking Checking for threads support... $ECHO_C" >&6
echo "$as_me:$LINENO: checking for threads support" >&5
echo $ECHO_N "checking for threads support... $ECHO_C" >&6
if test "${threads}" ; then
if test -z "${THREAD_LDFLAGS}"; then
threads='';
@ -5960,8 +5979,8 @@ fi
XLIBS="$XLIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS"
echo "$as_me:$LINENO: checking checking for gmp..." >&5
echo $ECHO_N "checking checking for gmp...... $ECHO_C" >&6
echo "$as_me:$LINENO: checking for gmp..." >&5
echo $ECHO_N "checking for gmp...... $ECHO_C" >&6
if test ${local_gmp} = "yes" ; then
echo "$as_me:$LINENO: result: already installed" >&5
echo "${ECHO_T}already installed" >&6
@ -5971,13 +5990,13 @@ echo "${ECHO_T}configuring local copy" >&6
test -d gmp && rm -rf gmp
if mkdir gmp; then
(destdir=`${PWDCMD}`; cd gmp; CC="${CC} ${PICFLAG}" \
$srcdir/gmp/configure --disable-shared --prefix=$bindir \
$srcdir/gmp/configure --disable-shared --prefix=${destdir} \
--infodir=${destdir}/doc --includedir=${destdir}/h \
--libdir=${destdir} --build=${build} --host=${host} $gmp_flags)
fi
fi
echo "$as_me:$LINENO: checking checking for Boehm-Weiser gc..." >&5
echo $ECHO_N "checking checking for Boehm-Weiser gc...... $ECHO_C" >&6
echo "$as_me:$LINENO: checking for Boehm-Weiser gc..." >&5
echo $ECHO_N "checking for Boehm-Weiser gc...... $ECHO_C" >&6
if test ${boehm} = "no"; then
echo "$as_me:$LINENO: result: use small collector instead" >&5
echo "${ECHO_T}use small collector instead" >&6
@ -6646,6 +6665,7 @@ s,@host@,$host,;t t
s,@host_cpu@,$host_cpu,;t t
s,@host_vendor@,$host_vendor,;t t
s,@host_os@,$host_os,;t t
s,@thehost@,$thehost,;t t
s,@builddir@,$builddir,;t t
s,@top_srcdir@,$top_srcdir,;t t
s,@CC@,$CC,;t t
@ -6680,6 +6700,8 @@ s,@LIBRARIES@,$LIBRARIES,;t t
s,@LSP_LIBRARIES@,$LSP_LIBRARIES,;t t
s,@BOEHM_HEADERS@,$BOEHM_HEADERS,;t t
s,@EGREP@,$EGREP,;t t
s,@true_srcdir@,$true_srcdir,;t t
s,@true_builddir@,$true_builddir,;t t
s,@CP@,$CP,;t t
s,@RM@,$RM,;t t
s,@MV@,$MV,;t t

View file

@ -40,7 +40,7 @@ dnl Guess operating system of host. We do not allow cross-compiling.
AC_CANONICAL_BUILD
AC_CANONICAL_HOST
AC_SUBST(host)
AC_SUBST(thehost)
AC_SUBST(bindir)
AC_SUBST(mandir)
AC_SUBST(infodir)
@ -142,7 +142,7 @@ dnl AC_CHECK_HEADERS(unistd.h stdlib.h stdarg.h string.h)
AC_CHECK_HEADERS(sys/resource.h sys/utsname.h float.h pwd.h dlfcn.h link.h\
mach-o/dyld.h ulimit.h dirent.h sys/ioctl.h)
AC_CHECK_FUNCS(nanosleep alarm times isnanf select setenv putenv\
lstat mkstemp)
lstat mkstemp sigprocmask)
AC_ISC_POSIX
dnl ----------------------------------------------------------------------
@ -236,7 +236,7 @@ if test "${locative}" ; then
EXTRA_OBJS="${EXTRA_OBJS} unify.${OBJEXT}"
AC_DEFINE(LOCATIVE)
fi
AC_MSG_CHECKING(Checking for threads support)
AC_MSG_CHECKING(for threads support)
if test "${threads}" ; then
if test -z "${THREAD_LDFLAGS}"; then
threads='';
@ -324,7 +324,7 @@ XLIBS="$XLIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS"
dnl ---------------------------------------------------------------------
dnl GNU multiprecision library
dnl
AC_MSG_CHECKING(checking for gmp...)
AC_MSG_CHECKING(for gmp...)
if test ${local_gmp} = "yes" ; then
AC_MSG_RESULT(already installed)
else
@ -340,7 +340,7 @@ fi
dnl ---------------------------------------------------------------------
dnl Boehm-Weiser garbage collector
dnl
AC_MSG_CHECKING(checking for Boehm-Weiser gc...)
AC_MSG_CHECKING(for Boehm-Weiser gc...)
if test ${boehm} = "no"; then
AC_MSG_RESULT(use small collector instead)
elif test "${local_boehm}" = "no" ; then

View file

@ -45,6 +45,15 @@ install: all
$(INSTALL_DATA) ecldev.info $(PREFIX)$(infodir)
$(mkinstalldirs) $(PREFIX)$(mandir)/man$(manext)
$(INSTALL_DATA) ecl.man $(PREFIX)$(mandir)/man$(manext)/ecl.$(manext)
flatinstall: all
$(mkinstalldirs) $(PREFIX)/doc
$(INSTALL_DATA) ecl.info $(PREFIX)/doc
$(INSTALL_DATA) ecldev.info $(PREFIX)/doc
$(mkinstalldirs) $(PREFIX)/doc/ecl
for i in ecl/*; do $(INSTALL_DATA) $$i $(PREFIX)/doc/ecl/; done
$(mkinstalldirs) $(PREFIX)/doc/ecldev
for i in ecldev/*; do $(INSTALL_DATA) $$i $(PREFIX)/doc/ecldev/; done
for i in *.html; do $(INSTALL_DATA) $$i $(PREFIX)/doc/; done
uninstall:
rm -r $(infodir)/ecl.info $(infodir)/ecldev.info

View file

@ -21,8 +21,8 @@
<tr><td><a href="news.html"><b>Latest release</b></a></td></tr>
<tr><td><a href="install.html"><b>Installing</b></a></td></tr>
<tr><td><a href="license.html"><b>License</b></a></td></tr>
<tr><td><a href="ecl.html"><b>User's guide</b></a></td></tr>
<tr><td><a href="ecldev.html"><b>Developer's guide</b></a></td></tr>
<tr><td><a href="ecl/user.html"><b>User's guide</b></a></td></tr>
<tr><td><a href="ecldev/devel.html"><b>Developer's guide</b></a></td></tr>
<tr><td><a href="benchmark.html"><b>Benchmarks</b></a></td></tr>
<tr><td><a href="download.html"><b>Distribution</b></a></td></tr>
<tr><td><a href="patch-current-exp.gz"><b>Experimental<br>Patches</b></a></td></tr>

View file

@ -181,6 +181,8 @@ typedef unsigned @CL_FIXNUM_TYPE@ cl_hashkey;
#undef HAVE_DLFCN_H
#undef HAVE_LINK_H
#undef HAVE_MACH_O_DYLD_H
/* POSIX signals */
#undef HAVE_SIGPROCMASK
/* what characters are used to mark beginning of new line */
#undef ECL_NEWLINE_IS_CRLF

View file

@ -1004,7 +1004,7 @@ extern cl_object make_pathname(cl_object host, cl_object device, cl_object direc
extern cl_object parse_namestring(const char *s, cl_index start, cl_index end, cl_index *ep, cl_object default_host);
extern cl_object coerce_to_physical_pathname(cl_object x);
extern cl_object coerce_to_file_pathname(cl_object pathname);
extern cl_object coerce_to_filename(cl_object pathname);
extern cl_object si_coerce_to_filename(cl_object pathname);
extern cl_object merge_pathnames(cl_object path, cl_object defaults, cl_object default_version);
extern bool logical_hostname_p(cl_object host);

View file

@ -43,6 +43,8 @@ Returns, as a string, the version of the machine on which ECL runs. Obtained fro
uname(2) where available."
"@MACHINE@")
(push :@thehost@ *features*)
(defun software-type ()
"Args: ()
Returns, as a string, the type of the software under which ECL runs."
@ -65,5 +67,9 @@ Returns, as a string, the version of the software under which ECL runs."
;; * Set configuration pathnames. Notice the trailing slash!
;; Otherwise it would not be a directory.
;;
#-mingw32
(si::pathname-translations "SYS" '(("**;*.*" "@libdir@/**/*.*")))
#+mingw32
(si::pathname-translations "SYS"
`(("**;*.*" ,(merge-pathnames "**/*.*" (si::argv 0)))))
(si::pathname-translations "HOME" '(("**;*.*" "~/**/*.*")))

View file

@ -1,46 +1,46 @@
(load "@abs_srcdir@/export.lsp" :verbose nil)
(load "@abs_srcdir@/defmacro.lsp" :verbose nil)
(load "@abs_srcdir@/helpfile.lsp" :verbose nil)
(load "@abs_srcdir@/evalmacros.lsp" :verbose nil)
(load "src:lsp;export.lsp" :verbose nil)
(load "src:lsp;defmacro.lsp" :verbose nil)
(load "src:lsp;helpfile.lsp" :verbose nil)
(load "src:lsp;evalmacros.lsp" :verbose nil)
(defconstant +lisp-module-files+
'("@abs_srcdir@/export.lsp"
"@abs_srcdir@/defmacro.lsp"
"@abs_srcdir@/helpfile.lsp"
"@abs_srcdir@/evalmacros.lsp"
"@abs_srcdir@/module.lsp"
"@abs_srcdir@/autoload.lsp"
"@abs_srcdir@/describe.lsp"
"@abs_srcdir@/setf.lsp"
"@abs_srcdir@/predlib.lsp"
"@abs_srcdir@/arraylib.lsp"
"@abs_srcdir@/assert.lsp"
"@abs_srcdir@/defstruct.lsp"
"@abs_srcdir@/iolib.lsp"
"@abs_srcdir@/listlib.lsp"
"@abs_srcdir@/mislib.lsp"
"@abs_srcdir@/numlib.lsp"
"@abs_srcdir@/packlib.lsp"
"@abs_srcdir@/seq.lsp"
"@abs_srcdir@/seqlib.lsp"
"@abs_srcdir@/trace.lsp"
"@abs_srcdir@/ansi.lsp"
'("src:lsp;export.lsp"
"src:lsp;defmacro.lsp"
"src:lsp;helpfile.lsp"
"src:lsp;evalmacros.lsp"
"src:lsp;module.lsp"
"src:lsp;autoload.lsp"
"src:lsp;describe.lsp"
"src:lsp;setf.lsp"
"src:lsp;predlib.lsp"
"src:lsp;arraylib.lsp"
"src:lsp;assert.lsp"
"src:lsp;defstruct.lsp"
"src:lsp;iolib.lsp"
"src:lsp;listlib.lsp"
"src:lsp;mislib.lsp"
"src:lsp;numlib.lsp"
"src:lsp;packlib.lsp"
"src:lsp;seq.lsp"
"src:lsp;seqlib.lsp"
"src:lsp;trace.lsp"
"src:lsp;ansi.lsp"
#+old-loop
"@abs_srcdir@/loop.lsp"
"src:lsp;loop.lsp"
#-old-loop
"@abs_srcdir@/loop2.lsp"
"src:lsp;loop2.lsp"
#+cmu-format
"@abs_srcdir@/format.lsp"
"@abs_srcdir@/defpackage.lsp"
"@abs_srcdir@/ffi.lsp"
"src:lsp;format.lsp"
"src:lsp;defpackage.lsp"
"src:lsp;ffi.lsp"
#+ffi
"@abs_srcdir@/ffi-objects.lsp"
"src:lsp;ffi-objects.lsp"
#+tk
"@abs_srcdir@/tk-init.lsp"
"@abs_builddir@/config.lsp"
"@abs_srcdir@/top.lsp"
"src:lsp;tk-init.lsp"
"build:lsp;config.lsp"
"src:lsp;top.lsp"
#+threads
"@abs_srcdir@/mp.lsp"
"src:lsp;mp.lsp"
))
(mapc #'(lambda (x) (load x :verbose nil)) (cddddr +lisp-module-files+))

View file

@ -1,5 +1,5 @@
top_srcdir=@top_srcdir@
srcdir=@srcdir@
top_srcdir=@true_srcdir@
srcdir=$(top_srcdir)/tests
ECL = ../ecl
TESTS = array backquot characters eval20 format hashlong iofkts lambda \