From 40fcb59ed30f55076b5e6bbfca798ad0cad0302c Mon Sep 17 00:00:00 2001 From: Ivan Maidanski Date: Wed, 24 Jul 2019 11:11:29 +0300 Subject: Build cord.lib by Makefile.direct, NT_MAKEFILE, OS2_MAKEFILE, WCC_MAKEFILE Note: Makefile.direct builds cord.a (not libcord.a or cord.lib). * Makefile.direct: Update header comment about all and cords targets. * Makefile.direct (all): Depend also on cords. * Makefile.direct (cord.a): New target (duplicates cords target). * Makefile.direct (cords): Do not depend on base_lib; create cord.a instead of updating gc.a. * Makefile.direct (cordtest, de): Depend on cords instead of $(CORD_OBJS); pass cord.a (instead of $(CORD_OBJS)) to $(CC). * NT_MAKEFILE (CFLAGS_MT): Move variable definition (which uses cvarsmt) to be after CORDFLAG one. * NT_MAKEFILE (CORDFLAG, COBJS): New variable. * WCC_MAKEFILE (CORDFLAG, COBJS): Likewise. * NT_MAKEFILE [!ENABLE_STATIC] (cvarsmt): Set variable value to empty; add comment. * NT_MAKEFILE (all): Depend also on cord.lib. * OS2_MAKEFILE (all): Likewise. * WCC_MAKEFILE (all): Likewise. * NT_MAKEFILE (check): Depend also on cordtest.exe; run also cordtest. * WCC_MAKEFILE (check): Likewise. * NT_MAKEFILE (.c.obj): Remove -DCORD_NOT_DLL; add $(CORDFLAG). * NT_MAKEFILE (cord.lib, cordtest.exe): New target. * OS2_MAKEFILE (cord.lib, cordtest.exe, clean): Likewise. * WCC_MAKEFILE (cord.lib, cordtest.exe, cordbscs.obj, cordxtra.obj, cordprnt.obj, cordtest.obj): Likewise. * WCC_MAKEFILE [!ENABLE_STATIC] (cord.dll): Likewise. * NT_MAKEFILE (de.exe): Depend on cord.lib instead of cordbscs.obj and cordxtra.obj. * NT_MAKEFILE (clean): Delete cordtst*.tmp files; delete *.lib, *.dll, and *.exp files instead of gc*.lib, gc*.dll, gc*.exp, cord\*.exe, cord\*.exp, cord\*.lib, cord\*.pdb. * README.md (Installation and Portability): Update information about "make cords". --- WCC_MAKEFILE | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 60 insertions(+), 2 deletions(-) (limited to 'WCC_MAKEFILE') diff --git a/WCC_MAKEFILE b/WCC_MAKEFILE index a106d306..2a9fc4dd 100644 --- a/WCC_MAKEFILE +++ b/WCC_MAKEFILE @@ -57,9 +57,15 @@ SYSFLAG=-DOS2 -bt=os2 !ifdef ENABLE_STATIC DLLFLAG= TEST_DLLFLAG=-DGC_NOT_DLL +CORDFLAG= !else DLLFLAG=-bd -DGC_DLL TEST_DLLFLAG=-DGC_DLL +# cord.dll and its clients should not link C library statically otherwise +# FILE-related functions might not work (because own set of opened FILEs +# is maintained by each copy of the C library thus making impossible to pass +# FILE pointer from, e.g., .exe code to .dll one). +CORDFLAG=-br !endif CC=wcc386 @@ -76,11 +82,14 @@ OBJS= alloc.obj reclaim.obj allchblk.obj misc.obj & dbg_mlc.obj malloc.obj dyn_load.obj & typd_mlc.obj ptr_chck.obj mallocx.obj fnlz_mlc.obj gcj_mlc.obj -all: gc.lib gccpp.lib +COBJS= cordbscs.obj cordxtra.obj cordprnt.obj -check: gctest.exe test_cpp.exe .SYMBOLIC +all: gc.lib gccpp.lib cord.lib + +check: gctest.exe test_cpp.exe cordtest.exe .SYMBOLIC *gctest.exe *test_cpp.exe + *cordtest.exe !ifdef ENABLE_STATIC @@ -89,6 +98,11 @@ gc.lib: $(OBJS) @for %i in ($(OBJS)) do @%append $*.lb1 +'%i' *wlib -b -c -n -p=512 $@ @$*.lb1 +cord.lib: $(COBJS) + @%create $*.lb1 + @for %i in ($(COBJS)) do @%append $*.lb1 +'%i' + *wlib -b -c -n -p=512 $@ @$*.lb1 + gccpp.lib: gc_cpp.obj @%create $*.lb1 @%append $*.lb1 +'gc_cpp.obj' @@ -113,6 +127,24 @@ gc.dll: $(OBJS) .AUTODEPEND @for %i in ($(OBJS)) do @%append $*.lnk file '%i' *wlink @$*.lnk +cord.lib: cord.dll + *wlib -b -c -n -p=512 $@ +cord.dll + +cord.dll: $(COBJS) gc.lib .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 op case + @%append $*.lnk name $* + @for %i in ($(COBJS)) do @%append $*.lnk file '%i' + @%append $*.lnk library gc.lib + *wlink @$*.lnk + gccpp.lib: gccpp.dll *wlib -b -c -n -p=512 $@ +gccpp.dll @@ -150,6 +182,23 @@ gctest.exe: test.obj gc.lib @%append $*.lnk library gc.lib *wlink @$*.lnk +cordtest.exe: cordtest.obj gc.lib cord.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 cordtest.obj + @%append $*.lnk library gc.lib + @%append $*.lnk library cord.lib + *wlink @$*.lnk + test_cpp.exe: test_cpp.obj gc.lib gccpp.lib %create $*.lnk !ifdef DOS4GW @@ -167,10 +216,19 @@ test_cpp.exe: test_cpp.obj gc.lib gccpp.lib @%append $*.lnk library gccpp.lib *wlink @$*.lnk +cordbscs.obj: cord\cordbscs.c .AUTODEPEND + $(CC) $(CFLAGS) $(CORDFLAG) cord\cordbscs.c +cordxtra.obj: cord\cordxtra.c .AUTODEPEND + $(CC) $(CFLAGS) $(CORDFLAG) cord\cordxtra.c +cordprnt.obj: cord\cordprnt.c .AUTODEPEND + $(CC) $(CFLAGS) $(CORDFLAG) cord\cordprnt.c + gc_cpp.obj: gc_cpp.cc .AUTODEPEND $(CXX) $(TEST_CXXFLAGS) $*.cc test.obj: tests\test.c .AUTODEPEND $(CC) $(TEST_CFLAGS) /wcd=13 /wcd=201 /wcd=367 /wcd=368 tests\test.c +cordtest.obj: cord\tests\cordtest.c .AUTODEPEND + $(CC) $(TEST_CFLAGS) $(CORDFLAG) cord\tests\cordtest.c test_cpp.obj: tests\test_cpp.cc .AUTODEPEND $(CXX) $(TEST_CXXFLAGS) tests\test_cpp.cc -- cgit v1.2.1