xref: /netbsd-src/external/gpl3/gcc/lib/libobjc/Makefile (revision 45fa5e923b02b1366cc56383eaa6d3473ea659f1)
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