xref: /netbsd-src/external/gpl3/gcc.old/lib/libsupc++/Makefile.common (revision 8feb0f0b7eaff0608f8350bbfa3098827b4bb91b)
1*8feb0f0bSmrg#	$NetBSD: Makefile.common,v 1.11 2023/02/20 02:12:28 mrg Exp $
236ac495dSmrg
336ac495dSmrgDIST=		${GCCDIST}
436ac495dSmrgGNUHOSTDIST=	${DIST}
536ac495dSmrg
636ac495dSmrgGCC_MACHINE_ARCH=${MACHINE_ARCH:S/earmv5/earm/}
736ac495dSmrg
836ac495dSmrg# Support src/compat builds
936ac495dSmrg.if defined(MLIBDIR) && exists(${.CURDIR}/../libstdc++-v3/arch/${MLIBDIR}/defs.mk)
1036ac495dSmrgLIBSTDCXX_MACHINE_ARCH=${MLIBDIR}
1136ac495dSmrg.else
1236ac495dSmrgLIBSTDCXX_MACHINE_ARCH=${GCC_MACHINE_ARCH}
1336ac495dSmrg.endif
1436ac495dSmrg
1536ac495dSmrg# Make sure we get G_*_SOURCES, etc.*, for the .for loops
1636ac495dSmrg.include "${.CURDIR}/../libstdc++-v3/arch/${LIBSTDCXX_MACHINE_ARCH}/defs.mk"
1736ac495dSmrg
18*8feb0f0bSmrg# Deal with renamed sources.  Needs to match a loop in libstdc++-v3/Makefile.
19*8feb0f0bSmrgBUILD_CPP98_SOURCES=	${G_CPP98_SOURCES:Ncodecvt.cc} \
20*8feb0f0bSmrg			c98-codecvt.cc
21*8feb0f0bSmrgBUILD_CPP11_SOURCES=	${G_CPP11_SOURCES:Ncodecvt.cc:Ncow-string-inst.cc:Nostream-inst.cc:Nstring-inst.cc} \
22*8feb0f0bSmrg			c11-codecvt.cc \
23*8feb0f0bSmrg			c11-cow-string-inst.cc \
24*8feb0f0bSmrg			c11-ostream-inst.cc \
25*8feb0f0bSmrg			c11-string-inst.cc
26*8feb0f0bSmrgBUILD_CPP17_SOURCES=	${G_CPP17_SOURCES:Ncow-string-inst.cc:Nostream-inst.cc:Nstring-inst.cc} \
27*8feb0f0bSmrg			c17-cow-string-inst.cc \
28*8feb0f0bSmrg			c17-ostream-inst.cc \
29*8feb0f0bSmrg			c17-string-inst.cc
30*8feb0f0bSmrg
31*8feb0f0bSmrgLIBSTDCXXSRCS=	${G_SRC_SOURCES} \
32*8feb0f0bSmrg		${BUILD_CPP98_SOURCES} \
33*8feb0f0bSmrg		${BUILD_CPP11_SOURCES} \
34*8feb0f0bSmrg		${BUILD_CPP17_SOURCES}
3536ac495dSmrg# XXX XXX dir.o doesn't have <deque> stuff properly, leave it out for now
3636ac495dSmrg#LIBSTDCXXSRCS+=	${G_FILESYSTEM_SOURCES}
3736ac495dSmrg
3836ac495dSmrgLIBSUPCXXSRCS=	${G_LIBSUPCXX_SOURCES} ${G_LIBSUPCXX_C_SOURCES}
3936ac495dSmrg
4036ac495dSmrgCPPFLAGS+=	-I${DIST}/gcc
4136ac495dSmrgCPPFLAGS+=	-I${DIST}/include
4236ac495dSmrgCPPFLAGS+=	-I${DIST}/libstdc++-v3/libsupc++
4336ac495dSmrgCPPFLAGS+=	-I${DIST}/libgcc
4436ac495dSmrgCPPFLAGS+=	-I${.CURDIR}/../libstdc++-v3/arch/${LIBSTDCXX_MACHINE_ARCH} -I.
4536ac495dSmrgCPPFLAGS+=	-DHAVE_STDLIB_H -DHAVE_STRING_H
4636ac495dSmrg
4736ac495dSmrgCPPFLAGS.cp-demangle.c=-DIN_GLIBCPP_V3
4836ac495dSmrg
49*8feb0f0bSmrg.for _f in ${BUILD_CPP98_SOURCES}
5036ac495dSmrgCOPTS.${_f}+=	-std=gnu++98
5136ac495dSmrg.endfor
5236ac495dSmrg
5336ac495dSmrgSTD_GNU11=	\
5436ac495dSmrg		eh_aux_runtime.cc \
5536ac495dSmrg		eh_ptr.cc \
5636ac495dSmrg		eh_terminate.cc \
5736ac495dSmrg		eh_throw.cc \
5836ac495dSmrg		guard.cc \
5936ac495dSmrg		atexit_thread.cc \
6036ac495dSmrg		nested_exception.cc \
6136ac495dSmrg		new_handler.cc \
6236ac495dSmrg		new_op.cc \
6336ac495dSmrg		new_opnt.cc
6436ac495dSmrg
65*8feb0f0bSmrg.for _f in ${STD_GNU11} ${BUILD_CPP11_SOURCES:M*.cc}
6636ac495dSmrgCOPTS.${_f}+=	-std=gnu++11
6736ac495dSmrg.endfor
6836ac495dSmrg
6936ac495dSmrgSTD_GNU14=	\
7036ac495dSmrg		del_ops.cc \
7136ac495dSmrg		del_opvs.cc
7236ac495dSmrg
7336ac495dSmrg.for _f in ${STD_GNU14} ${G_FILESYSTEM_SOURCES:M*.cc}
74a2dc1f3fSmrgCOPTS.${_f}+=	-std=gnu++17  -Wno-sized-deallocation
7536ac495dSmrg.endfor
7636ac495dSmrg
7736ac495dSmrgSTD_GNU1Z=	\
7836ac495dSmrg		new_opa.cc \
7936ac495dSmrg		new_opant.cc \
8036ac495dSmrg		new_opva.cc \
8136ac495dSmrg		new_opvant.cc \
8236ac495dSmrg		del_opa.cc \
8336ac495dSmrg		del_opant.cc \
8436ac495dSmrg		del_opsa.cc \
8536ac495dSmrg		del_opva.cc \
8636ac495dSmrg		del_opvant.cc \
8736ac495dSmrg		del_opvsa.cc
8836ac495dSmrg
8936ac495dSmrg.for _f in ${STD_GNU1Z}
9036ac495dSmrgCOPTS.${_f}+=	-std=gnu++1z
9136ac495dSmrg.endfor
92c0a68be4Smrg
93*8feb0f0bSmrg.for _f in ${BUILD_CPP17_SOURCES}
94c0a68be4SmrgCOPTS.${_f}+=	-std=gnu++17 -fimplicit-templates
95c0a68be4Smrg.endfor
96c0a68be4Smrg
97c0a68be4Smrg.for _f in dir ops fs_dir fs_ops cow-fs_dir cow-fs_ops
98c0a68be4Smrg${_f}.o ${_f}.d ${_f}.pico ${_f}.po: bits/largefile-config.h
99c0a68be4Smrg.endfor
100c0a68be4Smrg
101c0a68be4Smrgbits/largefile-config.h:
102c0a68be4Smrg	mkdir -p bits
103c0a68be4Smrg	touch bits/largefile-config.h
104c0a68be4Smrg
105c0a68be4SmrgCLEANFILES+=	bits/largefile-config.h
106