mirror of
https://gitlab.com/embeddable-common-lisp/ecl.git
synced 2025-12-28 13:21:33 -08:00
Changes to the MSVC build process and flags (M. Haggag)
This commit is contained in:
parent
30282ef0e0
commit
46512ecc79
5 changed files with 55 additions and 46 deletions
|
|
@ -59,12 +59,7 @@ TAR_DIR = %CD%\ecl-$(ECL_VERSION)
|
|||
#
|
||||
|
||||
CC = cl
|
||||
MFLAGS = /MD
|
||||
CFLAGS = /EHsc /DGC_DLL /nologo
|
||||
LIBS = eclgc.lib eclgmp.lib user32.lib ws2_32.lib shell32.lib
|
||||
LDFLAGS = /link /nologo /nodefaultlib:libcmt /nodefaultlib:libcmtd /nodefaultlib:libc /nodefaultlib:libd
|
||||
SHARED_LDFLAGS = /LD
|
||||
GCFLAGS = nodebug=1
|
||||
RM = del
|
||||
RMDIR = rmdir /Q /S
|
||||
MKDIR = mkdir
|
||||
|
|
@ -74,6 +69,48 @@ MV = move /Y
|
|||
MSDEV = msdev
|
||||
MKNSI = makensis.exe
|
||||
|
||||
# ==================== Flags ====================
|
||||
|
||||
#
|
||||
# Configuration-specific (Debug/Release) options
|
||||
#
|
||||
!if "$(ECL_DEBUG)" != ""
|
||||
CFLAGS_OPTIMIZE = /Od
|
||||
CFLAGS_CONFIG = /Zi /D_DEBUG /MDd $(CFLAGS_OPTIMIZE)
|
||||
LDFLAGS_CONFIG = /debug /nodefaultlib:msvcrt.lib
|
||||
SHARED_LDFLAGS = /LDd
|
||||
GCFLAGS =
|
||||
!else
|
||||
CFLAGS_OPTIMIZE = /O2
|
||||
CFLAGS_CONFIG = /DNDEBUG /MD $(CFLAGS_OPTIMIZE)
|
||||
LDFLAGS_CONFIG = /nodefaultlib:msvcrtd.lib
|
||||
SHARED_LDFLAGS = /LD
|
||||
GCFLAGS = nodebug=1
|
||||
!endif
|
||||
|
||||
CFLAGS = /EHsc /DGC_DLL /nologo /D_CRT_SECURE_NO_DEPRECATE $(CFLAGS_CONFIG)
|
||||
LDFLAGS = /link /nologo /verbose:lib /nodefaultlib:libcmt /nodefaultlib:libcmtd /nodefaultlib:libc /nodefaultlib:libcd $(LDFLAGS_CONFIG)
|
||||
|
||||
|
||||
# Additional configuration for thread support
|
||||
#
|
||||
!if "$(ECL_THREADS)" == ""
|
||||
ENV_EXPORT = cl_env,DATA
|
||||
!else
|
||||
ENV_EXPORT = ecl_process_env
|
||||
CFLAGS = $(CFLAGS) /DECL_THREADS
|
||||
DEF = ecl-threads.def
|
||||
!endif
|
||||
|
||||
# Additional configuration for Unicode support
|
||||
#
|
||||
!if "$(ECL_UNICODE)" != ""
|
||||
CFLAGS = $(CFLAGS) /DECL_UNICODE
|
||||
!endif
|
||||
|
||||
!MESSAGE C++ compiler flags: $(CFLAGS)
|
||||
!MESSAGE C++ linker flags: $(LDFLAGS)
|
||||
|
||||
# ==================== Where To Install Things ====================
|
||||
|
||||
# The default location for installation. Everything is placed in
|
||||
|
|
@ -103,32 +140,6 @@ LIBRARIES =
|
|||
TARGETS = ecl2$(EXE)
|
||||
DEF = ecl.def
|
||||
|
||||
# Enable debug information
|
||||
#
|
||||
!if "$(ECL_DEBUG)" != ""
|
||||
CFLAGS = /Z7 $(CFLAGS)
|
||||
LDFLAGS = /Z7 $(LDFLAGS)
|
||||
SHARED_LDFLAGS = /LDd
|
||||
#MFLAGS = -MDd
|
||||
GCFLAGS =
|
||||
!endif
|
||||
|
||||
# Additional configuration for thread support
|
||||
#
|
||||
!if "$(ECL_THREADS)" == ""
|
||||
ENV_EXPORT = cl_env,DATA
|
||||
!else
|
||||
ENV_EXPORT = ecl_process_env
|
||||
CFLAGS = $(CFLAGS) -DECL_THREADS
|
||||
DEF = ecl-threads.def
|
||||
!endif
|
||||
|
||||
# Additional configuration for Unicode support
|
||||
#
|
||||
!if "$(ECL_UNICODE)" != ""
|
||||
CFLAGS = $(CFLAGS) -DECL_UNICODE
|
||||
!endif
|
||||
|
||||
# Additional modules
|
||||
#
|
||||
ECL_MODULES =
|
||||
|
|
@ -162,11 +173,8 @@ ECL_MODULES = $(ECL_MODULES) profile
|
|||
ECL_FEATURES = (cons :wants-profile $(ECL_FEATURES))
|
||||
!endif
|
||||
|
||||
!MESSAGE $(ECL_MODULES)
|
||||
!MESSAGE $(ECL_FEATURES)
|
||||
|
||||
CFLAGS = $(MFLAGS) $(CFLAGS)
|
||||
LDFLAGS = $(MFLAGS) $(LDFLAGS)
|
||||
!MESSAGE ECL Modules: $(ECL_MODULES)
|
||||
!MESSAGE ECL Features: $(ECL_FEATURES)
|
||||
|
||||
# Build rules
|
||||
#
|
||||
|
|
@ -248,6 +256,7 @@ cmp/load.lsp: $(srcdir)/cmp/load.lsp.in
|
|||
cmp/cmpdefs.lsp: $(srcdir)/cmp/cmpdefs.lsp Makefile
|
||||
c\cut "@ECL_CC@" "$(CC)" \
|
||||
"@CFLAGS@" "$(CFLAGS)" \
|
||||
"@CFLAGS_OPTIMIZE@" "$(CFLAGS_OPTIMIZE)" \
|
||||
"@ECL_CFLAGS@" "" \
|
||||
"@CPPFLAGS@" "" \
|
||||
"@LDRPATH@" "" \
|
||||
|
|
@ -290,7 +299,7 @@ eclmin.lib: eclgmp.lib eclgc.lib lsp/config.lsp
|
|||
cd ..
|
||||
eclgc.lib:
|
||||
cd gc
|
||||
$(MAKE) $(GCFLAGS) ECL_THREADS=$(ECL_THREADS) "MFLAGS=$(MFLAGS)" gc.lib
|
||||
$(MAKE) $(GCFLAGS) ECL_THREADS=$(ECL_THREADS) "CFLAGS_CONFIG=$(CFLAGS_CONFIG)" gc.lib
|
||||
$(CP) gc.lib ..\eclgc.lib
|
||||
cd ..
|
||||
if not exist ecl\gc $(MKDIR) ecl\gc
|
||||
|
|
@ -301,7 +310,7 @@ eclgc.lib:
|
|||
do $(CP) $(srcdir)\gc\include\%h ecl\gc\%h
|
||||
eclgmp.lib:
|
||||
cd gmp
|
||||
$(MAKE) "MPN_TYPE = $(GMP_TYPE)" "MFLAGS = $(MFLAGS)"
|
||||
$(MAKE) "MPN_TYPE = $(GMP_TYPE)" "CFLAGS_CONFIG=$(CFLAGS_CONFIG)"
|
||||
$(CP) gmp.lib ..\eclgmp.lib
|
||||
$(CP) gmp.h ..\ecl\gmp.h
|
||||
cd ..
|
||||
|
|
|
|||
|
|
@ -17,17 +17,15 @@ THREADS_OBJ=
|
|||
THREADS_FLAGS= -DGC_DLL -DGC_BUILD
|
||||
!endif
|
||||
|
||||
MFLAGS = /MD
|
||||
|
||||
OBJS= alloc.obj reclaim.obj allchblk.obj misc.obj mach_dep.obj os_dep.obj mark_rts.obj headers.obj mark.obj obj_map.obj blacklst.obj finalize.obj new_hblk.obj dbg_mlc.obj malloc.obj stubborn.obj dyn_load.obj typd_mlc.obj ptr_chck.obj gc_cpp.obj mallocx.obj $(THREADS_OBJ)
|
||||
|
||||
all: gc.lib
|
||||
|
||||
{$(srcdir)}.c{}.obj:
|
||||
$(cc) $(MFLAGS) $(cdebug) $(cflags) $(cvars) -I$(srcdir)\include -DSILENT -DALL_INTERIOR_POINTERS -D__STDC__ -DGC_DLL -DGC_BUILD -DLARGE_CONFIG $(THREADS_FLAGS) $< /Fo$*.obj
|
||||
$(cc) $(cflags) $(CFLAGS_CONFIG) -I$(srcdir)\include -DSILENT -DALL_INTERIOR_POINTERS -D__STDC__ -DGC_DLL -DGC_BUILD -DLARGE_CONFIG $(THREADS_FLAGS) $< /Fo$*.obj
|
||||
|
||||
{$(srcdir)\tests}.c{tests}.obj:
|
||||
$(cc) $(MFLAGS) $(cdebug) $(cflags) $(cvars) -I$(srcdir)\include -DSILENT -DALL_INTERIOR_POINTERS -D__STDC__ -DGC_DLL -DGC_BUILD -DLARGE_CONFIG $(THREADS_FLAGS) $< /Fo$*.obj
|
||||
$(cc) $(cflags) $(CFLAGS_CONFIG) -I$(srcdir)\include -DSILENT -DALL_INTERIOR_POINTERS -D__STDC__ -DGC_DLL -DGC_BUILD -DLARGE_CONFIG $(THREADS_FLAGS) $< /Fo$*.obj
|
||||
|
||||
#.c.obj:
|
||||
# $(cc) $(cdebug) $(cflags) $(cvars) -Iinclude -DSILENT -DALL_INTERIOR_POINTERS -D__STDC__ -DGC_NOT_DLL -DGC_BUILD $*.c /Fo$*.obj
|
||||
|
|
|
|||
|
|
@ -408,8 +408,7 @@ mpn_p4.lib: msvc-build $(MPN_P4_OBJS)
|
|||
gmp.lib: mpn_$(MPN_TYPE).lib $(GMP_ALL_OBJS)
|
||||
link -lib /NOLOGO /OUT:$@ *.obj mpf\*.obj mpz\*.obj mpq\*.obj $(PRINTF_OBJS) $(SCANF_OBJS) mpn_$(MPN_TYPE).lib
|
||||
|
||||
MFLAGS = /MD
|
||||
CFLAGS = /nologo $(MFLAGS) /W3 /EHsc /I "." /I $(srcdir) /I "$(srcdir)\mpn\generic" /D "WIN32" /D "NDEBUG" /D "_LIB" /D "_WIN32" /D "_MBCS"
|
||||
CFLAGS = $(CFLAGS_CONFIG) /nologo /W3 /EHsc /I "." /I $(srcdir) /I "$(srcdir)\mpn\generic" /D "WIN32" /D "_LIB" /D "_WIN32" /D "_MBCS"
|
||||
|
||||
{.\mpn\generic}.c{.\mpn\generic}.obj:
|
||||
cl -c $(CFLAGS) /Fo$@ $?
|
||||
|
|
@ -490,4 +489,4 @@ clean:
|
|||
-erase config.h
|
||||
-erase gmp.h
|
||||
-erase msvc-build
|
||||
-erase *.exe *.manifest
|
||||
-erase *.exe *.manifest
|
||||
|
|
|
|||
|
|
@ -42,6 +42,9 @@ ECL 8.9.0:
|
|||
- New configuration flag, --without-fpe, to disable floating point exception
|
||||
code in platforms that have buggy implementations of feenableexcept().
|
||||
|
||||
- Changes in the build process of the Microsoft Visual C++ port contributed
|
||||
by Muhammad Haggag.
|
||||
|
||||
* Bugs fixed:
|
||||
|
||||
- The optimizer for COERCE might enter an infinite loop for certain
|
||||
|
|
|
|||
|
|
@ -441,7 +441,7 @@ coprocessor).")
|
|||
(defvar *cc-flags* "@CPPFLAGS@ @CFLAGS@ @ECL_CFLAGS@")
|
||||
|
||||
(defvar *cc-optimize* #-msvc "-O"
|
||||
#+msvc "-O2")
|
||||
#+msvc "@CFLAGS_OPTIMIZE@")
|
||||
|
||||
(defvar *ld-format* #-msvc "~A -o ~S -L~S ~{~S ~} ~@?"
|
||||
#+msvc "~A -Fe~S~* ~{~S ~} ~@?")
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue