Makefile revision 246647
1183878Sraj# $FreeBSD: head/sys/boot/arm/uboot/Makefile 246647 2013-02-11 02:15:26Z kientzle $
2183878Sraj
3209125Sraj.include <bsd.own.mk>
4209125Sraj
5183878SrajPROG=		ubldr
6183878SrajNEWVERSWHAT=	"U-Boot loader" ${MACHINE_ARCH}
7183878SrajBINDIR?=	/boot
8183878SrajINSTALLFLAGS=	-b
9183878SrajWARNS?=		1
10236159Skientzle# Address at which ubldr will be loaded.
11236159Skientzle# This varies for different boards and SOCs.
12236159SkientzleUBLDR_LOADADDR?=	0x1000000
13183878Sraj
14183878Sraj# Architecture-specific loader code
15183878SrajSRCS=		start.S conf.c vers.c
16183878Sraj
17240277Sae.if !defined(LOADER_NO_DISK_SUPPORT)
18185099SrajLOADER_DISK_SUPPORT?=	yes
19240277Sae.else
20240277SaeLOADER_DISK_SUPPORT=	no
21240277Sae.endif
22185099SrajLOADER_UFS_SUPPORT?=	yes
23183878SrajLOADER_CD9660_SUPPORT?=	no
24183878SrajLOADER_EXT2FS_SUPPORT?=	no
25235537Sgber.if ${MK_NAND} != "no"
26235537SgberLOADER_NANDFS_SUPPORT?= yes
27235537Sgber.else
28235537SgberLOADER_NANDFS_SUPPORT?= no
29235537Sgber.endif
30183878SrajLOADER_NET_SUPPORT?=	yes
31183878SrajLOADER_NFS_SUPPORT?=	yes
32183878SrajLOADER_TFTP_SUPPORT?=	no
33183878SrajLOADER_GZIP_SUPPORT?=	no
34183878SrajLOADER_BZIP2_SUPPORT?=	no
35209125Sraj.if ${MK_FDT} != "no"
36208538SrajLOADER_FDT_SUPPORT=	yes
37208538Sraj.else
38208538SrajLOADER_FDT_SUPPORT=	no
39208538Sraj.endif
40183878Sraj
41183878Sraj.if ${LOADER_DISK_SUPPORT} == "yes"
42183878SrajCFLAGS+=	-DLOADER_DISK_SUPPORT
43183878Sraj.endif
44183878Sraj.if ${LOADER_UFS_SUPPORT} == "yes"
45183878SrajCFLAGS+=	-DLOADER_UFS_SUPPORT
46183878Sraj.endif
47183878Sraj.if ${LOADER_CD9660_SUPPORT} == "yes"
48183878SrajCFLAGS+=	-DLOADER_CD9660_SUPPORT
49183878Sraj.endif
50183878Sraj.if ${LOADER_EXT2FS_SUPPORT} == "yes"
51183878SrajCFLAGS+=	-DLOADER_EXT2FS_SUPPORT
52183878Sraj.endif
53235537Sgber.if ${LOADER_NANDFS_SUPPORT} == "yes"
54235537SgberCFLAGS+=	-DLOADER_NANDFS_SUPPORT
55235537Sgber.endif
56183878Sraj.if ${LOADER_GZIP_SUPPORT} == "yes"
57183878SrajCFLAGS+=	-DLOADER_GZIP_SUPPORT
58183878Sraj.endif
59183878Sraj.if ${LOADER_BZIP2_SUPPORT} == "yes"
60183878SrajCFLAGS+=	-DLOADER_BZIP2_SUPPORT
61183878Sraj.endif
62183878Sraj.if ${LOADER_NET_SUPPORT} == "yes"
63183878SrajCFLAGS+=	-DLOADER_NET_SUPPORT
64183878Sraj.endif
65183878Sraj.if ${LOADER_NFS_SUPPORT} == "yes"
66183878SrajCFLAGS+=	-DLOADER_NFS_SUPPORT
67183878Sraj.endif
68183878Sraj.if ${LOADER_TFTP_SUPPORT} == "yes"
69183878SrajCFLAGS+=	-DLOADER_TFTP_SUPPORT
70183878Sraj.endif
71208538Sraj.if ${LOADER_FDT_SUPPORT} == "yes"
72208538SrajCFLAGS+=	-I${.CURDIR}/../../fdt
73208538SrajCFLAGS+=	-I${.OBJDIR}/../../fdt
74208538SrajCFLAGS+=	-DLOADER_FDT_SUPPORT
75208538SrajLIBFDT=		${.OBJDIR}/../../fdt/libfdt.a
76208538Sraj.endif
77183878Sraj
78183878Sraj.if !defined(NO_FORTH)
79183878Sraj# Enable BootForth
80183878SrajBOOT_FORTH=	yes
81183878SrajCFLAGS+=	-DBOOT_FORTH -I${.CURDIR}/../../ficl -I${.CURDIR}/../../ficl/arm
82183878SrajLIBFICL=	${.OBJDIR}/../../ficl/libficl.a
83183878Sraj.endif
84183878Sraj
85183878Sraj# Always add MI sources
86183878Sraj.PATH:		${.CURDIR}/../../common
87183878Sraj.include	"${.CURDIR}/../../common/Makefile.inc"
88183878SrajCFLAGS+=	-I${.CURDIR}/../../common
89183878SrajCFLAGS+=	-I.
90183878Sraj
91185375SrajCLEANFILES+=	vers.c loader.help
92183878Sraj
93183878SrajCFLAGS+=	-ffreestanding
94183878Sraj
95236159SkientzleLDFLAGS=	-nostdlib -static
96236159SkientzleLDFLAGS+=	-T ldscript.generated
97236159SkientzleLDFLAGS+=	-T ${.CURDIR}/ldscript.${MACHINE_CPUARCH}
98183878Sraj
99183878Sraj# Pull in common loader code
100183878Sraj.PATH:		${.CURDIR}/../../uboot/common
101183878Sraj.include	"${.CURDIR}/../../uboot/common/Makefile.inc"
102183878SrajCFLAGS+=	-I${.CURDIR}/../../uboot/common
103183878Sraj
104183878Sraj# U-Boot standalone support library
105183878SrajLIBUBOOT=	${.OBJDIR}/../../uboot/lib/libuboot.a
106183878SrajCFLAGS+=	-I${.CURDIR}/../../uboot/lib
107183878SrajCFLAGS+=	-I${.OBJDIR}/../../uboot/lib
108183878Sraj
109183878Sraj# where to get libstand from
110183878SrajCFLAGS+=	-I${.CURDIR}/../../../../lib/libstand/
111183878Sraj
112244278Sandrew# clang doesn't understand %D as a specifier to printf
113244278SandrewNO_WERROR.clang=
114244278Sandrew
115246369SandrewDPADD=		${LIBFICL} ${LIBUBOOT} ${LIBFDT} ${LIBSTAND}
116246369SandrewLDADD=		${LIBFICL} ${LIBUBOOT} ${LIBFDT} -lstand
117183878Sraj
118183878Srajvers.c:	${.CURDIR}/../../common/newvers.sh ${.CURDIR}/version
119183878Sraj	sh ${.CURDIR}/../../common/newvers.sh ${.CURDIR}/version ${NEWVERSWHAT}
120183878Sraj
121246647Skientzleloader.help: help.common help.uboot ${.CURDIR}/../../fdt/help.fdt
122183878Sraj	cat ${.ALLSRC} | \
123183878Sraj	    awk -f ${.CURDIR}/../../common/merge_help.awk > ${.TARGET}
124183878Sraj
125236159Skientzle${PROG}: ldscript.generated ${.CURDIR}/ldscript.${MACHINE_CPUARCH}
126236159Skientzle
127236159Skientzleldscript.generated::
128236159Skientzle	rm -f ldscript.generated.tmp
129236159Skientzle	echo "UBLDR_LOADADDR = ${UBLDR_LOADADDR};" >ldscript.generated.tmp
130236159Skientzle	if diff ldscript.generated ldscript.generated.tmp > /dev/null; then \
131236159Skientzle		true; \
132236159Skientzle	else \
133236159Skientzle		rm -f ldscript.generated; \
134236159Skientzle		mv ldscript.generated.tmp ldscript.generated; \
135236159Skientzle	fi
136236159Skientzle
137183878Sraj.PATH: ${.CURDIR}/../../forth
138185375SrajFILES=	loader.help
139183878Sraj
140183878Sraj.include <bsd.prog.mk>
141