1*45fa5e92Smrg# $NetBSD: Makefile,v 1.17 2023/08/01 05:57:56 mrg Exp $ 2f0c80e6cSmrg 3f0c80e6cSmrgREQUIRETOOLS= yes 4f0c80e6cSmrgNOLINT= # defined 5f0c80e6cSmrg 6f0c80e6cSmrgUNSUPPORTED_COMPILER.clang= # defined 7f0c80e6cSmrg 85beaf704Smrg.include <bsd.init.mk> 9f0c80e6cSmrg 10f0c80e6cSmrgLIB= objc 117ecefb12SmattGCC_MACHINE_ARCH?= ${MACHINE_ARCH:S/earmv5/earm/} 12f0c80e6cSmrg 13f0c80e6cSmrg.if ${MKGCC} != "no" 14f0c80e6cSmrg 1549d8c9ecSmrgSHLIB_MAJOR= 4 16f0c80e6cSmrgSHLIB_MINOR= 0 17f0c80e6cSmrg 18f0c80e6cSmrg# XXX just while all platforms defs.mk are updated.. 197ecefb12Smatt.if exists(${.CURDIR}/arch/${GCC_MACHINE_ARCH}/defs.mk) 20f0c80e6cSmrg# Machine-dependent definitions (include file names). 217ecefb12Smatt.include "${.CURDIR}/arch/${GCC_MACHINE_ARCH}/defs.mk" 22f0c80e6cSmrgEXTRA_FAKEHEADERS= 23f0c80e6cSmrg.else 24f0c80e6cSmrg# Machine-independent definitions (include file names). 25f0c80e6cSmrg.include "${.CURDIR}/defs.mk" 26e6ee85c0SmrgEXTRA_FAKEHEADERS= 27f0c80e6cSmrg.endif 28f0c80e6cSmrg 298049a323SmrgLIBGCCOBJ!= cd ${.CURDIR}/../libgcc/libgcc && ${PRINTOBJDIR} 30f0c80e6cSmrg 315beaf704SmrgDIST= ${GCCDIST} 325beaf704SmrgGNUHOSTDIST= ${DIST} 335beaf704SmrgGCCARCH= ${GCC_SUBDIR}/usr.bin/gcc/arch/${GCC_MACHINE_ARCH} 345beaf704SmrgLIBOBJCARCH= ${GCC_SUBDIR}/lib/libobjc/arch/${GCC_MACHINE_ARCH} 355beaf704SmrgGCCLIBXX= ${GCC_SUBDIR}/lib/libstdc++-v3/arch/${GCC_MACHINE_ARCH} 36f0c80e6cSmrg 3749d8c9ecSmrgSRCS= ${G_OBJC_SOURCE_FILES} ${G_C_SOURCE_FILES} 38f0c80e6cSmrg 39f0c80e6cSmrgGCPPFLAGS= ${G_ALL_CFLAGS} ${G_INCLUDES} 407ecefb12SmattCPPFLAGS+= -I. -I${.CURDIR}/arch/${GCC_MACHINE_ARCH} 41f0c80e6cSmrgCPPFLAGS+= -I${GCCARCH} ${GCPPFLAGS:M-D*} ${GCPPFLAGS:M-I*:N-I.*} 42f0c80e6cSmrgCPPFLAGS+= -I${GCCLIBXX} 4349d8c9ecSmrgCPPFLAGS+= -I${DIST}/libobjc/objc-private 44f0c80e6cSmrg 457ecefb12SmattBUILDSYMLINKS= ${.CURDIR}/../libstdc++-v3/arch/${GCC_MACHINE_ARCH} bits 46f0c80e6cSmrgDPSRCS+= bits 47f0c80e6cSmrg 48f0c80e6cSmrg.for f in Protocol.m Object.m NXConstStr.m linking.m 49f0c80e6cSmrgOBJCOPTS.${f}= -fgnu-runtime 50f0c80e6cSmrg.endfor 51f0c80e6cSmrg 52f0c80e6cSmrg.for f in thr.c thr-objc.c 53f0c80e6cSmrgCOPTS.${f}= -Wno-missing-noreturn 54f0c80e6cSmrg.endfor 55f0c80e6cSmrg 56f0c80e6cSmrgCOPTS+= -fno-strict-aliasing -fexceptions 57f0c80e6cSmrgOBJCOPTS+= -fno-strict-aliasing -fexceptions 58f0c80e6cSmrg 59f0c80e6cSmrgOBJCOPTS.Object.m = -Wno-stack-protector 60f0c80e6cSmrgCOPTS.sendmsg.c = -Wno-stack-protector 6114e72322SchristosCOPTS.objc-act.c = -Wno-stack-protector 62f0c80e6cSmrg 63f0c80e6cSmrgINCS= ${G_OBJC_H} 64f0c80e6cSmrgINCSDIR= /usr/include/objc 65f0c80e6cSmrg 66f0c80e6cSmrgDPSRCS+= runtime-info.h 67f0c80e6cSmrgCLEANFILES+= rtscratch rtscratch.s runtime-info.h 68f0c80e6cSmrgruntime-info.h: 69f0c80e6cSmrg ${_MKTARGET_CREATE} 70f0c80e6cSmrg touch rtscratch 71f0c80e6cSmrg `${OBJC} --print-prog-name=cc1obj` -print-objc-runtime-info rtscratch >$@ 72f0c80e6cSmrg 73f0c80e6cSmrg${OBJS} ${POBJS} ${SOBJS}: runtime-info.h 74f0c80e6cSmrg 7549d8c9ecSmrg${SRCS}: tconfig.h options.h 76f0c80e6cSmrg 77ac391578Smrg.include "../Makefile.gthr" 78a98337dbSmrg.include "../Makefile.tconfigh" 790b1fbc4cSmrg.include "../Makefile.hacks" 80f0c80e6cSmrg 81f0c80e6cSmrg# XXX just while all platforms defs.mk are updated.. 827ecefb12Smatt.if exists(${.CURDIR}/arch/${GCC_MACHINE_ARCH}/defs.mk) 83f0c80e6cSmrgoptionlist: ${G_ALL_OPT_FILES} ${LIBOBJCARCH}/defs.mk Makefile ${DIST}/gcc/opt-gather.awk 84f0c80e6cSmrg ${TOOL_AWK} -f ${DIST}/gcc/opt-gather.awk ${G_ALL_OPT_FILES} \ 85f0c80e6cSmrg > ${.TARGET} 86f0c80e6cSmrg 8749d8c9ecSmrg.if ${MACHINE_ARCH} == "vax" || ${MACHINE_ARCH} == "mipseb" 8849d8c9ecSmrgOPTION_FLAGS=-v header_name="config.h system.h coretypes.h options.h tm.h" \ 8949d8c9ecSmrg -f ${DIST}/gcc/opt-read.awk 9049d8c9ecSmrgOPTION_DEPS=${DIST}/gcc/opt-read.awk 9149d8c9ecSmrg.endif 9249d8c9ecSmrg 9349d8c9ecSmrgoptions.h: optionlist ${DIST}/gcc/opt-functions.awk ${DIST}/gcc/opth-gen.awk \ 9449d8c9ecSmrg ${OPTION_DEPS} 95f0c80e6cSmrg ${TOOL_AWK} -f ${DIST}/gcc/opt-functions.awk \ 9649d8c9ecSmrg -f ${DIST}/gcc/opth-gen.awk ${OPTION_FLAGS} \ 97f0c80e6cSmrg < optionlist > ${.TARGET} 98f0c80e6cSmrg 99f0c80e6cSmrgCLEANFILES+= options.h optionlist 100f0c80e6cSmrg.endif 101f0c80e6cSmrg 1025d603aabSmrg.include <bsd.lib.mk> 1035d603aabSmrg 1045beaf704Smrg.PATH: ${DIST}/libobjc ${DIST}/libobjc/objc ${DIST}/libobjc/objc-private 1055beaf704Smrg 1062084d61bSmrg# XXX insn-modes.h 1072084d61bSmrgBINBACKENDOBJ!= cd ${.CURDIR}/../../usr.bin/backend && ${PRINTOBJDIR} 1082084d61bSmrgCPPFLAGS+= -I${BINBACKENDOBJ} 1092084d61bSmrg 110f0c80e6cSmrg.else 111f0c80e6cSmrg.include <bsd.prog.mk> # do nothing 112f0c80e6cSmrg.endif 1138049a323Smrg 1148049a323SmrgCOPTS.archive.c+= -Wno-error 1158049a323SmrgCOPTS.sendmsg.c+= -Wno-error 116d5fc259bSchristosCOPTS.encoding.c+= -Wno-pointer-arith # sizeof(void) 117d5fc259bSchristosCOPTS+= -Wno-missing-prototypes 118*45fa5e92Smrg 119*45fa5e92Smrg# XXXGCC12 120*45fa5e92SmrgOBJCOPTS.Object.m+= -Wno-error=objc-root-class 121