summaryrefslogtreecommitdiff
path: root/WCC_MAKEFILE
diff options
context:
space:
mode:
authorIvan Maidanski <ivmai@mail.ru>2019-07-24 11:11:29 +0300
committerIvan Maidanski <ivmai@mail.ru>2019-07-24 11:36:00 +0300
commit40fcb59ed30f55076b5e6bbfca798ad0cad0302c (patch)
tree708dd423c7d0291e6f9598783e7b23348467f3a5 /WCC_MAKEFILE
parenta79ac56d2e8bb73fecc2d5ace4e5f22a813aa435 (diff)
downloadbdwgc-40fcb59ed30f55076b5e6bbfca798ad0cad0302c.tar.gz
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".
Diffstat (limited to 'WCC_MAKEFILE')
-rw-r--r--WCC_MAKEFILE62
1 files changed, 60 insertions, 2 deletions
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