1178170Simp# Makefile.mips 2178170Simp# $FreeBSD$ 3178170Simp# 4178170Simp# Makefile for FreeBSD 5178170Simp# 6178170Simp# This makefile is constructed from a machine description: 7178170Simp# config machineid 8178170Simp# Most changes should be made in the machine description 9178170Simp# /sys/mips/conf/``machineid'' 10178170Simp# after which you should do 11178170Simp# config machineid 12178170Simp# Generic makefile changes should be made in 13178170Simp# /sys/conf/Makefile.mips 14178170Simp# after which config should be rerun for all machines. 15178170Simp# 16178170Simp 17178170Simp# Which version of config(8) is required. 18178170Simp%VERSREQ= 600004 19178170Simp 20178170SimpSTD8X16FONT?= iso 21178170Simp 22178170Simp.if !defined(S) 23178170Simp.if exists(./@/.) 24178170SimpS= ./@ 25178170Simp.else 26178170SimpS= ../../.. 27178170Simp.endif 28178170Simp.endif 29178170Simp.include "$S/conf/kern.pre.mk" 30178170Simp 31201984SimpLDSCRIPT_NAME?=ldscript.$M 32201984SimpSYSTEM_LD:= ${SYSTEM_LD:$S/conf/${LDSCRIPT_NAME}=${LDSCRIPT_NAME}} 33201984SimpSYSTEM_DEP:= ${SYSTEM_DEP:$S/conf/${LDSCRIPT_NAME}=${LDSCRIPT_NAME}} 34201984Simp 35201984SimpKERNLOADADDR?=0x80001000 36201984Simp# This obscure value is defined by CFE for WR160N 37201984Simp# To be changed later 38201984SimpTRAMPLOADADDR?=0x807963c0 39178170Simp 40178170SimpMKMODULESENV+= MACHINE=${MACHINE} MACHINE_ARCH=${MACHINE_ARCH} 41178170Simp 42178170Simp# We default to the MIPS32 ISA, if none specified in the 43178170Simp# kernel configuration file. 44178170SimpARCH_FLAGS?=-march=mips32 45201984SimpEXTRA_FLAGS=-fno-pic -mno-abicalls -G0 46178170Simp 47178170SimpHACK_EXTRA_FLAGS=-shared 48178170Simp 49178170Simp# We add the -fno-pic flag to kernels because otherwise performance 50178170Simp# is extremely poor, as well as -mno-abicalls to force no ABI usage. 51201984SimpCFLAGS+=${EXTRA_FLAGS} $(ARCH_FLAGS) 52201984SimpHACK_EXTRA_FLAGS+=${EXTRA_FLAGS} $(ARCH_FLAGS) 53224105SjchandraTRAMP_ARCH_FLAGS?=$(ARCH_FLAGS) 54224105SjchandraTRAMP_EXTRA_FLAGS=${EXTRA_FLAGS} ${TRAMP_ARCH_FLAGS} 55224105Sjchandra.if ${MACHINE_ARCH:Mmips64*} != "" 56224105SjchandraTRAMP_ELFSIZE=64 57224105Sjchandra.else 58224105SjchandraTRAMP_ELFSIZE=32 59224105Sjchandra.endif 60178170Simp 61178170Simp# XXX hardcoded kernel entry point 62178170SimpASM_CFLAGS+=${CFLAGS} -D_LOCORE -DLOCORE 63178170Simp 64201984SimpKERNEL_EXTRA=trampoline 65201984Simptrampoline: ${KERNEL_KO}.tramp.bin 66201984Simp${KERNEL_KO}.tramp.bin: ${KERNEL_KO} $S/$M/$M/elf_trampoline.c \ 67201984Simp $S/$M/$M/inckern.S 68201984Simp ${OBJCOPY} --strip-symbol '$$d' --strip-symbol '$$a' \ 69216498Sjchandra -g --strip-symbol '$$t' ${FULLKERNEL} ${KERNEL_KO}.tmp 70216498Sjchandra sed -e s/${KERNLOADADDR}/${TRAMPLOADADDR}/ -e s/" + SIZEOF_HEADERS"// \ 71216498Sjchandra ${LDSCRIPT_NAME} > ${LDSCRIPT_NAME}.tramp.noheader 72216474Sjchandra ${CC} -O -nostdlib -I. -I$S ${TRAMP_EXTRA_FLAGS} ${TRAMP_LDFLAGS} -Xlinker \ 73224105Sjchandra -T -Xlinker ${LDSCRIPT_NAME}.tramp.noheader \ 74224105Sjchandra -DKERNNAME="\"${KERNEL_KO}.tmp\"" -DELFSIZE=${TRAMP_ELFSIZE} \ 75224105Sjchandra $S/$M/$M/elf_trampoline.c $S/$M/$M/inckern.S \ 76224105Sjchandra -o ${KERNEL_KO}.tramp.elf 77224105Sjchandra ${OBJCOPY} -S -O binary ${KERNEL_KO}.tramp.elf \ 78224105Sjchandra ${KERNEL_KO}.tramp.bin 79201984Simp 80178170Simp%BEFORE_DEPEND 81178170Simp 82178170Simp%OBJS 83178170Simp 84178170Simp%FILES.c 85178170Simp 86178170Simp%FILES.s 87178170Simp 88178170Simp%FILES.m 89178170Simp 90178170Simp%CLEAN 91178170Simp 92201984SimpCLEAN+= ${LDSCRIPT_NAME} ${LDSCRIPT_NAME}.tramp.noheader \ 93224105Sjchandra ${KERNEL_KO}.tramp.elf ${KERNEL_KO}.tramp.bin 94201984Simp 95201984Simp${LDSCRIPT_NAME}: $S/conf/${LDSCRIPT_NAME} 96217220Sjchandra sed s/KERNLOADADDR/${KERNLOADADDR}/g $S/conf/${LDSCRIPT_NAME} \ 97201984Simp > ${LDSCRIPT_NAME} 98178170Simp%RULES 99178170Simp 100178170Simp.include "$S/conf/kern.post.mk" 101