Makefile.inc revision 1.19
11.19Suwe#	$NetBSD: Makefile.inc,v 1.19 2013/09/18 22:53:39 uwe Exp $
21.1Sjoerg
31.1Sjoerg.include <bsd.own.mk>
41.1Sjoerg
51.19Suwe# XXX: FIXME: This is defined in bsd.lib.mk
61.19SuwePICFLAGS ?= -fPIC
71.19Suwe
81.3SdrochnerCOMMON_DIR:=	${.CURDIR}/common
91.1Sjoerg.PATH:		${COMMON_DIR}
101.1Sjoerg
111.1SjoergCPPFLAGS+=	-I${NETBSDSRCDIR}/libexec/ld.elf_so -I${COMMON_DIR} -I.
121.1Sjoerg
131.1SjoergOBJS+=		crt0.o gcrt0.o crti.o crtn.o
141.13SjoergOBJS+=		crtbegin.o crtend.o
151.13Sjoerg
161.13Sjoerg.if ${MKPIC} == "yes"
171.13SjoergOBJS+=		crtbeginS.o
181.15SmattCFLAGS.crtbegin.c+= -fPIE
191.13Sjoerg.endif
201.16Smatt.if ${MACHINE_ARCH} == "alpha"
211.16SmattOBJS+=		crtfm.o
221.16Smatt.endif
231.1Sjoerg
241.1Sjoergrealall: ${OBJS}
251.1Sjoerg
261.10Smatt.if exists(${ARCHDIR}/crtbegin.S)
271.10Smattcrtbegin.o: crtbegin.S
281.8Smatt	${_MKTARGET_COMPILE}
291.10Smatt	${COMPILE.S} ${ARCHDIR}/crtbegin.S -o ${.TARGET}.o
301.8Smatt.else
311.10Smattcrtbegin.o: crtbegin.c crtbegin.h
321.1Sjoerg	${_MKTARGET_COMPILE}
331.15Smatt	${COMPILE.c} ${CFLAGS.crtbegin.c} ${COMMON_DIR}/crtbegin.c -o ${.TARGET}.o
341.8Smatt.endif
351.1Sjoerg	${LD} -x -r -o ${.TARGET} ${.TARGET}.o
361.1Sjoerg	rm -f ${.TARGET}.o
371.1Sjoerg.if ${MKSTRIPIDENT} != "no"
381.1Sjoerg	${OBJCOPY} -R .ident ${.TARGET}
391.1Sjoerg.endif
401.1Sjoerg
411.10Smatt.if exists(${ARCHDIR}/crtbegin.S)
421.10SmattcrtbeginS.o: crtbegin.S
431.8Smatt	${_MKTARGET_COMPILE}
441.19Suwe	${COMPILE.S} ${PICFLAGS} -DSHARED ${ARCHDIR}/crtbegin.S -o ${.TARGET}.o
451.8Smatt.else
461.10SmattcrtbeginS.o: crtbegin.c crtbegin.h
471.1Sjoerg	${_MKTARGET_COMPILE}
481.19Suwe	${COMPILE.c} ${PICFLAGS} -DSHARED ${COMMON_DIR}/crtbegin.c -o ${.TARGET}.o
491.8Smatt.endif
501.1Sjoerg	${LD} -x -r -o ${.TARGET} ${.TARGET}.o
511.1Sjoerg	rm -f ${.TARGET}.o
521.1Sjoerg.if ${MKSTRIPIDENT} != "no"
531.1Sjoerg	${OBJCOPY} -R .ident ${.TARGET}
541.1Sjoerg.endif
551.1Sjoerg
561.1Sjoergcrtend.o: crtend.S
571.1Sjoerg	${_MKTARGET_COMPILE}
581.2Sjoerg	${COMPILE.S} ${ARCHDIR}/crtend.S -o ${.TARGET}.o
591.1Sjoerg	${LD} -x -r -o ${.TARGET} ${.TARGET}.o
601.1Sjoerg	rm -f ${.TARGET}.o
611.1Sjoerg.if ${MKSTRIPIDENT} != "no"
621.1Sjoerg	${OBJCOPY} -R .ident ${.TARGET}
631.1Sjoerg.endif
641.1Sjoerg
651.1Sjoerg.if ${MKPIC} != "no"
661.18SjoergMY_PICFLAGS=	${PICFLAGS}
671.1Sjoerg.else
681.18SjoergMY_PICFLAGS=
691.1Sjoerg.endif
701.1Sjoerg
711.6Suwecrt0.o: crt0.S crt0-common.c
721.1Sjoerg	${_MKTARGET_COMPILE}
731.6Suwe	${COMPILE.S} ${ARCHDIR}/crt0.S -o ${.TARGET}.S.o
741.18Sjoerg	${COMPILE.c} ${MY_PICFLAGS} ${COMMON_DIR}/crt0-common.c -o ${.TARGET}.c.o
751.6Suwe	${LD} -x -r -o ${.TARGET} ${.TARGET}.S.o ${.TARGET}.c.o
761.6Suwe	rm -f ${.TARGET}.S.o ${.TARGET}.c.o
771.1Sjoerg.if ${MKSTRIPIDENT} != "no"
781.1Sjoerg	${OBJCOPY} -R .ident ${.TARGET}
791.1Sjoerg.endif
801.1Sjoerg
811.6Suwegcrt0.o: crt0.S crt0-common.c
821.1Sjoerg	${_MKTARGET_COMPILE}
831.6Suwe	${COMPILE.S} ${ARCHDIR}/crt0.S -o ${.TARGET}.S.o
841.18Sjoerg	${COMPILE.c} ${MY_PICFLAGS} -DMCRT0 ${COMMON_DIR}/crt0-common.c -o ${.TARGET}.c.o
851.6Suwe	${LD} -x -r -o ${.TARGET} ${.TARGET}.S.o ${.TARGET}.c.o
861.6Suwe	rm -f ${.TARGET}.S.o ${.TARGET}.c.o
871.1Sjoerg.if ${MKSTRIPIDENT} != "no"
881.1Sjoerg	${OBJCOPY} -R .ident ${.TARGET}
891.1Sjoerg.endif
901.1Sjoerg
911.16Smatt.if ${MACHINE_ARCH} == "alpha"
921.16Smatt# can't do this in Makefile.inc otherwise it will before realall:
931.16Smattcrtfm.o: crtfm.c
941.16Smatt	${_MKTARGET_COMPILE}
951.16Smatt	${COMPILE.c} ${.ALLSRC} -o ${.TARGET}.o
961.16Smatt	${LD} -x -r -o ${.TARGET} ${.TARGET}.o
971.16Smatt	rm -f ${.TARGET}.o
981.16Smatt.endif
991.16Smatt
1001.17SmattGENASSYM_CONF=	${COMMON_DIR}/sysident_assym.cf 
1011.1Sjoergsysident_assym.h: ${GENASSYM_CONF} ${GENASSYM_EXTRAS}
1021.1Sjoerg	${_MKTARGET_CREATE}
1031.1Sjoerg	cat ${COMMON_DIR}/sysident_assym.cf | \
1041.7Sjoerg	    ${TOOL_GENASSYM} -- ${CC} ${CFLAGS:N-Wa,*} ${CPPFLAGS} ${PROF} \
1051.1Sjoerg	    > sysident_assym.h.tmp && \
1061.1Sjoerg	mv -f sysident_assym.h.tmp sysident_assym.h
1071.1Sjoerg
1081.1SjoergCLEANFILES+=	sysident_assym.h
1091.1Sjoerg
1101.17Smattcrti.o: crti.S sysident_assym.h sysident.S
1111.1Sjoergcrtn.o: crtn.S
1121.1Sjoerg
1131.1SjoergFILES=${OBJS}
1141.1SjoergFILESDIR=${LIBDIR}
1151.1SjoergCLEANFILES+=${OBJS}
1161.13Sjoerg
1171.13Sjoerg.if ${MKPIC} == "yes"
1181.1SjoergSYMLINKS+=	crtbegin.o ${LIBDIR}/crtbeginT.o
1191.1SjoergSYMLINKS+=	crtend.o ${LIBDIR}/crtendS.o
1201.13Sjoerg.endif
1211.1Sjoerg
1221.1Sjoerg.include <bsd.prog.mk>
123