From 2e6fd7e4497513bee6c8bd9b98c2b7d66a7d7b32 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Kochma=C5=84ski?= Date: Fri, 7 Oct 2016 12:49:55 +0200 Subject: [PATCH] buildsystem: split config.h into config.h and config-internal.h Part of config.h was removed during the installation, we split config.h so that part is in a separate file. Additionally we add ECL_BUILD define during ECL build phase, so we can distinguish whenever we build ECL or use it normally (because ecl.h has to include config-internal.h at the build time). --- src/Makefile.in | 1 - src/c/Makefile.in | 2 +- src/c/dpp.c | 1 + src/configure | 6 +- src/configure.ac | 27 +- "src/ecl/configpre-int.h\n" | 605 ++++++++++++++++++++++++++++++++++++ src/h/config-internal.h.in | 289 +++++++++++++++++ src/h/config.h.in | 278 ----------------- src/h/ecl.h | 4 + 9 files changed, 925 insertions(+), 288 deletions(-) create mode 100644 "src/ecl/configpre-int.h\n" create mode 100644 src/h/config-internal.h.in diff --git a/src/Makefile.in b/src/Makefile.in index 0c6dac293..e74fb098d 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -163,7 +163,6 @@ install: $(INSTALL_DATA) $$i $(DESTDIR)$(ecldir)/encodings; \ done \ fi - sed '/-CUT-/,$$d' ./ecl/config.h > ./ecl/config-install.h $(mkinstalldirs) $(DESTDIR)$(includedir)/ecl for i in `(cd ecl && find . -type d)`; do \ k="$(DESTDIR)$(includedir)/ecl/$$i"; \ diff --git a/src/c/Makefile.in b/src/c/Makefile.in index 218960fee..1b30ef8c0 100644 --- a/src/c/Makefile.in +++ b/src/c/Makefile.in @@ -12,7 +12,7 @@ VPATH = @srcdir@ # CC = @CC@ TRUE_CC = $(CC) -CFLAGS = -Werror -Wno-error=shift-count-overflow -I. -I@true_builddir@ -I$(srcdir) -I../ecl/gc -DECL_API -DECL_NO_LEGACY @CPPFLAGS@ @CFLAGS@ @ECL_CFLAGS@ -c +CFLAGS = -Werror -Wno-error=shift-count-overflow -I. -I@true_builddir@ -I$(srcdir) -I../ecl/gc -DECL_BUILD -DECL_API -DECL_NO_LEGACY @CPPFLAGS@ @CFLAGS@ @ECL_CFLAGS@ -c # The following flags could be added and used by GCC # -Wall -W -Wfloat-equal -Wundef -Wendif-labels -Wpointer-arith -Wcast-align \ diff --git a/src/c/dpp.c b/src/c/dpp.c index 169c9da73..ec3bd7833 100755 --- a/src/c/dpp.c +++ b/src/c/dpp.c @@ -80,6 +80,7 @@ #define DPP #include +#include #include "symbols_list2.h" /* #define POOLSIZE 2048 */ diff --git a/src/configure b/src/configure index 4577f5d05..39918dab9 100755 --- a/src/configure +++ b/src/configure @@ -9689,9 +9689,9 @@ $as_echo "#define ECL_RELATIVE_PACKAGE_NAMES 1" >>confdefs.h fi -ac_config_files="$ac_config_files bare.lsp lsp/load.lsp clos/load.lsp cmp/load.lsp ../Makefile Makefile c/Makefile doc/Makefile doc/ecl.man doc/ecl-config.man ecl/configpre.h:h/config.h.in bin/ecl-config.pre:util/ecl-config lsp/config.pre:lsp/config.lsp.in compile.pre:compile.lsp.in cmp/cmpdefs.pre:cmp/cmpdefs.lsp tests/config.lsp tests/Makefile" +ac_config_files="$ac_config_files bare.lsp lsp/load.lsp clos/load.lsp cmp/load.lsp ../Makefile Makefile c/Makefile doc/Makefile doc/ecl.man doc/ecl-config.man ecl/configpre.h:h/config.h.in ecl/configpre-int.h:h/config-internal.h.in bin/ecl-config.pre:util/ecl-config lsp/config.pre:lsp/config.lsp.in compile.pre:compile.lsp.in cmp/cmpdefs.pre:cmp/cmpdefs.lsp tests/config.lsp tests/Makefile" -ac_config_headers="$ac_config_headers ecl/config.h:ecl/configpre.h" +ac_config_headers="$ac_config_headers ecl/config.h:ecl/configpre.h ecl/config-internal.h:ecl/configpre-int.h" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure @@ -10395,6 +10395,7 @@ do "doc/ecl.man") CONFIG_FILES="$CONFIG_FILES doc/ecl.man" ;; "doc/ecl-config.man") CONFIG_FILES="$CONFIG_FILES doc/ecl-config.man" ;; "ecl/configpre.h") CONFIG_FILES="$CONFIG_FILES ecl/configpre.h:h/config.h.in" ;; + "ecl/configpre-int.h") CONFIG_FILES="$CONFIG_FILES ecl/configpre-int.h:h/config-internal.h.in" ;; "bin/ecl-config.pre") CONFIG_FILES="$CONFIG_FILES bin/ecl-config.pre:util/ecl-config" ;; "lsp/config.pre") CONFIG_FILES="$CONFIG_FILES lsp/config.pre:lsp/config.lsp.in" ;; "compile.pre") CONFIG_FILES="$CONFIG_FILES compile.pre:compile.lsp.in" ;; @@ -10402,6 +10403,7 @@ do "tests/config.lsp") CONFIG_FILES="$CONFIG_FILES tests/config.lsp" ;; "tests/Makefile") CONFIG_FILES="$CONFIG_FILES tests/Makefile" ;; "ecl/config.h") CONFIG_HEADERS="$CONFIG_HEADERS ecl/config.h:ecl/configpre.h" ;; + "ecl/config-internal.h") CONFIG_HEADERS="$CONFIG_HEADERS ecl/config-internal.h:ecl/configpre-int.h" ;; *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; esac diff --git a/src/configure.ac b/src/configure.ac index 73501dac5..43632f666 100644 --- a/src/configure.ac +++ b/src/configure.ac @@ -891,13 +891,28 @@ if test "${enable_hpack}" = "yes"; then fi AC_CONFIG_FILES([ - bare.lsp lsp/load.lsp clos/load.lsp cmp/load.lsp - ../Makefile Makefile c/Makefile doc/Makefile doc/ecl.man doc/ecl-config.man - ecl/configpre.h:h/config.h.in bin/ecl-config.pre:util/ecl-config - lsp/config.pre:lsp/config.lsp.in compile.pre:compile.lsp.in + bare.lsp + lsp/load.lsp + clos/load.lsp + cmp/load.lsp + ../Makefile + Makefile + c/Makefile + doc/Makefile + doc/ecl.man + doc/ecl-config.man + ecl/configpre.h:h/config.h.in + ecl/configpre-int.h:h/config-internal.h.in + bin/ecl-config.pre:util/ecl-config + lsp/config.pre:lsp/config.lsp.in + compile.pre:compile.lsp.in cmp/cmpdefs.pre:cmp/cmpdefs.lsp - tests/config.lsp tests/Makefile + tests/config.lsp + tests/Makefile ]) -AC_CONFIG_HEADERS([ecl/config.h:ecl/configpre.h]) +AC_CONFIG_HEADERS([ + ecl/config.h:ecl/configpre.h + ecl/config-internal.h:ecl/configpre-int.h +]) AC_OUTPUT for i in $srcdir/c/*/; do mkdir -p c/`basename $i`; done diff --git "a/src/ecl/configpre-int.h\n" "b/src/ecl/configpre-int.h\n" new file mode 100644 index 000000000..2640151df --- /dev/null +++ "b/src/ecl/configpre-int.h\n" @@ -0,0 +1,605 @@ +/* ecl/configpre-int.h +. Generated from configure.ac by autoheader. */ + +/* Define if building universal (internal helper macro) */ +#undef AC_APPLE_UNIVERSAL_BUILD + +/* Define to 1 if the `closedir' function returns void instead of `int'. */ +#undef CLOSEDIR_VOID + +/* ECL_AVOID_FPE_H */ +#undef ECL_AVOID_FPE_H + +/* Allow STREAM operations to work on arbitrary objects */ +#undef ECL_CLOS_STREAMS + +/* Use CMU Common-Lisp's FORMAT routine */ +#undef ECL_CMU_FORMAT + +/* Stack grows downwards */ +#undef ECL_DOWN_STACK + +/* ECL_IEEE_FP */ +#undef ECL_IEEE_FP + +/* ECL_LIBATOMIC_OPS_H */ +#undef ECL_LIBATOMIC_OPS_H + +/* ECL_LONG_FLOAT */ +#undef ECL_LONG_FLOAT + +/* ECL_LOING_LONG_BITS */ +#undef ECL_LONG_LONG_BITS + +/* Define if your newline is CR */ +#undef ECL_NEWLINE_IS_CR + +/* Define if your newline is CRLF */ +#undef ECL_NEWLINE_IS_CRLF + +/* Hierarchical package names */ +#undef ECL_RELATIVE_PACKAGE_NAMES + +/* ECL_RWLOCK */ +#undef ECL_RWLOCK + +/* ECL_SIGNED_ZERO */ +#undef ECL_SIGNED_ZERO + +/* Bytecodes and arguments are 8 and 16 bits large, respectively */ +#undef ECL_SMALL_BYTECODES + +/* ECL_SMALL_CONS */ +#undef ECL_SMALL_CONS + +/* ECL_SSE2 */ +#undef ECL_SSE2 + +/* Userland threads? */ +#undef ECL_THREADS + +/* Support for Unicode */ +#undef ECL_UNICODE + +/* Link in the database of Unicode names */ +#undef ECL_UNICODE_NAMES + +/* ECL_USE_MPROTECT */ +#undef ECL_USE_MPROTECT + +/* Allow loading dynamically linked code */ +#undef ENABLE_DLOPEN + +/* Use Boehm's garbage collector */ +#undef GBC_BOEHM + +/* GBC_BOEHM_GENGC */ +#undef GBC_BOEHM_GENGC + +/* GBC_BOEHM_PRECISE */ +#undef GBC_BOEHM_PRECISE + +/* Define to 1 if you have the `alarm' function. */ +#undef HAVE_ALARM + +/* Define to 1 if you have the `backtrace' function. */ +#undef HAVE_BACKTRACE + +/* Define to 1 if you have the `backtrace_symbols' function. */ +#undef HAVE_BACKTRACE_SYMBOLS + +/* Define to 1 if you have the `ceilf' function. */ +#undef HAVE_CEILF + +/* Define to 1 if you have the `copysign' function. */ +#undef HAVE_COPYSIGN + +/* Define to 1 if you have the `cosf' function. */ +#undef HAVE_COSF + +/* Define to 1 if you have the `coshf' function. */ +#undef HAVE_COSHF + +/* Define to 1 if you have the `cosl' function. */ +#undef HAVE_COSL + +/* Define to 1 if you have the header file. */ +#undef HAVE_DIRENT_H + +/* Define to 1 if you have the `dladdr' function. */ +#undef HAVE_DLADDR + +/* Define to 1 if you have the header file. */ +#undef HAVE_DLFCN_H + +/* 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. */ +#undef HAVE_EXPF + +/* Define to 1 if you have the `expl' function. */ +#undef HAVE_EXPL + +/* Define to 1 if you have the `fabsf' function. */ +#undef HAVE_FABSF + +/* Define to 1 if you have the header file. */ +#undef HAVE_FCNTL_H + +/* Define to 1 if you have the `feenableexcept' function. */ +#undef HAVE_FEENABLEEXCEPT + +/* Define to 1 if you have the header file. */ +#undef HAVE_FENV_H + +/* Define to 1 if the system has the type `float complex'. */ +#undef HAVE_FLOAT_COMPLEX + +/* Define to 1 if you have the header file. */ +#undef HAVE_FLOAT_H + +/* Define to 1 if you have the `floor' function. */ +#undef HAVE_FLOOR + +/* Define to 1 if you have the `floorf' function. */ +#undef HAVE_FLOORF + +/* Define to 1 if you have the `fork' function. */ +#undef HAVE_FORK + +/* Define to 1 if you have the `frexpf' function. */ +#undef HAVE_FREXPF + +/* Define to 1 if you have the `frexpl' function. */ +#undef HAVE_FREXPL + +/* Define to 1 if you have the `fseeko' function. */ +#undef HAVE_FSEEKO + +/* HAVE_GC_SET_START_CALLBACK */ +#undef HAVE_GC_SET_START_CALLBACK + +/* Define to 1 if you have the `getcwd' function. */ +#undef HAVE_GETCWD + +/* Define to 1 if you have the `gethostbyaddr' function. */ +#undef HAVE_GETHOSTBYADDR + +/* Define to 1 if you have the `gethostbyname' function. */ +#undef HAVE_GETHOSTBYNAME + +/* Define to 1 if you have the `getpagesize' function. */ +#undef HAVE_GETPAGESIZE + +/* Define to 1 if you have the `getrusage' function. */ +#undef HAVE_GETRUSAGE + +/* Define to 1 if you have the `gettimeofday' function. */ +#undef HAVE_GETTIMEOFDAY + +/* Define to 1 if you have the header file. */ +#undef HAVE_INTTYPES_H + +/* Define to 1 if you have the `isatty' function. */ +#undef HAVE_ISATTY + +/* Define to 1 if you have the `ldexpf' function. */ +#undef HAVE_LDEXPF + +/* Define to 1 if you have the `ldexpl' function. */ +#undef HAVE_LDEXPL + +/* HAVE_LIBFFI */ +#undef HAVE_LIBFFI + +/* Define to 1 if you have the `gc' library (-lgc). */ +#undef HAVE_LIBGC + +/* Define to 1 if you have the `sun' library (-lsun). */ +#undef HAVE_LIBSUN + +/* Define to 1 if you have the header file. */ +#undef HAVE_LIMITS_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_LINK_H + +/* Define to 1 if you have the `log1p' function. */ +#undef HAVE_LOG1P + +/* Define to 1 if you have the `log1pf' function. */ +#undef HAVE_LOG1PF + +/* Define to 1 if you have the `log1pl' function. */ +#undef HAVE_LOG1PL + +/* Define to 1 if you have the `logf' function. */ +#undef HAVE_LOGF + +/* Define to 1 if you have the `logl' function. */ +#undef HAVE_LOGL + +/* Define to 1 if the system has the type `long double'. */ +#undef HAVE_LONG_DOUBLE + +/* Define to 1 if you have the `lstat' function. */ +#undef HAVE_LSTAT + +/* Define to 1 if you have the header file. */ +#undef HAVE_MACH_O_DYLD_H + +/* 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. */ +#undef HAVE_MEMMOVE + +/* Define to 1 if you have the header file. */ +#undef HAVE_MEMORY_H + +/* Define to 1 if you have the `memset' function. */ +#undef HAVE_MEMSET + +/* Define to 1 if you have the `mkdir' function. */ +#undef HAVE_MKDIR + +/* Define to 1 if you have the `mkstemp' function. */ +#undef HAVE_MKSTEMP + +/* Define to 1 if you have a working `mmap' system call. */ +#undef HAVE_MMAP + +/* Define to 1 if you have the `nanosleep' function. */ +#undef HAVE_NANOSLEEP + +/* Define to 1 if you have the header file, and it defines `DIR'. */ +#undef HAVE_NDIR_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_NETDB_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_NETINET_IN_H + +/* HAVE_POSIX_RWLOCK */ +#undef HAVE_POSIX_RWLOCK + +/* 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'. */ +#undef HAVE_PTRDIFF_T + +/* Define to 1 if you have the `putenv' function. */ +#undef HAVE_PUTENV + +/* Define to 1 if you have the header file. */ +#undef HAVE_PWD_H + +/* 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 header file. */ +#undef HAVE_SCHED_H + +/* Define to 1 if you have the `sched_yield' function. */ +#undef HAVE_SCHED_YIELD + +/* Define to 1 if you have the `select' function. */ +#undef HAVE_SELECT + +/* Define to 1 if you have the header file. */ +#undef HAVE_SEMAPHORE_H + +/* Define to 1 if you have the `setenv' function. */ +#undef HAVE_SETENV + +/* Define to 1 if you have the `sigprocmask' function. */ +#undef HAVE_SIGPROCMASK + +/* Define to 1 if you have the `sinf' function. */ +#undef HAVE_SINF + +/* Define to 1 if you have the `sinhf' function. */ +#undef HAVE_SINHF + +/* Define to 1 if you have the `sinl' function. */ +#undef HAVE_SINL + +/* Define to 1 if you have the `socket' function. */ +#undef HAVE_SOCKET + +/* Define to 1 if you have the `sqrt' function. */ +#undef HAVE_SQRT + +/* 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 + zero-length file name argument. */ +#undef HAVE_STAT_EMPTY_STRING_BUG + +/* Define to 1 if stdbool.h conforms to C99. */ +#undef HAVE_STDBOOL_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STDDEF_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STDINT_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STDLIB_H + +/* Define to 1 if you have the `strcasecmp' function. */ +#undef HAVE_STRCASECMP + +/* Define to 1 if you have the `strchr' function. */ +#undef HAVE_STRCHR + +/* Define to 1 if you have the `strerror' function. */ +#undef HAVE_STRERROR + +/* Define to 1 if you have the header file. */ +#undef HAVE_STRINGS_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STRING_H + +/* Define to 1 if you have the `strtol' function. */ +#undef HAVE_STRTOL + +/* Define to 1 if you have the header file, and it defines `DIR'. + */ +#undef HAVE_SYS_DIR_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_IOCTL_H + +/* HAVE_SYS_MMAN_H */ +#undef HAVE_SYS_MMAN_H + +/* Define to 1 if you have the header file, and it defines `DIR'. + */ +#undef HAVE_SYS_NDIR_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_PARAM_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_RESOURCE_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_SELECT_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_SOCKET_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_STAT_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_TIME_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_TYPES_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_UTSNAME_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_WAIT_H + +/* Define to 1 if you have the `tanf' function. */ +#undef HAVE_TANF + +/* Define to 1 if you have the `tanhf' function. */ +#undef HAVE_TANHF + +/* Define to 1 if you have the `tanl' function. */ +#undef HAVE_TANL + +/* Define to 1 if you have the `times' function. */ +#undef HAVE_TIMES + +/* Define to 1 if you have the `tzset' function. */ +#undef HAVE_TZSET + +/* Define to 1 if you have the header file. */ +#undef HAVE_ULIMIT_H + +/* Define to 1 if you have the `uname' function. */ +#undef HAVE_UNAME + +/* Define to 1 if you have the header file. */ +#undef HAVE_UNISTD_H + +/* Define to 1 if you have the `vfork' function. */ +#undef HAVE_VFORK + +/* Define to 1 if you have the header file. */ +#undef HAVE_VFORK_H + +/* Define to 1 if `fork' works. */ +#undef HAVE_WORKING_FORK + +/* Define to 1 if `vfork' works. */ +#undef HAVE_WORKING_VFORK + +/* Define to 1 if the system has the type `_Bool'. */ +#undef HAVE__BOOL + +/* HAVE___BUILTIN_RETURN_ADDRESS */ +#undef HAVE___BUILTIN_RETURN_ADDRESS + +/* Define to 1 if `lstat' dereferences a symlink specified with a trailing + slash. */ +#undef LSTAT_FOLLOWS_SLASHED_SYMLINK + +/* Define to the address where bug reports for this package should be sent. */ +#undef PACKAGE_BUGREPORT + +/* Define to the full name of this package. */ +#undef PACKAGE_NAME + +/* Define to the full name and version of this package. */ +#undef PACKAGE_STRING + +/* Define to the one symbol short name of this package. */ +#undef PACKAGE_TARNAME + +/* Define to the home page for this package. */ +#undef PACKAGE_URL + +/* Define to the version of this package. */ +#undef PACKAGE_VERSION + +/* Define as the return type of signal handlers (`int' or `void'). */ +#undef RETSIGTYPE + +/* 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'. */ +#undef SELECT_TYPE_ARG234 + +/* Define to the type of arg 5 for `select'. */ +#undef SELECT_TYPE_ARG5 + +/* Define to 1 if you have the ANSI C header files. */ +#undef STDC_HEADERS + +/* Network streams */ +#undef TCP + +/* Define to 1 if you can safely include both and . */ +#undef TIME_WITH_SYS_TIME + +/* Define to 1 if your declares `struct tm'. */ +#undef TM_IN_SYS_TIME + +/* __thread thread-local variables? */ +#undef WITH___THREAD + +/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most + significant byte first (like Motorola and SPARC, unlike Intel). */ +#if defined AC_APPLE_UNIVERSAL_BUILD +# if defined __BIG_ENDIAN__ +# define WORDS_BIGENDIAN 1 +# endif +#else +# ifndef WORDS_BIGENDIAN +# undef WORDS_BIGENDIAN +# endif +#endif + +/* Define for Solaris 2.5.1 so the uint32_t typedef from , + , or is not used. If the typedef were allowed, the + #define below would cause a syntax error. */ +#undef _UINT32_T + +/* Define for Solaris 2.5.1 so the uint64_t typedef from , + , or is not used. If the typedef were allowed, the + #define below would cause a syntax error. */ +#undef _UINT64_T + +/* Define for Solaris 2.5.1 so the uint8_t typedef from , + , or is not used. If the typedef were allowed, the + #define below would cause a syntax error. */ +#undef _UINT8_T + +/* Define to empty if `const' does not conform to ANSI C. */ +#undef const + +/* ecl_int16_t */ +#undef ecl_int16_t + +/* ecl_int32_t */ +#undef ecl_int32_t + +/* ecl_int64_t */ +#undef ecl_int64_t + +/* ecl_int8_t */ +#undef ecl_int8_t + +/* compiler understands long long */ +#undef ecl_long_long_t + +/* ecl_uint16_t */ +#undef ecl_uint16_t + +/* ecl_uint32_t */ +#undef ecl_uint32_t + +/* ecl_uint64_t */ +#undef ecl_uint64_t + +/* ecl_uint8_t */ +#undef ecl_uint8_t + +/* compiler understands long long */ +#undef ecl_ulong_long_t + +/* 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 +#endif + +/* Define to the type of a signed integer type of width exactly 16 bits if + such a type exists and the standard includes do not define it. */ +#undef int16_t + +/* Define to the type of a signed integer type of width exactly 32 bits if + such a type exists and the standard includes do not define it. */ +#undef int32_t + +/* Define to the type of a signed integer type of width exactly 64 bits if + such a type exists and the standard includes do not define it. */ +#undef int64_t + +/* Define to the type of a signed integer type of width exactly 8 bits if such + a type exists and the standard includes do not define it. */ +#undef int8_t + +/* Define to rpl_malloc if the replacement function should be used. */ +#undef malloc + +/* Define to `int' if does not define. */ +#undef pid_t + +/* Define to rpl_realloc if the replacement function should be used. */ +#undef realloc + +/* Define to `unsigned int' if does not define. */ +#undef size_t + +/* Define to the type of an unsigned integer type of width exactly 16 bits if + such a type exists and the standard includes do not define it. */ +#undef uint16_t + +/* Define to the type of an unsigned integer type of width exactly 32 bits if + such a type exists and the standard includes do not define it. */ +#undef uint32_t + +/* Define to the type of an unsigned integer type of width exactly 64 bits if + such a type exists and the standard includes do not define it. */ +#undef uint64_t + +/* Define to the type of an unsigned integer type of width exactly 8 bits if + such a type exists and the standard includes do not define it. */ +#undef uint8_t + +/* 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. */ +#undef volatile diff --git a/src/h/config-internal.h.in b/src/h/config-internal.h.in new file mode 100644 index 000000000..7af8996e9 --- /dev/null +++ b/src/h/config-internal.h.in @@ -0,0 +1,289 @@ +/* -*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*- */ +/* vim: set filetype=c tabstop=8 shiftwidth=4 expandtab: */ + +/* + config-internal.h.in -- Template configuration file (not exported options). + + Copyright (c) 1990, Giuseppe Attardi. + Copyright (c) 2001, Juan Jose Garcia Ripoll. + + See top-level file 'LICENSE' for license details. +*/ + +/* -------------------------------------------------------------------- * + * BUILD OPTIONS WHICH NEED NOT BE EXPORTED * + * -------------------------------------------------------------------- */ + +/* + * FEATURES LINKED IN: + */ + +/* Define this if you want a runtime version only without compiler */ +#undef RUNTIME +/* Profile tool */ +#undef PROFILE +/* Program Development Environment */ +#undef PDE + +/* Allow loading dynamically linked code */ +#undef ENABLE_DLOPEN + +/* Undefine this if you do not want ECL to check for circular lists */ +#define ECL_SAFE + +/* Bytecodes and arguments are 8 and 16 bits large, respectively */ +#undef ECL_SMALL_BYTECODES + +/* Assembler implementation of APPLY and friends */ +#undef ECL_ASM_APPLY + +/* Activate Boehm-Weiser incremental garbage collector */ +#undef GBC_BOEHM_GENGC + +/* Activate Boehm-Weiser precise garbage collector */ +#undef GBC_BOEHM_PRECISE + +/* Weak hash tables need the garbage collector and weak pointers */ +#ifdef GBC_BOEHM +#define ECL_WEAK_HASH +#endif + +/* GC_set_start_callback */ +#undef HAVE_GC_SET_START_CALLBACK + +/* + * SYSTEM FEATURES: + */ + +/* Argument list can be access as an array */ +#undef ECL_USE_VARARG_AS_POINTER +/* Most significant byte first */ +#undef WORDS_BIGENDIAN +/* Has */ +#undef HAVE_SYS_RESOURCE_H +#undef HAVE_ULIMIT_H +/* High precision timer */ +#undef HAVE_NANOSLEEP +/* Float version if isnan() */ +#undef HAVE_ISNANF +/* float.h for epsilons, maximum real numbers, etc */ +#undef HAVE_FLOAT_H +/* select() */ +#ifndef NACL +#undef HAVE_SELECT +#endif +#undef HAVE_SYS_SELECT_H +#undef HAVE_SYS_IOCTL_H +/* putenv() or setenv() */ +#undef HAVE_SETENV +#undef HAVE_PUTENV +/* times() and sys/times.h */ +#ifndef NACL +#undef HAVE_TIMES +#endif +/* gettimeofday() and sys/time.h */ +#undef HAVE_GETTIMEOFDAY +/* getrusage() and sys/resource.h */ +#ifndef NACL +#undef HAVE_GETRUSAGE +#endif +/* user home directory, user name, etc... */ +#undef HAVE_PW_H +/* symbolic links and checking their existence */ +#ifndef NACL +#undef HAVE_LSTAT +#endif +/* safe creation of temporary files */ +#undef HAVE_MKSTEMP +/* timer for userland threads */ +#undef HAVE_ALARM +/* filesytem */ +#undef HAVE_DIRENT_H +/* dynamic linking of libraries */ +#undef HAVE_DLFCN_H +#undef HAVE_LINK_H +#undef HAVE_MACH_O_DYLD_H +/* POSIX signals */ +#ifndef NACL +#undef HAVE_SIGPROCMASK +#endif +/* isatty() checks whether a file is connected to a */ +#undef HAVE_ISATTY +/* can manipulate floating point environment */ +#undef HAVE_FENV_H +/* can activate individual traps in floating point environment */ +/* this flag has to be deactivated for the Itanium architecture, where */ +/* the GNU libc functions are broken */ +#if !defined(__ia64__) && !defined(PPC) +#undef HAVE_FEENABLEEXCEPT +#endif +/* do we want to deactivate all support for floating point exceptions */ +#undef ECL_AVOID_FPE_H +/* do we want to have signed zeros */ +#undef ECL_SIGNED_ZERO +/* do we want NaNs and Infs */ +#undef ECL_IEEE_FP +/* has support for large files */ +#undef HAVE_FSEEKO +/* the tzset() function gets the current time zone */ +#undef HAVE_TZSET +/* several floating point functions (ISO C99) */ +#if 0 +#undef HAVE_EXPF +#undef HAVE_LOGF +#undef HAVE_SQRTF +#undef HAVE_COSF +#undef HAVE_SINF +#undef HAVE_TANF +#undef HAVE_SINHF +#undef HAVE_COSHF +#undef HAVE_TANHF +#endif +#undef HAVE_FLOORF +#undef HAVE_CEILF +#undef HAVE_FABSF +#undef HAVE_FREXPF +#undef HAVE_LDEXPF +#undef HAVE_LOG1P +#undef HAVE_LOG1PF +#undef HAVE_LOG1PL +#undef HAVE_COPYSIGNF +#undef HAVE_COPYSIGN +#undef HAVE_COPYSIGNL +/* whether we have sched_yield() that gives priority to other threads */ +#undef HAVE_SCHED_YIELD +/* whether we have a working sem_init() */ +#undef HAVE_SEM_INIT +/* whether we have read/write locks */ +#undef HAVE_POSIX_RWLOCK +/* uname() for system identification */ +#undef HAVE_UNAME +#undef HAVE_UNISTD_H +#undef HAVE_SYS_WAIT_H +#undef HAVE_SYS_MMAN_H +/* size of long long */ +#undef ECL_LONG_LONG_BITS +/* existence of char **environ */ +#undef HAVE_ENVIRON +/* existence of pointer -> function name functions */ +#undef HAVE_DLADDR +#undef HAVE_BACKTRACE +#undef HAVE_BACKTRACE_SYMBOLS +#undef HAVE___BUILTIN_RETURN_ADDRESS +#undef HAVE_SCHED_H + +/* + * we do not manage to get proper signal handling of floating point + * arithmetics in the Alpha chips. + */ +#if defined(__alpha__) +# ifdef HAVE_FENV_H +# undef HAVE_FENV_H +# endif +# ifdef HAVE_FEENABLEEXCEPT +# undef HAVE_FEENABLEEXCEPT +# endif +#endif + +/* what characters are used to mark beginning of new line */ +#undef ECL_NEWLINE_IS_CRLF +#undef ECL_NEWLINE_IS_LFCR + +/* + * PARAMETERS: + */ + +/* + * Memory limits for the old garbage collector. + */ +#define LISP_PAGESIZE 2048 /* Page size in bytes */ +#define MAXPAGE 65536 /* Maximum Memory Size */ + +/* We allocate a number of strings in a pool which is used to speed up reading */ +#define ECL_MAX_STRING_POOL_SIZE 10 +#define ECL_BUFFER_STRING_SIZE 4192 + +/* + * Macros that depend on these system features. + */ +#if defined(sparc) || defined(i386) || defined(mips) +# define stack_align(n) (((n) + 0x7) & ~0x7) +#else +# define stack_align(n) (((n) + 03) & ~03) +#endif + +#undef FILE_CNT +#if @ECL_FILE_CNT@ == 1 +# define FILE_CNT(fp) ((fp)->_IO_read_end - (fp)->_IO_read_ptr) +#endif +#if @ECL_FILE_CNT@ == 2 +# define FILE_CNT(fp) ((fp)->_r) +#endif +#if @ECL_FILE_CNT@ == 3 +# define FILE_CNT(fp) ((fp)->_cnt) +#endif + +#if defined(cygwin) || defined(ECL_MS_WINDOWS_HOST) +# define IS_DIR_SEPARATOR(x) ((x=='/')||(x=='\\')) +# define DIR_SEPARATOR '/' +# define PATH_SEPARATOR ';' +#else +# define IS_DIR_SEPARATOR(x) (x=='/') +# define DIR_SEPARATOR '/' +# define PATH_SEPARATOR ':' +#endif + +#define ECL_ARCHITECTURE "@ARCHITECTURE@" + +#ifdef ECL_AVOID_FPE_H +# define ecl_detect_fpe() +#else +# include "@ECL_FPE_CODE@" +#endif + +#ifdef ECL_INCLUDE_MATH_H +# include +# ifdef _MSC_VER +# undef complex +# define signbit(x) (copysign(1.0,(x))) +# endif +# ifndef isfinite +# ifdef __sun__ +# ifndef ECL_LONG_FLOAT +# include +# define isfinite(x) finite(x) +# else +# error "Function isfinite() is missing" +# endif +# else +# define isfinite(x) finite(x) +# endif +# endif +# ifndef signbit +# ifndef ECL_SIGNED_ZERO +# define signbit(x) ((x) < 0) +# else +# ifdef HAVE_COPYSIGN +# define signbit(x) (copysign(1.0,(x)) < 0) +# else + /* Fall back to no signed zero */ +# undef \ + ECL_SIGNED_ZERO +# define signbit(x) ((x) < 0) +# endif +# endif +# endif +/* + * GCC fails to compile the following code + * if (f == 0.0) { if (signbit(f)) ... } + */ +# if defined(__sun__) && defined(__GNUC__) +# undef \ + signbit /* Avoid autoconf removing this */ +# define signbit(x) (copysign(1.0,(x)) < 0) +# endif +#endif + +#if defined(HAVE_LIBFFI) && defined(ECL_INCLUDE_FFI_H) +#include "@ECL_LIBFFI_HEADER@" +#endif diff --git a/src/h/config.h.in b/src/h/config.h.in index c4219a64f..63b98077a 100644 --- a/src/h/config.h.in +++ b/src/h/config.h.in @@ -258,281 +258,3 @@ typedef unsigned char ecl_base_char; #if defined(__SSE2__) || (defined(_M_IX86_FP) && _M_IX86_FP >= 2) #undef ECL_SSE2 #endif - -/* -CUT-: Everything below this mark will not be installed */ -/* -------------------------------------------------------------------- * - * BUILD OPTIONS WHICH NEED NOT BE EXPORTED * - * -------------------------------------------------------------------- */ -/* - * FEATURES LINKED IN: - */ - -/* Define this if you want a runtime version only without compiler */ -#undef RUNTIME -/* Profile tool */ -#undef PROFILE -/* Program Development Environment */ -#undef PDE - -/* Allow loading dynamically linked code */ -#undef ENABLE_DLOPEN - -/* Undefine this if you do not want ECL to check for circular lists */ -#define ECL_SAFE - -/* Bytecodes and arguments are 8 and 16 bits large, respectively */ -#undef ECL_SMALL_BYTECODES - -/* Assembler implementation of APPLY and friends */ -#undef ECL_ASM_APPLY - -/* Activate Boehm-Weiser incremental garbage collector */ -#undef GBC_BOEHM_GENGC - -/* Activate Boehm-Weiser precise garbage collector */ -#undef GBC_BOEHM_PRECISE - -/* Weak hash tables need the garbage collector and weak pointers */ -#ifdef GBC_BOEHM -#define ECL_WEAK_HASH -#endif - -/* GC_set_start_callback */ -#undef HAVE_GC_SET_START_CALLBACK - -/* - * SYSTEM FEATURES: - */ - -/* Argument list can be access as an array */ -#undef ECL_USE_VARARG_AS_POINTER -/* Most significant byte first */ -#undef WORDS_BIGENDIAN -/* Has */ -#undef HAVE_SYS_RESOURCE_H -#undef HAVE_ULIMIT_H -/* High precision timer */ -#undef HAVE_NANOSLEEP -/* Float version if isnan() */ -#undef HAVE_ISNANF -/* float.h for epsilons, maximum real numbers, etc */ -#undef HAVE_FLOAT_H -/* select() */ -#ifndef NACL -#undef HAVE_SELECT -#endif -#undef HAVE_SYS_SELECT_H -#undef HAVE_SYS_IOCTL_H -/* putenv() or setenv() */ -#undef HAVE_SETENV -#undef HAVE_PUTENV -/* times() and sys/times.h */ -#ifndef NACL -#undef HAVE_TIMES -#endif -/* gettimeofday() and sys/time.h */ -#undef HAVE_GETTIMEOFDAY -/* getrusage() and sys/resource.h */ -#ifndef NACL -#undef HAVE_GETRUSAGE -#endif -/* user home directory, user name, etc... */ -#undef HAVE_PW_H -/* symbolic links and checking their existence */ -#ifndef NACL -#undef HAVE_LSTAT -#endif -/* safe creation of temporary files */ -#undef HAVE_MKSTEMP -/* timer for userland threads */ -#undef HAVE_ALARM -/* filesytem */ -#undef HAVE_DIRENT_H -/* dynamic linking of libraries */ -#undef HAVE_DLFCN_H -#undef HAVE_LINK_H -#undef HAVE_MACH_O_DYLD_H -/* POSIX signals */ -#ifndef NACL -#undef HAVE_SIGPROCMASK -#endif -/* isatty() checks whether a file is connected to a */ -#undef HAVE_ISATTY -/* can manipulate floating point environment */ -#undef HAVE_FENV_H -/* can activate individual traps in floating point environment */ -/* this flag has to be deactivated for the Itanium architecture, where */ -/* the GNU libc functions are broken */ -#if !defined(__ia64__) && !defined(PPC) -#undef HAVE_FEENABLEEXCEPT -#endif -/* do we want to deactivate all support for floating point exceptions */ -#undef ECL_AVOID_FPE_H -/* do we want to have signed zeros */ -#undef ECL_SIGNED_ZERO -/* do we want NaNs and Infs */ -#undef ECL_IEEE_FP -/* has support for large files */ -#undef HAVE_FSEEKO -/* the tzset() function gets the current time zone */ -#undef HAVE_TZSET -/* several floating point functions (ISO C99) */ -#if 0 -#undef HAVE_EXPF -#undef HAVE_LOGF -#undef HAVE_SQRTF -#undef HAVE_COSF -#undef HAVE_SINF -#undef HAVE_TANF -#undef HAVE_SINHF -#undef HAVE_COSHF -#undef HAVE_TANHF -#endif -#undef HAVE_FLOORF -#undef HAVE_CEILF -#undef HAVE_FABSF -#undef HAVE_FREXPF -#undef HAVE_LDEXPF -#undef HAVE_LOG1P -#undef HAVE_LOG1PF -#undef HAVE_LOG1PL -#undef HAVE_COPYSIGNF -#undef HAVE_COPYSIGN -#undef HAVE_COPYSIGNL -/* whether we have sched_yield() that gives priority to other threads */ -#undef HAVE_SCHED_YIELD -/* whether we have a working sem_init() */ -#undef HAVE_SEM_INIT -/* whether we have read/write locks */ -#undef HAVE_POSIX_RWLOCK -/* uname() for system identification */ -#undef HAVE_UNAME -#undef HAVE_UNISTD_H -#undef HAVE_SYS_WAIT_H -#undef HAVE_SYS_MMAN_H -/* size of long long */ -#undef ECL_LONG_LONG_BITS -/* existence of char **environ */ -#undef HAVE_ENVIRON -/* existence of pointer -> function name functions */ -#undef HAVE_DLADDR -#undef HAVE_BACKTRACE -#undef HAVE_BACKTRACE_SYMBOLS -#undef HAVE___BUILTIN_RETURN_ADDRESS -#undef HAVE_SCHED_H - -/* - * we do not manage to get proper signal handling of floating point - * arithmetics in the Alpha chips. - */ -#if defined(__alpha__) -# ifdef HAVE_FENV_H -# undef HAVE_FENV_H -# endif -# ifdef HAVE_FEENABLEEXCEPT -# undef HAVE_FEENABLEEXCEPT -# endif -#endif - -/* what characters are used to mark beginning of new line */ -#undef ECL_NEWLINE_IS_CRLF -#undef ECL_NEWLINE_IS_LFCR - -/* - * PARAMETERS: - */ - -/* - * Memory limits for the old garbage collector. - */ -#define LISP_PAGESIZE 2048 /* Page size in bytes */ -#define MAXPAGE 65536 /* Maximum Memory Size */ - -/* We allocate a number of strings in a pool which is used to speed up reading */ -#define ECL_MAX_STRING_POOL_SIZE 10 -#define ECL_BUFFER_STRING_SIZE 4192 - -/* - * Macros that depend on these system features. - */ -#if defined(sparc) || defined(i386) || defined(mips) -# define stack_align(n) (((n) + 0x7) & ~0x7) -#else -# define stack_align(n) (((n) + 03) & ~03) -#endif - -#undef FILE_CNT -#if @ECL_FILE_CNT@ == 1 -# define FILE_CNT(fp) ((fp)->_IO_read_end - (fp)->_IO_read_ptr) -#endif -#if @ECL_FILE_CNT@ == 2 -# define FILE_CNT(fp) ((fp)->_r) -#endif -#if @ECL_FILE_CNT@ == 3 -# define FILE_CNT(fp) ((fp)->_cnt) -#endif - -#if defined(cygwin) || defined(ECL_MS_WINDOWS_HOST) -# define IS_DIR_SEPARATOR(x) ((x=='/')||(x=='\\')) -# define DIR_SEPARATOR '/' -# define PATH_SEPARATOR ';' -#else -# define IS_DIR_SEPARATOR(x) (x=='/') -# define DIR_SEPARATOR '/' -# define PATH_SEPARATOR ':' -#endif - -#define ECL_ARCHITECTURE "@ARCHITECTURE@" - -#ifdef ECL_AVOID_FPE_H -# define ecl_detect_fpe() -#else -# include "@ECL_FPE_CODE@" -#endif - -#ifdef ECL_INCLUDE_MATH_H -# include -# ifdef _MSC_VER -# undef complex -# define signbit(x) (copysign(1.0,(x))) -# endif -# ifndef isfinite -# ifdef __sun__ -# ifndef ECL_LONG_FLOAT -# include -# define isfinite(x) finite(x) -# else -# error "Function isfinite() is missing" -# endif -# else -# define isfinite(x) finite(x) -# endif -# endif -# ifndef signbit -# ifndef ECL_SIGNED_ZERO -# define signbit(x) ((x) < 0) -# else -# ifdef HAVE_COPYSIGN -# define signbit(x) (copysign(1.0,(x)) < 0) -# else - /* Fall back to no signed zero */ -# undef \ - ECL_SIGNED_ZERO -# define signbit(x) ((x) < 0) -# endif -# endif -# endif -/* - * GCC fails to compile the following code - * if (f == 0.0) { if (signbit(f)) ... } - */ -# if defined(__sun__) && defined(__GNUC__) -# undef \ - signbit /* Avoid autoconf removing this */ -# define signbit(x) (copysign(1.0,(x)) < 0) -# endif -#endif - -#if defined(HAVE_LIBFFI) && defined(ECL_INCLUDE_FFI_H) -#include "@ECL_LIBFFI_HEADER@" -#endif diff --git a/src/h/ecl.h b/src/h/ecl.h index cc7140e16..0515917dd 100644 --- a/src/h/ecl.h +++ b/src/h/ecl.h @@ -37,6 +37,10 @@ #include #endif +#ifdef ECL_BUILD +#include +#endif + /* * The Boehm-Demers-Weiser garbage collector contains wrappers for * dlopen and similar functions. These wrappers explicitely deactivate