diff options
author | Ivan Maidanski <ivmai@mail.ru> | 2019-11-07 11:30:58 +0300 |
---|---|---|
committer | Ivan Maidanski <ivmai@mail.ru> | 2019-11-07 11:39:24 +0300 |
commit | 3efd0bc4e443132653d42aca1a80b22b14930dd8 (patch) | |
tree | 273898bc8115ad060b6252297edae78663687eea /WCC_MAKEFILE | |
parent | 4dada595d172ba6bd8dd5be1d961d68f08c82058 (diff) | |
download | bdwgc-3efd0bc4e443132653d42aca1a80b22b14930dd8.tar.gz |
Build gctba library
Issue #268 (bdgwc).
The library exports only GC_throw_bad_alloc C++ function. It is intended
to solve "undefined reference to GC_throw_bad_alloc" linkage error when
the client needs to avoid linking with gccpp library (to avoid "::new"
redirection, in turn).
* CMakeLists.txt (enable_throw_bad_alloc_library): New option (ON by
default).
* CMakeLists.txt [enable_cplusplus && enable_throw_bad_alloc_library]
(gctba): New library.
* Makefile.am [CPLUSPLUS && GC_TBA_LIBRARY] (lib_LTLIBRARIES): Add
libgctba.la item.
* Makefile.am [CPLUSPLUS && GC_TBA_LIBRARY] (libgctba_la_SOURCES,
libgctba_la_LIBADD, libgctba_la_LDFLAGS): New variable.
* Makefile.direct: Update head comment (mention gctba.a).
* Makefile.direct (bsd-libgctba.a, gctba.a): New target.
* NT_MAKEFILE (gctba.lib): Likewise.
* WCC_MAKEFILE (gctba.lib): Likewise.
* WCC_MAKEFILE [!ENABLE_STATIC] (gctba.dll): Likewise.
* Makefile.direct (bsd-libgc.a): Move gctba.a to bsd-libgctba.a.
* Makefile.direct (BSD-pkg-install): Copy bsd-libgctba.a; install
libgctba.a.
* Makefile.direct (c++): Add dependency on gc_badalc.o; call rus, $(AR)
and $(RANLIB) for gctba.a.
* NT_MAKEFILE (all): Add dependency on gctba.lib.
* WCC_MAKEFILE (all): Likewise.
* README.QUICK: Update information about "make c++" (reference
libgctba.a, libgctba.so and doc/gcinterface.md).
* configure.ac (throw-bad-alloc-library): Specify new AC_ARG_ENABLE.
* configure.ac (GC_TBA_LIBRARY): New AM_CONDITIONAL.
* doc/gcinterface.md (Class inheritance based interface): Add
information about libgctba library; document GC_NEW_ABORTS_ON_OOM and
GC_INCLUDE_NEW macros.
Diffstat (limited to 'WCC_MAKEFILE')
-rw-r--r-- | WCC_MAKEFILE | 27 |
1 files changed, 26 insertions, 1 deletions
diff --git a/WCC_MAKEFILE b/WCC_MAKEFILE index 612bd57f..c8657a55 100644 --- a/WCC_MAKEFILE +++ b/WCC_MAKEFILE @@ -78,7 +78,7 @@ TEST_CXXFLAGS= $(TEST_CFLAGS) -xs COBJS= cordbscs.obj cordxtra.obj cordprnt.obj -all: gc.lib gccpp.lib cord.lib +all: gc.lib gccpp.lib gctba.lib cord.lib check: gctest.exe test_cpp.exe cordtest.exe .SYMBOLIC *gctest.exe @@ -109,6 +109,12 @@ gccpp.lib: gc_badalc.obj gc_cpp.obj @%append $*.lb1 +'gc_cpp.obj' *wlib -b -c -n -p=512 $@ @$*.lb1 +# The same as gccpp.lib but contains only gc_badalc.obj. +gctba.lib: gc_badalc.obj + @%create $*.lb1 + @%append $*.lb1 +'gc_badalc.obj' + *wlib -b -c -n -p=512 $@ @$*.lb1 + !else gc.obj: extra\gc.c .AUTODEPEND @@ -169,6 +175,25 @@ gccpp.dll: gc_badalc.obj gc_cpp.obj gc.lib .AUTODEPEND @%append $*.lnk library wr7$(CALLING)dll.lib *wlink @$*.lnk +gctba.lib: gctba.dll + *wlib -b -c -n -p=512 $@ +gctba.dll + +gctba.dll: gc_badalc.obj 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 $* + @%append $*.lnk file 'gc_badalc.obj' + @%append $*.lnk library gc.lib + @%append $*.lnk library wr7$(CALLING)dll.lib + *wlink @$*.lnk + !endif gctest.exe: test.obj gc.lib |