diff options
Diffstat (limited to '')
| -rw-r--r-- | gc/WCC_MAKEFILE | 196 | 
1 files changed, 196 insertions, 0 deletions
| diff --git a/gc/WCC_MAKEFILE b/gc/WCC_MAKEFILE new file mode 100644 index 0000000..087ff6a --- /dev/null +++ b/gc/WCC_MAKEFILE @@ -0,0 +1,196 @@ +# 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 the lines below for cross compilation. +SYSTEM=MSWIN32 +#SYSTEM=DOS4GW +#SYSTEM=OS2 + +# The collector can be built either as dynamic or as static library. +# Select the library type you need. +#MAKE_AS_DLL=1 +MAKE_AS_LIB=1 + +# Select calling conventions. +# Possible choices are r and s. +CALLING=s + +# Select target CPU. +# Possible choices are 3, 4, 5, and 6. +# The last choice available only since version 11.0. +CPU=5 + +# Set optimization options. +# Watcom before 11.0 does not support option "-oh". +OPTIM=-oneatx -s +#OPTIM=-ohneatx -s + +DEFS=-DALL_INTERIOR_POINTERS -DSILENT -DNO_SIGNALS #-DSMALL_CONFIG #-DGC_DEBUG + + +##### + +!ifndef SYSTEM +!ifdef __MSDOS__ +SYSTEM=DOS4GW +!else ifdef __NT__ +SYSTEM=MSWIN32 +!else ifdef __OS2__ +SYSTEM=OS2 +!else +SYSTEM=Unknown +!endif +!endif + +!define $(SYSTEM) + +!ifdef DOS4GW +SYSFLAG=-DDOS4GW -bt=dos +!else ifdef MSWIN32 +SYSFLAG=-DMSWIN32 -bt=nt +!else ifdef OS2 +SYSFLAG=-DOS2 -bt=os2 +!else +!error undefined or unsupported target platform: $(SYSTEM) +!endif +!ifdef MAKE_AS_DLL +DLLFLAG=-bd -DGC_DLL +TEST_DLLFLAG=-DGC_DLL +!else ifdef MAKE_AS_LIB +DLLFLAG= +TEST_DLLFLAG= +!else +!error Either MAKE_AS_LIB or MAKE_AS_DLL should be defined +!endif + +CC=wcc386 +CXX=wpp386 + +# -DUSE_GENERIC is required ! +CFLAGS=-$(CPU)$(CALLING) $(OPTIM) -zp4 -zc $(SYSFLAG) $(DLLFLAG) -DGC_BUILD -DUSE_GENERIC $(DEFS) +CXXFLAGS= $(CFLAGS) +TEST_CFLAGS=-$(CPU)$(CALLING) $(OPTIM) -zp4 -zc $(SYSFLAG) $(TEST_DLLFLAG) $(DEFS) +TEST_CXXFLAGS= $(TEST_CFLAGS) + +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 mallocx.obj + +all: gc.lib gctest.exe test_cpp.exe + +!ifdef MAKE_AS_DLL + +gc.lib: gc.dll gc_cpp.obj +        *wlib -b -c -n -p=512 $@ +gc.dll +gc_cpp.obj + +gc.dll: $(OBJS) .AUTODEPEND +        @%create $*.lnk +!ifdef DOS4GW +        @%append $*.lnk sys os2v2_dll +!else ifdef MSWIN32 +        @%append $*.lnk sys nt_dll +!else ifdef OS2 +        @%append $*.lnk sys os2v2_dll +!endif +        @%append $*.lnk name $* +        @for %i in ($(OBJS)) do @%append $*.lnk file '%i' +!ifeq CALLING s +      @%append $*.lnk export GC_is_marked +      @%append $*.lnk export GC_incr_words_allocd +      @%append $*.lnk export GC_incr_mem_freed +      @%append $*.lnk export GC_generic_malloc_words_small +!else +      @%append $*.lnk export GC_is_marked_ +      @%append $*.lnk export GC_incr_words_allocd_ +      @%append $*.lnk export GC_incr_mem_freed_ +      @%append $*.lnk export GC_generic_malloc_words_small_ +!endif +        *wlink @$*.lnk +!else +gc.lib: $(OBJS) gc_cpp.obj +        @%create $*.lb1 +        @for %i in ($(OBJS)) do @%append $*.lb1 +'%i' +      @%append $*.lb1 +'gc_cpp.obj' +        *wlib -b -c -n -p=512 $@ @$*.lb1 + +!endif + + +gctest.exe: test.obj gc.lib +        %create $*.lnk +!ifdef DOS4GW +        @%append $*.lnk sys dos4g +!else ifdef MSWIN32 +        @%append $*.lnk sys nt +!else 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 +!ifdef MAKE_AS_DLL +!ifeq CALLING s +      @%append $*.lnk import GC_is_marked gc +!else +      @%append $*.lnk import GC_is_marked_ gc +!endif +!endif +        *wlink @$*.lnk +test_cpp.exe: test_cpp.obj gc.lib +        %create $*.lnk +!ifdef DOS4GW +        @%append $*.lnk sys dos4g +!else ifdef MSWIN32 +        @%append $*.lnk sys nt +!else ifdef OS2 +        @%append $*.lnk sys os2v2 +!endif +        @%append $*.lnk op case +        @%append $*.lnk op stack=256K +        @%append $*.lnk name $* +        @%append $*.lnk file test_cpp.obj +        @%append $*.lnk library gc.lib +!ifdef MAKE_AS_DLL +!ifeq CALLING s +      @%append $*.lnk import GC_incr_words_allocd gc +      @%append $*.lnk import GC_incr_mem_freed gc +      @%append $*.lnk import GC_generic_malloc_words_small gc +!else +      @%append $*.lnk import GC_incr_words_allocd_ gc +      @%append $*.lnk import GC_incr_mem_freed_ gc +      @%append $*.lnk import GC_generic_malloc_words_small_ gc +!endif +!endif +        *wlink @$*.lnk + +gc_cpp.obj: gc_cpp.cc .AUTODEPEND +        $(CXX) $(TEST_CXXFLAGS) -iinclude $*.cc +test.obj: test.c .AUTODEPEND +        $(CC) $(TEST_CFLAGS) $*.c +test_cpp.obj: test_cpp.cc .AUTODEPEND +        $(CXX) $(TEST_CXXFLAGS) -iinclude $*.cc + + +.c.obj: .AUTODEPEND +        $(CC) $(CFLAGS) $*.c + +.cc.obj: .AUTODEPEND +        $(CXX) $(CXXFLAGS) $*.cc + +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 +    @if exist *.lib del *.lib +    @if exist *.dll del *.dll | 
