2 # Makefile for Regina REXX Interpreter using Watcom C++ 10.6
8 #YACC = bison -ly #-d #-lyt
12 #LL = -L/store/lib -lfl
93 DLLFILE=$(DLLBASE).dll
94 IMPFILE=$(DLLBASE).lib
104 LDFLAGS = DEBUG WATCOM ALL
106 CFLAGS = /DNDEBUG /oneatx
110 CPPFLAGS = /DFGC /DOS2 /i=c:\h /i=c:\h\os2 /i=$(SRC)
112 DYN_CFLAGS = /DDYNAMIC
114 CCFLAGS = /4s /wx /zq /mf $(CFLAGS) $(CPPFLAGS)
121 HFILES = $(SRC)rexx.h $(SRC)defs.h $(SRC)extern.h $(SRC)types.h $(SRC)configur.h $(SRC)strings.h
123 all : rexx.exe $(LIBFILE) regina.exe test1.dll test2.dll execiser.exe
125 rexx.exe : $(OFILES) rexx.obj
127 @%append dummy.lnk option quiet
128 @%append dummy.lnk option caseexact
129 @%append dummy.lnk system $(TARGET)
130 @%append dummy.lnk name rexx.exe
131 @%append dummy.lnk file rexx.obj
132 @%append dummy.lnk file funcs.obj
133 @%append dummy.lnk file builtin.obj
134 @%append dummy.lnk file error.obj
135 @%append dummy.lnk file variable.obj
136 @%append dummy.lnk file interprt.obj
137 @%append dummy.lnk file debug.obj
138 @%append dummy.lnk file dbgfuncs.obj
139 @%append dummy.lnk file memory.obj
140 @%append dummy.lnk file parsing.obj
141 @%append dummy.lnk file files.obj
142 @%append dummy.lnk file misc.obj
143 @%append dummy.lnk file unxfuncs.obj
144 @%append dummy.lnk file os2funcs.obj
145 @%append dummy.lnk file cmsfuncs.obj
146 @%append dummy.lnk file shell.obj
147 @%append dummy.lnk file rexxext.obj
148 @%append dummy.lnk file stack.obj
149 @%append dummy.lnk file tracing.obj
150 @%append dummy.lnk file interp.obj
151 @%append dummy.lnk file cmath.obj
152 @%append dummy.lnk file convert.obj
153 @%append dummy.lnk file strings.obj
154 @%append dummy.lnk file library.obj
155 @%append dummy.lnk file strmath.obj
156 @%append dummy.lnk file signals.obj
157 @%append dummy.lnk file macros.obj
158 @%append dummy.lnk file envir.obj
159 @%append dummy.lnk file expr.obj
160 @%append dummy.lnk file extlib.obj
161 @%append dummy.lnk file yaccsrc.obj
162 @%append dummy.lnk file lexsrc.obj
163 @%append dummy.lnk file wrappers.obj
164 @%append dummy.lnk file options.obj
165 @%append dummy.lnk file doscmd.obj
166 $(LINK) $(LDFLAGS) @dummy.lnk
169 regina.exe : $(IMPFILE) regina.obj
171 @%append dummy.lnk option quiet
172 @%append dummy.lnk option caseexact
173 @%append dummy.lnk system $(TARGET)
174 @%append dummy.lnk name regina.exe
175 @%append dummy.lnk file regina.obj
176 @%append dummy.lnk file .\$(IMPFILE)
177 $(LINK) $(LDFLAGS) @dummy.lnk
180 execiser.exe : $(IMPFILE) execiser.obj
182 @%append dummy.lnk option quiet
183 @%append dummy.lnk option caseexact
184 @%append dummy.lnk system $(TARGET)
185 @%append dummy.lnk name execiser.exe
186 @%append dummy.lnk file execiser.obj
187 @%append dummy.lnk file .\$(IMPFILE)
188 $(LINK) $(LDFLAGS) @dummy.lnk
191 $(LIBFILE): $(OFILES) client.obj drexx.obj rexxsaa.obj
193 @%append lib.rsp +client.obj
194 @%append lib.rsp +drexx.obj
195 @%append lib.rsp +rexxsaa.obj
196 @%append lib.rsp +funcs.obj
197 @%append lib.rsp +builtin.obj
198 @%append lib.rsp +error.obj
199 @%append lib.rsp +variable.obj
200 @%append lib.rsp +interprt.obj
201 @%append lib.rsp +debug.obj
202 @%append lib.rsp +dbgfuncs.obj
203 @%append lib.rsp +memory.obj
204 @%append lib.rsp +parsing.obj
205 @%append lib.rsp +files.obj
206 @%append lib.rsp +misc.obj
207 @%append lib.rsp +unxfuncs.obj
208 @%append lib.rsp +os2funcs.obj
209 @%append lib.rsp +cmsfuncs.obj
210 @%append lib.rsp +shell.obj
211 @%append lib.rsp +rexxext.obj
212 @%append lib.rsp +stack.obj
213 @%append lib.rsp +tracing.obj
214 @%append lib.rsp +interp.obj
215 @%append lib.rsp +cmath.obj
216 @%append lib.rsp +convert.obj
217 @%append lib.rsp +strings.obj
218 @%append lib.rsp +library.obj
219 @%append lib.rsp +strmath.obj
220 @%append lib.rsp +signals.obj
221 @%append lib.rsp +macros.obj
222 @%append lib.rsp +envir.obj
223 @%append lib.rsp +expr.obj
224 @%append lib.rsp +extlib.obj
225 @%append lib.rsp +yaccsrc.obj
226 @%append lib.rsp +lexsrc.obj
227 @%append lib.rsp +wrappers.obj
228 @%append lib.rsp +options.obj
229 @%append lib.rsp +doscmd.obj
230 $(LIBEXE) $(LIBFLAGS) $@ @lib.rsp
233 $(DLLFILE): $(DLOFILES) client.dlo drexx.dlo rexxsaa.dlo
235 @%append dummy.lnk option quiet
236 @%append dummy.lnk option caseexact
237 @%append dummy.lnk system $(TARGET) dll
238 @%append dummy.lnk name $(DLLFILE)
239 @%append dummy.lnk file client.dlo
240 @%append dummy.lnk file drexx.dlo
241 @%append dummy.lnk file rexxsaa.dlo
242 @%append dummy.lnk file funcs.dlo
243 @%append dummy.lnk file builtin.dlo
244 @%append dummy.lnk file error.dlo
245 @%append dummy.lnk file variable.dlo
246 @%append dummy.lnk file interprt.dlo
247 @%append dummy.lnk file debug.dlo
248 @%append dummy.lnk file dbgfuncs.dlo
249 @%append dummy.lnk file memory.dlo
250 @%append dummy.lnk file parsing.dlo
251 @%append dummy.lnk file files.dlo
252 @%append dummy.lnk file misc.dlo
253 @%append dummy.lnk file unxfuncs.dlo
254 @%append dummy.lnk file os2funcs.dlo
255 @%append dummy.lnk file cmsfuncs.dlo
256 @%append dummy.lnk file shell.dlo
257 @%append dummy.lnk file rexxext.dlo
258 @%append dummy.lnk file stack.dlo
259 @%append dummy.lnk file tracing.dlo
260 @%append dummy.lnk file interp.dlo
261 @%append dummy.lnk file cmath.dlo
262 @%append dummy.lnk file convert.dlo
263 @%append dummy.lnk file strings.dlo
264 @%append dummy.lnk file library.dlo
265 @%append dummy.lnk file strmath.dlo
266 @%append dummy.lnk file signals.dlo
267 @%append dummy.lnk file macros.dlo
268 @%append dummy.lnk file envir.dlo
269 @%append dummy.lnk file expr.dlo
270 @%append dummy.lnk file extlib.dlo
271 @%append dummy.lnk file yaccsrc.dlo
272 @%append dummy.lnk file lexsrc.dlo
273 @%append dummy.lnk file wrappers.dlo
274 @%append dummy.lnk file options.dlo
275 @%append dummy.lnk file doscmd.dlo
276 @%append dummy.lnk export RexxAllocateMemory
277 @%append dummy.lnk export RexxDeregisterExit
278 @%append dummy.lnk export RexxDeregisterFunction
279 @%append dummy.lnk export RexxDeregisterSubcom
280 @%append dummy.lnk export RexxFreeMemory
281 @%append dummy.lnk export RexxQueryFunction
282 @%append dummy.lnk export RexxQuerySubcom
283 @%append dummy.lnk export RexxRegisterExitExe
284 @%append dummy.lnk export RexxRegisterFunctionDll
285 @%append dummy.lnk export RexxRegisterFunctionExe
286 @%append dummy.lnk export RexxRegisterSubcomDll
287 @%append dummy.lnk export RexxRegisterSubcomExe
288 @%append dummy.lnk export RexxStart
289 @%append dummy.lnk export RexxVariablePool
290 @%append dummy.lnk export ReginaVersion
291 @%append dummy.lnk export __regina_faked_main
292 $(LINK) $(LDFLAGS) @dummy.lnk
295 $(DLLTEST1): test1.dlo $(IMPFILE)
297 @%append dummy.lnk option quiet
298 @%append dummy.lnk option caseexact
299 @%append dummy.lnk system $(TARGET) dll
300 @%append dummy.lnk name $(DLLTEST1)
301 @%append dummy.lnk file test1.dlo
302 @%append dummy.lnk export Test1Function1
303 @%append dummy.lnk export Test1Function2
304 @%append dummy.lnk export Test1LoadFuncs
305 @%append dummy.lnk export Test1DropFuncs
306 @%append dummy.lnk library $(IMPFILE)
307 $(LINK) $(LDFLAGS) @dummy.lnk
310 $(DLLTEST2): test2.dlo $(IMPFILE)
312 @%append dummy.lnk option quiet
313 @%append dummy.lnk option caseexact
314 @%append dummy.lnk system $(TARGET) dll
315 @%append dummy.lnk name $(DLLTEST2)
316 @%append dummy.lnk file test2.dlo
317 @%append dummy.lnk export Test2Function1
318 @%append dummy.lnk export Test2Function2
319 @%append dummy.lnk export Test2LoadFuncs
320 @%append dummy.lnk export Test2DropFuncs
321 @%append dummy.lnk library $(IMPFILE)
322 $(LINK) $(LDFLAGS) @dummy.lnk
325 $(IMPFILE): $(DLLFILE)
326 $(LIBEXE) $(LIBFLAGS) $(DLLBASE) +$(DLLFILE)
329 # rules for making normal object files
331 funcs.obj: $(SRC)funcs.c $(HFILES)
332 $(CC) $(CCFLAGS) /fo=$@ $(SRC)$*.c
334 builtin.obj: $(SRC)builtin.c $(HFILES)
335 $(CC) $(CCFLAGS) /fo=$@ $(SRC)$*.c
337 error.obj: $(SRC)error.c $(HFILES)
338 $(CC) $(CCFLAGS) /fo=$@ $(SRC)$*.c
340 variable.obj: $(SRC)variable.c $(HFILES)
341 $(CC) $(CCFLAGS) /fo=$@ $(SRC)$*.c
343 interprt.obj: $(SRC)interprt.c $(HFILES)
344 $(CC) $(CCFLAGS) /fo=$@ $(SRC)$*.c
346 debug.obj: $(SRC)debug.c $(HFILES)
347 $(CC) $(CCFLAGS) /fo=$@ $(SRC)$*.c
349 dbgfuncs.obj: $(SRC)dbgfuncs.c $(HFILES)
350 $(CC) $(CCFLAGS) /fo=$@ $(SRC)$*.c
352 memory.obj: $(SRC)memory.c $(HFILES)
353 $(CC) $(CCFLAGS) /fo=$@ $(SRC)$*.c
355 parsing.obj: $(SRC)parsing.c $(HFILES)
356 $(CC) $(CCFLAGS) /fo=$@ $(SRC)$*.c
358 files.obj: $(SRC)files.c $(HFILES)
359 $(CC) $(CCFLAGS) /fo=$@ $(SRC)$*.c
361 misc.obj: $(SRC)misc.c $(HFILES)
362 $(CC) $(CCFLAGS) /fo=$@ $(SRC)$*.c
364 unxfuncs.obj: $(SRC)unxfuncs.c $(HFILES)
365 $(CC) $(CCFLAGS) /fo=$@ $(SRC)$*.c
367 os2funcs.obj: $(SRC)os2funcs.c $(HFILES)
368 $(CC) $(CCFLAGS) /fo=$@ $(SRC)$*.c
370 cmsfuncs.obj: $(SRC)cmsfuncs.c $(HFILES)
371 $(CC) $(CCFLAGS) /fo=$@ $(SRC)$*.c
373 shell.obj: $(SRC)shell.c $(HFILES)
374 $(CC) $(CCFLAGS) /fo=$@ $(SRC)$*.c
376 rexxext.obj: $(SRC)rexxext.c $(HFILES)
377 $(CC) $(CCFLAGS) /fo=$@ $(SRC)$*.c
379 stack.obj: $(SRC)stack.c $(HFILES)
380 $(CC) $(CCFLAGS) /fo=$@ $(SRC)$*.c
382 tracing.obj: $(SRC)tracing.c $(HFILES)
383 $(CC) $(CCFLAGS) /fo=$@ $(SRC)$*.c
385 interp.obj: $(SRC)interp.c $(HFILES)
386 $(CC) $(CCFLAGS) /fo=$@ $(SRC)$*.c
388 cmath.obj: $(SRC)cmath.c $(HFILES)
389 $(CC) $(CCFLAGS) /fo=$@ $(SRC)$*.c
391 convert.obj: $(SRC)convert.c $(HFILES)
392 $(CC) $(CCFLAGS) /fo=$@ $(SRC)$*.c
394 strings.obj: $(SRC)strings.c $(HFILES)
395 $(CC) $(CCFLAGS) /fo=$@ $(SRC)$*.c
397 library.obj: $(SRC)library.c $(HFILES)
398 $(CC) $(CCFLAGS) /fo=$@ $(SRC)$*.c
400 strmath.obj: $(SRC)strmath.c $(HFILES)
401 $(CC) $(CCFLAGS) /fo=$@ $(SRC)$*.c
403 signals.obj: $(SRC)signals.c $(HFILES)
404 $(CC) $(CCFLAGS) /fo=$@ $(SRC)$*.c
406 macros.obj: $(SRC)macros.c $(HFILES)
407 $(CC) $(CCFLAGS) /fo=$@ $(SRC)$*.c
409 envir.obj: $(SRC)envir.c $(HFILES)
410 $(CC) $(CCFLAGS) /fo=$@ $(SRC)$*.c
412 expr.obj: $(SRC)expr.c $(HFILES)
413 $(CC) $(CCFLAGS) /fo=$@ $(SRC)$*.c
415 extlib.obj: $(SRC)extlib.c $(HFILES)
416 $(CC) $(CCFLAGS) /fo=$@ $(SRC)$*.c
418 wrappers.obj: $(SRC)wrappers.c $(HFILES)
419 $(CC) $(CCFLAGS) /fo=$@ $(SRC)$*.c
421 options.obj: $(SRC)options.c $(HFILES)
422 $(CC) $(CCFLAGS) /fo=$@ $(SRC)$*.c
424 doscmd.obj: $(SRC)doscmd.c $(HFILES)
425 $(CC) $(CCFLAGS) /fo=$@ $(SRC)$*.c
427 rexx.obj: $(SRC)rexx.c $(HFILES)
428 $(CC) $(CCFLAGS) /fo=$@ $(SRC)$*.c
430 lexsrc.obj : $(SRC)lexsrc.c $(SRC)yaccsrc.h $(SRC)rexx.h
431 $(CC) $(CCFLAGS) /fo=$@ $(SRC)$*.c
435 # $(MV) lex.yy.c lexsrc.c
437 yaccsrc.obj: $(SRC)yaccsrc.c $(SRC)defs.h $(SRC)rexx.h
438 $(CC) $(CCFLAGS) /DYYMAXDEPTH=10000 /fo=$@ $(SRC)$*.c
440 #yaccsrc.c yaccsrc.h : yaccsrc.y
441 # $(YACC) -dv yaccsrc.y
442 # $(MV) y.tab.h yaccsrc.h
443 # $(MV) y.tab.c yaccsrc.c
445 drexx.obj: $(SRC)rexx.c $(HFILES)
446 $(CC) $(CCFLAGS) /fo=drexx.obj -DRXLIB $(SRC)rexx.c
448 client.obj: $(SRC)client.c $(HFILES) $(SRC)rexxsaa.h $(SRC)rxiface.h
449 $(CC) $(CCFLAGS) /fo=$@ $(SRC)$*.c
451 rexxsaa.obj: $(SRC)rexxsaa.c $(HFILES) $(SRC)rexxsaa.h $(SRC)rxiface.h
452 $(CC) $(CCFLAGS) /fo=$@ $(SRC)$*.c
455 # rules for DLL objects
457 funcs.dlo: $(SRC)funcs.c $(HFILES)
458 $(CC) $(CCFLAGS) /bd /fo=$*.dlo $(SRC)$*.c
460 builtin.dlo: $(SRC)builtin.c $(HFILES)
461 $(CC) $(CCFLAGS) /bd /fo=$*.dlo $(SRC)$*.c
463 error.dlo: $(SRC)error.c $(HFILES)
464 $(CC) $(CCFLAGS) /bd /fo=$*.dlo $(SRC)$*.c
466 variable.dlo: $(SRC)variable.c $(HFILES)
467 $(CC) $(CCFLAGS) /bd /fo=$*.dlo $(SRC)$*.c
469 interprt.dlo: $(SRC)interprt.c $(HFILES)
470 $(CC) $(CCFLAGS) /bd /fo=$*.dlo $(SRC)$*.c
472 debug.dlo: $(SRC)debug.c $(HFILES)
473 $(CC) $(CCFLAGS) /bd /fo=$*.dlo $(SRC)$*.c
475 dbgfuncs.dlo: $(SRC)dbgfuncs.c $(HFILES)
476 $(CC) $(CCFLAGS) /bd /fo=$*.dlo $(SRC)$*.c
478 memory.dlo: $(SRC)memory.c $(HFILES)
479 $(CC) $(CCFLAGS) /bd /fo=$*.dlo $(SRC)$*.c
481 parsing.dlo: $(SRC)parsing.c $(HFILES)
482 $(CC) $(CCFLAGS) /bd /fo=$*.dlo $(SRC)$*.c
484 files.dlo: $(SRC)files.c $(HFILES)
485 $(CC) $(CCFLAGS) /bd /fo=$*.dlo $(SRC)$*.c
487 misc.dlo: $(SRC)misc.c $(HFILES)
488 $(CC) $(CCFLAGS) /bd /fo=$*.dlo $(SRC)$*.c
490 unxfuncs.dlo: $(SRC)unxfuncs.c $(HFILES)
491 $(CC) $(CCFLAGS) /bd /fo=$*.dlo $(SRC)$*.c
493 os2funcs.dlo: $(SRC)os2funcs.c $(HFILES)
494 $(CC) $(CCFLAGS) /bd /fo=$*.dlo $(SRC)$*.c
496 cmsfuncs.dlo: $(SRC)cmsfuncs.c $(HFILES)
497 $(CC) $(CCFLAGS) /bd /fo=$*.dlo $(SRC)$*.c
499 shell.dlo: $(SRC)shell.c $(HFILES)
500 $(CC) $(CCFLAGS) /bd /fo=$*.dlo $(SRC)$*.c
502 rexxext.dlo: $(SRC)rexxext.c $(HFILES)
503 $(CC) $(CCFLAGS) /bd /fo=$*.dlo $(SRC)$*.c
505 stack.dlo: $(SRC)stack.c $(HFILES)
506 $(CC) $(CCFLAGS) /bd /fo=$*.dlo $(SRC)$*.c
508 tracing.dlo: $(SRC)tracing.c $(HFILES)
509 $(CC) $(CCFLAGS) /bd /fo=$*.dlo $(SRC)$*.c
511 interp.dlo: $(SRC)interp.c $(HFILES)
512 $(CC) $(CCFLAGS) /bd /fo=$*.dlo $(SRC)$*.c
514 cmath.dlo: $(SRC)cmath.c $(HFILES)
515 $(CC) $(CCFLAGS) /bd /fo=$*.dlo $(SRC)$*.c
517 convert.dlo: $(SRC)convert.c $(HFILES)
518 $(CC) $(CCFLAGS) /bd /fo=$*.dlo $(SRC)$*.c
520 strings.dlo: $(SRC)strings.c $(HFILES)
521 $(CC) $(CCFLAGS) /bd /fo=$*.dlo $(SRC)$*.c
523 library.dlo: $(SRC)library.c $(HFILES)
524 $(CC) $(CCFLAGS) $(DYN_CFLAGS) /bd /fo=$*.dlo $(SRC)$*.c
526 strmath.dlo: $(SRC)strmath.c $(HFILES)
527 $(CC) $(CCFLAGS) /bd /fo=$*.dlo $(SRC)$*.c
529 signals.dlo: $(SRC)signals.c $(HFILES)
530 $(CC) $(CCFLAGS) /bd /fo=$*.dlo $(SRC)$*.c
532 macros.dlo: $(SRC)macros.c $(HFILES)
533 $(CC) $(CCFLAGS) /bd /fo=$*.dlo $(SRC)$*.c
535 envir.dlo: $(SRC)envir.c $(HFILES)
536 $(CC) $(CCFLAGS) /bd /fo=$*.dlo $(SRC)$*.c
538 expr.dlo: $(SRC)expr.c $(HFILES)
539 $(CC) $(CCFLAGS) /bd /fo=$*.dlo $(SRC)$*.c
541 extlib.dlo: $(SRC)extlib.c $(HFILES)
542 $(CC) $(CCFLAGS) /bd /fo=$*.dlo $(SRC)$*.c
544 wrappers.dlo: $(SRC)wrappers.c $(HFILES)
545 $(CC) $(CCFLAGS) $(DYN_CFLAGS) /bd /fo=$*.dlo $(SRC)$*.c
547 options.dlo: $(SRC)options.c $(HFILES)
548 $(CC) $(CCFLAGS) /bd /fo=$*.dlo $(SRC)$*.c
550 doscmd.dlo: $(SRC)doscmd.c $(HFILES)
551 $(CC) $(CCFLAGS) /bd /fo=$*.dlo $(SRC)$*.c
553 rexx.dlo: $(SRC)rexx.c $(HFILES)
554 $(CC) $(CCFLAGS) /bd /fo=$*.dlo $(SRC)$*.c
556 lexsrc.dlo : $(SRC)lexsrc.c $(SRC)yaccsrc.h $(SRC)rexx.h
557 $(CC) $(CCFLAGS) /bd /fo=$*.dlo $(SRC)$*.c
561 # $(MV) lex.yy.c lexsrc.c
563 yaccsrc.dlo: $(SRC)yaccsrc.c $(SRC)defs.h $(SRC)rexx.h
564 $(CC) $(CCFLAGS) /DYYMAXDEPTH=10000 /bd /fo=$*.dlo $(SRC)$*.c
566 #yaccsrc.c yaccsrc.h : yaccsrc.y
567 # $(YACC) -dv yaccsrc.y
568 # $(MV) y.tab.h yaccsrc.h
569 # $(MV) y.tab.c yaccsrc.c
571 drexx.dlo: $(SRC)rexx.c $(HFILES)
572 $(CC) $(CCFLAGS) /fo=drexx.dlo -DRXLIB $(SRC)rexx.c
574 client.dlo: $(SRC)client.c $(HFILES) $(SRC)rexxsaa.h $(SRC)rxiface.h
575 $(CC) $(CCFLAGS) /bd /fo=$*.dlo $(SRC)$*.c
577 rexxsaa.dlo: $(SRC)rexxsaa.c $(HFILES) $(SRC)rexxsaa.h $(SRC)rxiface.h
578 $(CC) $(CCFLAGS) /bd /fo=$*.dlo $(SRC)$*.c
581 test1.dlo: $(SRC)test1.c $(HFILES)
582 $(CC) $(CCFLAGS) /bd /fo=$*.dlo $(SRC)$*.c
584 test2.dlo: $(SRC)test2.c $(HFILES)
585 $(CC) $(CCFLAGS) /bd /fo=$*.dlo $(SRC)$*.c
587 regina.obj: $(SRC)regina.c $(HFILES)
588 $(CC) $(CCFLAGS) /fo=$*.obj $(SRC)$*.c
590 execiser.obj: $(SRC)execiser.c $(HFILES)
591 $(CC) $(CCFLAGS) /fo=$*.obj $(SRC)$*.c
593 # DO NOT DELETE THIS LINE -- make depend depends on it.