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