Makefile.inc revision 1.18
1# $NetBSD: Makefile.inc,v 1.18 2013/09/12 15:36:15 joerg 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.if ${MACHINE_ARCH} == "alpha" 18OBJS+= crtfm.o 19.endif 20 21realall: ${OBJS} 22 23.if exists(${ARCHDIR}/crtbegin.S) 24crtbegin.o: crtbegin.S 25 ${_MKTARGET_COMPILE} 26 ${COMPILE.S} ${ARCHDIR}/crtbegin.S -o ${.TARGET}.o 27.else 28crtbegin.o: crtbegin.c crtbegin.h 29 ${_MKTARGET_COMPILE} 30 ${COMPILE.c} ${CFLAGS.crtbegin.c} ${COMMON_DIR}/crtbegin.c -o ${.TARGET}.o 31.endif 32 ${LD} -x -r -o ${.TARGET} ${.TARGET}.o 33 rm -f ${.TARGET}.o 34.if ${MKSTRIPIDENT} != "no" 35 ${OBJCOPY} -R .ident ${.TARGET} 36.endif 37 38.if exists(${ARCHDIR}/crtbegin.S) 39crtbeginS.o: crtbegin.S 40 ${_MKTARGET_COMPILE} 41 ${COMPILE.S} -DPIC -DSHARED ${ARCHDIR}/crtbegin.S -o ${.TARGET}.o 42.else 43crtbeginS.o: crtbegin.c crtbegin.h 44 ${_MKTARGET_COMPILE} 45 ${COMPILE.c} -fPIC -DPIC -DSHARED ${COMMON_DIR}/crtbegin.c -o ${.TARGET}.o 46.endif 47 ${LD} -x -r -o ${.TARGET} ${.TARGET}.o 48 rm -f ${.TARGET}.o 49.if ${MKSTRIPIDENT} != "no" 50 ${OBJCOPY} -R .ident ${.TARGET} 51.endif 52 53crtend.o: crtend.S 54 ${_MKTARGET_COMPILE} 55 ${COMPILE.S} ${ARCHDIR}/crtend.S -o ${.TARGET}.o 56 ${LD} -x -r -o ${.TARGET} ${.TARGET}.o 57 rm -f ${.TARGET}.o 58.if ${MKSTRIPIDENT} != "no" 59 ${OBJCOPY} -R .ident ${.TARGET} 60.endif 61 62.if ${MKPIC} != "no" 63MY_PICFLAGS= ${PICFLAGS} 64.else 65MY_PICFLAGS= 66.endif 67 68crt0.o: crt0.S crt0-common.c 69 ${_MKTARGET_COMPILE} 70 ${COMPILE.S} ${ARCHDIR}/crt0.S -o ${.TARGET}.S.o 71 ${COMPILE.c} ${MY_PICFLAGS} ${COMMON_DIR}/crt0-common.c -o ${.TARGET}.c.o 72 ${LD} -x -r -o ${.TARGET} ${.TARGET}.S.o ${.TARGET}.c.o 73 rm -f ${.TARGET}.S.o ${.TARGET}.c.o 74.if ${MKSTRIPIDENT} != "no" 75 ${OBJCOPY} -R .ident ${.TARGET} 76.endif 77 78gcrt0.o: crt0.S crt0-common.c 79 ${_MKTARGET_COMPILE} 80 ${COMPILE.S} ${ARCHDIR}/crt0.S -o ${.TARGET}.S.o 81 ${COMPILE.c} ${MY_PICFLAGS} -DMCRT0 ${COMMON_DIR}/crt0-common.c -o ${.TARGET}.c.o 82 ${LD} -x -r -o ${.TARGET} ${.TARGET}.S.o ${.TARGET}.c.o 83 rm -f ${.TARGET}.S.o ${.TARGET}.c.o 84.if ${MKSTRIPIDENT} != "no" 85 ${OBJCOPY} -R .ident ${.TARGET} 86.endif 87 88.if ${MACHINE_ARCH} == "alpha" 89# can't do this in Makefile.inc otherwise it will before realall: 90crtfm.o: crtfm.c 91 ${_MKTARGET_COMPILE} 92 ${COMPILE.c} ${.ALLSRC} -o ${.TARGET}.o 93 ${LD} -x -r -o ${.TARGET} ${.TARGET}.o 94 rm -f ${.TARGET}.o 95.endif 96 97GENASSYM_CONF= ${COMMON_DIR}/sysident_assym.cf 98sysident_assym.h: ${GENASSYM_CONF} ${GENASSYM_EXTRAS} 99 ${_MKTARGET_CREATE} 100 cat ${COMMON_DIR}/sysident_assym.cf | \ 101 ${TOOL_GENASSYM} -- ${CC} ${CFLAGS:N-Wa,*} ${CPPFLAGS} ${PROF} \ 102 > sysident_assym.h.tmp && \ 103 mv -f sysident_assym.h.tmp sysident_assym.h 104 105CLEANFILES+= sysident_assym.h 106 107crti.o: crti.S sysident_assym.h sysident.S 108crtn.o: crtn.S 109 110FILES=${OBJS} 111FILESDIR=${LIBDIR} 112CLEANFILES+=${OBJS} 113 114.if ${MKPIC} == "yes" 115SYMLINKS+= crtbegin.o ${LIBDIR}/crtbeginT.o 116SYMLINKS+= crtend.o ${LIBDIR}/crtendS.o 117.endif 118 119.include <bsd.prog.mk> 120