Makefile.inc revision 1.22
1# $NetBSD: Makefile.inc,v 1.22 2013/11/16 10:50:43 martin Exp $ 2 3.include <bsd.own.mk> 4 5# XXX: FIXME: This is defined in bsd.lib.mk 6PICFLAGS ?= -fPIC 7 8COMMON_DIR:= ${.CURDIR}/common 9.PATH: ${COMMON_DIR} 10 11CPPFLAGS+= -I${NETBSDSRCDIR}/libexec/ld.elf_so -I${COMMON_DIR} -I. 12 13OBJS+= crt0.o gcrt0.o crti.o crtn.o 14OBJS+= crtbegin.o crtend.o 15 16.if ${MKPIC} == "yes" 17OBJS+= crtbeginS.o 18CFLAGS.crtbegin.c+= -fPIE 19.endif 20.if ${MACHINE_ARCH} == "alpha" 21OBJS+= crtfm.o 22.endif 23 24.if ${MACHINE_ARCH} == "sparc64" && "${COPTS:M-m32}" == "" 25# create helper objects for the compiler to mark compiler memory models 26.for m in medlow medmid medany 27sparc_mc${m}.o: compident.S sysident_assym.h 28 ${CC} ${ASFLAGS} -I. -DCONTENT=\"${m}\\0\\0\" -DCONTENTLENGTH=8 -c \ 29 -o $@ ${COMMON_DIR}/compident.S 30.endfor 31OBJS += sparc_mcmedlow.o sparc_mcmedmid.o sparc_mcmedany.o 32.endif 33 34realall: ${OBJS} 35 36.if exists(${ARCHDIR}/crtbegin.S) 37crtbegin.o: crtbegin.S 38 ${_MKTARGET_COMPILE} 39 ${COMPILE.S} ${ARCHDIR}/crtbegin.S -o ${.TARGET}.o 40.else 41crtbegin.o: crtbegin.c crtbegin.h 42 ${_MKTARGET_COMPILE} 43 ${COMPILE.c} ${CFLAGS.crtbegin.c} ${COMMON_DIR}/crtbegin.c -o ${.TARGET}.o 44.endif 45 ${LD} -x -r -o ${.TARGET} ${.TARGET}.o 46 rm -f ${.TARGET}.o 47.if ${MKSTRIPIDENT} != "no" 48 ${OBJCOPY} -R .ident ${.TARGET} 49.endif 50 51.if exists(${ARCHDIR}/crtbegin.S) 52crtbeginS.o: crtbegin.S 53 ${_MKTARGET_COMPILE} 54 ${COMPILE.S} ${PICFLAGS} -DSHARED ${ARCHDIR}/crtbegin.S -o ${.TARGET}.o 55.else 56crtbeginS.o: crtbegin.c crtbegin.h 57 ${_MKTARGET_COMPILE} 58 ${COMPILE.c} ${PICFLAGS} -DSHARED ${COMMON_DIR}/crtbegin.c -o ${.TARGET}.o 59.endif 60 ${LD} -x -r -o ${.TARGET} ${.TARGET}.o 61 rm -f ${.TARGET}.o 62.if ${MKSTRIPIDENT} != "no" 63 ${OBJCOPY} -R .ident ${.TARGET} 64.endif 65 66crtend.o: crtend.S 67 ${_MKTARGET_COMPILE} 68 ${COMPILE.S} ${ARCHDIR}/crtend.S -o ${.TARGET}.o 69 ${LD} -x -r -o ${.TARGET} ${.TARGET}.o 70 rm -f ${.TARGET}.o 71.if ${MKSTRIPIDENT} != "no" 72 ${OBJCOPY} -R .ident ${.TARGET} 73.endif 74 75.if ${MKPIC} != "no" 76MY_PICFLAGS= ${PICFLAGS} 77.else 78MY_PICFLAGS= 79.endif 80 81crt0.o: crt0.S crt0-common.c 82 ${_MKTARGET_COMPILE} 83 ${COMPILE.S} ${ARCHDIR}/crt0.S -o ${.TARGET}.S.o 84 ${COMPILE.c} ${MY_PICFLAGS} ${COMMON_DIR}/crt0-common.c -o ${.TARGET}.c.o 85 ${LD} -x -r -o ${.TARGET} ${.TARGET}.S.o ${.TARGET}.c.o 86 rm -f ${.TARGET}.S.o ${.TARGET}.c.o 87.if ${MKSTRIPIDENT} != "no" 88 ${OBJCOPY} -R .ident ${.TARGET} 89.endif 90 91gcrt0.o: crt0.S crt0-common.c 92 ${_MKTARGET_COMPILE} 93 ${COMPILE.S} ${ARCHDIR}/crt0.S -o ${.TARGET}.S.o 94 ${COMPILE.c} ${MY_PICFLAGS} -DMCRT0 ${COMMON_DIR}/crt0-common.c -o ${.TARGET}.c.o 95 ${LD} -x -r -o ${.TARGET} ${.TARGET}.S.o ${.TARGET}.c.o 96 rm -f ${.TARGET}.S.o ${.TARGET}.c.o 97.if ${MKSTRIPIDENT} != "no" 98 ${OBJCOPY} -R .ident ${.TARGET} 99.endif 100 101.if ${MACHINE_ARCH} == "alpha" 102# can't do this in Makefile.inc otherwise it will before realall: 103crtfm.o: crtfm.c 104 ${_MKTARGET_COMPILE} 105 ${COMPILE.c} ${.ALLSRC} -o ${.TARGET}.o 106 ${LD} -x -r -o ${.TARGET} ${.TARGET}.o 107 rm -f ${.TARGET}.o 108.endif 109 110GENASSYM_CONF= ${COMMON_DIR}/sysident_assym.cf 111sysident_assym.h: ${GENASSYM_CONF} ${GENASSYM_EXTRAS} ${NETBSDSRCDIR}/sys/sys/param.h 112 ${_MKTARGET_CREATE} 113 cat ${COMMON_DIR}/sysident_assym.cf | \ 114 ${TOOL_GENASSYM} -- ${CC} ${CFLAGS:N-Wa,*} ${CPPFLAGS} ${PROF} \ 115 > sysident_assym.h.tmp && \ 116 mv -f sysident_assym.h.tmp sysident_assym.h 117 118CLEANFILES+= sysident_assym.h 119 120crti.o: crti.S sysident_assym.h sysident.S 121crtn.o: crtn.S 122 123FILES=${OBJS} 124FILESDIR=${LIBDIR} 125CLEANFILES+=${OBJS} 126 127.if ${MKPIC} == "yes" 128SYMLINKS+= crtbegin.o ${LIBDIR}/crtbeginT.o 129SYMLINKS+= crtend.o ${LIBDIR}/crtendS.o 130.endif 131 132.include <bsd.prog.mk> 133