From c521d2cf164f9d7e1fa8be9c0b21d223e265fa64 Mon Sep 17 00:00:00 2001 From: Ivan Maidanski Date: Tue, 26 Jul 2011 15:20:24 +0400 Subject: gc4.13 tarball import --- WCC_MAKEFILE | 179 +++++++++++++++++++++++++++++++++++++++++------------------ 1 file changed, 126 insertions(+), 53 deletions(-) (limited to 'WCC_MAKEFILE') diff --git a/WCC_MAKEFILE b/WCC_MAKEFILE index cc0ef136..087ff6a3 100644 --- a/WCC_MAKEFILE +++ b/WCC_MAKEFILE @@ -1,95 +1,130 @@ -# Makefile for Watcom C/C++ 10.5, 10.6, 11.0 on NT, OS2 and DOS4GW . -# May work with Watcom 10.0 . -# +# 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 +# Uncoment one of the lines below for cross compilation. +SYSTEM=MSWIN32 #SYSTEM=DOS4GW -#SYSTEM=MSWIN32 #SYSTEM=OS2 -!ifndef SYSTEM +# 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 -!ifdef __MSDOS__ -SYSTEM=DOS4GW -!endif +# Select calling conventions. +# Possible choices are r and s. +CALLING=s -!ifdef __NT__ -SYSTEM=MSWIN32 -!endif +# Select target CPU. +# Possible choices are 3, 4, 5, and 6. +# The last choice available only since version 11.0. +CPU=5 -!ifdef __OS2__ -SYSTEM=OS2 -!endif +# Set optimization options. +# Watcom before 11.0 does not support option "-oh". +OPTIM=-oneatx -s +#OPTIM=-ohneatx -s -D_SYSTEM= +DEFS=-DALL_INTERIOR_POINTERS -DSILENT -DNO_SIGNALS #-DSMALL_CONFIG #-DGC_DEBUG -!else -D_SYSTEM=-D$(SYSTEM) +##### +!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 -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) +# -DUSE_GENERIC is required ! +CFLAGS=-$(CPU)$(CALLING) $(OPTIM) -zp4 -zc $(SYSFLAG) $(DLLFLAG) -DGC_BUILD -DUSE_GENERIC $(DEFS) CXXFLAGS= $(CFLAGS) -ASFLAGS=$(CALLING) +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 gc_cpp.obj mallocx.obj + typd_mlc.obj ptr_chck.obj mallocx.obj +all: gc.lib gctest.exe test_cpp.exe -all: gc.lib gctest.exe +!ifdef MAKE_AS_DLL -# this file required for DOS4GW only -gc_watcom.obj: gc_watcom.asm WCC_MAKEFILE - $(AS) $(ASFLAGS) gc_watcom.asm +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 -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 + @%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.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 +!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 +!else ifdef MSWIN32 @%append $*.lnk sys nt -!endif -!ifdef OS2 +!else ifdef OS2 @%append $*.lnk sys os2v2 !endif @%append $*.lnk op case @@ -97,8 +132,47 @@ gctest.exe: test.obj gc.lib @%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 @@ -107,9 +181,6 @@ gctest.exe: test.obj gc.lib .cc.obj: .AUTODEPEND $(CXX) $(CXXFLAGS) $*.cc -.cpp.obj: .AUTODEPEND - $(CXX) $(CXXFLAGS) $*.cpp - clean : .SYMBOLIC @if exist *.obj del *.obj @if exist *.map del *.map @@ -121,3 +192,5 @@ clean : .SYMBOLIC @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 -- cgit v1.2.1