Makefile revision 293903
1# $FreeBSD: head/sys/boot/arm/uboot/Makefile 293903 2016-01-14 09:22:01Z smh $ 2 3.include <src.opts.mk> 4 5FILES= ubldr ubldr.bin 6 7NEWVERSWHAT= "U-Boot loader" ${MACHINE_ARCH} 8BINDIR?= /boot 9INSTALLFLAGS= -b 10WARNS?= 1 11CWARNFLAGS.gcc+= -Wno-int-to-pointer-cast 12 13# Address at which ubldr will be loaded. 14# This varies for different boards and SOCs. 15UBLDR_LOADADDR?= 0x1000000 16 17# Architecture-specific loader code 18SRCS= start.S conf.c self_reloc.c vers.c 19 20.if !defined(LOADER_NO_DISK_SUPPORT) 21LOADER_DISK_SUPPORT?= yes 22.else 23LOADER_DISK_SUPPORT= no 24.endif 25LOADER_UFS_SUPPORT?= yes 26LOADER_CD9660_SUPPORT?= no 27LOADER_EXT2FS_SUPPORT?= no 28.if ${MK_NAND} != "no" 29LOADER_NANDFS_SUPPORT?= yes 30.else 31LOADER_NANDFS_SUPPORT?= no 32.endif 33LOADER_NET_SUPPORT?= yes 34LOADER_NFS_SUPPORT?= yes 35LOADER_TFTP_SUPPORT?= no 36LOADER_GZIP_SUPPORT?= no 37LOADER_BZIP2_SUPPORT?= no 38.if ${MK_FDT} != "no" 39LOADER_FDT_SUPPORT= yes 40.else 41LOADER_FDT_SUPPORT= no 42.endif 43 44.if ${LOADER_DISK_SUPPORT} == "yes" 45CFLAGS+= -DLOADER_DISK_SUPPORT 46.endif 47.if ${LOADER_UFS_SUPPORT} == "yes" 48CFLAGS+= -DLOADER_UFS_SUPPORT 49.endif 50.if ${LOADER_CD9660_SUPPORT} == "yes" 51CFLAGS+= -DLOADER_CD9660_SUPPORT 52.endif 53.if ${LOADER_EXT2FS_SUPPORT} == "yes" 54CFLAGS+= -DLOADER_EXT2FS_SUPPORT 55.endif 56.if ${LOADER_NANDFS_SUPPORT} == "yes" 57CFLAGS+= -DLOADER_NANDFS_SUPPORT 58.endif 59.if ${LOADER_GZIP_SUPPORT} == "yes" 60CFLAGS+= -DLOADER_GZIP_SUPPORT 61.endif 62.if ${LOADER_BZIP2_SUPPORT} == "yes" 63CFLAGS+= -DLOADER_BZIP2_SUPPORT 64.endif 65.if ${LOADER_NET_SUPPORT} == "yes" 66CFLAGS+= -DLOADER_NET_SUPPORT 67.endif 68.if ${LOADER_NFS_SUPPORT} == "yes" 69CFLAGS+= -DLOADER_NFS_SUPPORT 70.endif 71.if ${LOADER_TFTP_SUPPORT} == "yes" 72CFLAGS+= -DLOADER_TFTP_SUPPORT 73.endif 74.if ${LOADER_FDT_SUPPORT} == "yes" 75CFLAGS+= -I${.CURDIR}/../../fdt 76CFLAGS+= -I${.OBJDIR}/../../fdt 77CFLAGS+= -DLOADER_FDT_SUPPORT 78LIBUBOOT_FDT= ${.OBJDIR}/../../uboot/fdt/libuboot_fdt.a 79LIBFDT= ${.OBJDIR}/../../fdt/libfdt.a 80.endif 81 82CFLAGS+= -DNETIF_OPEN_CLOSE_ONCE 83 84.if ${MK_FORTH} != "no" 85# Enable BootForth 86BOOT_FORTH= yes 87CFLAGS+= -DBOOT_FORTH -I${.CURDIR}/../../ficl -I${.CURDIR}/../../ficl/arm 88LIBFICL= ${.OBJDIR}/../../ficl/libficl.a 89.endif 90 91# Always add MI sources 92.PATH: ${.CURDIR}/../../common 93.include "${.CURDIR}/../../common/Makefile.inc" 94CFLAGS+= -I${.CURDIR}/../../common 95CFLAGS+= -I. 96 97CLEANFILES+= vers.c loader.help 98 99CFLAGS+= -ffreestanding -msoft-float 100 101LDFLAGS= -nostdlib -static -T ${.CURDIR}/ldscript.${MACHINE_CPUARCH} 102 103# Pull in common loader code 104.PATH: ${.CURDIR}/../../uboot/common 105.include "${.CURDIR}/../../uboot/common/Makefile.inc" 106CFLAGS+= -I${.CURDIR}/../../uboot/common 107 108# U-Boot standalone support library 109LIBUBOOT= ${.OBJDIR}/../../uboot/lib/libuboot.a 110CFLAGS+= -I${.CURDIR}/../../uboot/lib 111CFLAGS+= -I${.OBJDIR}/../../uboot/lib 112 113# where to get libstand from 114CFLAGS+= -I${.CURDIR}/../../../../lib/libstand/ 115 116# clang doesn't understand %D as a specifier to printf 117NO_WERROR.clang= 118 119DPADD= ${LIBFICL} ${LIBUBOOT} ${LIBFDT} ${LIBUBOOT_FDT} ${LIBSTAND} 120LDADD= ${LIBFICL} ${LIBUBOOT} ${LIBFDT} ${LIBUBOOT_FDT} -lstand 121 122OBJS+= ${SRCS:N*.h:R:S/$/.o/g} 123 124vers.c: ${.CURDIR}/../../common/newvers.sh ${.CURDIR}/version 125 sh ${.CURDIR}/../../common/newvers.sh ${.CURDIR}/version ${NEWVERSWHAT} 126 127loader.help: help.common help.uboot ${.CURDIR}/../../fdt/help.fdt 128 cat ${.ALLSRC} | \ 129 awk -f ${.CURDIR}/../../common/merge_help.awk > ${.TARGET} 130 131ldscript.abs: 132 echo "UBLDR_LOADADDR = ${UBLDR_LOADADDR};" >${.TARGET} 133 134ldscript.pie: 135 echo "UBLDR_LOADADDR = 0;" >${.TARGET} 136 137ubldr: ${OBJS} ldscript.abs ${.CURDIR}/ldscript.${MACHINE_CPUARCH} ${DPADD} 138 ${CC} ${CFLAGS} -T ldscript.abs ${LDFLAGS} \ 139 -o ${.TARGET} ${OBJS} ${LDADD} 140 141ubldr.pie: ${OBJS} ldscript.pie ${.CURDIR}/ldscript.${MACHINE_CPUARCH} ${DPADD} 142 ${CC} ${CFLAGS} -T ldscript.pie ${LDFLAGS} -pie -Wl,-Bsymbolic \ 143 -o ${.TARGET} ${OBJS} ${LDADD} 144 145ubldr.bin: ubldr.pie 146 ${OBJCOPY} -S -O binary ubldr.pie ${.TARGET} 147 148CLEANFILES+= ldscript.abs ldscript.pie ubldr ubldr.pie ubldr.bin 149 150.if !defined(LOADER_ONLY) 151.PATH: ${.CURDIR}/../../forth 152.include "${.CURDIR}/../../forth/Makefile.inc" 153 154# Install loader.rc. 155FILES+= loader.rc 156# Put sample menu.rc on disk but don't enable it by default. 157FILES+= menu.rc 158FILESNAME_menu.rc= menu.rc.sample 159.endif 160 161.include <bsd.prog.mk> 162