diff --git a/msvc/c/Makefile b/msvc/c/Makefile index 28143bb5e..d9b6b1bed 100755 --- a/msvc/c/Makefile +++ b/msvc/c/Makefile @@ -40,7 +40,7 @@ ECL_SSE_OBJ= # TRUE_CC = cl CC = cl -CFLAGS = -c $(ECL_CFLAGS) -DECL_API="__declspec(dllexport)" -I./ -I../ -I$(srcdir) -I$(top_srcdir)/bdwgc/include -I$(top_srcdir)/bdwgc/include/private +CFLAGS = -c $(ECL_CFLAGS) -DECL_BUILD -DECL_API="__declspec(dllexport)" -I./ -I../ -I$(srcdir) -I$(top_srcdir)/bdwgc/include -I$(top_srcdir)/bdwgc/include/private SHELL = /bin/sh RM = del @@ -162,7 +162,13 @@ $(HFILES): ../ecl/config.h.msvc6 Makefile "@ECL_THREADS@" "$(ECL_THREADS_FLAG)" \ "@ECL_UNICODE@" "$(ECL_UNICODE_FLAG)" \ "@ECL_SSE2@" "$(ECL_SSE_FLAG)" \ - < ..\ecl\config.h.msvc6 > $@ + < ..\ecl\config.h.msvc6 > ..\ecl\config.h + cut.exe "@ECL_FPE_CODE@" "$(srcdir:\=/)/arch/$(ECL_FPE_CODE)" \ + "@ECL_VERSION_NUMBER@" "$(ECL_VERSION_NUMBER)" \ + "@ECL_THREADS@" "$(ECL_THREADS_FLAG)" \ + "@ECL_UNICODE@" "$(ECL_UNICODE_FLAG)" \ + "@ECL_SSE2@" "$(ECL_SSE_FLAG)" \ + < ..\ecl\config-internal.h.msvc6 > ..\ecl\config-internal.h xcopy /SYI $(top_srcdir)\h\* ..\ecl -mkdir ..\ecl\atomic_ops -mkdir ..\ecl\atomic_ops\sysdeps diff --git a/msvc/ecl/config-internal.h.msvc6 b/msvc/ecl/config-internal.h.msvc6 new file mode 100644 index 000000000..b405393e7 --- /dev/null +++ b/msvc/ecl/config-internal.h.msvc6 @@ -0,0 +1,215 @@ +/* + * FEATURES LINKED IN: + */ + +/* Locatives */ +/* #undef LOCATIVE */ +/* Use old MIT LOOP macro system */ +/* #undef ECL_OLD_LOOP */ + +/* 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 */ +#define ENABLE_DLOPEN 1 + +/* Undefine this if you do not want ECL to check for circular lists */ +#define ECL_SAFE + +/* Use CMU Common-Lisp's FORMAT routine */ +#define ECL_CMU_FORMAT 1 + +/* 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 */ + +#define ECL_WEAK_HASH + +/* + * SYSTEM FEATURES: + */ + +/* Arguments cannot be accessed as array */ +/* #undef NO_ARGS_ARRAY */ +/* 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 */ +#define HAVE_FLOAT_H 1 +/* select() */ +/* #undef HAVE_SELECT */ +/* #undef HAVE_SYS_SELECT_H */ +/* #undef HAVE_SYS_IOCTL_H */ +/* putenv() or setenv() */ +#undef HAVE_SETENV +#define HAVE_PUTENV 1 +/* times() and sys/times.h */ +/* #undef HAVE_TIMES */ +/* gettimeofday() and sys/time.h */ +/* #undef HAVE_GETTIMEOFDAY */ +/* getrusage() and sys/resource.h */ +/* #undef HAVE_GETRUSAGE */ +/* user home directory, user name, etc... */ +/* #undef HAVE_PW_H */ +/* symbolic links and checking their existence */ +/* #undef HAVE_LSTAT */ +/* 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 */ +/* #undef HAVE_SIGPROCMASK */ +/* isatty() checks whether a file is connected to a */ +#define HAVE_ISATTY 1 +/* can manipulate floating point environment */ +/* #undef HAVE_FENV_H */ +/* can activate individual traps in floating point environment */ +/* #undef HAVE_FEENABLEEXCEPT */ +/* do we want to deactivate all support for floating point exceptions */ +/* #undef ECL_AVOID_FPE_H */ +/* do we want to have signed zeros */ +#define ECL_SIGNED_ZERO 1 +/* do we want NaNs and Infs */ +#define ECL_IEEE_FP 1 +/* has support for large files */ +/* #undef HAVE_FSEEKO */ +/* compiler understands long long */ +#define HAVE_LONG_LONG 1 +/* the tzset() function gets the current time zone */ +#define HAVE_TZSET 1 +/* 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 +#define HAVE_FLOORF +#define HAVE_CEILF +#define HAVE_FABSF +#define HAVE_FREXPF +#define HAVE_LDEXPF +#define HAVE_LOG1PL +/* whether we have sched_yield() that gives priority to other threads */ +/* #undef HAVE_SCHED_YIELD */ +/* uname() for system identification */ +/* #undef HAVE_UNAME */ +/* #undef HAVE_UNISTD_H */ +/* #undef HAVE_SYS_WAIT_H */ +/* size of long long */ +#define ECL_LONG_LONG_BITS 64 + +/* + * 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 */ +#define ECL_NEWLINE_IS_CRLF 1 +/* #undef ECL_NEWLINE_IS_LFCR */ + +/* + * PARAMETERS: + */ + +/* + * Memory limits for the old garbage collector. + */ +#define LISP_PAGESIZE 2048 /* Page size in bytes */ +#define MAXPAGE 16384 /* Maximum Memory Size */ + +/* We reserve these many bytes for computation with bignums registers */ +#define BIGNUM_REGISTER_SIZE 16 + +/* 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 128 + +/* + * 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 0 == 1 +# define FILE_CNT(fp) ((fp)->_IO_read_end - (fp)->_IO_read_ptr) +#endif +#if 0 == 2 +# define FILE_CNT(fp) ((fp)->_r) +#endif +#if ( defined(_MSC_VER) && (_MSC_VER < 1900) ) && 3 == 3 +# define FILE_CNT(fp) ((fp)->_cnt) +#endif + +#if defined(cygwin) || defined(mingw32) || defined(_MSC_VER) +# 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 "PENTIUM4" + +#ifdef ECL_AVOID_FPE_H +# define ecl_detect_fpe() +#else +# include "@ECL_FPE_CODE@" +#endif + +#define strcasecmp _stricmp +#if defined(_MSC_VER) && (_MSC_VER < 1900) +#define isnan _isnan +#endif +#define finite _finite +#define sleep _sleep + +#include "@ECL_FPE_CODE@" + +#include +#ifndef isfinite +# define isfinite(x) (finite(x)) +# define signbit(x) (_copysign(1.0,(x)) < 0) +# define ECL_MATHERR_CLEAR +# define ECL_MATHERR_TEST +#endif diff --git a/msvc/ecl/config.h.msvc6 b/msvc/ecl/config.h.msvc6 index 83833b050..c44b49cfa 100755 --- a/msvc/ecl/config.h.msvc6 +++ b/msvc/ecl/config.h.msvc6 @@ -243,224 +243,3 @@ typedef unsigned int uint32_t; #undef ECL_SSE2 #endif #endif - - -/* -CUT-: Everything below this mark will not be installed */ -/* -------------------------------------------------------------------- * - * BUILD OPTIONS WHICH NEED NOT BE EXPORTED * - * -------------------------------------------------------------------- */ -/* - * FEATURES LINKED IN: - */ - -/* Locatives */ -/* #undef LOCATIVE */ -/* Use old MIT LOOP macro system */ -/* #undef ECL_OLD_LOOP */ - -/* 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 */ -#define ENABLE_DLOPEN 1 - -/* Undefine this if you do not want ECL to check for circular lists */ -#define ECL_SAFE - -/* Use CMU Common-Lisp's FORMAT routine */ -#define ECL_CMU_FORMAT 1 - -/* 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 */ - -#define ECL_WEAK_HASH - -/* - * SYSTEM FEATURES: - */ - -/* Arguments cannot be accessed as array */ -/* #undef NO_ARGS_ARRAY */ -/* 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 */ -#define HAVE_FLOAT_H 1 -/* select() */ -/* #undef HAVE_SELECT */ -/* #undef HAVE_SYS_SELECT_H */ -/* #undef HAVE_SYS_IOCTL_H */ -/* putenv() or setenv() */ -#undef HAVE_SETENV -#define HAVE_PUTENV 1 -/* times() and sys/times.h */ -/* #undef HAVE_TIMES */ -/* gettimeofday() and sys/time.h */ -/* #undef HAVE_GETTIMEOFDAY */ -/* getrusage() and sys/resource.h */ -/* #undef HAVE_GETRUSAGE */ -/* user home directory, user name, etc... */ -/* #undef HAVE_PW_H */ -/* symbolic links and checking their existence */ -/* #undef HAVE_LSTAT */ -/* 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 */ -/* #undef HAVE_SIGPROCMASK */ -/* isatty() checks whether a file is connected to a */ -#define HAVE_ISATTY 1 -/* can manipulate floating point environment */ -/* #undef HAVE_FENV_H */ -/* can activate individual traps in floating point environment */ -/* #undef HAVE_FEENABLEEXCEPT */ -/* do we want to deactivate all support for floating point exceptions */ -/* #undef ECL_AVOID_FPE_H */ -/* do we want to have signed zeros */ -#define ECL_SIGNED_ZERO 1 -/* do we want NaNs and Infs */ -#define ECL_IEEE_FP 1 -/* has support for large files */ -/* #undef HAVE_FSEEKO */ -/* compiler understands long long */ -#define HAVE_LONG_LONG 1 -/* the tzset() function gets the current time zone */ -#define HAVE_TZSET 1 -/* 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 -#define HAVE_FLOORF -#define HAVE_CEILF -#define HAVE_FABSF -#define HAVE_FREXPF -#define HAVE_LDEXPF -#define HAVE_LOG1PL -/* whether we have sched_yield() that gives priority to other threads */ -/* #undef HAVE_SCHED_YIELD */ -/* uname() for system identification */ -/* #undef HAVE_UNAME */ -/* #undef HAVE_UNISTD_H */ -/* #undef HAVE_SYS_WAIT_H */ -/* size of long long */ -#define ECL_LONG_LONG_BITS 64 - -/* - * 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 */ -#define ECL_NEWLINE_IS_CRLF 1 -/* #undef ECL_NEWLINE_IS_LFCR */ - -/* - * PARAMETERS: - */ - -/* - * Memory limits for the old garbage collector. - */ -#define LISP_PAGESIZE 2048 /* Page size in bytes */ -#define MAXPAGE 16384 /* Maximum Memory Size */ - -/* We reserve these many bytes for computation with bignums registers */ -#define BIGNUM_REGISTER_SIZE 16 - -/* 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 128 - -/* - * 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 0 == 1 -# define FILE_CNT(fp) ((fp)->_IO_read_end - (fp)->_IO_read_ptr) -#endif -#if 0 == 2 -# define FILE_CNT(fp) ((fp)->_r) -#endif -#if ( defined(_MSC_VER) && (_MSC_VER < 1900) ) && 3 == 3 -# define FILE_CNT(fp) ((fp)->_cnt) -#endif - -#if defined(cygwin) || defined(mingw32) || defined(_MSC_VER) -# 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 "PENTIUM4" - -#ifdef ECL_AVOID_FPE_H -# define ecl_detect_fpe() -#else -# include "@ECL_FPE_CODE@" -#endif - -#define strcasecmp _stricmp -#if defined(_MSC_VER) && (_MSC_VER < 1900) -#define isnan _isnan -#endif -#define finite _finite -#define sleep _sleep - -#include "@ECL_FPE_CODE@" - -#include -#ifndef isfinite -# define isfinite(x) (finite(x)) -# define signbit(x) (_copysign(1.0,(x)) < 0) -# define ECL_MATHERR_CLEAR -# define ECL_MATHERR_TEST -#endif