| # Makefile for Watcom C/C++ 10.5, 10.6, 11.0 on NT, OS2 and DOS4GW . |
| # May work with Watcom 10.0 . |
| # |
| |
| # |
| # Uncoment one of line for cross compiling |
| #SYSTEM=DOS4GW |
| #SYSTEM=MSWIN32 |
| #SYSTEM=OS2 |
| |
| !ifndef SYSTEM |
| |
| !ifdef __MSDOS__ |
| SYSTEM=DOS4GW |
| !endif |
| |
| !ifdef __NT__ |
| SYSTEM=MSWIN32 |
| !endif |
| |
| !ifdef __OS2__ |
| SYSTEM=OS2 |
| !endif |
| |
| D_SYSTEM= |
| |
| !else |
| |
| D_SYSTEM=-D$(SYSTEM) |
| |
| !endif |
| |
| !define $(SYSTEM) |
| |
| |
| CC=wcc386 |
| CXX=wpp386 |
| AS=wasm |
| |
| |
| # Watcom before 11.0 not support option -oh |
| # Remove it if you get error |
| OPTIM=-oneatxh -s |
| |
| CALLING=-5s |
| |
| DEFS=-DALL_INTERIOR_POINTERS -DSILENT #-DSMALL_CONFIG #-DGC_DEBUG |
| |
| # ! -DUSE_GENERIC required ! |
| CFLAGS=$(OPTIM) -zp4 $(CALLING) -zc -DUSE_GENERIC $(D_SYSTEM) $(DEFS) |
| CXXFLAGS= $(CFLAGS) |
| ASFLAGS=$(CALLING) |
| |
| OBJS= alloc.obj reclaim.obj allchblk.obj misc.obj & |
| mach_dep.obj os_dep.obj mark_rts.obj headers.obj mark.obj & |
| obj_map.obj blacklst.obj finalize.obj new_hblk.obj & |
| dbg_mlc.obj malloc.obj stubborn.obj dyn_load.obj & |
| typd_mlc.obj ptr_chck.obj gc_cpp.obj mallocx.obj |
| |
| |
| all: gc.lib gctest.exe |
| |
| # this file required for DOS4GW only |
| gc_watcom.obj: gc_watcom.asm WCC_MAKEFILE |
| $(AS) $(ASFLAGS) gc_watcom.asm |
| |
| !ifdef DOS4GW |
| gc.lib: $(OBJS) gc_watcom.obj |
| @%create $*.lb1 |
| @for %i in ($(OBJS)) do @%append $*.lb1 +'%i' |
| @@%append $*.lb1 +'gc_watcom.obj' |
| *wlib -b -c -n -p=512 $@ @$*.lb1 |
| !else |
| gc.lib: $(OBJS) |
| @%create $*.lb1 |
| @for %i in ($(OBJS)) do @%append $*.lb1 +'%i' |
| *wlib -b -c -n -p=512 $@ @$*.lb1 |
| !endif |
| |
| |
| test.obj: test.c |
| $(CC) $(CFLAGS) $*.c |
| |
| gctest.exe: test.obj gc.lib |
| %create $*.lnk |
| !ifdef DOS4GW |
| @%append $*.lnk sys dos4g |
| !endif |
| !ifdef MSWIN32 |
| @%append $*.lnk sys nt |
| !endif |
| !ifdef OS2 |
| @%append $*.lnk sys os2v2 |
| !endif |
| @%append $*.lnk op case |
| @%append $*.lnk op stack=256K |
| @%append $*.lnk name $* |
| @%append $*.lnk file test.obj |
| @%append $*.lnk library gc.lib |
| *wlink @$*.lnk |
| |
| |
| |
| .c.obj: .AUTODEPEND |
| $(CC) $(CFLAGS) $*.c |
| |
| .cc.obj: .AUTODEPEND |
| $(CXX) $(CXXFLAGS) $*.cc |
| |
| .cpp.obj: .AUTODEPEND |
| $(CXX) $(CXXFLAGS) $*.cpp |
| |
| clean : .SYMBOLIC |
| @if exist *.obj del *.obj |
| @if exist *.map del *.map |
| @if exist *.lnk del *.lnk |
| @if exist *.lb1 del *.lb1 |
| @if exist *.sym del *.sym |
| @if exist *.err del *.err |
| @if exist *.tmp del *.tmp |
| @if exist *.lst del *.lst |
| @if exist *.exe del *.exe |
| @if exist *.log del *.log |