Makefile.inc revision 1.15
1# $NetBSD: Makefile.inc,v 1.15 2013/07/18 18:43:56 matt Exp $ 2 3.include <bsd.own.mk> 4 5COMMON_DIR:= ${.CURDIR}/common 6.PATH: ${COMMON_DIR} 7 8CPPFLAGS+= -I${NETBSDSRCDIR}/libexec/ld.elf_so -I${COMMON_DIR} -I. 9 10OBJS+= crt0.o gcrt0.o crti.o crtn.o 11OBJS+= crtbegin.o crtend.o 12 13.if ${MKPIC} == "yes" 14OBJS+= crtbeginS.o 15CFLAGS.crtbegin.c+= -fPIE 16.endif 17 18realall: ${OBJS} 19 20.if exists(${ARCHDIR}/crtbegin.S) 21crtbegin.o: crtbegin.S 22 ${_MKTARGET_COMPILE} 23 ${COMPILE.S} ${ARCHDIR}/crtbegin.S -o ${.TARGET}.o 24.else 25crtbegin.o: crtbegin.c crtbegin.h 26 ${_MKTARGET_COMPILE} 27 ${COMPILE.c} ${CFLAGS.crtbegin.c} ${COMMON_DIR}/crtbegin.c -o ${.TARGET}.o 28.endif 29 ${LD} -x -r -o ${.TARGET} ${.TARGET}.o 30 rm -f ${.TARGET}.o 31.if ${MKSTRIPIDENT} != "no" 32 ${OBJCOPY} -R .ident ${.TARGET} 33.endif 34 35.if exists(${ARCHDIR}/crtbegin.S) 36crtbeginS.o: crtbegin.S 37 ${_MKTARGET_COMPILE} 38 ${COMPILE.S} -DPIC -DSHARED ${ARCHDIR}/crtbegin.S -o ${.TARGET}.o 39.else 40crtbeginS.o: crtbegin.c crtbegin.h 41 ${_MKTARGET_COMPILE} 42 ${COMPILE.c} -fPIC -DPIC -DSHARED ${COMMON_DIR}/crtbegin.c -o ${.TARGET}.o 43.endif 44 ${LD} -x -r -o ${.TARGET} ${.TARGET}.o 45 rm -f ${.TARGET}.o 46.if ${MKSTRIPIDENT} != "no" 47 ${OBJCOPY} -R .ident ${.TARGET} 48.endif 49 50crtend.o: crtend.S 51 ${_MKTARGET_COMPILE} 52 ${COMPILE.S} ${ARCHDIR}/crtend.S -o ${.TARGET}.o 53 ${LD} -x -r -o ${.TARGET} ${.TARGET}.o 54 rm -f ${.TARGET}.o 55.if ${MKSTRIPIDENT} != "no" 56 ${OBJCOPY} -R .ident ${.TARGET} 57.endif 58 59.if ${MKPIC} != "no" 60PICFLAGS= -fPIC 61.else 62PICFLAGS= 63.endif 64 65crt0.o: crt0.S crt0-common.c 66 ${_MKTARGET_COMPILE} 67 ${COMPILE.S} ${ARCHDIR}/crt0.S -o ${.TARGET}.S.o 68 ${COMPILE.c} ${PICFLAGS} ${COMMON_DIR}/crt0-common.c -o ${.TARGET}.c.o 69 ${LD} -x -r -o ${.TARGET} ${.TARGET}.S.o ${.TARGET}.c.o 70 rm -f ${.TARGET}.S.o ${.TARGET}.c.o 71.if ${MKSTRIPIDENT} != "no" 72 ${OBJCOPY} -R .ident ${.TARGET} 73.endif 74 75gcrt0.o: crt0.S crt0-common.c 76 ${_MKTARGET_COMPILE} 77 ${COMPILE.S} ${ARCHDIR}/crt0.S -o ${.TARGET}.S.o 78 ${COMPILE.c} ${PICFLAGS} -DMCRT0 ${COMMON_DIR}/crt0-common.c -o ${.TARGET}.c.o 79 ${LD} -x -r -o ${.TARGET} ${.TARGET}.S.o ${.TARGET}.c.o 80 rm -f ${.TARGET}.S.o ${.TARGET}.c.o 81.if ${MKSTRIPIDENT} != "no" 82 ${OBJCOPY} -R .ident ${.TARGET} 83.endif 84 85sysident_assym.h: ${GENASSYM_CONF} ${GENASSYM_EXTRAS} 86 ${_MKTARGET_CREATE} 87 cat ${COMMON_DIR}/sysident_assym.cf | \ 88 ${TOOL_GENASSYM} -- ${CC} ${CFLAGS:N-Wa,*} ${CPPFLAGS} ${PROF} \ 89 > sysident_assym.h.tmp && \ 90 mv -f sysident_assym.h.tmp sysident_assym.h 91 92CLEANFILES+= sysident_assym.h 93 94crti.o: crti.S sysident_assym.h 95crtn.o: crtn.S 96 97FILES=${OBJS} 98FILESDIR=${LIBDIR} 99CLEANFILES+=${OBJS} 100 101.if ${MKPIC} == "yes" 102SYMLINKS+= crtbegin.o ${LIBDIR}/crtbeginT.o 103SYMLINKS+= crtend.o ${LIBDIR}/crtendS.o 104.endif 105 106.include <bsd.prog.mk> 107