# 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