Makefile.arm revision 181294
125184Sjkh# Makefile.arm -- with config changes. 2113674Smtm# Copyright 1990 W. Jolitz 3113674Smtm# from: @(#)Makefile.i386 7.1 5/10/91 4113674Smtm# $FreeBSD: head/sys/conf/Makefile.arm 181294 2008-08-04 14:38:38Z cognet $ 5113674Smtm# 6113674Smtm# Makefile for FreeBSD 7113674Smtm# 8113674Smtm# This makefile is constructed from a machine description: 9113674Smtm# config machineid 10113674Smtm# Most changes should be made in the machine description 11113674Smtm# /sys/arm/conf/``machineid'' 12113674Smtm# after which you should do 13113674Smtm# config machineid 14113674Smtm# Generic makefile changes should be made in 15113674Smtm# /sys/conf/Makefile.arm 16113674Smtm# after which config should be rerun for all machines. 17113674Smtm# 18113674Smtm 19113674Smtm# Which version of config(8) is required. 20113674Smtm%VERSREQ= 600004 21113674Smtm 22113674Smtm# Temporary stuff while we're still embryonic 23113674SmtmNO_MODULES= 24113674Smtm 2550472SpeterSTD8X16FONT?= iso 2666830Sobrien 27252015Shrs.if !defined(S) 28271424Shrs.if exists(./@/.) 2925184SjkhS= ./@ 30113674Smtm.else 31113674SmtmS= ../../.. 32113674Smtm.endif 33113674Smtm.endif 3425184Sjkh.include "$S/conf/kern.pre.mk" 35178356Ssam 36197147ShrsSYSTEM_LD:= ${SYSTEM_LD:$S/conf/ldscript.$M=ldscript.$M} 37225560SbruefferSYSTEM_DEP:= ${SYSTEM_DEP:$S/conf/ldscript.$M=ldscript.$M} 38178356Ssam 39178356Ssam.if defined(ARM_BIG_ENDIAN) 40178356SsamCC += -mbig-endian 41178356SsamSYSTEM_LD += -EB 42178356SsamLD += -EB 43178356Ssam.else 44178356SsamCC += -mlittle-endian 45178356SsamSYSTEM_LD += -EL 46178356SsamLD += -EL 47178356Ssam.endif 48178356Ssam 49256040Shrs 50256040Shrs.if !defined(DEBUG) && !defined(PROFLEVEL) 51256040ShrsSTRIP_FLAGS = -S 52256040Shrs.endif 53197139Shrs 54178356SsamDDB_ENABLED!= grep DDB opt_ddb.h || true 55178356Ssam 56178356Ssam.if empty(DDB_ENABLED) 57178356SsamCFLAGS += -mno-apcs-frame 58197139Shrs.endif 59225560Sbrueffer 60197147ShrsSYSTEM_LD_ = ${LD} -Bdynamic -T ldscript.$M.noheader \ 61178356Ssam -warn-common -export-dynamic -dynamic-linker /red/herring -o \ 62178356Ssam ${FULLKERNEL}.noheader -X ${SYSTEM_OBJS} vers.o 63178356SsamSYSTEM_LD_TAIL +=;sed s/" + SIZEOF_HEADERS"// ldscript.$M\ 64178356Ssam >ldscript.$M.noheader; \ 65178356Ssam ${SYSTEM_LD_}; \ 66178356Ssam ${OBJCOPY} -S -O binary ${FULLKERNEL}.noheader \ 67178356Ssam ${KERNEL_KO}.bin; \ 68197139Shrs rm ${FULLKERNEL}.noheader 69178356Ssam 70256040Shrs.if defined(MFS_IMAGE) 71256040ShrsSYSTEM_LD_TAIL += ;sh ${S}/tools/embed_mfs.sh ${KERNEL_KO}.bin ${MFS_IMAGE}; 72256040Shrs.endif 73256040Shrs 74178356SsamFILES_CPU_FUNC = $S/$M/$M/cpufunc_asm_arm7tdmi.S \ 75178356Ssam $S/$M/$M/cpufunc_asm_arm8.S $S/$M/$M/cpufunc_asm_arm9.S \ 76197139Shrs $S/$M/$M/cpufunc_asm_sa1.S $S/$M/$M/cpufunc_asm_arm10.S \ 77178356Ssam $S/$M/$M/cpufunc_asm_xscale.S $S/$M/$M/cpufunc_asm.S \ 78178356Ssam $S/$M/$M/cpufunc_asm_xscale_c3.S $S/$M/$M/cpufunc_asm_armv5_ec.S 79178356SsamKERNEL_EXTRA=trampoline 80178356SsamKERNEL_EXTRA_INSTALL=kernel.gz.tramp 81256255Shrstrampoline: ${KERNEL_KO}.tramp 82256255Shrs${KERNEL_KO}.tramp: ${KERNEL_KO} $S/$M/$M/inckern.S $S/$M/$M/elf_trampoline.c 83256255Shrs echo "#define KERNNAME \"${KERNEL_KO}.tmp\"" >opt_kernname.h 84256255Shrs sed s/${KERNVIRTADDR}/${KERNPHYSADDR}/ ldscript.$M > ldscript.$M.tramp 85256255Shrs sed s/" + SIZEOF_HEADERS"// ldscript.$M.tramp > \ 86256255Shrs ldscript.$M.tramp.noheader 87256255Shrs echo "#include <machine/asm.h>" >tmphack.S 88256255Shrs echo "ENTRY(_start)" >>tmphack.S 89256255Shrs echo "bl _startC" >>tmphack.S 90256255Shrs ${OBJCOPY} --strip-symbol '$$d' --strip-symbol '$$a' \ 91256255Shrs -g --strip-symbol '$$t' ${FULLKERNEL} ${KERNEL_KO}.tmp 92256255Shrs eval $$(stat -s ${KERNEL_KO}.tmp) && \ 93256255Shrs echo "#define KERNSIZE $$st_size" >>opt_kernname.h 94256255Shrs ${CC} -O -nostdlib -I. -I$S -Xlinker -T -Xlinker ldscript.$M.tramp \ 95256255Shrs tmphack.S $S/$M/$M/elf_trampoline.c $S/$M/$M/inckern.S \ 96256255Shrs ${FILES_CPU_FUNC} -o ${KERNEL_KO}.tramp 97256255Shrs ${CC} -O -nostdlib -I. -I$S -Xlinker -T -Xlinker \ 98256255Shrs ldscript.$M.tramp.noheader \ 99256255Shrs tmphack.S $S/$M/$M/elf_trampoline.c $S/$M/$M/inckern.S \ 100256255Shrs ${FILES_CPU_FUNC} -o ${KERNEL_KO}.tramp.noheader 101256255Shrs ${OBJCOPY} -S -O binary ${KERNEL_KO}.tramp.noheader \ 102256255Shrs ${KERNEL_KO}.tramp.bin 103256255Shrs ${OBJCOPY} ${STRIP_FLAGS} ${KERNEL_KO}.tmp 104256255Shrs echo "#define KERNNAME \"${KERNEL_KO}.tmp.gz\"" \ 105256255Shrs >opt_kernname.h 106256255Shrs eval $$(stat -s ${KERNEL_KO}.tmp) && \ 107256255Shrs echo "#define KERNSIZE $$st_size" >>opt_kernname.h 108256255Shrs gzip -9 ${KERNEL_KO}.tmp 109256255Shrs eval $$(stat -s ${KERNEL_KO}.tmp.gz) && \ 110256255Shrs echo "#define KERNCOMPSIZE $$st_size" >>opt_kernname.h 111256255Shrs ${CC} -O2 -DKZIP -I. -I$S -c $S/kern/inflate.c -o inflate-tramp.o 112256255Shrs ${CC} -O -nostdlib -I. -I$S -Xlinker -T -Xlinker ldscript.$M.tramp \ 113256255Shrs -DKZIP tmphack.S $S/$M/$M/elf_trampoline.c inflate-tramp.o \ 114256255Shrs $S/$M/$M/inckern.S ${FILES_CPU_FUNC} -o ${KERNEL_KO}.gz.tramp 115256255Shrs ${CC} -O -nostdlib -I. -I$S -Xlinker -T -Xlinker \ 116113674Smtm ldscript.$M.tramp.noheader \ 117113674Smtm -DKZIP tmphack.S $S/$M/$M/elf_trampoline.c inflate-tramp.o \ 118113674Smtm $S/$M/$M/inckern.S ${FILES_CPU_FUNC} -o ${KERNEL_KO}.tramp.noheader 119113674Smtm ${OBJCOPY} -S -O binary ${KERNEL_KO}.tramp.noheader \ 120147088Sbrooks ${KERNEL_KO}.gz.tramp.bin 121147088Sbrooks rm ${KERNEL_KO}.tmp.gz ${KERNEL_KO}.tramp.noheader opt_kernname.h \ 122113674Smtm inflate-tramp.o tmphack.S 123113674Smtm 124113674Smtm%BEFORE_DEPEND 125197139Shrs 126147088Sbrooks%OBJS 127147088Sbrooks 128222515Sbz%FILES.c 129222515Sbz 130222515Sbz%FILES.s 131222515Sbz 132222515Sbz%FILES.m 133197139Shrs 134256040Shrs%CLEAN 135222733Shrs 136222733ShrsCLEAN+= ldscript.$M ${KERNEL_KO}.bin ldscript.$M.noheader 137222746Shrs 138222733Shrs.if ${DDB_ENABLED} != "" 139212574ShrsCLEAN+= ${KERNEL_KO}.tramp ${KERNEL_KO}.tramp.bin ldscript.$M.tramp \ 140197139Shrs ldscript.$M.tramp.noheader ${KERNEL_KO}.gz.tramp \ 141222733Shrs ${KERNEL_KO}.gz.tramp.bin 142222733Shrs 143222733Shrs.endif 144253520Shrsldscript.$M: $S/conf/ldscript.$M 145253520Shrs cat $S/conf/ldscript.$M|sed s/KERNPHYSADDR/${KERNPHYSADDR}/g| \ 146253520Shrs sed s/KERNVIRTADDR/${KERNVIRTADDR}/g > ldscript.$M 147253520Shrs%RULES 148253520Shrs 149253520Shrs.include "$S/conf/kern.post.mk" 150253520Shrs