1# $NetBSD: Makefile,v 1.5 2011/07/01 05:07:46 mrg Exp $ 2 3REQUIRETOOLS= yes 4NOLINT= # defined 5 6.include <bsd.own.mk> 7 8# If using an external toolchain, we expect crtbegin/crtend to be 9# supplied by that toolchain's run-time support. 10.if !defined(EXTERNAL_TOOLCHAIN) && ${MKGCC} != "no" 11 12DIST= ${NETBSDSRCDIR}/external/gpl3/gcc/dist 13GNUHOSTDIST= ${DIST} 14GCCARCH= ${NETBSDSRCDIR}/external/gpl3/gcc/usr.bin/gcc/arch/${MACHINE_ARCH} 15 16GALLCFLAGS= ${G_CRTSTUFF_CFLAGS} ${G_CRTSTUFF_T_CFLAGS} 17 18CPPFLAGS+= -I${GCCARCH} ${GALLCFLAGS:M-D*} ${GALLCFLAGS:M-I*:N-I.*} 19CPPFLAGS+= -I. 20COPTS+= -finhibit-size-directive \ 21 -fno-inline \ 22 -fno-exceptions \ 23 -fno-zero-initialized-in-bss \ 24 -fno-toplevel-reorder \ 25 -fno-tree-vectorize \ 26 -fno-omit-frame-pointer \ 27 -fno-asynchronous-unwind-tables 28 29GCFLAGS= ${GALLCFLAGS:N-D*:N-I*:N-i*:N./*} 30 31DPSRCS+= ${.CURDIR}/arch/${MACHINE_ARCH}.mk tconfig.h 32 33.include "${.CURDIR}/arch/${MACHINE_ARCH}.mk" 34 35SRCS+= crtbegin.c crtend.c 36OBJS+= crtbegin.o crtend.o 37.if ${MKPIC} != "no" 38SRCS+= crtbeginS.c crtendS.c 39OBJS+= crtbeginS.o crtendS.o # for shared libraries 40CPPFLAGS.crtbeginS.o+= -fPIC -DPIC 41CPPFLAGS.crtendS.o+= -fPIC -DPIC 42SRCS+= crtbeginT.c 43OBJS+= crtbeginT.o # for -static links 44.endif 45 46realall: ${OBJS} 47 48FILES=${OBJS} 49FILESDIR=${LIBDIR} 50 51.PATH: ${DIST}/gcc ${DIST}/gcc/config ${G_CONFIGDIR} 52 53.include "../Makefile.tconfigh" 54EXTRA_FAKEHEADERS= options.h 55.include "../Makefile.hacks" 56 57${OBJS}: ${DPSRCS} 58 59.include <bsd.prog.mk> 60 61# Override the default .c -> .o rule. 62.c.o: 63 ${_MKTARGET_COMPILE} 64 ${CC} ${CPPFLAGS} ${CPPFLAGS.${.TARGET}} ${GCFLAGS} ${COPTS} ${COPTS.${.TARGET}} ${CPUFLAGS} -c ${.IMPSRC} -o ${.TARGET}.o 65 mv ${.TARGET}.o ${.TARGET} 66 67.if (${MACHINE_ARCH} == "mips64eb") || (${MACHINE_ARCH} == "mips64el") 68# Turn off as(1) warnings on MIPS, since warnings are fatal with WARNS>0 69# and GCC configury passes -finhibit-size-directive which causes mips-gas 70# to barf. Don't know what the real fix for this is... 71# 72# XXX should be COPTS, but that's too early 73CPUFLAGS+=-Wa,--no-warn 74.endif 75 76.else 77 78.include <bsd.prog.mk> # do nothing 79 80.endif # ! EXTERNAL_TOOLCHAIN && MKGCC != no 81