1 @rem File: "vcexpress.bat"
\r
3 @rem This is a batch file to compile Gambit with the Microsoft Visual
\r
4 @rem C++ 2005 Express Edition which can be obtained at no charge from
\r
5 @rem Microsoft at this URL:
\r
6 @rem http://msdn.microsoft.com/vstudio/express/downloads/default.aspx .
\r
7 @rem You must also install the Microsoft Platform SDK.
\r
9 @rem TODO: turn this into a makefile
\r
11 @rem Setup environment variables
\r
13 @call "C:\Program Files\Microsoft Visual Studio 8\VC\vcvarsall.bat"
\r
14 @call "C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\SetEnv.Cmd"
\r
16 @rem We can't use -D___SINGLE_HOST for all Gambit generated C files
\r
17 @rem because the C compiler runs out of memory while compiling _num.c
\r
20 set COMP_GEN=cl -nologo -Oityb1 -MT -D_CRT_SECURE_NO_DEPRECATE -c -I..\include -D___SYS_TYPE_CPU=\"i686\" -D___SYS_TYPE_VENDOR=\"pc\" -D___SYS_TYPE_OS=\"visualc\"
\r
22 if not "%1%" == "" (
\r
23 set COMP_GEN=%COMP_GEN% -D___GAMBCDIR=\"%1%\"
\r
26 set COMP_LIB_MH=%COMP_GEN% -D___LIBRARY
\r
27 set COMP_LIB_PR_MH=%COMP_LIB_MH% -D___PRIMAL
\r
28 set COMP_LIB=%COMP_LIB_MH% -D___SINGLE_HOST
\r
29 set COMP_LIB_PR=%COMP_LIB_PR_MH% -D___SINGLE_HOST
\r
30 set COMP_APP=%COMP_GEN% -D___SINGLE_HOST
\r
32 @rem We can't rely on sed being available so we generate gambit.h
\r
33 @rem from gambit.h.in by prefixing it with the needed declarations.
\r
35 echo #ifndef ___VOIDSTAR_WIDTH > include\gambit.h
\r
36 echo #define ___VOIDSTAR_WIDTH ___LONG_WIDTH >> include\gambit.h
\r
37 echo #endif >> include\gambit.h
\r
38 echo #ifndef ___MAX_CHR >> include\gambit.h
\r
39 echo #define ___MAX_CHR 0x10ffff >> include\gambit.h
\r
40 echo #endif >> include\gambit.h
\r
41 type include\gambit.h.in >> include\gambit.h
\r
45 %COMP_LIB_PR% main.c
\r
46 %COMP_LIB_PR% setup.c
\r
49 %COMP_LIB_PR% os_base.c
\r
50 %COMP_LIB_PR% os_time.c
\r
51 %COMP_LIB_PR% os_shell.c
\r
52 %COMP_LIB_PR% os_files.c
\r
53 %COMP_LIB_PR% os_dyn.c
\r
54 %COMP_LIB_PR% os_tty.c
\r
55 %COMP_LIB_PR% os_io.c
\r
56 %COMP_LIB_PR% c_intf.c
\r
58 %COMP_LIB_PR% _kernel.c
\r
59 %COMP_LIB_PR% _system.c
\r
60 %COMP_LIB_PR_MH% _num.c
\r
61 %COMP_LIB_PR% _std.c
\r
62 %COMP_LIB_PR% _eval.c
\r
63 %COMP_LIB_PR_MH% _io.c
\r
64 %COMP_LIB_PR% _nonstd.c
\r
65 %COMP_LIB_PR% _thread.c
\r
66 %COMP_LIB_PR% _repl.c
\r
68 %COMP_LIB_PR% _gambc.c
\r
70 lib -out:libgambc.lib main.obj setup.obj mem.obj os.obj os_base.obj os_time.obj os_shell.obj os_files.obj os_dyn.obj os_tty.obj os_io.obj c_intf.obj _kernel.obj _system.obj _num.obj _std.obj _eval.obj _io.obj _nonstd.obj _thread.obj _repl.obj _gambc.obj
\r
76 %COMP_LIB% _gsilib.c
\r
77 %COMP_LIB% _gambcgsi.c
\r
81 cl -Fegsi.exe ..\lib\libgambc.lib _gsilib.obj _gambcgsi.obj _gsi.obj _gsi_.obj Kernel32.Lib User32.Lib Gdi32.Lib WS2_32.Lib
\r
89 %COMP_LIB% _source.c
\r
92 %COMP_LIB% _ptree1.c
\r
93 %COMP_LIB% _ptree2.c
\r
100 %COMP_LIB% _t-c-3.c
\r
101 %COMP_LIB% _gsclib.c
\r
102 %COMP_LIB% _gambcgsc.c
\r
106 cl -Fegsc.exe ..\lib\libgambc.lib _host.obj _utils.obj _source.obj _parms.obj _env.obj _ptree1.obj _ptree2.obj _gvm.obj _back.obj _front.obj _prims.obj _t-c-1.obj _t-c-2.obj _t-c-3.obj _gsclib.obj _gambcgsc.obj _gsc.obj _gsc_.obj Kernel32.Lib User32.Lib Gdi32.Lib WS2_32.Lib
\r
112 echo @echo off> gsc-cc-o.bat
\r
113 echo.>> gsc-cc-o.bat
\r
114 echo rem Script parameters are passed in the following environment variables:>> gsc-cc-o.bat
\r
115 echo rem GSC_CC_O_GAMBCDIR_BIN>> gsc-cc-o.bat
\r
116 echo rem GSC_CC_O_GAMBCDIR_INCLUDE>> gsc-cc-o.bat
\r
117 echo rem GSC_CC_O_GAMBCDIR_LIB>> gsc-cc-o.bat
\r
118 echo rem GSC_CC_O_OBJ_FILENAME>> gsc-cc-o.bat
\r
119 echo rem GSC_CC_O_C_FILENAME_DIR>> gsc-cc-o.bat
\r
120 echo rem GSC_CC_O_C_FILENAME_BASE>> gsc-cc-o.bat
\r
121 echo rem GSC_CC_O_CC_OPTIONS>> gsc-cc-o.bat
\r
122 echo rem GSC_CC_O_LD_OPTIONS_PRELUDE>> gsc-cc-o.bat
\r
123 echo rem GSC_CC_O_LD_OPTIONS>> gsc-cc-o.bat
\r
124 echo.>> gsc-cc-o.bat
\r
125 echo rem echo GSC_CC_O_GAMBCDIR_BIN = %%GSC_CC_O_GAMBCDIR_BIN%%>> gsc-cc-o.bat
\r
126 echo rem echo GSC_CC_O_GAMBCDIR_INCLUDE = %%GSC_CC_O_GAMBCDIR_INCLUDE%%>> gsc-cc-o.bat
\r
127 echo rem echo GSC_CC_O_GAMBCDIR_LIB = %%GSC_CC_O_GAMBCDIR_LIB%%>> gsc-cc-o.bat
\r
128 echo rem echo GSC_CC_O_OBJ_FILENAME = %%GSC_CC_O_OBJ_FILENAME%%>> gsc-cc-o.bat
\r
129 echo rem echo GSC_CC_O_C_FILENAME_DIR = %%GSC_CC_O_C_FILENAME_DIR%%>> gsc-cc-o.bat
\r
130 echo rem echo GSC_CC_O_C_FILENAME_BASE = %%GSC_CC_O_C_FILENAME_BASE%%>> gsc-cc-o.bat
\r
131 echo rem echo GSC_CC_O_CC_OPTIONS = %%GSC_CC_O_CC_OPTIONS%%>> gsc-cc-o.bat
\r
132 echo rem echo GSC_CC_O_LD_OPTIONS_PRELUDE = %%GSC_CC_O_LD_OPTIONS_PRELUDE%%>> gsc-cc-o.bat
\r
133 echo rem echo GSC_CC_O_LD_OPTIONS = %%GSC_CC_O_LD_OPTIONS%%>> gsc-cc-o.bat
\r
134 echo.>> gsc-cc-o.bat
\r
135 echo for %%%%f in (cl.exe gcc.exe wcl386.exe) do if not "%%%%~$PATH:f" == "" goto use_%%%%%%f>> gsc-cc-o.bat
\r
136 echo.>> gsc-cc-o.bat
\r
137 echo echo gcc.exe, wcl386.exe and cl.exe were not found in the PATH. Make sure MinGW, OpenWatcom or Visual C++ Express is installed.>> gsc-cc-o.bat
\r
138 echo exit 1 >> gsc-cc-o.bat
\r
139 echo.>> gsc-cc-o.bat
\r
140 echo :use_gcc.exe>> gsc-cc-o.bat
\r
141 echo cd "%GSC_CC_O_C_FILENAME_DIR%">> gsc-cc-o.bat
\r
142 echo gcc.exe -mno-cygwin -Wall -W -Wno-unused -O1 -fno-math-errno -fschedule-insns2 -fno-trapping-math -fno-strict-aliasing -fwrapv -fno-common -mieee-fp -shared -I"%%GSC_CC_O_GAMBCDIR_INCLUDE%%" -D___DYNAMIC -D___SINGLE_HOST -o "%%GSC_CC_O_OBJ_FILENAME%%" %%GSC_CC_O_CC_OPTIONS%% %%GSC_CC_O_LD_OPTIONS_PRELUDE%% "%%GSC_CC_O_C_FILENAME_BASE%%" %%GSC_CC_O_LD_OPTIONS%%>> gsc-cc-o.bat
\r
143 echo goto end>> gsc-cc-o.bat
\r
144 echo.>> gsc-cc-o.bat
\r
145 echo :use_wcl386.exe>> gsc-cc-o.bat
\r
146 echo cd "%GSC_CC_O_C_FILENAME_DIR%">> gsc-cc-o.bat
\r
147 echo wcl386.exe -w0 -zp4 -zq -obetir -bm -3r -bt=nt -mf -bd -I"%%GSC_CC_O_GAMBCDIR_INCLUDE%%" -D___DYNAMIC -D___SINGLE_HOST -l=nt_dll -fe="%%GSC_CC_O_OBJ_FILENAME%%" %%GSC_CC_O_CC_OPTIONS%% %%GSC_CC_O_LD_OPTIONS_PRELUDE%% "%%GSC_CC_O_C_FILENAME_BASE%%" %%GSC_CC_O_LD_OPTIONS%%>> gsc-cc-o.bat
\r
148 echo goto end>> gsc-cc-o.bat
\r
149 echo.>> gsc-cc-o.bat
\r
150 echo :use_cl.exe>> gsc-cc-o.bat
\r
151 echo cd "%GSC_CC_O_C_FILENAME_DIR%">> gsc-cc-o.bat
\r
152 echo cl.exe -nologo -Oityb1 -MT -D_CRT_SECURE_NO_DEPRECATE -LD -I"%%GSC_CC_O_GAMBCDIR_INCLUDE%%" -D___DYNAMIC -D___SINGLE_HOST -Fe"%%GSC_CC_O_OBJ_FILENAME%%" %%GSC_CC_O_CC_OPTIONS%% %%GSC_CC_O_LD_OPTIONS_PRELUDE%% "%%GSC_CC_O_C_FILENAME_BASE%%" %%GSC_CC_O_LD_OPTIONS%%>> gsc-cc-o.bat
\r
153 echo goto end>> gsc-cc-o.bat
\r
154 echo.>> gsc-cc-o.bat
\r
155 echo :use_build_time_c_compiler>> gsc-cc-o.bat
\r
156 echo cd "%GSC_CC_O_C_FILENAME_DIR%">> gsc-cc-o.bat
\r
157 echo gcc.exe -mno-cygwin -Wall -W -Wno-unused -O1 -fno-math-errno -fschedule-insns2 -fno-trapping-math -fno-strict-aliasing -fwrapv -fno-common -mieee-fp -shared -I"%%GSC_CC_O_GAMBCDIR_INCLUDE%%" -D___DYNAMIC -D___SINGLE_HOST -o "%%GSC_CC_O_OBJ_FILENAME%%" %%GSC_CC_O_CC_OPTIONS%% %%GSC_CC_O_LD_OPTIONS_PRELUDE%% "%%GSC_CC_O_C_FILENAME_BASE%%" %%GSC_CC_O_LD_OPTIONS%%>> gsc-cc-o.bat
\r
158 echo goto end>> gsc-cc-o.bat
\r
159 echo.>> gsc-cc-o.bat
\r
160 echo :end>> gsc-cc-o.bat
\r
161 echo.>> gsc-cc-o.bat
\r
162 echo exit>> gsc-cc-o.bat
\r