Makefile.arm revision 175984
198184Sgordon# Makefile.arm -- with config changes. 278344Sobrien# Copyright 1990 W. Jolitz 3156813Sru# from: @(#)Makefile.i386 7.1 5/10/91 4156813Sru# $FreeBSD: head/sys/conf/Makefile.arm 175984 2008-02-05 10:46:30Z raj $ 5228541Spjd# 6228541Spjd# Makefile for FreeBSD 7228541Spjd# 8228541Spjd# This makefile is constructed from a machine description: 9228541Spjd# config machineid 10228541Spjd# Most changes should be made in the machine description 11228541Spjd# /sys/arm/conf/``machineid'' 12228541Spjd# after which you should do 13228541Spjd# config machineid 14228541Spjd# Generic makefile changes should be made in 15228541Spjd# /sys/conf/Makefile.arm 16228541Spjd# after which config should be rerun for all machines. 17228541Spjd# 18243752Srwatson 19228541Spjd# Which version of config(8) is required. 20256022Sgjb%VERSREQ= 600004 21228541Spjd 22256022Sgjb# Temporary stuff while we're still embryonic 23228541SpjdNO_MODULES= 24228541Spjd 25228541SpjdSTD8X16FONT?= iso 26255570Strasz 27228541Spjd.if !defined(S) 28228541Spjd.if exists(./@/.) 29228541SpjdS= ./@ 30228541Spjd.else 31228541SpjdS= ../../.. 32228541Spjd.endif 33228541Spjd.endif 34228541Spjd.include "$S/conf/kern.pre.mk" 35228541Spjd 36228541SpjdSYSTEM_LD:= ${SYSTEM_LD:$S/conf/ldscript.$M=ldscript.$M} 37228541SpjdSYSTEM_DEP:= ${SYSTEM_DEP:$S/conf/ldscript.$M=ldscript.$M} 38228541Spjd 39228541Spjd.if defined(ARM_BIG_ENDIAN) 40284009ScpercivaCC += -mbig-endian 41228541SpjdSYSTEM_LD += -EB 42256022SgjbLD += -EB 43228541Spjd.endif 44228541Spjd 45228541Spjd 46228541Spjd.if !defined(DEBUG) && !defined(PROFLEVEL) 47228541SpjdSTRIP_FLAGS = -S 48228541Spjd.endif 49228541Spjd 50228541SpjdDDB_ENABLED!= grep DDB opt_ddb.h || true 51228541Spjd 52228541Spjd.if empty(DDB_ENABLED) 53228541SpjdCFLAGS += -mno-apcs-frame 54228541Spjd.endif 55273286Shrs 56273286ShrsSYSTEM_LD_ = ${LD} -Bdynamic -T ldscript.$M.noheader \ 57273286Shrs -warn-common -export-dynamic -dynamic-linker /red/herring -o \ 58228541Spjd ${FULLKERNEL}.noheader -X ${SYSTEM_OBJS} vers.o 59228541SpjdSYSTEM_LD_TAIL +=;sed s/" + SIZEOF_HEADERS"// ldscript.$M\ 60273286Shrs >ldscript.$M.noheader; \ 61228541Spjd ${SYSTEM_LD_}; \ 62228541Spjd ${OBJCOPY} -S -O binary ${FULLKERNEL}.noheader \ 63228541Spjd ${KERNEL_KO}.bin; \ 64228541Spjd rm ${FULLKERNEL}.noheader 65228541Spjd 66228541Spjd.if defined(MFS_IMAGE) 67228541SpjdSYSTEM_LD_TAIL += ;sh ${S}/tools/embed_mfs.sh ${KERNEL_KO}.bin ${MFS_IMAGE}; 68228541Spjd.endif 69228541Spjd 70228541SpjdFILES_CPU_FUNC = $S/$M/$M/cpufunc_asm_arm7tdmi.S \ 71228541Spjd $S/$M/$M/cpufunc_asm_arm8.S $S/$M/$M/cpufunc_asm_arm9.S \ 72228541Spjd $S/$M/$M/cpufunc_asm_sa1.S $S/$M/$M/cpufunc_asm_arm10.S \ 73228541Spjd $S/$M/$M/cpufunc_asm_xscale.S $S/$M/$M/cpufunc_asm.S \ 74228541Spjd $S/$M/$M/cpufunc_asm_xscale_c3.S 75228541Spjdtrampoline: ${KERNEL_KO}.tramp 76228541Spjd${KERNEL_KO}.tramp: ${KERNEL_KO} $S/$M/$M/inckern.S $S/$M/$M/elf_trampoline.c 77228541Spjd echo "#define KERNNAME \"${KERNEL_KO}.tmp\"" >opt_kernname.h 78228541Spjd sed s/${KERNVIRTADDR}/${KERNPHYSADDR}/ ldscript.$M > ldscript.$M.tramp 79228541Spjd sed s/" + SIZEOF_HEADERS"// ldscript.$M.tramp > \ 80228541Spjd ldscript.$M.tramp.noheader 81228541Spjd echo "#include <machine/asm.h>" >tmphack.S 82228541Spjd echo "ENTRY(_start)" >>tmphack.S 83228541Spjd echo "bl _startC" >>tmphack.S 84228541Spjd ${OBJCOPY} --strip-symbol '$$d' --strip-symbol '$$a' \ 85228541Spjd -g --strip-symbol '$$t' ${FULLKERNEL} ${KERNEL_KO}.tmp 86228541Spjd eval $$(stat -s ${KERNEL_KO}.tmp) && \ 87228541Spjd echo "#define KERNSIZE $$st_size" >>opt_kernname.h 88228541Spjd ${CC} -O -nostdlib -I. -Xlinker -T -Xlinker ldscript.$M.tramp \ 89228541Spjd tmphack.S $S/$M/$M/elf_trampoline.c $S/$M/$M/inckern.S \ 90228541Spjd ${FILES_CPU_FUNC} -o ${KERNEL_KO}.tramp 91228541Spjd ${CC} -O -nostdlib -I. -Xlinker -T -Xlinker ldscript.$M.tramp.noheader \ 92228541Spjd tmphack.S $S/$M/$M/elf_trampoline.c $S/$M/$M/inckern.S \ 93240334Sobrien ${FILES_CPU_FUNC} -o ${KERNEL_KO}.tramp.noheader 94228541Spjd ${OBJCOPY} -S -O binary ${KERNEL_KO}.tramp.noheader \ 95228541Spjd ${KERNEL_KO}.tramp.bin 96228541Spjd ${OBJCOPY} ${STRIP_FLAGS} ${KERNEL_KO}.tmp 97118224Smtm echo "#define KERNNAME \"${KERNEL_KO}.tmp.gz\"" \ 98228541Spjd >opt_kernname.h 99228541Spjd eval $$(stat -s ${KERNEL_KO}.tmp) && \ 100228541Spjd echo "#define KERNSIZE $$st_size" >>opt_kernname.h 101228541Spjd gzip -9 ${KERNEL_KO}.tmp 102228541Spjd eval $$(stat -s ${KERNEL_KO}.tmp.gz) && \ 103228541Spjd echo "#define KERNCOMPSIZE $$st_size" >>opt_kernname.h 104228541Spjd ${CC} -O2 -DKZIP -I. -c $S/kern/inflate.c -o inflate-tramp.o 105228541Spjd ${CC} -O -nostdlib -I. -Xlinker -T -Xlinker ldscript.$M.tramp \ 106228541Spjd -DKZIP tmphack.S $S/$M/$M/elf_trampoline.c inflate-tramp.o \ 107228541Spjd $S/$M/$M/inckern.S ${FILES_CPU_FUNC} -o ${KERNEL_KO}.gz.tramp 108228541Spjd ${CC} -O -nostdlib -I. -Xlinker -T -Xlinker ldscript.$M.tramp.noheader \ 109228541Spjd -DKZIP tmphack.S $S/$M/$M/elf_trampoline.c inflate-tramp.o \ 110228541Spjd $S/$M/$M/inckern.S ${FILES_CPU_FUNC} -o ${KERNEL_KO}.tramp.noheader 111228541Spjd ${OBJCOPY} -S -O binary ${KERNEL_KO}.tramp.noheader \ 112228541Spjd ${KERNEL_KO}.gz.tramp.bin 113228541Spjd rm ${KERNEL_KO}.tmp.gz ${KERNEL_KO}.tramp.noheader opt_kernname.h \ 114228541Spjd inflate-tramp.o tmphack.S 115228541Spjd 116228541Spjd%BEFORE_DEPEND 117228541Spjd 118228541Spjd%OBJS 119252310Shrs 120252310Shrs%FILES.c 121228541Spjd 122228541Spjd%FILES.s 123228541Spjd 124228541Spjd%FILES.m 125153430Siedowse 126255809Sdes%CLEAN 127231534Sed 128228541SpjdCLEAN+= ldscript.$M ${KERNEL_KO}.bin ldscript.$M.noheader 129228541Spjd 130228541Spjd.if ${DDB_ENABLED} != "" 131228541SpjdCLEAN+= ${KERNEL_KO}.tramp ${KERNEL_KO}.tramp.bin ldscript.$M.tramp \ 132228541Spjd ldscript.$M.tramp.noheader ${KERNEL_KO}.gz.tramp \ 133228541Spjd ${KERNEL_KO}.gz.tramp.bin 134228541Spjd 135228541Spjd.endif 136228541Spjdldscript.$M: $S/conf/ldscript.$M 137150490Swollman cat $S/conf/ldscript.$M|sed s/KERNPHYSADDR/${KERNPHYSADDR}/g| \ 138278574Sngie sed s/KERNVIRTADDR/${KERNVIRTADDR}/g > ldscript.$M 139278574Sngie%RULES 140278574Sngie 141278574Sngie.include "$S/conf/kern.post.mk" 142278246Sngie