xref: /netbsd-src/external/gpl3/gcc/lib/libsupc++/Makefile.common (revision c985751b7f1455b3aae24c52a7d8549aef2eed9e)
1*c985751bSmrg#	$NetBSD: Makefile.common,v 1.21 2024/02/21 09:06:56 mrg Exp $
2f0c80e6cSmrg
35beaf704SmrgDIST=		${GCCDIST}
4f0c80e6cSmrgGNUHOSTDIST=	${DIST}
5f0c80e6cSmrg
6cc666660SmattGCC_MACHINE_ARCH=${MACHINE_ARCH:S/earmv5/earm/}
7cc666660Smatt
849d8c9ecSmrg# Support src/compat builds
949d8c9ecSmrg.if defined(MLIBDIR) && exists(${.CURDIR}/../libstdc++-v3/arch/${MLIBDIR}/defs.mk)
1049d8c9ecSmrgLIBSTDCXX_MACHINE_ARCH=${MLIBDIR}
1149d8c9ecSmrg.else
1249d8c9ecSmrgLIBSTDCXX_MACHINE_ARCH=${GCC_MACHINE_ARCH}
1349d8c9ecSmrg.endif
1449d8c9ecSmrg
1575b1676fSmrg# Make sure we get G_*_SOURCES, etc.*, for the .for loops
1675b1676fSmrg.include "${.CURDIR}/../libstdc++-v3/arch/${LIBSTDCXX_MACHINE_ARCH}/defs.mk"
1775b1676fSmrg
18c38f6a96Smrg# Deal with renamed sources.  Needs to match a loop in libstdc++-v3/Makefile.
19c38f6a96SmrgBUILD_CPP98_SOURCES=	${G_CPP98_SOURCES:Ncodecvt.cc} \
20c38f6a96Smrg			c98-codecvt.cc
21*c985751bSmrgBUILD_CPP11_SOURCES=	${G_CPP11_SOURCES:Ncodecvt.cc:Ncow-string-inst.cc:Nostream-inst.cc:Nstring-inst.cc:Nsstream-inst.cc} \
22c38f6a96Smrg			c11-codecvt.cc \
23c38f6a96Smrg			c11-cow-string-inst.cc \
24c38f6a96Smrg			c11-ostream-inst.cc \
25*c985751bSmrg			c11-string-inst.cc \
26*c985751bSmrg			c11-sstream-inst.cc
27c38f6a96SmrgBUILD_CPP17_SOURCES=	${G_CPP17_SOURCES:Ncow-string-inst.cc:Nostream-inst.cc:Nstring-inst.cc} \
28c38f6a96Smrg			c17-cow-string-inst.cc \
29c38f6a96Smrg			c17-ostream-inst.cc \
30c38f6a96Smrg			c17-string-inst.cc
31*c985751bSmrgBUILD_CPP20_SOURCES=	${G_CPP20_SOURCES:Nsstream-inst.cc} \
32*c985751bSmrg			c20-sstream-inst.cc
33c38f6a96Smrg
34c38f6a96SmrgLIBSTDCXXSRCS=	${G_SRC_SOURCES} \
35c38f6a96Smrg		${BUILD_CPP98_SOURCES} \
36c38f6a96Smrg		${BUILD_CPP11_SOURCES} \
37*c985751bSmrg		${BUILD_CPP17_SOURCES} \
38*c985751bSmrg		${BUILD_CPP20_SOURCES}
3932c963baSmrg# XXX XXX dir.o doesn't have <deque> stuff properly, leave it out for now
4032c963baSmrg#LIBSTDCXXSRCS+=	${G_FILESYSTEM_SOURCES}
4132c963baSmrg
42f0c80e6cSmrgLIBSUPCXXSRCS=	${G_LIBSUPCXX_SOURCES} ${G_LIBSUPCXX_C_SOURCES}
43f0c80e6cSmrg
44f0c80e6cSmrgCPPFLAGS+=	-I${DIST}/gcc
45f0c80e6cSmrgCPPFLAGS+=	-I${DIST}/include
46f0c80e6cSmrgCPPFLAGS+=	-I${DIST}/libstdc++-v3/libsupc++
4749d8c9ecSmrgCPPFLAGS+=	-I${DIST}/libgcc
4849d8c9ecSmrgCPPFLAGS+=	-I${.CURDIR}/../libstdc++-v3/arch/${LIBSTDCXX_MACHINE_ARCH} -I.
49f0c80e6cSmrgCPPFLAGS+=	-DHAVE_STDLIB_H -DHAVE_STRING_H
50f0c80e6cSmrg
51f0c80e6cSmrgCPPFLAGS.cp-demangle.c=-DIN_GLIBCPP_V3
5204408297Smrg
53c38f6a96Smrg.for _f in ${BUILD_CPP98_SOURCES}
5475b1676fSmrgCOPTS.${_f}+=	-std=gnu++98
5575b1676fSmrg.endfor
56fdd0358cSmrg
5775b1676fSmrgSTD_GNU11=	\
5875b1676fSmrg		eh_aux_runtime.cc \
5975b1676fSmrg		eh_ptr.cc \
6075b1676fSmrg		eh_terminate.cc \
6175b1676fSmrg		eh_throw.cc \
6275b1676fSmrg		guard.cc \
6375b1676fSmrg		atexit_thread.cc \
6475b1676fSmrg		nested_exception.cc \
6575b1676fSmrg		new_handler.cc \
6675b1676fSmrg		new_op.cc \
6775b1676fSmrg		new_opnt.cc
6875b1676fSmrg
69c38f6a96Smrg.for _f in ${STD_GNU11} ${BUILD_CPP11_SOURCES:M*.cc}
7075b1676fSmrgCOPTS.${_f}+=	-std=gnu++11
71dfa44a28Smrg.endfor
72dfa44a28Smrg
73fdd0358cSmrgSTD_GNU14=	\
7475b1676fSmrg		del_ops.cc \
7575b1676fSmrg		del_opvs.cc
76fdd0358cSmrg
7775b1676fSmrg.for _f in ${STD_GNU14} ${G_FILESYSTEM_SOURCES:M*.cc}
78c79e82c5SmrgCOPTS.${_f}+=	-std=gnu++17  -Wno-sized-deallocation
7904408297Smrg.endfor
80571b11f4Smrg
81fdd0358cSmrgSTD_GNU1Z=	\
8275b1676fSmrg		new_opa.cc \
8375b1676fSmrg		new_opant.cc \
8475b1676fSmrg		new_opva.cc \
8575b1676fSmrg		new_opvant.cc \
8675b1676fSmrg		del_opa.cc \
8775b1676fSmrg		del_opant.cc \
8875b1676fSmrg		del_opsa.cc \
8975b1676fSmrg		del_opva.cc \
9075b1676fSmrg		del_opvant.cc \
9175b1676fSmrg		del_opvsa.cc
92571b11f4Smrg
93571b11f4Smrg.for _f in ${STD_GNU1Z}
9475b1676fSmrgCOPTS.${_f}+=	-std=gnu++1z
95571b11f4Smrg.endfor
9671ddf99aSmrg
97c38f6a96Smrg.for _f in ${BUILD_CPP17_SOURCES}
9871ddf99aSmrgCOPTS.${_f}+=	-std=gnu++17 -fimplicit-templates
9971ddf99aSmrg.endfor
10071ddf99aSmrg
101*c985751bSmrg.for _f in ${BUILD_CPP20_SOURCES}
102*c985751bSmrgCOPTS.${_f}+=	-std=gnu++20 -fimplicit-templates
103*c985751bSmrg.endfor
104*c985751bSmrg
1054cb0ef6bSmrg.for _f in dir ops fs_dir fs_ops cow-fs_dir cow-fs_ops
1064102322dSmrg${_f}.o ${_f}.d ${_f}.pico ${_f}.po: bits/largefile-config.h
1074102322dSmrg.endfor
10871ddf99aSmrg
10971ddf99aSmrgbits/largefile-config.h:
11071ddf99aSmrg	mkdir -p bits
11171ddf99aSmrg	touch bits/largefile-config.h
11271ddf99aSmrg
11371ddf99aSmrgCLEANFILES+=	bits/largefile-config.h
114