Makefile.inc revision 1.28
11.28Smartin# $NetBSD: Makefile.inc,v 1.28 2016/04/04 18:29:07 martin 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.28SmartinOBJS+= sysident.o 161.13Sjoerg 171.13Sjoerg.if ${MKPIC} == "yes" 181.13SjoergOBJS+= crtbeginS.o 191.15SmattCFLAGS.crtbegin.c+= -fPIE 201.26Smrg# XXXGCC5 - GCC 5 miscompiles crtbeginS.c on many platforms. on SPARC it 211.26Smrg# XXXGCC5 emits "clr %g1; call %g1", which is effectively jumping to zero. 221.26Smrg. if defined(HAVE_GCC) && ${HAVE_GCC} == 53 && \ 231.26Smrg ${MACHINE_ARCH} != "i386" && ${MACHINE_ARCH} != "amd64" 241.27SskrllCFLAGS.crt0-common.c+= -O1 251.26SmrgCFLAGS.crtbeginS.c+= -O1 261.26Smrg. endif 271.13Sjoerg.endif 281.26Smrg 291.16Smatt.if ${MACHINE_ARCH} == "alpha" 301.16SmattOBJS+= crtfm.o 311.16Smatt.endif 321.1Sjoerg 331.23Smartin.if ${CSU_MACHINE_ARCH} == "sparc64" 341.21Smartin# create helper objects for the compiler to mark compiler memory models 351.21Smartin.for m in medlow medmid medany 361.21Smartinsparc_mc${m}.o: compident.S sysident_assym.h 371.21Smartin ${CC} ${ASFLAGS} -I. -DCONTENT=\"${m}\\0\\0\" -DCONTENTLENGTH=8 -c \ 381.21Smartin -o $@ ${COMMON_DIR}/compident.S 391.21Smartin.endfor 401.21SmartinOBJS += sparc_mcmedlow.o sparc_mcmedmid.o sparc_mcmedany.o 411.21Smartin.endif 421.21Smartin 431.1Sjoergrealall: ${OBJS} 441.1Sjoerg 451.10Smatt.if exists(${ARCHDIR}/crtbegin.S) 461.10Smattcrtbegin.o: crtbegin.S 471.8Smatt ${_MKTARGET_COMPILE} 481.10Smatt ${COMPILE.S} ${ARCHDIR}/crtbegin.S -o ${.TARGET}.o 491.8Smatt.else 501.10Smattcrtbegin.o: crtbegin.c crtbegin.h 511.1Sjoerg ${_MKTARGET_COMPILE} 521.15Smatt ${COMPILE.c} ${CFLAGS.crtbegin.c} ${COMMON_DIR}/crtbegin.c -o ${.TARGET}.o 531.8Smatt.endif 541.24Smatt ${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET}.o ${.TARGET} 551.1Sjoerg rm -f ${.TARGET}.o 561.1Sjoerg.if ${MKSTRIPIDENT} != "no" 571.1Sjoerg ${OBJCOPY} -R .ident ${.TARGET} 581.1Sjoerg.endif 591.1Sjoerg 601.10Smatt.if exists(${ARCHDIR}/crtbegin.S) 611.10SmattcrtbeginS.o: crtbegin.S 621.8Smatt ${_MKTARGET_COMPILE} 631.19Suwe ${COMPILE.S} ${PICFLAGS} -DSHARED ${ARCHDIR}/crtbegin.S -o ${.TARGET}.o 641.8Smatt.else 651.10SmattcrtbeginS.o: crtbegin.c crtbegin.h 661.1Sjoerg ${_MKTARGET_COMPILE} 671.26Smrg ${COMPILE.c} ${CFLAGS.crtbeginS.c} ${PICFLAGS} -DSHARED ${COMMON_DIR}/crtbegin.c -o ${.TARGET}.o 681.8Smatt.endif 691.24Smatt ${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET}.o ${.TARGET} 701.1Sjoerg rm -f ${.TARGET}.o 711.1Sjoerg.if ${MKSTRIPIDENT} != "no" 721.1Sjoerg ${OBJCOPY} -R .ident ${.TARGET} 731.1Sjoerg.endif 741.1Sjoerg 751.1Sjoergcrtend.o: crtend.S 761.1Sjoerg ${_MKTARGET_COMPILE} 771.2Sjoerg ${COMPILE.S} ${ARCHDIR}/crtend.S -o ${.TARGET}.o 781.24Smatt ${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET}.o ${.TARGET} 791.1Sjoerg rm -f ${.TARGET}.o 801.1Sjoerg.if ${MKSTRIPIDENT} != "no" 811.1Sjoerg ${OBJCOPY} -R .ident ${.TARGET} 821.1Sjoerg.endif 831.1Sjoerg 841.1Sjoerg.if ${MKPIC} != "no" 851.18SjoergMY_PICFLAGS= ${PICFLAGS} 861.1Sjoerg.else 871.18SjoergMY_PICFLAGS= 881.1Sjoerg.endif 891.1Sjoerg 901.6Suwecrt0.o: crt0.S crt0-common.c 911.1Sjoerg ${_MKTARGET_COMPILE} 921.6Suwe ${COMPILE.S} ${ARCHDIR}/crt0.S -o ${.TARGET}.S.o 931.27Sskrll ${COMPILE.c} ${CFLAGS.crt0-common.c} ${MY_PICFLAGS} ${COMMON_DIR}/crt0-common.c -o ${.TARGET}.c.o 941.24Smatt ${LD} -r -o ${.TARGET}.o ${.TARGET}.S.o ${.TARGET}.c.o 951.24Smatt ${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET}.o ${.TARGET} 961.24Smatt rm -f ${.TARGET}.S.o ${.TARGET}.c.o ${.TARGET}.o 971.1Sjoerg.if ${MKSTRIPIDENT} != "no" 981.1Sjoerg ${OBJCOPY} -R .ident ${.TARGET} 991.1Sjoerg.endif 1001.1Sjoerg 1011.6Suwegcrt0.o: crt0.S crt0-common.c 1021.1Sjoerg ${_MKTARGET_COMPILE} 1031.6Suwe ${COMPILE.S} ${ARCHDIR}/crt0.S -o ${.TARGET}.S.o 1041.18Sjoerg ${COMPILE.c} ${MY_PICFLAGS} -DMCRT0 ${COMMON_DIR}/crt0-common.c -o ${.TARGET}.c.o 1051.24Smatt ${LD} -r -o ${.TARGET}.o ${.TARGET}.S.o ${.TARGET}.c.o 1061.24Smatt ${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET}.o ${.TARGET} 1071.24Smatt rm -f ${.TARGET}.S.o ${.TARGET}.c.o ${.TARGET}.o 1081.1Sjoerg.if ${MKSTRIPIDENT} != "no" 1091.1Sjoerg ${OBJCOPY} -R .ident ${.TARGET} 1101.1Sjoerg.endif 1111.1Sjoerg 1121.16Smatt.if ${MACHINE_ARCH} == "alpha" 1131.16Smatt# can't do this in Makefile.inc otherwise it will before realall: 1141.16Smattcrtfm.o: crtfm.c 1151.16Smatt ${_MKTARGET_COMPILE} 1161.16Smatt ${COMPILE.c} ${.ALLSRC} -o ${.TARGET}.o 1171.24Smatt ${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET}.o ${.TARGET} 1181.16Smatt rm -f ${.TARGET}.o 1191.16Smatt.endif 1201.16Smatt 1211.17SmattGENASSYM_CONF= ${COMMON_DIR}/sysident_assym.cf 1221.20Sjoergsysident_assym.h: ${GENASSYM_CONF} ${GENASSYM_EXTRAS} ${NETBSDSRCDIR}/sys/sys/param.h 1231.1Sjoerg ${_MKTARGET_CREATE} 1241.1Sjoerg cat ${COMMON_DIR}/sysident_assym.cf | \ 1251.7Sjoerg ${TOOL_GENASSYM} -- ${CC} ${CFLAGS:N-Wa,*} ${CPPFLAGS} ${PROF} \ 1261.25Sjoerg ${GENASSYM_CPPFLAGS} > sysident_assym.h.tmp && \ 1271.1Sjoerg mv -f sysident_assym.h.tmp sysident_assym.h 1281.1Sjoerg 1291.1SjoergCLEANFILES+= sysident_assym.h 1301.1Sjoerg 1311.17Smattcrti.o: crti.S sysident_assym.h sysident.S 1321.1Sjoergcrtn.o: crtn.S 1331.28Smartinsysident.o: sysident.S sysident_assym.h 1341.1Sjoerg 1351.1SjoergFILES=${OBJS} 1361.1SjoergFILESDIR=${LIBDIR} 1371.1SjoergCLEANFILES+=${OBJS} 1381.13Sjoerg 1391.13Sjoerg.if ${MKPIC} == "yes" 1401.1SjoergSYMLINKS+= crtbegin.o ${LIBDIR}/crtbeginT.o 1411.1SjoergSYMLINKS+= crtend.o ${LIBDIR}/crtendS.o 1421.13Sjoerg.endif 1431.1Sjoerg 1441.1Sjoerg.include <bsd.prog.mk> 145