From d9997268f8774612d47e6ffaedca7be41aa31516 Mon Sep 17 00:00:00 2001 From: jjgarcia Date: Tue, 28 Feb 2006 14:21:26 +0000 Subject: [PATCH] Final fixes to make the new directory structure work with MSVC++ --- msvc/Makefile | 21 +++++++++++++-------- msvc/c/Makefile | 25 ++++++++++++++----------- msvc/{h => ecl}/config.h.msvc6 | 0 src/Makefile.in | 4 ++-- src/c/alloc_2.d | 4 ++-- src/c/file.d | 2 +- src/c/main.d | 1 + src/c/num_co.d | 3 +++ src/c/num_sfun.d | 3 +++ src/c/number.d | 3 +++ src/c/print.d | 3 +++ src/c/read.d | 7 ++++++- src/c/time.d | 7 +++++-- src/lsp/config.lsp.in | 13 ++++++++----- 14 files changed, 64 insertions(+), 32 deletions(-) rename msvc/{h => ecl}/config.h.msvc6 (100%) diff --git a/msvc/Makefile b/msvc/Makefile index 190e079aa..b333877ab 100644 --- a/msvc/Makefile +++ b/msvc/Makefile @@ -59,7 +59,7 @@ CC = cl MFLAGS = -MD CFLAGS = -GX -DGC_DLL -nologo LIBS = eclgc.lib eclgmp.lib user32.lib ws2_32.lib -LDFLAGS = /link /nodefaultlib:libcmt /nodefaultlib:libc /nodefaultlib:libd +LDFLAGS = /link /nodefaultlib:libcmt /nodefaultlib:libcmtd /nodefaultlib:libc /nodefaultlib:libd SHARED_LDFLAGS = -LD GCFLAGS = nodebug=1 RM = del @@ -166,8 +166,10 @@ c\cut$(EXE): $(top_srcdir)\util\cut.c $(MAKE) cut$(EXE) cd .. -$(TARGETS): ecl_min$(EXE) compile.lsp sysfun.lsp +$(TARGETS): ecl_min$(EXE) compile.lsp sysfun.lsp BUILD-STAMP .\ecl_min < compile.lsp +BUILD-STAMP: Makefile + date /t > $@ ecl-static.lib: $(TARGETS) link -lib -out:$@ eclmin.lib c\all_symbols2.obj lsp.lib eclgmp.lib eclgc.lib @@ -229,7 +231,7 @@ clos/load.lsp: $(srcdir)/clos/load.lsp.in cmp/load.lsp: $(srcdir)/cmp/load.lsp.in if not exist cmp $(MKDIR) cmp $(CP) $(srcdir)\cmp\load.lsp.in cmp\load.lsp -cmp/cmpcdefs.lsp: $(srcdir)/cmp/cmpdefs.lsp Makefile +cmp/cmpdefs.lsp: $(srcdir)/cmp/cmpdefs.lsp Makefile c\cut "@ECL_CC@" "$(CC)" \ "@CFLAGS@" "$(CFLAGS)" \ "@ECL_CFLAGS@" "" \ @@ -278,8 +280,9 @@ eclgc.lib: $(CP) gc.lib ..\eclgc.lib cd .. for %h in (gc.h gc_local_alloc.h gc_pthread_redirects.h \ - gc_config_macros.h leak_detector.h gc_typed.h) \ - do $(CP) $(srcdir)\gc\include\%h ecl\%h + gc_config_macros.h leak_detector.h gc_typed.h \ + private\gc_priv.h private\gcconfig.h gc_mark.h) \ + do $(CP) $(srcdir)\gc\include\%h ecl\gc\%h eclgmp.lib: cd gmp $(MAKE) "MPN_TYPE = $(GMP_TYPE)" "MFLAGS = $(MFLAGS)" @@ -294,7 +297,8 @@ rt.lisp: install: install-base for %h in (gc.h gc_local_alloc.h gc_pthread_redirects.h \ - gc_config_macros.h leak_detector.h gc_typed.h) \ + gc_config_macros.h leak_detector.h gc_typed.h \ + gc_mark.h private\gc_priv.h private\gcconfig.h) \ do $(CP) ecl\%h $(libdir)\ecl $(CP) ecl\gmp.h $(libdir)\ecl\gmp.h cd c @@ -346,8 +350,9 @@ clean: clean_ecl clean_lisp clean_doc -$(MAKE) "ECL_THREADS = $(ECL_THREADS)" clean cd .. -for %h in (gc.h gc_local_alloc.h gc_pthread_redirects.h \ - gc_config_macros.h leak_detector.h gc_typed.h) \ - do $(RM) ecl\%h + gc_config_macros.h leak_detector.h gc_typed.h \ + gc_mark.h private\gc_priv.h private\gcconfig.h) \ + do $(RM) ecl\gc\%h cd gmp $(MAKE) "ECL_THREADS = $(ECL_THREADS)" clean cd .. diff --git a/msvc/c/Makefile b/msvc/c/Makefile index f9b770b61..5a28f5b9c 100644 --- a/msvc/c/Makefile +++ b/msvc/c/Makefile @@ -16,7 +16,7 @@ THREADS_FLAGS= # TRUE_CC = cl CC = cl -CFLAGS = -c $(ECL_CFLAGS) -I./ -I$(srcdir) -I$(HDIR) -I../h -I$(top_srcdir)/gc/include +CFLAGS = -c $(ECL_CFLAGS) -I./ -I../ -I$(srcdir) -I$(top_srcdir)/gc/include # -Wall -W -Wfloat-equal -Wundef -Wendif-labels -Wpointer-arith -Wcast-align \ # -Wwrite-strings -Wconversion -Wsign-compare -Wmissing-prototypes -Wredundant-decls \ # -Wunreachable-code -Winline @@ -45,7 +45,9 @@ HFILES = ..\ecl\config.h $(HDIR)\ecl.h $(HDIR)\ecl-cmp.h\ $(HDIR)\object.h $(HDIR)\cs.h $(HDIR)\stacks.h\ $(HDIR)\external.h $(HDIR)\eval.h\ $(HDIR)\number.h $(HDIR)\page.h $(HDIR)\unify.h\ - $(HDIR)\lwp.h $(HDIR)\internal.h + $(HDIR)\lwp.h $(HDIR)\internal.h $(HDIR)\ecl-inl.h\ + $(HDIR)\bytecodes.h + OBJS = main.obj symbol.obj package.obj list.obj\ apply.obj eval.obj interpreter.obj compiler.obj disassembler.obj \ instance.obj gfun.obj reference.obj character.obj\ @@ -60,7 +62,7 @@ OBJS = main.obj symbol.obj package.obj list.obj\ structure.obj load.obj unixfsys.obj unixsys.obj \ ffi.obj alloc_2.obj tcp.obj $(THREADS_OBJ) ffi_x86.obj -all: $(DPP) external.h ..\eclmin.lib ..\cinit.obj +all: $(DPP) ecl\external.h ..\eclmin.lib ..\cinit.obj .SUFFIXES: .obj .c .d @@ -82,7 +84,7 @@ all: $(DPP) external.h ..\eclmin.lib ..\cinit.obj # declarations, because the variables that they mark are in the # in the library and can be referenced without indirection. # -external.h: $(top_srcdir)/h/external.h Makefile +ecl\external.h: $(top_srcdir)/h/external.h Makefile cut.exe removedecl < $(top_srcdir)/h/external.h > $@ cut.exe: $(top_srcdir)/util/cut.c @@ -106,7 +108,7 @@ flatinstall: $(HFILES) $(LINK) -lib -out:$@ $(OBJS) clean: - -for %f in (..\ecl\config.h dpp dpp.obj $(DPP) external.h \ + -for %f in (..\ecl\config.h dpp dpp.obj $(DPP) ecl\external.h \ ..\eclmin.lib ..\cinit.obj cinit.c \ symbols_list2.h) \ do $(RM) %f @@ -116,9 +118,10 @@ clean: # Build rules -$(DPP): $(srcdir)/dpp.c $(srcdir)/symbols_list2.h ../h/config.h - $(TRUE_CC) -I../h -I./ -I$(HDIR) $(DEFS) $(srcdir)/dpp.c -o $@ -../h/config.h: ../h/config.h.msvc6 Makefile +$(DPP): $(srcdir)/dpp.c $(srcdir)/symbols_list2.h ../ecl/config.h ecl\external.h + $(TRUE_CC) -I.. -I./ $(DEFS) $(srcdir)/dpp.c -o $@ +../ecl/config.h: ../ecl/config.h.msvc6 Makefile + for %i in ($(HFILES)) do $(CP) %i ..\ecl cut.exe "@ECL_FPE_CODE@" "$(srcdir:\=/)/arch/fpe_x86.c" \ < ..\ecl\config.h.msvc6 > $@ @@ -136,12 +139,12 @@ apply.o: apply.c $(HFILES) $(HDIR)/cs.h # These files are interrelated # all_symbols.obj: all_symbols.c - $(CC) $(CFLAGS) -Fo$@ -I./ all_symbols.c + $(CC) $(CFLAGS) -Fo$@ -I../ -I./ all_symbols.c all_symbols2.obj: all_symbols.c - $(CC) $(CFLAGS) -DECL_FINAL -Fo$@ -I./ all_symbols.c + $(CC) $(CFLAGS) -DECL_FINAL -Fo$@ -I../ -I./ all_symbols.c # # This is in another directory # ../cinit.obj: cinit.c - $(CC) $(CFLAGS) -I./ -o cinit.obj cinit.c + $(CC) $(CFLAGS) -I../ -I./ -o cinit.obj cinit.c $(MV) cinit.obj ..\ diff --git a/msvc/h/config.h.msvc6 b/msvc/ecl/config.h.msvc6 similarity index 100% rename from msvc/h/config.h.msvc6 rename to msvc/ecl/config.h.msvc6 diff --git a/src/Makefile.in b/src/Makefile.in index 7aaa8ffc2..9348a8614 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -62,7 +62,7 @@ ecl/external.h: c/external.h cp $(srcdir)/h/*.h ecl/ if grep 'undef ENABLE_DLOPEN' ecl/config.h; then cp c/external.h h; fi -bin/ecl$(EXE): ecl_min$(EXE) compile.lsp sysfun.lsp ecl/external.h +bin/ecl$(EXE): ecl_min$(EXE) compile.lsp sysfun.lsp ecl/external.h BUILD-STAMP if [ -f CROSS-COMPILER ]; then \ ./CROSS-COMPILER < compile.lsp; \ else \ @@ -116,7 +116,7 @@ rt.lisp: BUILD-STAMP: config.status echo "#" `uname -a` > $@ head -8 config.log | tail -6 >> $@ -install: BUILD-STAMP install-base +install: install-base cd c; $(MAKE) prefix=$(prefix) DESTDIR=$(DESTDIR) install cd doc; $(MAKE) prefix=$(prefix) DESTDIR=$(DESTDIR) install install-base: diff --git a/src/c/alloc_2.d b/src/c/alloc_2.d index 57b8f6ef3..850fc97ea 100644 --- a/src/c/alloc_2.d +++ b/src/c/alloc_2.d @@ -18,8 +18,8 @@ #include #include #include -#include -#include +#include +#include #ifdef GBC_BOEHM diff --git a/src/c/file.d b/src/c/file.d index 5501cf8d9..6ab1e11fa 100644 --- a/src/c/file.d +++ b/src/c/file.d @@ -1023,7 +1023,7 @@ BEGIN: #if defined(ECL_WSOCK) case smm_io_wsock: case smm_input_wsock: { - int fp = strm->stream.file; + int fp = (int)strm->stream.file; if (!strm->stream.char_stream_p) not_a_character_stream(strm); if ( fp == INVALID_SOCKET ) diff --git a/src/c/main.d b/src/c/main.d index a8593783a..876a6c1c9 100644 --- a/src/c/main.d +++ b/src/c/main.d @@ -20,6 +20,7 @@ #include #include #include +extern int GC_dont_gc; /******************************* EXPORTS ******************************/ diff --git a/src/c/num_co.d b/src/c/num_co.d index e256952e1..df6279437 100644 --- a/src/c/num_co.d +++ b/src/c/num_co.d @@ -24,6 +24,9 @@ #include #include #include +#ifdef _MSC_VER +# undef complex +#endif #ifndef HAVE_ISOC99 # define floorf floor # define ceilf ceil diff --git a/src/c/num_sfun.d b/src/c/num_sfun.d index d3ba0e9de..052daa96b 100644 --- a/src/c/num_sfun.d +++ b/src/c/num_sfun.d @@ -16,6 +16,9 @@ #include #include +#ifdef _MSC_VER +# undef complex +#endif #ifndef HAVE_ISOC99 # define expf exp # define logf log diff --git a/src/c/number.d b/src/c/number.d index c08ab008c..05af7c71f 100644 --- a/src/c/number.d +++ b/src/c/number.d @@ -16,6 +16,9 @@ #include #include +#ifdef _MSC_VER +# undef complex +#endif #include #include diff --git a/src/c/print.d b/src/c/print.d index f6830d326..15c7f49d0 100644 --- a/src/c/print.d +++ b/src/c/print.d @@ -19,6 +19,9 @@ #include #include #include +#ifdef _MSC_VER +# undef complex +#endif #include #ifndef _MSC_VER #include diff --git a/src/c/read.d b/src/c/read.d index ba0bd07a0..8010b4176 100644 --- a/src/c/read.d +++ b/src/c/read.d @@ -18,6 +18,9 @@ #include #include #include +#ifdef _MSC_VER +# undef complex +#endif #include #include #include @@ -25,6 +28,8 @@ #include #include +#undef _complex + #define cat(rtbl,c) ((rtbl)->readtable.table[c].syntax_type) #define read_suppress (SYM_VAL(@'*read-suppress*') != Cnil) @@ -384,7 +389,7 @@ parse_number(const char *s, cl_index end, cl_index *ep, int radix) #ifdef __GNUC__ char buffer[end+1]; #else - char *buffer = cl_alloc_atomic(end+1); + char *buffer = (char*)cl_alloc_atomic(end+1); #endif char *parse_end; char exp_marker; diff --git a/src/c/time.d b/src/c/time.d index c5d226bad..921874c75 100644 --- a/src/c/time.d +++ b/src/c/time.d @@ -16,12 +16,15 @@ #include #include +#ifdef _MSC_VER +# undef complex +#endif #include #ifdef HAVE_TIMES -#include +# include #endif #ifndef _MSC_VER -#include +# include #endif #include diff --git a/src/lsp/config.lsp.in b/src/lsp/config.lsp.in index 996ab869c..de37f5667 100644 --- a/src/lsp/config.lsp.in +++ b/src/lsp/config.lsp.in @@ -68,11 +68,14 @@ Returns, as a string, the version of the software under which ECL runs." ;; * Set configuration pathnames. Notice the trailing slash! ;; Otherwise it would not be a directory. ;; -#-(and mingw32 msvc) -(si::pathname-translations "SYS" '(("**;*.*" "@ecldir@/**/*.*"))) -#+(or mingw32 msvc) -(si::pathname-translations "SYS" - `(("**;*.*" ,(merge-pathnames "**/*.*" (si::get-library-pathname))))) +#-ecl-min +(progn + #-(and mingw32 msvc) + (si::pathname-translations "SYS" '(("**;*.*" "@ecldir@/**/*.*"))) + #+(or mingw32 msvc) + (si::pathname-translations "SYS" + `(("**;*.*" ,(merge-pathnames "**/*.*" (si::get-library-pathname))))) +);#-eclmin #-msvc (si::pathname-translations "HOME" '(("**;*.*" "~/**/*.*"))) #+msvc