Makefile revision 314922
1# $FreeBSD: stable/10/sys/boot/arm/uboot/Makefile 314922 2017-03-08 22:39:45Z pfg $ 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 80CFLAGS+= -DNETIF_OPEN_CLOSE_ONCE 81 82.if ${MK_FORTH} != "no" 83# Enable BootForth 84BOOT_FORTH= yes 85CFLAGS+= -DBOOT_FORTH -I${.CURDIR}/../../ficl 86CFLAGS+= -I${.CURDIR}/../../ficl/arm 87LIBFICL= ${.OBJDIR}/../../ficl/libficl.a 88.endif 89 90# Always add MI sources 91.PATH: ${.CURDIR}/../../common 92.include "${.CURDIR}/../../common/Makefile.inc" 93CFLAGS+= -I${.CURDIR}/../../common 94CFLAGS+= -I. 95 96CLEANFILES+= vers.c loader.help 97 98CFLAGS+= -ffreestanding -msoft-float 99 100LDFLAGS= -nostdlib -static -T ${.CURDIR}/ldscript.${MACHINE_CPUARCH} 101 102# Pull in common loader code 103.PATH: ${.CURDIR}/../../uboot/common 104.include "${.CURDIR}/../../uboot/common/Makefile.inc" 105CFLAGS+= -I${.CURDIR}/../../uboot/common 106 107# U-Boot standalone support library 108LIBUBOOT= ${.OBJDIR}/../../uboot/lib/libuboot.a 109CFLAGS+= -I${.CURDIR}/../../uboot/lib 110CFLAGS+= -I${.OBJDIR}/../../uboot/lib 111 112# where to get libstand from 113CFLAGS+= -I${.CURDIR}/../../../../lib/libstand/ 114 115# clang doesn't understand %D as a specifier to printf 116NO_WERROR.clang= 117 118DPADD= ${LIBFICL} ${LIBUBOOT} ${LIBFDT} ${LIBUBOOT_FDT} ${LIBSTAND} 119LDADD= ${LIBFICL} ${LIBUBOOT} ${LIBFDT} ${LIBUBOOT_FDT} -lstand 120 121OBJS+= ${SRCS:N*.h:R:S/$/.o/g} 122 123vers.c: ${.CURDIR}/../../common/newvers.sh ${.CURDIR}/version 124 sh ${.CURDIR}/../../common/newvers.sh ${.CURDIR}/version ${NEWVERSWHAT} 125 126loader.help: help.common help.uboot ${.CURDIR}/../../fdt/help.fdt 127 cat ${.ALLSRC} | \ 128 awk -f ${.CURDIR}/../../common/merge_help.awk > ${.TARGET} 129 130ldscript.abs: 131 echo "UBLDR_LOADADDR = ${UBLDR_LOADADDR};" >${.TARGET} 132 133ldscript.pie: 134 echo "UBLDR_LOADADDR = 0;" >${.TARGET} 135 136ubldr: ${OBJS} ldscript.abs ${.CURDIR}/ldscript.${MACHINE_CPUARCH} ${DPADD} 137 ${CC} ${CFLAGS} -T ldscript.abs ${LDFLAGS} \ 138 -o ${.TARGET} ${OBJS} ${LDADD} 139 140ubldr.pie: ${OBJS} ldscript.pie ${.CURDIR}/ldscript.${MACHINE_CPUARCH} ${DPADD} 141 ${CC} ${CFLAGS} -T ldscript.pie ${LDFLAGS} -pie -Wl,-Bsymbolic \ 142 -o ${.TARGET} ${OBJS} ${LDADD} 143 144ubldr.bin: ubldr.pie 145 ${OBJCOPY} -S -O binary ubldr.pie ${.TARGET} 146 147CLEANFILES+= ldscript.abs ldscript.pie ubldr ubldr.pie ubldr.bin 148 149.if !defined(LOADER_ONLY) 150.PATH: ${.CURDIR}/../../forth 151.include "${.CURDIR}/../../forth/Makefile.inc" 152 153# Install loader.rc. 154FILES+= loader.rc 155# Put sample menu.rc on disk but don't enable it by default. 156FILES+= menu.rc 157FILESNAME_menu.rc= menu.rc.sample 158.endif 159 160.include <bsd.prog.mk> 161