handle *features* entirely in the configure script

Previously, there were a lot of places that turned on or off C macros
which finally determined whether some particular entry was found
in *features* or not. Now, we do this all in the configure script.
This is necessary for cross compilation from a non-compatible host
which may have different features.
This commit is contained in:
Marius Gerbershagen 2025-04-12 21:21:01 +02:00
parent cd90ecfd55
commit d51ce511f6
11 changed files with 1435 additions and 1527 deletions

View file

@ -234,7 +234,7 @@ For example:
2. Build ECL
#+begin_src sh
./configure --disable-shared --prefix=/tmp/cosmo-cl
LSP_FEATURES=":cosmo" ./configure --disable-shared --prefix=/tmp/cosmo-cl
make -j15
make install
# make check

View file

@ -17,6 +17,9 @@ SOFTWARE_TYPE = NT
SOFTWARE_VERSION = 5.0
THEHOST = win32
# Symbols to add to *FEATURES* in the final executable
LSP_FEATURES = :ecl :common :common-lisp :ansi-cl :ffi :prefixed-api :cdr-14 :package-local-nicknames :clos :ecl-pde :long-float :ieee-floating-point :floating-point-exceptions :boehm-gc :dlopen :msvc :windows :win32 :cmu-format :clos-streams :uint8-t :uint16-t :uint32-t :uint64-t :long-long :little-endian :ecl-weak-hash
# Size of the C stack in bytes
ECL_DEFAULT_C_STACK_SIZE = 1048576
@ -180,43 +183,62 @@ LIBRARIES =
TARGETS = ecl2$(EXE)
DEF = ecl.def
# Set features
#
LSP_FEATURES = :$(ARCHITECTURE) $(LSP_FEATURES)
!if "$(ECL_WIN64)" != ""
LSP_FEATURES = :win64 $(LSP_FEATURES)
!endif
!if "$(ECL_THREADS)" != ""
LSP_FEATURES = :threads :ecl-read-write-lock $(LSP_FEATURES)
!endif
!if "$(ECL_UNICODE)" != ""
LSP_FEATURES = :unicode $(LSP_FEATURES)
!endif
!if "$(ECL_SSE)" != ""
LSP_FEATURES = :sse2 $(LSP_FEATURES)
!endif
!ifdef ECL_SOCKETS
LSP_FEATURES = :wsock $(LSP_FEATURES)
!endif
# Additional modules
#
ECL_MODULES =
ECL_FEATURES = (cons :wants-dlopen *features*)
COMPILATION_FEATURES = :wants-dlopen
!ifdef ECL_CMP
ECL_MODULES = $(ECL_MODULES) cmp
ECL_FEATURES = (cons :wants-cmp $(ECL_FEATURES))
COMPILATION_FEATURES = :wants-cmp $(COMPILATION_FEATURES)
!endif
!ifdef ECL_ASDF
ECL_MODULES = $(ECL_MODULES) asdf
ECL_FEATURES = (cons :wants-asdf $(ECL_FEATURES))
COMPILATION_FEATURES = :wants-asdf $(COMPILATION_FEATURES)
!endif
!ifdef ECL_SOCKETS
ECL_MODULES = $(ECL_MODULES) sockets
ECL_FEATURES = (cons :wants-sockets $(ECL_FEATURES))
COMPILATION_FEATURES = :wants-sockets $(COMPILATION_FEATURES)
!endif
!ifdef ECL_RT
ECL_MODULES = $(ECL_MODULES) rt
ECL_FEATURES = (cons :wants-rt $(ECL_FEATURES))
COMPILATION_FEATURES = :wants-rt $(COMPILATION_FEATURES)
!endif
!ifdef ECL_DEFSYS
ECL_MODULES = $(ECL_MODULES) defsystem
ECL_FEATURES = (cons :wants-defsystem $(ECL_FEATURES))
COMPILATION_FEATURES = :wants-defsystem $(COMPILATION_FEATURES)
!endif
!ifdef ECL_PROFILE
ECL_MODULES = $(ECL_MODULES) profile
ECL_FEATURES = (cons :wants-profile $(ECL_FEATURES))
COMPILATION_FEATURES = :wants-profile $(COMPILATION_FEATURES)
!endif
ECL_MODULES = $(ECL_MODULES) bytecmp
ECL_FEATURES = (list* :builtin-bytecmp :wants-bytecmp $(ECL_FEATURES))
COMPILATION_FEATURES = :builtin-bytecmp :wants-bytecmp $(COMPILATION_FEATURES)
ECL_MODULES = $(ECL_MODULES) ecl-curl
ECL_FEATURES = (cons :wants-ecl-curl $(ECL_FEATURES))
COMPILATION_FEATURES = :wants-ecl-curl $(COMPILATION_FEATURES)
ECL_MODULES = $(ECL_MODULES) deflate
ECL_FEATURES = (cons :wants-deflate $(ECL_FEATURES))
COMPILATION_FEATURES = :wants-deflate $(COMPILATION_FEATURES)
!MESSAGE ECL Modules: $(ECL_MODULES)
!MESSAGE ECL Features: $(ECL_FEATURES)
!MESSAGE ECL Features: $(COMPILATION_FEATURES)
# Build rules
#
@ -289,7 +311,8 @@ compile.lsp: bare.lsp $(srcdir)/compile.lsp.in Makefile
"@LDINSTALLNAME@" "" \
"@DEF@" "$(DEF)" \
"@RANLIB@" "ranlib" \
"@LSP_FEATURES@" "$(ECL_FEATURES)" \
"@LSP_FEATURES@" "$(LSP_FEATURES)" \
"@COMPILATION_FEATURES@" "$(COMPILATION_FEATURES)" \
"@ECL_CMPDIR@" "cmp" \
"@ECL_EXTRA_LISP_FILES@" "" \
"@ECL_INIT_FORM@" "(si::top-level t)" \
@ -329,6 +352,9 @@ cmp/cmpdefs.lsp: $(srcdir)/cmp/cmpdefs.lsp Makefile
"@ecldir\@" "NIL" \
"@libdir\@" "NIL" \
"@includedir\@" "NIL" \
"@ARCHITECTURE@" "$(ARCHITECTURE)"\
"@SOFTWARE_TYPE@" "$(SOFTWARE_TYPE)"\
"@PACKAGE_VERSION@" "$(PACKAGE_VERSION)"\
< $(srcdir)\cmp\cmpdefs.lsp > cmp\cmpdefs.lsp
ecl-config.bat: util\ecl-config.bat Makefile
c\cut "~A" "$(libdir:\=/)"\
@ -346,9 +372,12 @@ ecl-cc.bat: util\ecl-cc.bat Makefile
"@libdir@" "$(prefix:\=/)" \
"@includedir@" "$(prefix:\=/)/ecl" \
< util\ecl-cc.bat > ecl-cc.bat
c/ecl_features.h: $(srcdir)/c/ecl_features.h.in Makefile
c\cut "@LSP_FEATURES@" "$(LSP_FEATURES)" \
< $(srcdir)\c\ecl_features.h.in > c\ecl_features.h
eclmin.lib: eclgmp.lib eclgc.lib lsp/config.lsp
eclmin.lib: eclgmp.lib eclgc.lib lsp/config.lsp c/ecl_features.h
cd c
$(MAKE) /nologo ECL_VERSION_NUMBER=$(ECL_VERSION_NUMBER) \
ECL_DEFAULT_C_STACK_SIZE=$(ECL_DEFAULT_C_STACK_SIZE) \

59
src/aclocal.m4 vendored
View file

@ -24,6 +24,7 @@ AC_DEFUN([ECL_COMPLEX_C99],[
fi
if test "$enable_c99complex" != "no" ; then
AC_DEFINE([ECL_COMPLEX_FLOAT], [], [ECL_COMPLEX_FLOAT])
ECL_ADD_FEATURE(complex-float)
AC_MSG_RESULT("C99 Complex Float support is available")
else
AC_MSG_RESULT("C99 Complex Float support is not available")
@ -74,13 +75,19 @@ else
AC_DEFINE([ecl_ulong_long_t], [unsigned long long], [compiler understands long long])
AC_DEFINE_UNQUOTED([ECL_LONG_LONG_BITS],[$ECL_LONG_LONG_BITS], [ECL_LONG_LONG_BITS])
AC_SUBST(ECL_LONG_LONG_BITS)
ECL_ADD_FEATURE(long-long)
fi
])
dnl --------------------------------------------------------------
dnl Add *feature* for conditional compilation.
dnl Add *feature* for the target executable.
AC_DEFUN([ECL_ADD_FEATURE], [
LSP_FEATURES="(cons :$1 ${LSP_FEATURES})"
LSP_FEATURES="${LSP_FEATURES} :$1"
])
dnl --------------------------------------------------------------
dnl Add *feature* for conditional compilation.
AC_DEFUN([ECL_ADD_COMPILATION_FEATURE], [
COMPILATION_FEATURES=":$1 ${COMPILATION_FEATURES}"
])
dnl --------------------------------------------------------------
@ -89,14 +96,14 @@ dnl compile module into Lisp library if we don't support shared
dnl libraries.
dnl
AC_DEFUN([ECL_ADD_LISP_MODULE], [
ECL_ADD_FEATURE([wants-$1])
ECL_ADD_COMPILATION_FEATURE([wants-$1])
])
dnl --------------------------------------------------------------
dnl Add lisp module and build it into the compiler.
dnl
AC_DEFUN([ECL_ADD_BUILTIN_MODULE], [
ECL_ADD_FEATURE([builtin-$1])
ECL_ADD_COMPILATION_FEATURE([builtin-$1])
])
dnl --------------------------------------------------------------
@ -199,7 +206,7 @@ EOF
(echo '#!/bin/sh'; echo exec ${ECL_MIN_TO_RUN} '$''*') > CROSS-COMPILER
(echo '#!/bin/sh'; echo exec ${DPP_TO_RUN} '$''*') > CROSS-DPP
chmod +x CROSS-COMPILER CROSS-DPP
ECL_ADD_FEATURE([cross])
ECL_ADD_COMPILATION_FEATURE([cross])
fi
])
@ -284,9 +291,10 @@ case "${host_os}" in
clibs="-ldl ${clibs}"
# Maybe CFLAGS="-D_ISOC99_SOURCE ${CFLAGS}" ???
CFLAGS="-D_GNU_SOURCE -DPLATFORM_ANDROID -DUSE_GET_STACKBASE_FOR_MAIN -DIGNORE_DYNAMIC_LOADING ${CFLAGS}"
ECL_ADD_FEATURE([android])
SONAME="${SHAREDPREFIX}ecl.${SHAREDEXT}"
SONAME_LDFLAGS="-Wl,-soname,SONAME"
ECL_ADD_FEATURE([android])
ECL_ADD_FEATURE([unix])
;;
# libdir may have a dollar expression inside
@ -302,6 +310,7 @@ case "${host_os}" in
CFLAGS="-D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 ${CFLAGS}"
SONAME="${SHAREDPREFIX}ecl.${SHAREDEXT}.SOVERSION"
SONAME_LDFLAGS="-Wl,-soname,SONAME"
ECL_ADD_FEATURE([unix])
;;
gnu*)
thehost='gnu'
@ -314,6 +323,7 @@ case "${host_os}" in
CFLAGS="-D_GNU_SOURCE ${CFLAGS}"
SONAME="${SHAREDPREFIX}ecl.${SHAREDEXT}.SOVERSION"
SONAME_LDFLAGS="-Wl,-soname,SONAME"
ECL_ADD_FEATURE([unix])
;;
kfreebsd*-gnu)
thehost='kfreebsd'
@ -326,6 +336,8 @@ case "${host_os}" in
CFLAGS="-D_GNU_SOURCE ${CFLAGS}"
SONAME="${SHAREDPREFIX}ecl.${SHAREDEXT}.SOVERSION"
SONAME_LDFLAGS="-Wl,-soname,SONAME"
ECL_ADD_FEATURE([unix])
ECL_ADD_FEATURE([bsd])
;;
dragonfly*)
thehost='dragonfly'
@ -336,6 +348,8 @@ case "${host_os}" in
clibs="${clibs}"
SONAME="${SHAREDPREFIX}ecl.${SHAREDEXT}.SOVERSION"
SONAME_LDFLAGS="-Wl,-soname,SONAME"
ECL_ADD_FEATURE([unix])
ECL_ADD_FEATURE([bsd])
;;
freebsd*)
thehost='freebsd'
@ -346,6 +360,8 @@ case "${host_os}" in
clibs="${clibs}"
SONAME="${SHAREDPREFIX}ecl.${SHAREDEXT}.SOVERSION"
SONAME_LDFLAGS="-Wl,-soname,SONAME"
ECL_ADD_FEATURE([unix])
ECL_ADD_FEATURE([bsd])
;;
netbsd*)
thehost='netbsd'
@ -356,6 +372,8 @@ case "${host_os}" in
clibs="${clibs}"
SONAME="${SHAREDPREFIX}ecl.${SHAREDEXT}.SOVERSION"
SONAME_LDFLAGS="-Wl,-soname,SONAME"
ECL_ADD_FEATURE([unix])
ECL_ADD_FEATURE([bsd])
;;
openbsd*)
thehost='openbsd'
@ -367,6 +385,8 @@ case "${host_os}" in
clibs="-lpthread ${clibs}"
SONAME="${SHAREDPREFIX}ecl.${SHAREDEXT}.SOVERSION"
SONAME_LDFLAGS="-Wl,-soname,SONAME"
ECL_ADD_FEATURE([unix])
ECL_ADD_FEATURE([bsd])
;;
solaris*)
thehost='sun4sol2'
@ -383,6 +403,7 @@ case "${host_os}" in
SHARED_LDFLAGS="-shared $SHARED_LDFLAGS"
BUNDLE_LDFLAGS="-shared $BUNDLE_LDFLAGS"
fi
ECL_ADD_FEATURE([unix])
;;
cygwin*)
thehost='cygwin'
@ -400,6 +421,8 @@ case "${host_os}" in
# Windows64 calling conventions.
with_c_gmp=yes
fi
ECL_ADD_FEATURE([cygwin])
ECL_ADD_FEATURE([unix])
;;
mingw*)
thehost='mingw32'
@ -417,6 +440,15 @@ case "${host_os}" in
PICFLAG=''
INSTALL_TARGET='flatinstall'
TCPLIBS='-lws2_32'
if test "${with_tcp}" = "yes"; then
ECL_ADD_FEATURE(wsock)
fi
ECL_ADD_FEATURE([mingw32])
ECL_ADD_FEATURE([win32])
ECL_ADD_FEATURE([windows])
if test "x$host_cpu" = "xx86_64" ; then
ECL_ADD_FEATURE([win64])
fi
;;
darwin*)
thehost='darwin'
@ -453,6 +485,11 @@ case "${host_os}" in
fi
SONAME="${SHAREDPREFIX}ecl.SOVERSION.${SHAREDEXT}"
SONAME_LDFLAGS="-Wl,-install_name,@rpath/SONAME -Wl,-compatibility_version,${PACKAGE_VERSION}"
if test "`uname -m`" = arm64; then
AC_DEFINE([ECL_C_COMPATIBLE_VARIADIC_DISPATCH], [], [Do the fixed and optional arguments of a variadic function use a different calling convention?])
ECL_ADD_FEATURE(c-compatible-variadic-dispatch)
fi
ECL_ADD_FEATURE(unix)
;;
nsk*)
# HP Non-Stop platform
@ -474,6 +511,7 @@ case "${host_os}" in
clibs="-lnetwork"
SONAME="${SHAREDPREFIX}ecl.${SHAREDEXT}.SOVERSION"
SONAME_LDFLAGS="-Wl,-soname,SONAME"
ECL_ADD_FEATURE(haiku)
;;
aix*)
PICFLAG='-DPIC'
@ -488,6 +526,7 @@ case "${host_os}" in
*)
thehost="$host_os"
shared="no"
ECL_ADD_FEATURE(unix)
;;
esac
@ -521,6 +560,7 @@ case "${host}" in
THREAD_LIBS=''
CFLAGS="-D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -DANDROID -DPLATFORM_ANDROID -DUSE_GET_STACKBASE_FOR_MAIN -DIGNORE_DYNAMIC_LOADING -DNO_GETCONTEXT -DHAVE_GETTIMEOFDAY -DHAVE_SIGPROCMASK ${CFLAGS}"
ECL_ADD_FEATURE([android])
ECL_ADD_FEATURE(unix)
;;
wasm32-unknown-emscripten)
# Non-zero optimization levels seem to be slower in
@ -540,6 +580,9 @@ case "${host}" in
BUNDLE_LDFLAGS="-shared -sSIDE_MODULE ${LDFLAGS}"
PROGRAM_LDFLAGS="-sMAIN_MODULE -sERROR_ON_UNDEFINED_SYMBOLS=0 ${LDFLAGS}"
INSTALL_TARGET='flatinstall'
AC_DEFINE([ECL_C_COMPATIBLE_VARIADIC_DISPATCH], [], [Do the fixed and optional arguments of a variadic function use a different calling convention?])
ECL_ADD_FEATURE(c-compatible-variadic-dispatch)
ECL_ADD_FEATURE(emscripten)
;;
esac
@ -615,6 +658,7 @@ if test "x$ac_cv_c_int$1_t" = xyes; then
eval ECL_UINT$1_T="uint$1_t"
AC_DEFINE_UNQUOTED([ecl_int$1_t], [int$1_t], [ecl_int$1_t])
AC_DEFINE_UNQUOTED([ecl_uint$1_t], [uint$1_t], [ecl_uint$1_t])
ECL_ADD_FEATURE(uint$1-t)
fi])
dnl
@ -957,6 +1001,7 @@ _mm_getcsr();]])],[sse_included=yes],[sse_included=no])
fi
if test "x$with_sse" = xyes; then
AC_DEFINE([ECL_SSE2], [], [ECL_SSE2])
ECL_ADD_FEATURE(sse2)
AC_MSG_RESULT([yes])
else
AC_MSG_RESULT([no])
@ -1194,6 +1239,7 @@ else
fi
if test "${enable_serialization}" != "no" ; then
AC_DEFINE([ECL_EXTERNALIZABLE], [], [Use the serialization framework])
ECL_ADD_FEATURE(externalizable)
fi
])
@ -1258,6 +1304,7 @@ if test -z "${ECL_LIBFFI_HEADER}"; then
AC_MSG_WARN([Unable to configure or find libffi library; disabling dynamic FFI])
else
AC_DEFINE([HAVE_LIBFFI], [], [HAVE_LIBFFI])
ECL_ADD_FEATURE(dffi)
fi
])

View file

@ -1,127 +0,0 @@
/* -*- Mode: C; c-basic-offset: 2; indent-tabs-mode: nil -*- */
/* vim: set filetype=c tabstop=2 shiftwidth=2 expandtab: */
/*
* ecl_features.h - names of features compiled into ECL
*
* Copyright (c) 1984 Taiichi Yuasa and Masami Hagiya
* Copyright (c) 1990 Giuseppe Attardi
* Copyright (c) 2001 Juan Jose Garcia Ripoll
*
* See file 'LICENSE' for the copyright details.
*
*/
ecl_def_string_array(feature_names,static,const) = {
ecl_def_string_array_elt("ECL"),
ecl_def_string_array_elt("COMMON"),
ecl_def_string_array_elt(ECL_ARCHITECTURE),
ecl_def_string_array_elt("FFI"),
ecl_def_string_array_elt("PREFIXED-API"),
ecl_def_string_array_elt("CDR-14"),
ecl_def_string_array_elt("PACKAGE-LOCAL-NICKNAMES"),
#ifdef ECL_IEEE_FP
ecl_def_string_array_elt("IEEE-FLOATING-POINT"),
#endif
#if !defined(ECL_IEEE_FP) || !defined(ECL_AVOID_FPE_H)
ecl_def_string_array_elt("FLOATING-POINT-EXCEPTIONS"),
#endif
ecl_def_string_array_elt("COMMON-LISP"),
ecl_def_string_array_elt("ANSI-CL"),
#if defined(GBC_BOEHM)
ecl_def_string_array_elt("BOEHM-GC"),
#endif
#ifdef ECL_THREADS
ecl_def_string_array_elt("THREADS"),
#endif
ecl_def_string_array_elt("CLOS"),
#ifdef ENABLE_DLOPEN
ecl_def_string_array_elt("DLOPEN"),
#endif
ecl_def_string_array_elt("ECL-PDE"),
#if defined(unix) || defined(netbsd) || defined(openbsd) || defined(linux) || defined(darwin) || \
defined(freebsd) || defined(dragonfly) || defined(kfreebsd) || defined(gnu) || defined(nsk) || defined(aix)
ecl_def_string_array_elt("UNIX"),
#endif
#ifdef BSD
ecl_def_string_array_elt("BSD"),
#endif
#ifdef SYSV
ecl_def_string_array_elt("SYSTEM-V"),
#endif
#if defined(__MINGW32__)
ecl_def_string_array_elt("MINGW32"),
ecl_def_string_array_elt("WIN32"),
#endif
#if defined(__WIN64__)
ecl_def_string_array_elt("WIN64"),
#endif
#ifdef _MSC_VER
ecl_def_string_array_elt("MSVC"),
#endif
#if defined(ECL_MS_WINDOWS_HOST)
ecl_def_string_array_elt("WINDOWS"),
#endif
#if defined(__COSMOPOLITAN__)
ecl_def_string_array_elt("COSMO"),
#endif
#ifdef ECL_CMU_FORMAT
ecl_def_string_array_elt("CMU-FORMAT"),
#endif
#ifdef ECL_CLOS_STREAMS
ecl_def_string_array_elt("CLOS-STREAMS"),
#endif
#if defined(HAVE_LIBFFI)
ecl_def_string_array_elt("DFFI"),
#endif
#ifdef ECL_UNICODE
ecl_def_string_array_elt("UNICODE"),
#endif
ecl_def_string_array_elt("LONG-FLOAT"),
#ifdef ECL_COMPLEX_FLOAT
ecl_def_string_array_elt("COMPLEX-FLOAT"),
#endif
#ifdef ecl_uint16_t
ecl_def_string_array_elt("UINT16-T"),
#endif
#ifdef ecl_uint32_t
ecl_def_string_array_elt("UINT32-T"),
#endif
#ifdef ecl_uint64_t
ecl_def_string_array_elt("UINT64-T"),
#endif
#ifdef ecl_long_long_t
ecl_def_string_array_elt("LONG-LONG"),
#endif
#ifdef ECL_EXTERNALIZABLE
ecl_def_string_array_elt("EXTERNALIZABLE"),
#endif
#ifdef ECL_CXX_CORE
ecl_def_string_array_elt("CXX-CORE"),
#endif
#ifdef ECL_SSE2
ecl_def_string_array_elt("SSE2"),
#endif
#ifdef ECL_SEMAPHORES
ecl_def_string_array_elt("SEMAPHORES"),
#endif
#if defined(HAVE_POSIX_RWLOCK) || defined(ECL_WINDOWS_THREADS)
ecl_def_string_array_elt("ECL-READ-WRITE-LOCK"),
#endif
#ifdef WORDS_BIGENDIAN
ecl_def_string_array_elt("BIG-ENDIAN"),
#else
ecl_def_string_array_elt("LITTLE-ENDIAN"),
#endif
#ifdef ECL_WEAK_HASH
ecl_def_string_array_elt("ECL-WEAK-HASH"),
#endif
#ifdef ECL_WSOCK
ecl_def_string_array_elt("WSOCK"),
#endif
#ifdef ECL_C_COMPATIBLE_VARIADIC_DISPATCH
ecl_def_string_array_elt("C-COMPATIBLE-VARIADIC-DISPATCH"),
#endif
ecl_def_string_array_elt(0)
};

17
src/c/ecl_features.h.in Normal file
View file

@ -0,0 +1,17 @@
/* -*- Mode: C; c-basic-offset: 2; indent-tabs-mode: nil -*- */
/* vim: set filetype=c tabstop=2 shiftwidth=2 expandtab: */
/*
* ecl_features.h - names of features compiled into ECL
*
* Copyright (c) 1984 Taiichi Yuasa and Masami Hagiya
* Copyright (c) 1990 Giuseppe Attardi
* Copyright (c) 2001 Juan Jose Garcia Ripoll
*
* See file 'LICENSE' for the copyright details.
*
*/
#define FEATURE_NAMES "(@LSP_FEATURES@)"
ecl_def_ct_base_string(feature_names, FEATURE_NAMES, sizeof(FEATURE_NAMES)-1, static, const);

View file

@ -476,7 +476,6 @@ int
cl_boot(int argc, char **argv)
{
cl_object aux;
cl_object features;
int i;
cl_env_ptr env;
@ -750,14 +749,7 @@ cl_boot(int argc, char **argv)
cl_list(8, @'&optional', @'&rest', @'&key', @'&allow-other-keys',
@'&aux', @'&whole', @'&environment', @'&body'));
for (i = 0, features = ECL_NIL; feature_names[i].elt.self; i++) {
int flag;
cl_object name = (cl_object)(feature_names + i);
cl_object key = ecl_intern(name, cl_core.keyword_package, &flag);
features = CONS(key, features);
}
ECL_SET(@'*features*', features);
ECL_SET(@'*features*', cl_read(1, cl_make_string_input_stream(1, feature_names)));
ECL_SET(@'*package*', cl_core.lisp_package);

View file

@ -14,7 +14,14 @@
(progn
(setq *package* (find-package "SYSTEM"))
(setq *features* @LSP_FEATURES@))
(setq *host-features* *features*)
(setq *features* '(@LSP_FEATURES@ @COMPILATION_FEATURES@))
(when (member :ecl-min *host-features*)
(setq *features* (cons :ecl-min *features*)))
(when (member :uname *host-features*)
(setq *features* (cons :uname *features*)))
(when (member :cross *host-features*)
(setq *features* (cons :cross *features*))))
;;;
;;; * Ensure that we have the whole of Common-Lisp to compile

2351
src/configure vendored

File diff suppressed because it is too large Load diff

View file

@ -323,7 +323,8 @@ AC_SUBST(TARGETS, ['bin/ecl$(EXE)'])dnl Versions of ECL to be built
AC_SUBST(SUBDIRS, ['c doc']) dnl Subdirectories that make should process
AC_SUBST(LIBRARIES, []) dnl GMP, Boehm's GC, etc
AC_SUBST(LSP_LIBRARIES) dnl Libraries produced by lisp translator
AC_SUBST(LSP_FEATURES, ['*features*']) dnl Symbols to add to *FEATURES* for conditional compilation
AC_SUBST(COMPILATION_FEATURES, ['']) dnl Symbols to add to *FEATURES* for conditional compilation
AC_SUBST(LSP_FEATURES, ["${LSP_FEATURES} :ecl :common :common-lisp :ansi-cl :ffi :prefixed-api :cdr-14 :package-local-nicknames :clos :ecl-pde :long-float"]) dnl Symbols to add to *FEATURES* in the final executable
dnl -----------------------------------------------------------------------
@ -592,6 +593,8 @@ if test "${enable_threads}" = "yes" ; then
AC_MSG_RESULT([${THREAD_OBJ}])
AC_DEFINE( [ECL_THREADS], [1], [Userland threads?])
fi
ECL_ADD_FEATURE(threads)
ECL_ADD_FEATURE(ecl-read-write-lock)
else
boehm_configure_flags="${boehm_configure_flags} --disable-threads"
fi
@ -604,6 +607,8 @@ if test ${enable_boehm} = "no" ; then
enable_smallcons="no"
else
ECL_BOEHM_GC
ECL_ADD_FEATURE(boehm-gc)
ECL_ADD_FEATURE(ecl-weak-hash)
fi
if test ${enable_smallcons} = "yes" ; then
AC_DEFINE([ECL_SMALL_CONS], [], [ECL_SMALL_CONS])
@ -652,6 +657,7 @@ dnl Deactivate floating point exceptions if asked to
if test "${with_ieee_fp}" = yes; then
with_signed_zero="yes"
AC_DEFINE([ECL_IEEE_FP], [], [ECL_IEEE_FP])
ECL_ADD_FEATURE(ieee-floating-point)
fi
if test "${with_fpe}" != yes; then
AC_DEFINE([ECL_AVOID_FPE_H], [], [ECL_AVOID_FPE_H])
@ -659,6 +665,9 @@ fi
if test "${with_signed_zero}" = yes; then
AC_DEFINE([ECL_SIGNED_ZERO], [], [ECL_SIGNED_ZERO])
fi
if test "${with_ieee_fp}" != yes -o "${with_fpe}" = yes; then
ECL_ADD_FEATURE(floating-point-exceptions)
fi
dnl =====================================================================
dnl Checks for header files
@ -706,7 +715,7 @@ dnl AC_TYPE_OFF_T # DEFS off_t
dnl AC_C_CHAR_UNSIGNED # DEFS __CHAR_UNSIGNED__ if char is unsigned
dnl !!! end dnled
AC_C_BIGENDIAN([], [],
AC_C_BIGENDIAN([ECL_ADD_FEATURE(big-endian)], [ECL_ADD_FEATURE(little-endian)],
[AC_DEFINE(WORDS_BIGENDIAN, [/* EDIT! - Undefine if small endian */])])
dnl ----------------------------------------------------------------------
@ -791,6 +800,7 @@ else
AC_DEFINE([ECL_CXX_CORE], [1],
[Do we use C or C++ compiler to compile ecl?])
boehm_configure_flags="${boehm_configure_flags} --enable-cplusplus"
ECL_ADD_FEATURE(cxx-core)
fi
ECL_LIBATOMIC_OPS
@ -801,6 +811,7 @@ if test ${enable_shared} = "yes"; then
AC_DEFINE(ENABLE_DLOPEN, [1], [Allow loading dynamically linked code])
LSP_LIBRARIES="${SHAREDPREFIX}ecl.${SHAREDEXT}"
ECL_ADD_LISP_MODULE([dlopen])
ECL_ADD_FEATURE(dlopen)
else
enable_soname=no
LSP_LIBRARIES="${LIBPREFIX}ecl.${LIBEXT}"
@ -814,11 +825,13 @@ fi
if test "${with_cmuformat}" = "yes"; then
with_clos_streams="yes"
AC_DEFINE([ECL_CMU_FORMAT], [1], [Use CMU Common-Lisp's FORMAT routine])
ECL_ADD_FEATURE(cmu-format)
fi
if test "${with_clos_streams}" = "yes"; then
AC_DEFINE( ECL_CLOS_STREAMS, [1],
[Allow STREAM operations to work on arbitrary objects])
ECL_ADD_FEATURE(clos-streams)
fi
if test "${with_cmp}" = "builtin"; then
@ -910,6 +923,7 @@ if test "x${enable_unicode}" != "xno"; then
AC_DEFINE([ECL_UNICODE_NAMES], [1], [Link in the database of Unicode names])
EXTRA_OBJS="$EXTRA_OBJS unicode/ucd_names_char.o unicode/ucd_names_codes.o unicode/ucd_names_pair.o unicode/ucd_names_str.o"
AC_CHECK_HEADERS([wchar.h])
ECL_ADD_FEATURE(unicode)
else
CHAR_CODE_LIMIT=256
ECL_CHARACTER="int"
@ -930,6 +944,8 @@ else
ECL_INIT_FORM="${with_init_form}"
fi
ECL_ADD_FEATURE(${ARCHITECTURE})
AC_CONFIG_FILES([
bare.lsp
lsp/load.lsp
@ -949,6 +965,7 @@ AC_CONFIG_FILES([
cmp/cmpdefs.pre:cmp/cmpdefs.lsp
tests/config.lsp
tests/Makefile
c/ecl_features.h
])
AC_CONFIG_HEADERS([ecl/config.h:ecl/configpre.h])

View file

@ -3,7 +3,7 @@
/* Define if building universal (internal helper macro) */
#undef AC_APPLE_UNIVERSAL_BUILD
/* Define to 1 if the 'closedir' function returns void instead of int. */
/* Define to 1 if the `closedir' function returns void instead of int. */
#undef CLOSEDIR_VOID
/* ECL_AVOID_FPE_H */
@ -24,6 +24,10 @@
/* Do we use C or C++ compiler to compile ecl? */
#undef ECL_CXX_CORE
/* Do the fixed and optional arguments of a variadic function use a different
calling convention? */
#undef ECL_C_COMPATIBLE_VARIADIC_DISPATCH
/* Stack grows downwards */
#undef ECL_DOWN_STACK
@ -81,229 +85,229 @@
/* GBC_BOEHM_PRECISE */
#undef GBC_BOEHM_PRECISE
/* Define to 1 if you have the 'alarm' function. */
/* Define to 1 if you have the `alarm' function. */
#undef HAVE_ALARM
/* Define to 1 if you have the 'backtrace' function. */
/* Define to 1 if you have the `backtrace' function. */
#undef HAVE_BACKTRACE
/* Define to 1 if you have the 'backtrace_symbols' function. */
/* Define to 1 if you have the `backtrace_symbols' function. */
#undef HAVE_BACKTRACE_SYMBOLS
/* Define to 1 if you have the 'cabs' function. */
/* Define to 1 if you have the `cabs' function. */
#undef HAVE_CABS
/* Define to 1 if you have the 'cabsf' function. */
/* Define to 1 if you have the `cabsf' function. */
#undef HAVE_CABSF
/* Define to 1 if you have the 'cabsl' function. */
/* Define to 1 if you have the `cabsl' function. */
#undef HAVE_CABSL
/* Define to 1 if you have the 'cacos' function. */
/* Define to 1 if you have the `cacos' function. */
#undef HAVE_CACOS
/* Define to 1 if you have the 'cacosf' function. */
/* Define to 1 if you have the `cacosf' function. */
#undef HAVE_CACOSF
/* Define to 1 if you have the 'cacosh' function. */
/* Define to 1 if you have the `cacosh' function. */
#undef HAVE_CACOSH
/* Define to 1 if you have the 'cacoshf' function. */
/* Define to 1 if you have the `cacoshf' function. */
#undef HAVE_CACOSHF
/* Define to 1 if you have the 'cacoshl' function. */
/* Define to 1 if you have the `cacoshl' function. */
#undef HAVE_CACOSHL
/* Define to 1 if you have the 'cacosl' function. */
/* Define to 1 if you have the `cacosl' function. */
#undef HAVE_CACOSL
/* Define to 1 if you have the 'casin' function. */
/* Define to 1 if you have the `casin' function. */
#undef HAVE_CASIN
/* Define to 1 if you have the 'casinf' function. */
/* Define to 1 if you have the `casinf' function. */
#undef HAVE_CASINF
/* Define to 1 if you have the 'casinh' function. */
/* Define to 1 if you have the `casinh' function. */
#undef HAVE_CASINH
/* Define to 1 if you have the 'casinhf' function. */
/* Define to 1 if you have the `casinhf' function. */
#undef HAVE_CASINHF
/* Define to 1 if you have the 'casinhl' function. */
/* Define to 1 if you have the `casinhl' function. */
#undef HAVE_CASINHL
/* Define to 1 if you have the 'casinl' function. */
/* Define to 1 if you have the `casinl' function. */
#undef HAVE_CASINL
/* Define to 1 if you have the 'catan' function. */
/* Define to 1 if you have the `catan' function. */
#undef HAVE_CATAN
/* Define to 1 if you have the 'catanf' function. */
/* Define to 1 if you have the `catanf' function. */
#undef HAVE_CATANF
/* Define to 1 if you have the 'catanh' function. */
/* Define to 1 if you have the `catanh' function. */
#undef HAVE_CATANH
/* Define to 1 if you have the 'catanhf' function. */
/* Define to 1 if you have the `catanhf' function. */
#undef HAVE_CATANHF
/* Define to 1 if you have the 'catanhl' function. */
/* Define to 1 if you have the `catanhl' function. */
#undef HAVE_CATANHL
/* Define to 1 if you have the 'catanl' function. */
/* Define to 1 if you have the `catanl' function. */
#undef HAVE_CATANL
/* Define to 1 if you have the 'ccos' function. */
/* Define to 1 if you have the `ccos' function. */
#undef HAVE_CCOS
/* Define to 1 if you have the 'ccosf' function. */
/* Define to 1 if you have the `ccosf' function. */
#undef HAVE_CCOSF
/* Define to 1 if you have the 'ccosh' function. */
/* Define to 1 if you have the `ccosh' function. */
#undef HAVE_CCOSH
/* Define to 1 if you have the 'ccoshf' function. */
/* Define to 1 if you have the `ccoshf' function. */
#undef HAVE_CCOSHF
/* Define to 1 if you have the 'ccoshl' function. */
/* Define to 1 if you have the `ccoshl' function. */
#undef HAVE_CCOSHL
/* Define to 1 if you have the 'ccosl' function. */
/* Define to 1 if you have the `ccosl' function. */
#undef HAVE_CCOSL
/* Define to 1 if you have the 'ceilf' function. */
/* Define to 1 if you have the `ceilf' function. */
#undef HAVE_CEILF
/* Define to 1 if you have the 'cexp' function. */
/* Define to 1 if you have the `cexp' function. */
#undef HAVE_CEXP
/* Define to 1 if you have the 'cexpf' function. */
/* Define to 1 if you have the `cexpf' function. */
#undef HAVE_CEXPF
/* Define to 1 if you have the 'cexpl' function. */
/* Define to 1 if you have the `cexpl' function. */
#undef HAVE_CEXPL
/* Define to 1 if you have the 'cimag' function. */
/* Define to 1 if you have the `cimag' function. */
#undef HAVE_CIMAG
/* Define to 1 if you have the 'cimagf' function. */
/* Define to 1 if you have the `cimagf' function. */
#undef HAVE_CIMAGF
/* Define to 1 if you have the 'cimagl' function. */
/* Define to 1 if you have the `cimagl' function. */
#undef HAVE_CIMAGL
/* Define to 1 if you have the 'clock_gettime' function. */
/* Define to 1 if you have the `clock_gettime' function. */
#undef HAVE_CLOCK_GETTIME
/* Define to 1 if you have the 'clog' function. */
/* Define to 1 if you have the `clog' function. */
#undef HAVE_CLOG
/* Define to 1 if you have the 'clogf' function. */
/* Define to 1 if you have the `clogf' function. */
#undef HAVE_CLOGF
/* Define to 1 if you have the 'clogl' function. */
/* Define to 1 if you have the `clogl' function. */
#undef HAVE_CLOGL
/* Define to 1 if you have the 'conj' function. */
/* Define to 1 if you have the `conj' function. */
#undef HAVE_CONJ
/* Define to 1 if you have the 'conjf' function. */
/* Define to 1 if you have the `conjf' function. */
#undef HAVE_CONJF
/* Define to 1 if you have the 'conjl' function. */
/* Define to 1 if you have the `conjl' function. */
#undef HAVE_CONJL
/* Define to 1 if you have the 'copysign' function. */
/* Define to 1 if you have the `copysign' function. */
#undef HAVE_COPYSIGN
/* Define to 1 if you have the 'cosf' function. */
/* Define to 1 if you have the `cosf' function. */
#undef HAVE_COSF
/* Define to 1 if you have the 'coshf' function. */
/* Define to 1 if you have the `coshf' function. */
#undef HAVE_COSHF
/* Define to 1 if you have the 'cpow' function. */
/* Define to 1 if you have the `cpow' function. */
#undef HAVE_CPOW
/* Define to 1 if you have the 'cpowf' function. */
/* Define to 1 if you have the `cpowf' function. */
#undef HAVE_CPOWF
/* Define to 1 if you have the 'cpowl' function. */
/* Define to 1 if you have the `cpowl' function. */
#undef HAVE_CPOWL
/* Define to 1 if you have the 'creal' function. */
/* Define to 1 if you have the `creal' function. */
#undef HAVE_CREAL
/* Define to 1 if you have the 'crealf' function. */
/* Define to 1 if you have the `crealf' function. */
#undef HAVE_CREALF
/* Define to 1 if you have the 'creall' function. */
/* Define to 1 if you have the `creall' function. */
#undef HAVE_CREALL
/* Define to 1 if you have the 'csin' function. */
/* Define to 1 if you have the `csin' function. */
#undef HAVE_CSIN
/* Define to 1 if you have the 'csinf' function. */
/* Define to 1 if you have the `csinf' function. */
#undef HAVE_CSINF
/* Define to 1 if you have the 'csinh' function. */
/* Define to 1 if you have the `csinh' function. */
#undef HAVE_CSINH
/* Define to 1 if you have the 'csinhf' function. */
/* Define to 1 if you have the `csinhf' function. */
#undef HAVE_CSINHF
/* Define to 1 if you have the 'csinhl' function. */
/* Define to 1 if you have the `csinhl' function. */
#undef HAVE_CSINHL
/* Define to 1 if you have the 'csinl' function. */
/* Define to 1 if you have the `csinl' function. */
#undef HAVE_CSINL
/* Define to 1 if you have the 'csqrt' function. */
/* Define to 1 if you have the `csqrt' function. */
#undef HAVE_CSQRT
/* Define to 1 if you have the 'csqrtf' function. */
/* Define to 1 if you have the `csqrtf' function. */
#undef HAVE_CSQRTF
/* Define to 1 if you have the 'csqrtl' function. */
/* Define to 1 if you have the `csqrtl' function. */
#undef HAVE_CSQRTL
/* Define to 1 if you have the 'ctan' function. */
/* Define to 1 if you have the `ctan' function. */
#undef HAVE_CTAN
/* Define to 1 if you have the 'ctanf' function. */
/* Define to 1 if you have the `ctanf' function. */
#undef HAVE_CTANF
/* Define to 1 if you have the 'ctanh' function. */
/* Define to 1 if you have the `ctanh' function. */
#undef HAVE_CTANH
/* Define to 1 if you have the 'ctanhf' function. */
/* Define to 1 if you have the `ctanhf' function. */
#undef HAVE_CTANHF
/* Define to 1 if you have the 'ctanhl' function. */
/* Define to 1 if you have the `ctanhl' function. */
#undef HAVE_CTANHL
/* Define to 1 if you have the 'ctanl' function. */
/* Define to 1 if you have the `ctanl' function. */
#undef HAVE_CTANL
/* Define to 1 if you have the <dirent.h> header file. */
#undef HAVE_DIRENT_H
/* Define to 1 if you have the 'dladdr' function. */
/* Define to 1 if you have the `dladdr' function. */
#undef HAVE_DLADDR
/* Define to 1 if you have the <dlfcn.h> header file. */
#undef HAVE_DLFCN_H
/* Define to 1 if the system has the type 'double complex'. */
/* Define to 1 if the system has the type `double complex'. */
#undef HAVE_DOUBLE_COMPLEX
/* HAVE_ENVIRON */
#undef HAVE_ENVIRON
/* Define to 1 if you have the 'expf' function. */
/* Define to 1 if you have the `expf' function. */
#undef HAVE_EXPF
/* Define to 1 if you have the 'fabsf' function. */
/* Define to 1 if you have the `fabsf' function. */
#undef HAVE_FABSF
/* Define to 1 if you have the <fcntl.h> header file. */
@ -315,61 +319,61 @@
/* Define to 1 if you have the <fenv.h> header file. */
#undef HAVE_FENV_H
/* Define to 1 if the system has the type 'float complex'. */
/* Define to 1 if the system has the type `float complex'. */
#undef HAVE_FLOAT_COMPLEX
/* Define to 1 if you have the <float.h> header file. */
#undef HAVE_FLOAT_H
/* Define to 1 if you have the 'floor' function. */
/* Define to 1 if you have the `floor' function. */
#undef HAVE_FLOOR
/* Define to 1 if you have the 'floorf' function. */
/* Define to 1 if you have the `floorf' function. */
#undef HAVE_FLOORF
/* Define to 1 if you have the 'fork' function. */
/* Define to 1 if you have the `fork' function. */
#undef HAVE_FORK
/* Define to 1 if you have the 'frexpf' function. */
/* Define to 1 if you have the `frexpf' function. */
#undef HAVE_FREXPF
/* Define to 1 if you have the 'fseeko' function. */
/* Define to 1 if you have the `fseeko' function. */
#undef HAVE_FSEEKO
/* Define to 1 if you have the 'getcwd' function. */
/* Define to 1 if you have the `getcwd' function. */
#undef HAVE_GETCWD
/* Define to 1 if you have the 'gethostbyaddr' function. */
/* Define to 1 if you have the `gethostbyaddr' function. */
#undef HAVE_GETHOSTBYADDR
/* Define to 1 if you have the 'gethostbyname' function. */
/* Define to 1 if you have the `gethostbyname' function. */
#undef HAVE_GETHOSTBYNAME
/* Define to 1 if you have the 'getpagesize' function. */
/* Define to 1 if you have the `getpagesize' function. */
#undef HAVE_GETPAGESIZE
/* Define to 1 if you have the 'getrusage' function. */
/* Define to 1 if you have the `getrusage' function. */
#undef HAVE_GETRUSAGE
/* Define to 1 if you have the 'gettimeofday' function. */
/* Define to 1 if you have the `gettimeofday' function. */
#undef HAVE_GETTIMEOFDAY
/* Define to 1 if you have the <inttypes.h> header file. */
#undef HAVE_INTTYPES_H
/* Define to 1 if you have the 'isatty' function. */
/* Define to 1 if you have the `isatty' function. */
#undef HAVE_ISATTY
/* Define to 1 if you have the 'ldexpf' function. */
/* Define to 1 if you have the `ldexpf' function. */
#undef HAVE_LDEXPF
/* HAVE_LIBFFI */
#undef HAVE_LIBFFI
/* Define to 1 if you have the 'gc' library (-lgc). */
/* Define to 1 if you have the `gc' library (-lgc). */
#undef HAVE_LIBGC
/* Define to 1 if you have the 'sun' library (-lsun). */
/* Define to 1 if you have the `sun' library (-lsun). */
#undef HAVE_LIBSUN
/* Define to 1 if you have the <limits.h> header file. */
@ -378,50 +382,50 @@
/* Define to 1 if you have the <link.h> header file. */
#undef HAVE_LINK_H
/* Define to 1 if you have the 'log1p' function. */
/* Define to 1 if you have the `log1p' function. */
#undef HAVE_LOG1P
/* Define to 1 if you have the 'log1pf' function. */
/* Define to 1 if you have the `log1pf' function. */
#undef HAVE_LOG1PF
/* Define to 1 if you have the 'log1pl' function. */
/* Define to 1 if you have the `log1pl' function. */
#undef HAVE_LOG1PL
/* Define to 1 if you have the 'logf' function. */
/* Define to 1 if you have the `logf' function. */
#undef HAVE_LOGF
/* Define to 1 if the system has the type 'long complex'. */
/* Define to 1 if the system has the type `long complex'. */
#undef HAVE_LONG_COMPLEX
/* Define to 1 if you have the 'lstat' function. */
/* Define to 1 if you have the `lstat' function. */
#undef HAVE_LSTAT
/* Define to 1 if you have the <mach-o/dyld.h> header file. */
#undef HAVE_MACH_O_DYLD_H
/* Define to 1 if your system has a GNU libc compatible 'malloc' function, and
/* Define to 1 if your system has a GNU libc compatible `malloc' function, and
to 0 otherwise. */
#undef HAVE_MALLOC
/* Define to 1 if you have the 'memmove' function. */
/* Define to 1 if you have the `memmove' function. */
#undef HAVE_MEMMOVE
/* Define to 1 if you have the 'memset' function. */
/* Define to 1 if you have the `memset' function. */
#undef HAVE_MEMSET
/* Define to 1 if you have the 'mkdir' function. */
/* Define to 1 if you have the `mkdir' function. */
#undef HAVE_MKDIR
/* Define to 1 if you have the 'mkstemp' function. */
/* Define to 1 if you have the `mkstemp' function. */
#undef HAVE_MKSTEMP
/* Define to 1 if you have a working 'mmap' system call. */
/* Define to 1 if you have a working `mmap' system call. */
#undef HAVE_MMAP
/* Define to 1 if you have the 'nanosleep' function. */
/* Define to 1 if you have the `nanosleep' function. */
#undef HAVE_NANOSLEEP
/* Define to 1 if you have the <ndir.h> header file, and it defines 'DIR'. */
/* Define to 1 if you have the <ndir.h> header file, and it defines `DIR'. */
#undef HAVE_NDIR_H
/* Define to 1 if you have the <netdb.h> header file. */
@ -433,62 +437,62 @@
/* HAVE_POSIX_RWLOCK */
#undef HAVE_POSIX_RWLOCK
/* Define to 1 if you have the 'powf' function. */
/* Define to 1 if you have the `powf' function. */
#undef HAVE_POWF
/* Define to 1 if you have the 'pthread_condattr_setclock' function. */
/* Define to 1 if you have the `pthread_condattr_setclock' function. */
#undef HAVE_PTHREAD_CONDATTR_SETCLOCK
/* Define to 1 if you have the 'pthread_mutex_timedlock' function. */
/* Define to 1 if you have the `pthread_mutex_timedlock' function. */
#undef HAVE_PTHREAD_MUTEX_TIMEDLOCK
/* Define to 1 if the system has the type 'pthread_rwlock_t'. */
/* Define to 1 if the system has the type `pthread_rwlock_t'. */
#undef HAVE_PTHREAD_RWLOCK_T
/* Define to 1 if the system has the type 'ptrdiff_t'. */
/* Define to 1 if the system has the type `ptrdiff_t'. */
#undef HAVE_PTRDIFF_T
/* Define to 1 if you have the 'putenv' function. */
/* Define to 1 if you have the `putenv' function. */
#undef HAVE_PUTENV
/* Define to 1 if you have the <pwd.h> header file. */
#undef HAVE_PWD_H
/* Define to 1 if your system has a GNU libc compatible 'realloc' function,
/* Define to 1 if your system has a GNU libc compatible `realloc' function,
and to 0 otherwise. */
#undef HAVE_REALLOC
/* Define to 1 if you have the <sched.h> header file. */
#undef HAVE_SCHED_H
/* Define to 1 if you have the 'sched_yield' function. */
/* Define to 1 if you have the `sched_yield' function. */
#undef HAVE_SCHED_YIELD
/* Define to 1 if you have the 'select' function. */
/* Define to 1 if you have the `select' function. */
#undef HAVE_SELECT
/* Define to 1 if you have the 'setenv' function. */
/* Define to 1 if you have the `setenv' function. */
#undef HAVE_SETENV
/* Define to 1 if you have the 'sigprocmask' function. */
/* Define to 1 if you have the `sigprocmask' function. */
#undef HAVE_SIGPROCMASK
/* Define to 1 if you have the 'sinf' function. */
/* Define to 1 if you have the `sinf' function. */
#undef HAVE_SINF
/* Define to 1 if you have the 'sinhf' function. */
/* Define to 1 if you have the `sinhf' function. */
#undef HAVE_SINHF
/* Define to 1 if you have the 'socket' function. */
/* Define to 1 if you have the `socket' function. */
#undef HAVE_SOCKET
/* Define to 1 if you have the 'sqrt' function. */
/* Define to 1 if you have the `sqrt' function. */
#undef HAVE_SQRT
/* Define to 1 if you have the 'sqrtf' function. */
/* Define to 1 if you have the `sqrtf' function. */
#undef HAVE_SQRTF
/* Define to 1 if 'stat' has the bug that it succeeds when given the
/* Define to 1 if `stat' has the bug that it succeeds when given the
zero-length file name argument. */
#undef HAVE_STAT_EMPTY_STRING_BUG
@ -507,13 +511,13 @@
/* Define to 1 if you have the <stdlib.h> header file. */
#undef HAVE_STDLIB_H
/* Define to 1 if you have the 'strcasecmp' function. */
/* Define to 1 if you have the `strcasecmp' function. */
#undef HAVE_STRCASECMP
/* Define to 1 if you have the 'strchr' function. */
/* Define to 1 if you have the `strchr' function. */
#undef HAVE_STRCHR
/* Define to 1 if you have the 'strerror' function. */
/* Define to 1 if you have the `strerror' function. */
#undef HAVE_STRERROR
/* Define to 1 if you have the <strings.h> header file. */
@ -522,13 +526,13 @@
/* Define to 1 if you have the <string.h> header file. */
#undef HAVE_STRING_H
/* Define to 1 if you have the 'strtol' function. */
/* Define to 1 if you have the `strtol' function. */
#undef HAVE_STRTOL
/* Define to 1 if you have the 'system' function. */
/* Define to 1 if you have the `system' function. */
#undef HAVE_SYSTEM
/* Define to 1 if you have the <sys/dir.h> header file, and it defines 'DIR'.
/* Define to 1 if you have the <sys/dir.h> header file, and it defines `DIR'.
*/
#undef HAVE_SYS_DIR_H
@ -538,7 +542,7 @@
/* HAVE_SYS_MMAN_H */
#undef HAVE_SYS_MMAN_H
/* Define to 1 if you have the <sys/ndir.h> header file, and it defines 'DIR'.
/* Define to 1 if you have the <sys/ndir.h> header file, and it defines `DIR'.
*/
#undef HAVE_SYS_NDIR_H
@ -569,28 +573,28 @@
/* Define to 1 if you have the <sys/wait.h> header file. */
#undef HAVE_SYS_WAIT_H
/* Define to 1 if you have the 'tanf' function. */
/* Define to 1 if you have the `tanf' function. */
#undef HAVE_TANF
/* Define to 1 if you have the 'tanhf' function. */
/* Define to 1 if you have the `tanhf' function. */
#undef HAVE_TANHF
/* Define to 1 if you have the 'times' function. */
/* Define to 1 if you have the `times' function. */
#undef HAVE_TIMES
/* Define to 1 if you have the 'tzset' function. */
/* Define to 1 if you have the `tzset' function. */
#undef HAVE_TZSET
/* Define to 1 if you have the <ulimit.h> header file. */
#undef HAVE_ULIMIT_H
/* Define to 1 if you have the 'uname' function. */
/* Define to 1 if you have the `uname' function. */
#undef HAVE_UNAME
/* Define to 1 if you have the <unistd.h> header file. */
#undef HAVE_UNISTD_H
/* Define to 1 if you have the 'vfork' function. */
/* Define to 1 if you have the `vfork' function. */
#undef HAVE_VFORK
/* Define to 1 if you have the <vfork.h> header file. */
@ -599,16 +603,16 @@
/* Define to 1 if you have the <wchar.h> header file. */
#undef HAVE_WCHAR_H
/* Define to 1 if 'fork' works. */
/* Define to 1 if `fork' works. */
#undef HAVE_WORKING_FORK
/* Define to 1 if 'vfork' works. */
/* Define to 1 if `vfork' works. */
#undef HAVE_WORKING_VFORK
/* Define to 1 if the system has the type '_Bool'. */
/* Define to 1 if the system has the type `_Bool'. */
#undef HAVE__BOOL
/* Define to 1 if 'lstat' dereferences a symlink specified with a trailing
/* Define to 1 if `lstat' dereferences a symlink specified with a trailing
slash. */
#undef LSTAT_FOLLOWS_SLASHED_SYMLINK
@ -630,19 +634,19 @@
/* Define to the version of this package. */
#undef PACKAGE_VERSION
/* Define as the return type of signal handlers ('int' or 'void'). */
/* Define as the return type of signal handlers (`int' or `void'). */
#undef RETSIGTYPE
/* Define to the type of arg 1 for 'select'. */
/* Define to the type of arg 1 for `select'. */
#undef SELECT_TYPE_ARG1
/* Define to the type of args 2, 3 and 4 for 'select'. */
/* Define to the type of args 2, 3 and 4 for `select'. */
#undef SELECT_TYPE_ARG234
/* Define to the type of arg 5 for 'select'. */
/* Define to the type of arg 5 for `select'. */
#undef SELECT_TYPE_ARG5
/* Define to 1 if all of the C89 standard headers exist (not just the ones
/* Define to 1 if all of the C90 standard headers exist (not just the ones
required in a freestanding environment). This macro is provided for
backward compatibility; new code need not use it. */
#undef STDC_HEADERS
@ -651,7 +655,7 @@
macro is obsolete. */
#undef TIME_WITH_SYS_TIME
/* Define to 1 if your <sys/time.h> declares 'struct tm'. */
/* Define to 1 if your <sys/time.h> declares `struct tm'. */
#undef TM_IN_SYS_TIME
/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
@ -681,7 +685,7 @@
#define below would cause a syntax error. */
#undef _UINT8_T
/* Define to empty if 'const' does not conform to ANSI C. */
/* Define to empty if `const' does not conform to ANSI C. */
#undef const
/* ecl_int16_t */
@ -714,7 +718,7 @@
/* compiler understands long long */
#undef ecl_ulong_long_t
/* Define to '__inline__' or '__inline' if that's what the C compiler
/* Define to `__inline__' or `__inline' if that's what the C compiler
calls it, or to nothing if 'inline' is not supported under any name. */
#ifndef __cplusplus
#undef inline
@ -745,7 +749,7 @@
/* Define to rpl_realloc if the replacement function should be used. */
#undef realloc
/* Define as 'unsigned int' if <stddef.h> doesn't define. */
/* Define to `unsigned int' if <sys/types.h> does not define. */
#undef size_t
/* Define to the type of an unsigned integer type of width exactly 16 bits if
@ -764,9 +768,9 @@
such a type exists and the standard includes do not define it. */
#undef uint8_t
/* Define as 'fork' if 'vfork' does not work. */
/* Define as `fork' if `vfork' does not work. */
#undef vfork
/* Define to empty if the keyword 'volatile' does not work. Warning: valid
code using 'volatile' can become incorrect without. Disable with care. */
/* Define to empty if the keyword `volatile' does not work. Warning: valid
code using `volatile' can become incorrect without. Disable with care. */
#undef volatile

View file

@ -249,12 +249,3 @@
#else
#define ECL_DEFAULT_C_STACK_SIZE @ECL_DEFAULT_C_STACK_SIZE@
#endif
/* Do the fixed and optional arguments of a variadic function use a
* different calling convention?
* Hardcoded since there's no easy way to determine this from a
* configure check and currently ARM64 apple is the only platform
* known to do this. */
#if defined(__APPLE__) && (defined(__arm64__) || defined(__aarch64__))
#define ECL_C_COMPATIBLE_VARIADIC_DISPATCH
#endif