Makefile.mips revision 216498
1228753Smm# Makefile.mips 2228753Smm# $FreeBSD: head/sys/conf/Makefile.mips 216498 2010-12-17 09:14:25Z jchandra $ 3228753Smm# 4228753Smm# Makefile for FreeBSD 5228753Smm# 6228753Smm# This makefile is constructed from a machine description: 7228753Smm# config machineid 8228753Smm# Most changes should be made in the machine description 9228753Smm# /sys/mips/conf/``machineid'' 10228753Smm# after which you should do 11228753Smm# config machineid 12228753Smm# Generic makefile changes should be made in 13228753Smm# /sys/conf/Makefile.mips 14228753Smm# after which config should be rerun for all machines. 15228753Smm# 16228753Smm 17228753Smm# Which version of config(8) is required. 18228753Smm%VERSREQ= 600004 19228753Smm 20228753SmmSTD8X16FONT?= iso 21228753Smm 22228753Smm.if !defined(S) 23228753Smm.if exists(./@/.) 24228753SmmS= ./@ 25228763Smm.else 26228753SmmS= ../../.. 27228753Smm.endif 28228753Smm.endif 29228753Smm.include "$S/conf/kern.pre.mk" 30228753Smm 31228753SmmLDSCRIPT_NAME?=ldscript.$M 32228753SmmSYSTEM_LD:= ${SYSTEM_LD:$S/conf/${LDSCRIPT_NAME}=${LDSCRIPT_NAME}} 33228753SmmSYSTEM_DEP:= ${SYSTEM_DEP:$S/conf/${LDSCRIPT_NAME}=${LDSCRIPT_NAME}} 34228753Smm 35228753SmmKERNLOADADDR?=0x80001000 36228753Smm# This obscure value is defined by CFE for WR160N 37228753Smm# To be changed later 38228753SmmTRAMPLOADADDR?=0x807963c0 39228753Smm 40228753SmmMKMODULESENV+= MACHINE=${MACHINE} MACHINE_ARCH=${MACHINE_ARCH} 41228753Smm 42228753Smm# We default to the MIPS32 ISA, if none specified in the 43228753Smm# kernel configuration file. 44228753SmmARCH_FLAGS?=-march=mips32 45228753SmmEXTRA_FLAGS=-fno-pic -mno-abicalls -G0 46228753Smm 47228753SmmHACK_EXTRA_FLAGS=-shared 48228753Smm 49228753Smm# We add the -fno-pic flag to kernels because otherwise performance 50228753Smm# is extremely poor, as well as -mno-abicalls to force no ABI usage. 51228753SmmCFLAGS+=${EXTRA_FLAGS} $(ARCH_FLAGS) 52228753SmmHACK_EXTRA_FLAGS+=${EXTRA_FLAGS} $(ARCH_FLAGS) 53228753SmmTRAMP_EXTRA_FLAGS=${EXTRA_FLAGS} $(ARCH_FLAGS) 54228753Smm 55228753Smm# XXX hardcoded kernel entry point 56228753SmmASM_CFLAGS+=${CFLAGS} -D_LOCORE -DLOCORE 57228753Smm 58228753SmmKERNEL_EXTRA=trampoline 59228753Smmtrampoline: ${KERNEL_KO}.tramp.bin 60228753Smm${KERNEL_KO}.tramp.bin: ${KERNEL_KO} $S/$M/$M/elf_trampoline.c \ 61228753Smm $S/$M/$M/inckern.S 62228753Smm ${OBJCOPY} --strip-symbol '$$d' --strip-symbol '$$a' \ 63228753Smm -g --strip-symbol '$$t' ${FULLKERNEL} ${KERNEL_KO}.tmp 64228753Smm sed -e s/${KERNLOADADDR}/${TRAMPLOADADDR}/ -e s/" + SIZEOF_HEADERS"// \ 65228753Smm ${LDSCRIPT_NAME} > ${LDSCRIPT_NAME}.tramp.noheader 66228753Smm ${CC} -O -nostdlib -I. -I$S ${TRAMP_EXTRA_FLAGS} ${TRAMP_LDFLAGS} -Xlinker \ 67228753Smm -T -Xlinker ${LDSCRIPT_NAME}.tramp.noheader \ 68228753Smm -DKERNNAME="\"${KERNEL_KO}.tmp\"" $S/$M/$M/elf_trampoline.c \ 69228753Smm $S/$M/$M/inckern.S -o ${KERNEL_KO}.tramp.noheader 70228753Smm ${OBJCOPY} -S -O binary ${KERNEL_KO}.tramp.noheader \ 71228753Smm ${KERNEL_KO}.tramp.bin \ 72228753Smm 73228753Smm%BEFORE_DEPEND 74228753Smm 75228753Smm%OBJS 76228753Smm 77228753Smm%FILES.c 78228753Smm 79228753Smm%FILES.s 80228753Smm 81228753Smm%FILES.m 82228753Smm 83228753Smm%CLEAN 84228753Smm 85228753SmmCLEAN+= ${LDSCRIPT_NAME} ${LDSCRIPT_NAME}.tramp.noheader \ 86228753Smm ${KERNEL_KO}.tramp.noheader ${KERNEL_KO}.tramp.bin 87228753Smm 88228753Smm${LDSCRIPT_NAME}: $S/conf/${LDSCRIPT_NAME} 89228753Smm cat $S/conf/${LDSCRIPT_NAME}|sed s/KERNLOADADDR/${KERNLOADADDR}/g \ 90228753Smm > ${LDSCRIPT_NAME} 91228753Smm%RULES 92228753Smm 93228753Smm.include "$S/conf/kern.post.mk" 94228753Smm