1# Makefile for make7 and gcc from MinGW. Commands executed by: cmd.exe 2# To compile use a Windows console and call: 3# ..\bin\make7 -f mk_mingc.mak depend 4# ..\bin\make7 -f mk_mingc.mak 5# When your make utility uses Unix commands, you should use mk_msys.mak instead. 6# When the nmake utility from Windows is available, you can use mk_nmake.mak instead. 7# When you are using the MSYS console from MinGW you should use mk_msys.mak instead. 8 9# CFLAGS = -O2 -fomit-frame-pointer -funroll-loops -Wall 10# CFLAGS = -O2 -fomit-frame-pointer -Wall -Wstrict-prototypes -Winline -Wconversion -Wshadow -Wpointer-arith 11# CFLAGS = -O2 -g -ffunction-sections -fdata-sections $(INCLUDE_OPTIONS) $(CC_OPT_LINK_TIME_OPTIMIZATION) -Wall -Wstrict-prototypes -Winline -Wconversion -Wshadow -Wpointer-arith 12CFLAGS = -O2 -g -ffunction-sections -fdata-sections $(INCLUDE_OPTIONS) $(CC_OPT_LINK_TIME_OPTIMIZATION) 13# CFLAGS = -O2 -g -pg -Wall -Wstrict-prototypes -Winline -Wconversion -Wshadow -Wpointer-arith 14# CFLAGS = -O2 -Wall -Wstrict-prototypes -Winline -Wconversion -Wshadow -Wpointer-arith 15# CFLAGS = -O2 -pg -Wall -Wstrict-prototypes -Winline -Wconversion -Wshadow -Wpointer-arith 16# CFLAGS = -O2 -funroll-loops -Wall -pg 17LDFLAGS = -Wl,--gc-sections,--stack,8388608 18# LDFLAGS = -Wl,--gc-sections,--stack,8388608,--subsystem,windows 19# LDFLAGS = -pg 20# LDFLAGS = -pg -lc_p 21SYSTEM_LIBS = -lws2_32 22# SYSTEM_LIBS = -lm -lws2_32 -lgmp 23# SYSTEM_BIGINT_LIBS is defined in the file "macros". The program chkccomp.c writes it to "macros" when doing "make depend". 24SYSTEM_CONSOLE_LIBS = 25# SYSTEM_DATABASE_LIBS is defined in the file "macros". The program chkccomp.c writes it to "macros" when doing "make depend". 26SYSTEM_DRAW_LIBS = -lgdi32 27SYSTEM_MATH_LIBS = -lm 28ALL_SYSTEM_LIBS = $(SYSTEM_LIBS) $(SYSTEM_BIGINT_LIBS) $(SYSTEM_CONSOLE_LIBS) $(SYSTEM_DATABASE_LIBS) $(SYSTEM_DRAW_LIBS) $(SYSTEM_MATH_LIBS) 29SEED7_LIB = seed7_05.a 30DRAW_LIB = s7_draw.a 31CONSOLE_LIB = s7_con.a 32DATABASE_LIB = s7_db.a 33COMP_DATA_LIB = s7_data.a 34COMPILER_LIB = s7_comp.a 35ALL_S7_LIBS = ..\bin\$(COMPILER_LIB) ..\bin\$(COMP_DATA_LIB) ..\bin\$(DRAW_LIB) ..\bin\$(CONSOLE_LIB) ..\bin\$(DATABASE_LIB) ..\bin\$(SEED7_LIB) 36# CC = g++ 37CC = ..\bin\call_gcc 38AR = ..\bin\call_ar 39 40MOBJ = s7.o 41POBJ = runerr.o option.o primitiv.o 42LOBJ = actlib.o arrlib.o biglib.o binlib.o blnlib.o bstlib.o chrlib.o cmdlib.o conlib.o dcllib.o \ 43 drwlib.o enulib.o fillib.o fltlib.o hshlib.o intlib.o itflib.o kbdlib.o lstlib.o pcslib.o \ 44 pollib.o prclib.o prglib.o reflib.o rfllib.o sctlib.o setlib.o soclib.o sqllib.o strlib.o \ 45 timlib.o typlib.o ut8lib.o 46EOBJ = exec.o doany.o objutl.o 47AOBJ = act_comp.o prg_comp.o analyze.o syntax.o token.o parser.o name.o type.o \ 48 expr.o atom.o object.o scanner.o literal.o numlit.o findid.o \ 49 error.o infile.o libpath.o symbol.o info.o stat.o fatal.o match.o 50GOBJ = syvarutl.o traceutl.o actutl.o executl.o blockutl.o \ 51 entutl.o identutl.o chclsutl.o arrutl.o 52ROBJ = arr_rtl.o bln_rtl.o bst_rtl.o chr_rtl.o cmd_rtl.o con_rtl.o dir_rtl.o drw_rtl.o fil_rtl.o \ 53 flt_rtl.o hsh_rtl.o int_rtl.o itf_rtl.o pcs_rtl.o set_rtl.o soc_rtl.o sql_rtl.o str_rtl.o \ 54 tim_rtl.o ut8_rtl.o heaputl.o numutl.o sigutl.o striutl.o 55DOBJ = big_rtl.o big_gmp.o cmd_win.o dir_win.o dll_win.o fil_win.o pcs_win.o pol_sel.o soc_none.o \ 56 stat_win.o tim_win.o 57OBJ = $(MOBJ) 58SEED7_LIB_OBJ = $(ROBJ) $(DOBJ) 59DRAW_LIB_OBJ = gkb_rtl.o drw_win.o gkb_win.o 60CONSOLE_LIB_OBJ = kbd_rtl.o con_win.o 61DATABASE_LIB_OBJ = sql_base.o sql_db2.o sql_fire.o sql_lite.o sql_my.o sql_oci.o sql_odbc.o \ 62 sql_post.o sql_srv.o sql_tds.o 63COMP_DATA_LIB_OBJ = typ_data.o rfl_data.o ref_data.o listutl.o flistutl.o typeutl.o datautl.o 64COMPILER_LIB_OBJ = $(POBJ) $(LOBJ) $(EOBJ) $(AOBJ) $(GOBJ) 65 66MSRC = s7.c 67PSRC = runerr.c option.c primitiv.c 68LSRC = actlib.c arrlib.c biglib.c binlib.c blnlib.c bstlib.c chrlib.c cmdlib.c conlib.c dcllib.c \ 69 drwlib.c enulib.c fillib.c fltlib.c hshlib.c intlib.c itflib.c kbdlib.c lstlib.c pcslib.c \ 70 pollib.c prclib.c prglib.c reflib.c rfllib.c sctlib.c setlib.c soclib.c sqllib.c strlib.c \ 71 timlib.c typlib.c ut8lib.c 72ESRC = exec.c doany.c objutl.c 73ASRC = act_comp.c prg_comp.c analyze.c syntax.c token.c parser.c name.c type.c \ 74 expr.c atom.c object.c scanner.c literal.c numlit.c findid.c \ 75 error.c infile.c libpath.c symbol.c info.c stat.c fatal.c match.c 76GSRC = syvarutl.c traceutl.c actutl.c executl.c blockutl.c \ 77 entutl.c identutl.c chclsutl.c arrutl.c 78RSRC = arr_rtl.c bln_rtl.c bst_rtl.c chr_rtl.c cmd_rtl.c con_rtl.c dir_rtl.c drw_rtl.c fil_rtl.c \ 79 flt_rtl.c hsh_rtl.c int_rtl.c itf_rtl.c pcs_rtl.c set_rtl.c soc_rtl.c sql_rtl.c str_rtl.c \ 80 tim_rtl.c ut8_rtl.c heaputl.c numutl.c sigutl.c striutl.c 81DSRC = big_rtl.c big_gmp.c cmd_win.c dir_win.c dll_win.c fil_win.c pcs_win.c pol_sel.c soc_none.c \ 82 stat_win.c tim_win.c 83SRC = $(MSRC) 84SEED7_LIB_SRC = $(RSRC) $(DSRC) 85DRAW_LIB_SRC = gkb_rtl.c drw_win.c gkb_win.c 86CONSOLE_LIB_SRC = kbd_rtl.c con_win.c 87DATABASE_LIB_SRC_STD_INCL = sql_base.c sql_fire.c sql_lite.c sql_my.c sql_oci.c sql_odbc.c \ 88 sql_post.c sql_tds.c 89DATABASE_LIB_SRC = $(DATABASE_LIB_SRC_STD_INCL) sql_db2.c sql_srv.c 90COMP_DATA_LIB_SRC = typ_data.c rfl_data.c ref_data.c listutl.c flistutl.c typeutl.c datautl.c 91COMPILER_LIB_SRC = $(PSRC) $(LSRC) $(ESRC) $(ASRC) $(GSRC) 92 93s7: ..\bin\s7.exe ..\prg\s7.exe 94 ..\bin\s7 -l ..\lib level 95 96s7c: ..\bin\s7c.exe ..\prg\s7c.exe 97 98..\bin\s7.exe: levelup.exe next_lvl $(OBJ) $(ALL_S7_LIBS) 99 $(CC) $(LDFLAGS) $(OBJ) $(ALL_S7_LIBS) $(ALL_SYSTEM_LIBS) -o ..\bin\s7 100 del next_lvl 101 102..\prg\s7.exe: ..\bin\s7.exe 103 copy ..\bin\s7.exe ..\prg /Y 104 105..\bin\s7c.exe: ..\prg\s7c.exe 106 copy ..\prg\s7c.exe ..\bin /Y 107 108..\prg\s7c.exe: ..\prg\s7c.sd7 $(ALL_S7_LIBS) 109 ..\bin\s7 -l ..\lib ..\prg\s7c -l ..\lib -b ..\bin -O2 ..\prg\s7c 110 111levelup.exe: levelup.c 112 $(CC) levelup.c -w -o levelup 113 114next_lvl: levelup.exe 115 .\levelup.exe 116 echo X > next_lvl 117 118sql_db2.o: sql_db2.c 119 $(CC) -c $(CPPFLAGS) $(DB2_INCLUDE_OPTION) $(CFLAGS) $< 120 121sql_srv.o: sql_srv.c 122 $(CC) -c $(CPPFLAGS) $(SQL_SERVER_INCLUDE_OPTION) $(CFLAGS) $< 123 124all: depend 125 $(MAKE) -f mk_mingc.mak s7 s7c 126 127clear: clean 128 129clean: 130 del *.o 131 del ..\bin\*.a 132 del ..\bin\s7.exe 133 del ..\bin\s7c.exe 134 del ..\prg\s7.exe 135 del ..\prg\s7c.exe 136 del depend 137 del macros 138 del chkccomp.h 139 del base.h 140 del settings.h 141 del version.h 142 del setwpath.exe 143 del wrdepend.exe 144 del sudo.exe 145 del levelup.exe 146 del next_lvl 147 148clean_utils: 149 del ..\bin\bas7.exe 150 del ..\bin\bigfiles.exe 151 del ..\bin\calc7.exe 152 del ..\bin\cat.exe 153 del ..\bin\comanche.exe 154 del ..\bin\db7.exe 155 del ..\bin\diff7.exe 156 del ..\bin\find7.exe 157 del ..\bin\findchar.exe 158 del ..\bin\ftp7.exe 159 del ..\bin\ftpserv.exe 160 del ..\bin\hd.exe 161 del ..\bin\ide7.exe 162 del ..\bin\make7.exe 163 del ..\bin\pv7.exe 164 del ..\bin\sql7.exe 165 del ..\bin\sydir7.exe 166 del ..\bin\tar7.exe 167 del ..\bin\toutf8.exe 168 del ..\bin\which.exe 169 170distclean: clean clean_utils 171 copy level_bk.h level.h /Y 172 del vers_mingc.h 173 174test: 175 ..\bin\s7 -l ..\lib ..\prg\chk_all build 176 177install: setwpath.exe 178 .\sudo .\setwpath.exe add ..\bin 179 180uninstall: setwpath.exe 181 .\sudo .\setwpath.exe remove ..\bin 182 183dep: depend 184 185strip: 186 strip ..\bin\s7.exe 187 188chkccomp.h: 189 echo #define LIST_DIRECTORY_CONTENTS "dir" > chkccomp.h 190 echo #define TEST_C_COMPILER "../bin/call_gcc" >> chkccomp.h 191 echo #define LINKER_OPT_STATIC_LINKING "-static" >> chkccomp.h 192 echo #define CC_OPT_LINK_TIME_OPTIMIZATION "-flto" >> chkccomp.h 193 echo #define LINKER_OPT_NO_LTO "-fno-lto" >> chkccomp.h 194 echo #define POSTGRESQL_USE_DLL >> chkccomp.h 195 196base.h: 197 echo #define PATH_DELIMITER '\\' > base.h 198 echo #define OS_STRI_WCHAR >> base.h 199 echo #define QUOTE_WHOLE_SHELL_COMMAND >> base.h 200 echo #define OBJECT_FILE_EXTENSION ".o" >> base.h 201 echo #define EXECUTABLE_FILE_EXTENSION ".exe" >> base.h 202 echo #define C_COMPILER_SCRIPT "call_gcc" >> base.h 203 echo #define CC_OPT_VERSION_INFO "--version" >> base.h 204 echo #define CC_FLAGS "-ffunction-sections -fdata-sections" >> base.h 205 echo #define CC_ERROR_FILEDES 2 >> base.h 206 echo #define CC_VERSION_INFO_FILEDES 1 >> base.h 207 echo #define LINKER_OPT_OUTPUT_FILE "-o " >> base.h 208 echo #define ARCHIVER "..\\bin\\call_ar" >> base.h 209 echo #define ARCHIVER_OPT_REPLACE "r " >> base.h 210 echo #define FORMAT_LL_TRIGGERS_WARNINGS 1 >> base.h 211 echo #define SYSTEM_LIBS "$(SYSTEM_LIBS)" >> base.h 212 echo #define SYSTEM_MATH_LIBS "$(SYSTEM_MATH_LIBS)" >> base.h 213 214settings.h: 215 echo #define MAKE_UTILITY_NAME "$(MAKE)" > settings.h 216 echo #define MAKEFILE_NAME "mk_mingc.mak" >> settings.h 217 echo #define SEARCH_PATH_DELIMITER ';' >> settings.h 218 echo #define CONSOLE_WCHAR >> settings.h 219 echo #define os_getch _getwch >> settings.h 220 echo #define LIBRARY_FILE_EXTENSION ".a" >> settings.h 221 echo #define CC_OPT_DEBUG_INFO "-g" >> settings.h 222 echo #define CC_OPT_NO_WARNINGS "-w" >> settings.h 223 echo #define LINKER_OPT_NO_DEBUG_INFO "-Wl,--strip-debug" >> settings.h 224 echo #define LINKER_FLAGS "$(LDFLAGS)" >> settings.h 225 echo #define SYSTEM_CONSOLE_LIBS "$(SYSTEM_CONSOLE_LIBS)" >> settings.h 226 echo #define SYSTEM_DRAW_LIBS "$(SYSTEM_DRAW_LIBS)" >> settings.h 227 echo #define SEED7_LIB "$(SEED7_LIB)" >> settings.h 228 echo #define DRAW_LIB "$(DRAW_LIB)" >> settings.h 229 echo #define CONSOLE_LIB "$(CONSOLE_LIB)" >> settings.h 230 echo #define DATABASE_LIB "$(DATABASE_LIB)" >> settings.h 231 echo #define COMP_DATA_LIB "$(COMP_DATA_LIB)" >> settings.h 232 echo #define COMPILER_LIB "$(COMPILER_LIB)" >> settings.h 233 234version.h: chkccomp.h base.h settings.h 235 $(CC) chkccomp.c -w -o chkccomp 236 .\chkccomp.exe version.h 237 del chkccomp.exe 238 $(CC) setpaths.c -w -o setpaths 239 .\setpaths.exe "S7_LIB_DIR=$(S7_LIB_DIR)" "SEED7_LIBRARY=$(SEED7_LIBRARY)" >> version.h 240 del setpaths.exe 241 $(CC) setwpath.c -w -o setwpath 242 $(CC) wrdepend.c -w -o wrdepend 243 $(CC) sudo.c -w -o sudo 244 copy version.h vers_mingc.h /Y 245 246depend: version.h 247 .\wrdepend.exe OPTION=INCLUDE_OPTIONS $(CFLAGS) -M $(SRC) "> depend" 248 .\wrdepend.exe OPTION=INCLUDE_OPTIONS $(CFLAGS) -M $(SEED7_LIB_SRC) ">> depend" 249 .\wrdepend.exe OPTION=INCLUDE_OPTIONS $(CFLAGS) -M $(DRAW_LIB_SRC) ">> depend" 250 .\wrdepend.exe OPTION=INCLUDE_OPTIONS $(CFLAGS) -M $(CONSOLE_LIB_SRC) ">> depend" 251 .\wrdepend.exe OPTION=INCLUDE_OPTIONS $(CFLAGS) -M $(DATABASE_LIB_SRC_STD_INCL) ">> depend" 252 .\wrdepend.exe OPTION=DB2_INCLUDE_OPTION $(CFLAGS) -M sql_db2.c ">> depend" 253 .\wrdepend.exe OPTION=SQL_SERVER_INCLUDE_OPTION $(CFLAGS) -M sql_srv.c ">> depend" 254 .\wrdepend.exe OPTION=INCLUDE_OPTIONS $(CFLAGS) -M $(COMP_DATA_LIB_SRC) ">> depend" 255 .\wrdepend.exe OPTION=INCLUDE_OPTIONS $(CFLAGS) -M $(COMPILER_LIB_SRC) ">> depend" 256 257..\bin\$(SEED7_LIB): $(SEED7_LIB_OBJ) 258 $(AR) r ..\bin\$(SEED7_LIB) $(SEED7_LIB_OBJ) 259 260..\bin\$(DRAW_LIB): $(DRAW_LIB_OBJ) 261 $(AR) r ..\bin\$(DRAW_LIB) $(DRAW_LIB_OBJ) 262 263..\bin\$(CONSOLE_LIB): $(CONSOLE_LIB_OBJ) 264 $(AR) r ..\bin\$(CONSOLE_LIB) $(CONSOLE_LIB_OBJ) 265 266..\bin\$(DATABASE_LIB): $(DATABASE_LIB_OBJ) 267 $(AR) r ..\bin\$(DATABASE_LIB) $(DATABASE_LIB_OBJ) 268 269..\bin\$(COMP_DATA_LIB): $(COMP_DATA_LIB_OBJ) 270 $(AR) r ..\bin\$(COMP_DATA_LIB) $(COMP_DATA_LIB_OBJ) 271 272..\bin\$(COMPILER_LIB): $(COMPILER_LIB_OBJ) 273 $(AR) r ..\bin\$(COMPILER_LIB) $(COMPILER_LIB_OBJ) 274 275..\bin\%.exe: ..\prg\%.sd7 ..\bin\s7c.exe 276 ..\bin\s7c.exe -l ..\lib -b ..\bin -O3 -oc3 $< 277 move /Y $(<:.sd7=.exe) ..\bin 278 279bas7: ..\bin\bas7.exe 280bigfiles: ..\bin\bigfiles.exe 281calc7: ..\bin\calc7.exe 282cat: ..\bin\cat.exe 283comanche: ..\bin\comanche.exe 284db7: ..\bin\db7.exe 285diff7: ..\bin\diff7.exe 286find7: ..\bin\find7.exe 287findchar: ..\bin\findchar.exe 288ftp7: ..\bin\ftp7.exe 289ftpserv: ..\bin\ftpserv.exe 290hd: ..\bin\hd.exe 291ide7: ..\bin\ide7.exe 292make7: ..\bin\make7.exe 293pv7: ..\bin\pv7.exe 294sql7: ..\bin\sql7.exe 295sydir7: ..\bin\sydir7.exe 296tar7: ..\bin\tar7.exe 297toutf8: ..\bin\toutf8.exe 298which: ..\bin\which.exe 299 300utils: ..\bin\bas7.exe ..\bin\bigfiles.exe ..\bin\calc7.exe ..\bin\cat.exe ..\bin\comanche.exe ..\bin\db7.exe \ 301 ..\bin\diff7.exe ..\bin\find7.exe ..\bin\findchar.exe ..\bin\ftp7.exe ..\bin\ftpserv.exe ..\bin\hd.exe ..\bin\ide7.exe \ 302 ..\bin\make7.exe ..\bin\pv7.exe ..\bin\sql7.exe ..\bin\sydir7.exe ..\bin\tar7.exe ..\bin\toutf8.exe ..\bin\which.exe 303 304wc: $(SRC) 305 @echo SRC: 306 wc $(SRC) 307 @echo SEED7_LIB_SRC: 308 wc $(SEED7_LIB_SRC) 309 @echo DRAW_LIB_SRC: 310 wc $(DRAW_LIB_SRC) 311 @echo CONSOLE_LIB_SRC: 312 wc $(CONSOLE_LIB_SRC) 313 @echo DATABASE_LIB_SRC: 314 wc $(DATABASE_LIB_SRC) 315 @echo COMP_DATA_LIB_SRC: 316 wc $(COMP_DATA_LIB_SRC) 317 @echo COMPILER_LIB_SRC: 318 wc $(COMPILER_LIB_SRC) 319 320lint: $(SRC) 321 lint -p $(SRC) $(ALL_SYSTEM_LIBS) 322 323lint2: $(SRC) 324 lint -Zn2048 $(SRC) $(ALL_SYSTEM_LIBS) 325 326ifeq (depend,$(wildcard depend)) 327include depend 328endif 329 330ifeq (macros,$(wildcard macros)) 331include macros 332endif 333