summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Makefile.inc110
-rw-r--r--lib/atf/libatf-c++/Makefile2
-rw-r--r--share/mk/bsd.README7
-rw-r--r--share/mk/bsd.lib.mk9
4 files changed, 26 insertions, 2 deletions
diff --git a/Makefile.inc1 b/Makefile.inc1
index abb30b7..243f5f5 100644
--- a/Makefile.inc1
+++ b/Makefile.inc1
@@ -1574,6 +1574,10 @@ _prebuild_libs+= gnu/lib/libstdc++ gnu/lib/libsupc++
gnu/lib/libstdc++__L: lib/msun__L
.endif
+.if ${MK_LIBCPLUSPLUS} != "no"
+_prebuild_libs+= lib/libc++
+.endif
+
lib/libgeom__L: lib/libexpat__L
.if defined(WITH_ATF) || ${MK_TESTS} != "no"
@@ -1583,6 +1587,12 @@ lib/libgeom__L: lib/libexpat__L
MAKE+= -DWITH_ATF
.endif
_lib_atf= lib/atf
+.if ${MK_GNUCXX} != no
+lib/atf__L: gnu/lib/libstdc++__L
+.endif
+.if ${MK_LIBCPLUSPLUS} != "no"
+lib/atf__L: lib/libc++__L lib/msun__L
+.endif
.endif
.if ${MK_LIBTHR} != "no"
diff --git a/lib/atf/libatf-c++/Makefile b/lib/atf/libatf-c++/Makefile
index 3cbbfa3..ea8434d 100644
--- a/lib/atf/libatf-c++/Makefile
+++ b/lib/atf/libatf-c++/Makefile
@@ -27,7 +27,7 @@
.include <bsd.init.mk>
-LIB= atf-c++
+LIB_CXX= atf-c++
PRIVATELIB= true
SHLIB_MAJOR= 2
diff --git a/share/mk/bsd.README b/share/mk/bsd.README
index 9740dac..8121c63 100644
--- a/share/mk/bsd.README
+++ b/share/mk/bsd.README
@@ -334,6 +334,13 @@ with the current needs of the BSD tree.
It sets/uses the following variables:
+LIB The name of the library to build.
+
+LIB_CXX The name of the library to build. It also causes
+ <bsd.lib.mk> to link the library with the
+ standard C++ library. LIB_CXX overrides the value
+ of LIB if LIB is also set.
+
LIBDIR Target directory for libraries.
LINTLIBDIR Target directory for lint libraries.
diff --git a/share/mk/bsd.lib.mk b/share/mk/bsd.lib.mk
index b87bc6c..bda3d47 100644
--- a/share/mk/bsd.lib.mk
+++ b/share/mk/bsd.lib.mk
@@ -4,6 +4,13 @@
.include <bsd.init.mk>
+.if defined(LIB_CXX)
+LIB= ${LIB_CXX}
+_LD= ${CXX}
+.else
+_LD= ${CC}
+.endif
+
# Set up the variables controlling shared libraries. After this section,
# SHLIB_NAME will be defined only if we are to create a shared library.
# SHLIB_LINK will be defined only if we are to create a link to it.
@@ -208,7 +215,7 @@ ${SHLIB_NAME_FULL}: ${SOBJS}
.if defined(SHLIB_LINK)
@${INSTALL_SYMLINK} ${SHLIB_NAME} ${SHLIB_LINK}
.endif
- ${CC} ${LDFLAGS} ${SSP_CFLAGS} ${SOLINKOPTS} \
+ ${_LD} ${LDFLAGS} ${SSP_CFLAGS} ${SOLINKOPTS} \
-o ${.TARGET} -Wl,-soname,${SONAME} \
`NM='${NM}' lorder ${SOBJS} | tsort -q` ${LDADD}
.if ${MK_CTF} != "no"
OpenPOWER on IntegriCloud