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