1 1.17 mrg # $NetBSD: Makefile,v 1.17 2023/08/01 05:57:56 mrg Exp $ 2 1.1 mrg 3 1.1 mrg REQUIRETOOLS= yes 4 1.1 mrg NOLINT= # defined 5 1.1 mrg 6 1.1 mrg UNSUPPORTED_COMPILER.clang= # defined 7 1.1 mrg 8 1.13 mrg .include <bsd.init.mk> 9 1.1 mrg 10 1.1 mrg LIB= objc 11 1.7 matt GCC_MACHINE_ARCH?= ${MACHINE_ARCH:S/earmv5/earm/} 12 1.1 mrg 13 1.1 mrg .if ${MKGCC} != "no" 14 1.1 mrg 15 1.10 mrg SHLIB_MAJOR= 4 16 1.1 mrg SHLIB_MINOR= 0 17 1.1 mrg 18 1.1 mrg # XXX just while all platforms defs.mk are updated.. 19 1.7 matt .if exists(${.CURDIR}/arch/${GCC_MACHINE_ARCH}/defs.mk) 20 1.1 mrg # Machine-dependent definitions (include file names). 21 1.7 matt .include "${.CURDIR}/arch/${GCC_MACHINE_ARCH}/defs.mk" 22 1.1 mrg EXTRA_FAKEHEADERS= 23 1.1 mrg .else 24 1.1 mrg # Machine-independent definitions (include file names). 25 1.1 mrg .include "${.CURDIR}/defs.mk" 26 1.6 mrg EXTRA_FAKEHEADERS= 27 1.1 mrg .endif 28 1.1 mrg 29 1.2 mrg LIBGCCOBJ!= cd ${.CURDIR}/../libgcc/libgcc && ${PRINTOBJDIR} 30 1.1 mrg 31 1.13 mrg DIST= ${GCCDIST} 32 1.13 mrg GNUHOSTDIST= ${DIST} 33 1.13 mrg GCCARCH= ${GCC_SUBDIR}/usr.bin/gcc/arch/${GCC_MACHINE_ARCH} 34 1.13 mrg LIBOBJCARCH= ${GCC_SUBDIR}/lib/libobjc/arch/${GCC_MACHINE_ARCH} 35 1.13 mrg GCCLIBXX= ${GCC_SUBDIR}/lib/libstdc++-v3/arch/${GCC_MACHINE_ARCH} 36 1.1 mrg 37 1.10 mrg SRCS= ${G_OBJC_SOURCE_FILES} ${G_C_SOURCE_FILES} 38 1.1 mrg 39 1.1 mrg GCPPFLAGS= ${G_ALL_CFLAGS} ${G_INCLUDES} 40 1.7 matt CPPFLAGS+= -I. -I${.CURDIR}/arch/${GCC_MACHINE_ARCH} 41 1.1 mrg CPPFLAGS+= -I${GCCARCH} ${GCPPFLAGS:M-D*} ${GCPPFLAGS:M-I*:N-I.*} 42 1.1 mrg CPPFLAGS+= -I${GCCLIBXX} 43 1.10 mrg CPPFLAGS+= -I${DIST}/libobjc/objc-private 44 1.1 mrg 45 1.7 matt BUILDSYMLINKS= ${.CURDIR}/../libstdc++-v3/arch/${GCC_MACHINE_ARCH} bits 46 1.1 mrg DPSRCS+= bits 47 1.1 mrg 48 1.1 mrg .for f in Protocol.m Object.m NXConstStr.m linking.m 49 1.1 mrg OBJCOPTS.${f}= -fgnu-runtime 50 1.1 mrg .endfor 51 1.1 mrg 52 1.1 mrg .for f in thr.c thr-objc.c 53 1.1 mrg COPTS.${f}= -Wno-missing-noreturn 54 1.1 mrg .endfor 55 1.1 mrg 56 1.1 mrg COPTS+= -fno-strict-aliasing -fexceptions 57 1.1 mrg OBJCOPTS+= -fno-strict-aliasing -fexceptions 58 1.1 mrg 59 1.1 mrg OBJCOPTS.Object.m = -Wno-stack-protector 60 1.1 mrg COPTS.sendmsg.c = -Wno-stack-protector 61 1.11 christos COPTS.objc-act.c = -Wno-stack-protector 62 1.1 mrg 63 1.1 mrg INCS= ${G_OBJC_H} 64 1.1 mrg INCSDIR= /usr/include/objc 65 1.1 mrg 66 1.1 mrg DPSRCS+= runtime-info.h 67 1.1 mrg CLEANFILES+= rtscratch rtscratch.s runtime-info.h 68 1.1 mrg runtime-info.h: 69 1.1 mrg ${_MKTARGET_CREATE} 70 1.1 mrg touch rtscratch 71 1.1 mrg `${OBJC} --print-prog-name=cc1obj` -print-objc-runtime-info rtscratch >$@ 72 1.1 mrg 73 1.1 mrg ${OBJS} ${POBJS} ${SOBJS}: runtime-info.h 74 1.1 mrg 75 1.10 mrg ${SRCS}: tconfig.h options.h 76 1.1 mrg 77 1.16 mrg .include "../Makefile.gthr" 78 1.3 mrg .include "../Makefile.tconfigh" 79 1.4 mrg .include "../Makefile.hacks" 80 1.1 mrg 81 1.1 mrg # XXX just while all platforms defs.mk are updated.. 82 1.7 matt .if exists(${.CURDIR}/arch/${GCC_MACHINE_ARCH}/defs.mk) 83 1.1 mrg optionlist: ${G_ALL_OPT_FILES} ${LIBOBJCARCH}/defs.mk Makefile ${DIST}/gcc/opt-gather.awk 84 1.1 mrg ${TOOL_AWK} -f ${DIST}/gcc/opt-gather.awk ${G_ALL_OPT_FILES} \ 85 1.1 mrg > ${.TARGET} 86 1.1 mrg 87 1.10 mrg .if ${MACHINE_ARCH} == "vax" || ${MACHINE_ARCH} == "mipseb" 88 1.10 mrg OPTION_FLAGS=-v header_name="config.h system.h coretypes.h options.h tm.h" \ 89 1.10 mrg -f ${DIST}/gcc/opt-read.awk 90 1.10 mrg OPTION_DEPS=${DIST}/gcc/opt-read.awk 91 1.10 mrg .endif 92 1.10 mrg 93 1.10 mrg options.h: optionlist ${DIST}/gcc/opt-functions.awk ${DIST}/gcc/opth-gen.awk \ 94 1.10 mrg ${OPTION_DEPS} 95 1.1 mrg ${TOOL_AWK} -f ${DIST}/gcc/opt-functions.awk \ 96 1.10 mrg -f ${DIST}/gcc/opth-gen.awk ${OPTION_FLAGS} \ 97 1.1 mrg < optionlist > ${.TARGET} 98 1.1 mrg 99 1.1 mrg CLEANFILES+= options.h optionlist 100 1.1 mrg .endif 101 1.1 mrg 102 1.5 mrg .include <bsd.lib.mk> 103 1.5 mrg 104 1.13 mrg .PATH: ${DIST}/libobjc ${DIST}/libobjc/objc ${DIST}/libobjc/objc-private 105 1.13 mrg 106 1.14 mrg # XXX insn-modes.h 107 1.14 mrg BINBACKENDOBJ!= cd ${.CURDIR}/../../usr.bin/backend && ${PRINTOBJDIR} 108 1.14 mrg CPPFLAGS+= -I${BINBACKENDOBJ} 109 1.14 mrg 110 1.1 mrg .else 111 1.1 mrg .include <bsd.prog.mk> # do nothing 112 1.1 mrg .endif 113 1.2 mrg 114 1.2 mrg COPTS.archive.c+= -Wno-error 115 1.2 mrg COPTS.sendmsg.c+= -Wno-error 116 1.15 christos COPTS.encoding.c+= -Wno-pointer-arith # sizeof(void) 117 1.15 christos COPTS+= -Wno-missing-prototypes 118 1.17 mrg 119 1.17 mrg # XXXGCC12 120 1.17 mrg OBJCOPTS.Object.m+= -Wno-error=objc-root-class 121