1 @rem File: "vc2008.cmd"
\r
3 @rem This is a batch file to compile Gambit with the Microsoft Visual
\r
4 @rem C++ 2008 Professional Edition. It probably will work with the
\r
5 @rem Express Edition as well.
\r
7 @rem TODO: turn this into a makefile
\r
9 @rem Setup environment variables
\r
12 @call "C:\Program Files\Microsoft Visual Studio 9.0\VC\bin\vcvars32.bat"
\r
14 @rem We can't use -D___SINGLE_HOST for all Gambit generated C files
\r
15 @rem because the C compiler runs out of memory while compiling _num.c
\r
18 set COMP_GEN=cl -nologo -Oityb1 -Zi -GS -RTC1 -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
20 if not "%1%" == "" (
\r
21 set COMP_GEN=%COMP_GEN% -D___GAMBCDIR=\"%1%\"
\r
24 set COMP_LIB_MH=%COMP_GEN% -D___LIBRARY
\r
25 set COMP_LIB_PR_MH=%COMP_LIB_MH% -D___PRIMAL
\r
26 set COMP_LIB=%COMP_LIB_MH% -D___SINGLE_HOST
\r
27 set COMP_LIB_PR=%COMP_LIB_PR_MH% -D___SINGLE_HOST
\r
28 set COMP_APP=%COMP_GEN% -D___SINGLE_HOST
\r
30 @rem We can't rely on sed being available so we generate gambit.h
\r
31 @rem from gambit.h.in by prefixing it with the needed declarations.
\r
33 echo #ifndef ___VOIDSTAR_WIDTH > include\gambit.h
\r
34 echo #define ___VOIDSTAR_WIDTH ___LONG_WIDTH >> include\gambit.h
\r
35 echo #endif >> include\gambit.h
\r
36 echo #ifndef ___MAX_CHR >> include\gambit.h
\r
37 echo #define ___MAX_CHR 0x10ffff >> include\gambit.h
\r
38 echo #endif >> include\gambit.h
\r
39 type include\gambit.h.in >> include\gambit.h
\r
43 %COMP_LIB_PR% main.c
\r
44 %COMP_LIB_PR% setup.c
\r
47 %COMP_LIB_PR% os_base.c
\r
48 %COMP_LIB_PR% os_time.c
\r
49 %COMP_LIB_PR% os_shell.c
\r
50 %COMP_LIB_PR% os_files.c
\r
51 %COMP_LIB_PR% os_dyn.c
\r
52 %COMP_LIB_PR% os_tty.c
\r
53 %COMP_LIB_PR% os_io.c
\r
54 %COMP_LIB_PR% c_intf.c
\r
56 %COMP_LIB_PR% _kernel.c
\r
57 %COMP_LIB_PR% _system.c
\r
58 %COMP_LIB_PR_MH% _num.c
\r
59 %COMP_LIB_PR% _std.c
\r
60 %COMP_LIB_PR% _eval.c
\r
61 %COMP_LIB_PR_MH% _io.c
\r
62 %COMP_LIB_PR% _nonstd.c
\r
63 %COMP_LIB_PR% _thread.c
\r
64 %COMP_LIB_PR% _repl.c
\r
66 %COMP_LIB_PR% _gambc.c
\r
68 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
74 %COMP_LIB% _gsilib.c
\r
75 %COMP_LIB% _gambcgsi.c
\r
79 cl -Fegsi.exe ..\lib\libgambc.lib _gsilib.obj _gambcgsi.obj _gsi.obj _gsi_.obj Kernel32.Lib User32.Lib Gdi32.Lib WS2_32.Lib
\r
87 %COMP_LIB% _source.c
\r
90 %COMP_LIB% _ptree1.c
\r
91 %COMP_LIB% _ptree2.c
\r
99 %COMP_LIB% _gsclib.c
\r
100 %COMP_LIB% _gambcgsc.c
\r
104 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
110 echo @echo off> gsc-cc-o.bat
\r
111 echo.>> gsc-cc-o.bat
\r
112 echo rem Script parameters are passed in the following environment variables:>> gsc-cc-o.bat
\r
113 echo rem GSC_CC_O_GAMBCDIR_BIN>> gsc-cc-o.bat
\r
114 echo rem GSC_CC_O_GAMBCDIR_INCLUDE>> gsc-cc-o.bat
\r
115 echo rem GSC_CC_O_GAMBCDIR_LIB>> gsc-cc-o.bat
\r
116 echo rem GSC_CC_O_OBJ_FILENAME>> gsc-cc-o.bat
\r
117 echo rem GSC_CC_O_C_FILENAME_DIR>> gsc-cc-o.bat
\r
118 echo rem GSC_CC_O_C_FILENAME_BASE>> gsc-cc-o.bat
\r
119 echo rem GSC_CC_O_CC_OPTIONS>> gsc-cc-o.bat
\r
120 echo rem GSC_CC_O_LD_OPTIONS_PRELUDE>> gsc-cc-o.bat
\r
121 echo rem GSC_CC_O_LD_OPTIONS>> gsc-cc-o.bat
\r
122 echo.>> gsc-cc-o.bat
\r
123 echo rem echo GSC_CC_O_GAMBCDIR_BIN = %%GSC_CC_O_GAMBCDIR_BIN%%>> gsc-cc-o.bat
\r
124 echo rem echo GSC_CC_O_GAMBCDIR_INCLUDE = %%GSC_CC_O_GAMBCDIR_INCLUDE%%>> gsc-cc-o.bat
\r
125 echo rem echo GSC_CC_O_GAMBCDIR_LIB = %%GSC_CC_O_GAMBCDIR_LIB%%>> gsc-cc-o.bat
\r
126 echo rem echo GSC_CC_O_OBJ_FILENAME = %%GSC_CC_O_OBJ_FILENAME%%>> gsc-cc-o.bat
\r
127 echo rem echo GSC_CC_O_C_FILENAME_DIR = %%GSC_CC_O_C_FILENAME_DIR%%>> gsc-cc-o.bat
\r
128 echo rem echo GSC_CC_O_C_FILENAME_BASE = %%GSC_CC_O_C_FILENAME_BASE%%>> gsc-cc-o.bat
\r
129 echo rem echo GSC_CC_O_CC_OPTIONS = %%GSC_CC_O_CC_OPTIONS%%>> gsc-cc-o.bat
\r
130 echo rem echo GSC_CC_O_LD_OPTIONS_PRELUDE = %%GSC_CC_O_LD_OPTIONS_PRELUDE%%>> gsc-cc-o.bat
\r
131 echo rem echo GSC_CC_O_LD_OPTIONS = %%GSC_CC_O_LD_OPTIONS%%>> gsc-cc-o.bat
\r
132 echo.>> gsc-cc-o.bat
\r
133 echo for %%%%f in (cl.exe gcc.exe wcl386.exe) do if not "%%%%~$PATH:f" == "" goto use_%%%%%%f>> gsc-cc-o.bat
\r
134 echo.>> gsc-cc-o.bat
\r
135 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
136 echo exit 1 >> gsc-cc-o.bat
\r
137 echo.>> gsc-cc-o.bat
\r
138 echo :use_gcc.exe>> gsc-cc-o.bat
\r
139 echo cd "%GSC_CC_O_C_FILENAME_DIR%">> gsc-cc-o.bat
\r
140 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
141 echo goto end>> gsc-cc-o.bat
\r
142 echo.>> gsc-cc-o.bat
\r
143 echo :use_wcl386.exe>> gsc-cc-o.bat
\r
144 echo cd "%GSC_CC_O_C_FILENAME_DIR%">> gsc-cc-o.bat
\r
145 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
146 echo goto end>> gsc-cc-o.bat
\r
147 echo.>> gsc-cc-o.bat
\r
148 echo :use_cl.exe>> gsc-cc-o.bat
\r
149 echo cd "%GSC_CC_O_C_FILENAME_DIR%">> gsc-cc-o.bat
\r
150 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
151 echo goto end>> gsc-cc-o.bat
\r
152 echo.>> gsc-cc-o.bat
\r
153 echo :use_build_time_c_compiler>> gsc-cc-o.bat
\r
154 echo cd "%GSC_CC_O_C_FILENAME_DIR%">> gsc-cc-o.bat
\r
155 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
156 echo goto end>> gsc-cc-o.bat
\r
157 echo.>> gsc-cc-o.bat
\r
158 echo :end>> gsc-cc-o.bat
\r
159 echo.>> gsc-cc-o.bat
\r
160 echo exit>> gsc-cc-o.bat
\r