1# $NetBSD: Makefile,v 1.7 2013/08/22 00:16:54 matt Exp $ 2 3REQUIRETOOLS= yes 4NOLINT= # defined 5 6UNSUPPORTED_COMPILER.clang= # defined 7 8.include <bsd.own.mk> 9 10LIB= objc 11GCC_MACHINE_ARCH?= ${MACHINE_ARCH:S/earmv5/earm/} 12 13.if ${MKGCC} != "no" 14 15SHLIB_MAJOR= 3 16SHLIB_MINOR= 0 17 18# XXX just while all platforms defs.mk are updated.. 19.if exists(${.CURDIR}/arch/${GCC_MACHINE_ARCH}/defs.mk) 20# Machine-dependent definitions (include file names). 21.include "${.CURDIR}/arch/${GCC_MACHINE_ARCH}/defs.mk" 22EXTRA_FAKEHEADERS= 23.else 24# Machine-independent definitions (include file names). 25.include "${.CURDIR}/defs.mk" 26EXTRA_FAKEHEADERS= 27.endif 28 29LIBGCCOBJ!= cd ${.CURDIR}/../libgcc/libgcc && ${PRINTOBJDIR} 30 31DIST= ${NETBSDSRCDIR}/external/gpl3/gcc/dist 32GNUHOSTDIST= ${NETBSDSRCDIR}/external/gpl3/gcc/dist 33GCCARCH= ${NETBSDSRCDIR}/external/gpl3/gcc/usr.bin/gcc/arch/${GCC_MACHINE_ARCH} 34LIBOBJCARCH= ${NETBSDSRCDIR}/external/gpl3/gcc/lib/libobjc/arch/${GCC_MACHINE_ARCH} 35GCCLIBXX= ${NETBSDSRCDIR}/external/gpl3/gcc/lib/libstdc++-v3/arch/${GCC_MACHINE_ARCH} 36 37SRCS= ${G_OBJS:N[A-Z]*:Nlinking.lo:.lo=.c} ${G_OBJS:M[A-Z]*:.lo=.m} linking.m 38 39GCPPFLAGS= ${G_ALL_CFLAGS} ${G_INCLUDES} 40CPPFLAGS+= -I. -I${.CURDIR}/arch/${GCC_MACHINE_ARCH} 41CPPFLAGS+= -I${GCCARCH} ${GCPPFLAGS:M-D*} ${GCPPFLAGS:M-I*:N-I.*} 42CPPFLAGS+= -I${GCCLIBXX} 43 44BUILDSYMLINKS= ${.CURDIR}/../libstdc++-v3/arch/${GCC_MACHINE_ARCH} bits 45DPSRCS+= bits 46 47.for f in Protocol.m Object.m NXConstStr.m linking.m 48OBJCOPTS.${f}= -fgnu-runtime 49.endfor 50 51.for f in thr.c thr-objc.c 52COPTS.${f}= -Wno-missing-noreturn 53.endfor 54 55COPTS+= -fno-strict-aliasing -fexceptions 56OBJCOPTS+= -fno-strict-aliasing -fexceptions 57 58OBJCOPTS.Object.m = -Wno-stack-protector 59COPTS.sendmsg.c = -Wno-stack-protector 60 61INCS= ${G_OBJC_H} 62INCSDIR= /usr/include/objc 63 64DPSRCS+= runtime-info.h 65CLEANFILES+= rtscratch rtscratch.s runtime-info.h 66runtime-info.h: 67 ${_MKTARGET_CREATE} 68 touch rtscratch 69 `${OBJC} --print-prog-name=cc1obj` -print-objc-runtime-info rtscratch >$@ 70 71.PATH: ${DIST}/libobjc ${DIST}/libobjc/objc 72 73${OBJS} ${POBJS} ${SOBJS}: runtime-info.h 74 75${SRCS}: tconfig.h unwind.h options.h 76 77BUILDSYMLINKS+= ${G_UNWIND_H} unwind.h 78DPSRCS+= unwind.h 79 80.include "../Makefile.tconfigh" 81.include "../Makefile.hacks" 82 83# XXX just while all platforms defs.mk are updated.. 84.if exists(${.CURDIR}/arch/${GCC_MACHINE_ARCH}/defs.mk) 85optionlist: ${G_ALL_OPT_FILES} ${LIBOBJCARCH}/defs.mk Makefile ${DIST}/gcc/opt-gather.awk 86 ${TOOL_AWK} -f ${DIST}/gcc/opt-gather.awk ${G_ALL_OPT_FILES} \ 87 > ${.TARGET} 88 89options.h: optionlist ${DIST}/gcc/opt-functions.awk ${DIST}/gcc/opth-gen.awk 90 ${TOOL_AWK} -f ${DIST}/gcc/opt-functions.awk \ 91 -f ${DIST}/gcc/opth-gen.awk \ 92 < optionlist > ${.TARGET} 93 94CLEANFILES+= options.h optionlist 95.endif 96 97.include <bsd.lib.mk> 98 99.else 100.include <bsd.prog.mk> # do nothing 101.endif 102 103COPTS.archive.c+= -Wno-error 104COPTS.sendmsg.c+= -Wno-error 105