From 1bc10f2a37ff0c17bc04cf4f51f22894498da03e Mon Sep 17 00:00:00 2001 From: Leonardo de Moura Date: Thu, 25 Oct 2012 21:27:12 -0700 Subject: [PATCH] x64 VS configuration Signed-off-by: Leonardo de Moura --- scripts/config-vs-debug-x64.mk | 20 ++++++++++++++++++++ scripts/config-vs-release-x64.mk | 20 ++++++++++++++++++++ scripts/config-vs-release.mk | 4 +++- scripts/mk_util.py | 28 +++++++++++++++++++--------- src/shell/datalog_frontend.cpp | 1 - 5 files changed, 62 insertions(+), 11 deletions(-) create mode 100644 scripts/config-vs-debug-x64.mk create mode 100644 scripts/config-vs-release-x64.mk diff --git a/scripts/config-vs-debug-x64.mk b/scripts/config-vs-debug-x64.mk new file mode 100644 index 000000000..968fb03cf --- /dev/null +++ b/scripts/config-vs-debug-x64.mk @@ -0,0 +1,20 @@ +CXX="$(VSINSTALLDIR)VC\Bin\x86_amd64\cl" +CXXFLAGS=/c /ZI /nologo /W3 /WX- /Od /Oy- /D WIN32 /D _AMD64_ /D _DEBUG /D Z3DEBUG /D _CONSOLE /D _TRACE /D _WINDOWS /Gm /EHsc /RTC1 /MDd /GS /fp:precise /Zc:wchar_t /Zc:forScope /openmp /Gd /analyze- +CXX_OUT_FLAG=/Fo +OBJ_EXT=.obj +LIB_EXT=.lib +AR=lib +AR_FLAGS=/nologo +AR_OUTFLAG=/OUT: +EXE_EXT=.exe +LINK="$(VSINSTALLDIR)VC\Bin\x86_amd64\cl" +LINK_FLAGS=/nologo /MDd +LINK_EXTRA_FLAGS=/link /DEBUG /MACHINE:X64 /SUBSYSTEM:CONSOLE /INCREMENTAL:NO /STACK:8388608 /OPT:REF /OPT:ICF /TLBID:1 /DYNAMICBASE /NXCOMPAT +LINK_OUT_FLAG=/Fe + +SO_EXT=.dll +SLINK="$(VSINSTALLDIR)VC\Bin\x86_amd64\cl" +SLINK_FLAGS=/nologo /LDd +SLINK_EXTRA_FLAGS=/link /DEBUG /MACHINE:X64 /SUBSYSTEM:WINDOWS /INCREMENTAL:NO /STACK:8388608 /OPT:REF /OPT:ICF /TLBID:1 /DYNAMICBASE:NO +SLINK_OUT_FLAG=/Fe + diff --git a/scripts/config-vs-release-x64.mk b/scripts/config-vs-release-x64.mk new file mode 100644 index 000000000..b1e856b18 --- /dev/null +++ b/scripts/config-vs-release-x64.mk @@ -0,0 +1,20 @@ +CXX="$(VSINSTALLDIR)VC\Bin\x86_amd64\cl" +CXXFLAGS=/c /Zi /nologo /W3 /WX- /O2 /D WIN32 /D NDEBUG /D _LIB /D _WINDOWS /D _AMD64_ /D _UNICODE /D UNICODE /Gm- /EHsc /MD /GS /fp:precise /Zc:wchar_t /Zc:forScope /Gd /TP +CXX_OUT_FLAG=/Fo +OBJ_EXT=.obj +LIB_EXT=.lib +AR=lib +AR_FLAGS=/nologo +AR_OUTFLAG=/OUT: +EXE_EXT=.exe +LINK="$(VSINSTALLDIR)VC\Bin\x86_amd64\cl" +LINK_FLAGS=/nologo /MD +LINK_EXTRA_FLAGS=/link /MACHINE:X64 /SUBSYSTEM:CONSOLE /INCREMENTAL:NO /STACK:8388608 +LINK_OUT_FLAG=/Fe + +SO_EXT=.dll +SLINK="$(VSINSTALLDIR)VC\Bin\x86_amd64\cl" +SLINK_FLAGS=/nologo /LD +SLINK_EXTRA_FLAGS=/link /MACHINE:X64 /SUBSYSTEM:WINDOWS /INCREMENTAL:NO /STACK:8388608 +SLINK_OUT_FLAG=/Fe + diff --git a/scripts/config-vs-release.mk b/scripts/config-vs-release.mk index 89a4c0520..72bc9bb98 100644 --- a/scripts/config-vs-release.mk +++ b/scripts/config-vs-release.mk @@ -1,5 +1,5 @@ CXX=cl -CXXFLAGS=/nologo /c /W3 /WX- /O2 /Oy- /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_WINDOWS" /D "ASYNC_COMMANDS" /Gm- /EHsc /GS /fp:precise /Zc:wchar_t /Zc:forScope /openmp /Gd /analyze- +CXXFLAGS=/nologo /c /W3 /WX- /O2 /Oy- /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_WINDOWS" /D "ASYNC_COMMANDS" /Gm- /EHsc /GS /fp:precise /Zc:wchar_t /Zc:forScope /openmp /Gd /analyze- /arch:SSE2 CXX_OUT_FLAG=/Fo OBJ_EXT=.obj LIB_EXT=.lib @@ -18,3 +18,5 @@ SLINK_FLAGS=/nologo /LD SLINK_EXTRA_FLAGS=/link /MACHINE:X86 /SUBSYSTEM:WINDOWS /INCREMENTAL:NO /STACK:"8388608" /OPT:REF /OPT:ICF /TLBID:1 /DYNAMICBASE:NO SLINK_OUT_FLAG=/Fe + + diff --git a/scripts/mk_util.py b/scripts/mk_util.py index 582f1ae53..099b7f38e 100644 --- a/scripts/mk_util.py +++ b/scripts/mk_util.py @@ -41,17 +41,19 @@ def display_help(): print " -d, --debug compile Z3 in debug mode." print " -x, --x64 create 64 binary when using Visual Studio." print " -m, --makefiles generate only makefiles." + print " -c, --showcpp display file .cpp file names before invoking compiler." exit(0) # Parse configuration option for mk_make script def parse_options(): - global VERBOSE, DEBUG_MODE, IS_WINDOW, VS_X64, ONLY_MAKEFILES - options, remainder = getopt.gnu_getopt(sys.argv[1:], 'b:dvxhm', ['build=', - 'debug', - 'verbose', - 'x64', - 'help', - 'makefiles' + global VERBOSE, DEBUG_MODE, IS_WINDOW, VS_X64, ONLY_MAKEFILES, SHOW_CPPS + options, remainder = getopt.gnu_getopt(sys.argv[1:], 'b:dvxhmc', ['build=', + 'debug', + 'verbose', + 'x64', + 'help', + 'makefiles', + 'showcpp' ]) for opt, arg in options: if opt in ('-b', '--build'): @@ -70,6 +72,8 @@ def parse_options(): display_help() elif opt in ('-m', '--onlymakefiles'): ONLY_MAKEFILES = True + elif opt in ('-c', '--showcpp'): + SHOW_CPPS = True else: raise MKException("Invalid command line option '%s'" % opt) @@ -435,8 +439,10 @@ def add_dot_net_dll(name, deps=[], path=None, dll_name=None, assembly_info_dir=N def cp_config_mk(): if IS_WINDOW: if VS_X64: - # TODO - return + if DEBUG_MODE: + shutil.copyfile('scripts/config-vs-debug-x64.mk', '%s/config.mk' % BUILD_DIR) + else: + shutil.copyfile('scripts/config-vs-release-x64.mk', '%s/config.mk' % BUILD_DIR) else: if DEBUG_MODE: shutil.copyfile('scripts/config-vs-debug.mk', '%s/config.mk' % BUILD_DIR) @@ -474,6 +480,10 @@ def mk_makefile(): else: print " compilation mode: Release" if IS_WINDOW: + if VS_X64: + print " platform: x64" + else: + print " platform: x86" print "Type 'cd %s && nmake to build Z3" % BUILD_DIR else: print "Type 'cd %s; make' to build Z3" % BUILD_DIR diff --git a/src/shell/datalog_frontend.cpp b/src/shell/datalog_frontend.cpp index 2408f595f..14dcc91c3 100644 --- a/src/shell/datalog_frontend.cpp +++ b/src/shell/datalog_frontend.cpp @@ -17,7 +17,6 @@ Revision History: --*/ - #include #include #include