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