Makefile revision 281843
1179237Sjb# $FreeBSD: stable/10/sys/boot/arm/uboot/Makefile 281843 2015-04-22 01:08:40Z dteske $
2179237Sjb
3179237Sjb.include <bsd.own.mk>
4179237Sjb
5179237SjbPROG=		ubldr
6179237SjbNEWVERSWHAT=	"U-Boot loader" ${MACHINE_ARCH}
7179237SjbBINDIR?=	/boot
8179237SjbINSTALLFLAGS=	-b
9179237SjbWARNS?=		1
10179237Sjb# Address at which ubldr will be loaded.
11179237Sjb# This varies for different boards and SOCs.
12179237SjbUBLDR_LOADADDR?=	0x1000000
13179237Sjb
14179237Sjb# Architecture-specific loader code
15179237SjbSRCS=		start.S conf.c vers.c
16179237Sjb
17179237Sjb.if !defined(LOADER_NO_DISK_SUPPORT)
18179237SjbLOADER_DISK_SUPPORT?=	yes
19179237Sjb.else
20179237SjbLOADER_DISK_SUPPORT=	no
21179237Sjb.endif
22179237SjbLOADER_UFS_SUPPORT?=	yes
23179237SjbLOADER_CD9660_SUPPORT?=	no
24179237SjbLOADER_EXT2FS_SUPPORT?=	no
25179237Sjb.if ${MK_NAND} != "no"
26179237SjbLOADER_NANDFS_SUPPORT?= yes
27179237Sjb.else
28179237SjbLOADER_NANDFS_SUPPORT?= no
29179237Sjb.endif
30179237SjbLOADER_NET_SUPPORT?=	yes
31179237SjbLOADER_NFS_SUPPORT?=	yes
32179237SjbLOADER_TFTP_SUPPORT?=	no
33179237SjbLOADER_GZIP_SUPPORT?=	no
34179237SjbLOADER_BZIP2_SUPPORT?=	no
35179237Sjb.if ${MK_FDT} != "no"
36179237SjbLOADER_FDT_SUPPORT=	yes
37179237Sjb.else
38179237SjbLOADER_FDT_SUPPORT=	no
39179237Sjb.endif
40179237Sjb
41179237Sjb.if ${LOADER_DISK_SUPPORT} == "yes"
42179237SjbCFLAGS+=	-DLOADER_DISK_SUPPORT
43179237Sjb.endif
44179237Sjb.if ${LOADER_UFS_SUPPORT} == "yes"
45179237SjbCFLAGS+=	-DLOADER_UFS_SUPPORT
46179237Sjb.endif
47179237Sjb.if ${LOADER_CD9660_SUPPORT} == "yes"
48179237SjbCFLAGS+=	-DLOADER_CD9660_SUPPORT
49179237Sjb.endif
50211607Srpaulo.if ${LOADER_EXT2FS_SUPPORT} == "yes"
51179237SjbCFLAGS+=	-DLOADER_EXT2FS_SUPPORT
52179237Sjb.endif
53179237Sjb.if ${LOADER_NANDFS_SUPPORT} == "yes"
54179237SjbCFLAGS+=	-DLOADER_NANDFS_SUPPORT
55179237Sjb.endif
56179237Sjb.if ${LOADER_GZIP_SUPPORT} == "yes"
57179237SjbCFLAGS+=	-DLOADER_GZIP_SUPPORT
58179237Sjb.endif
59179237Sjb.if ${LOADER_BZIP2_SUPPORT} == "yes"
60179237SjbCFLAGS+=	-DLOADER_BZIP2_SUPPORT
61179237Sjb.endif
62179237Sjb.if ${LOADER_NET_SUPPORT} == "yes"
63179237SjbCFLAGS+=	-DLOADER_NET_SUPPORT
64179237Sjb.endif
65179237Sjb.if ${LOADER_NFS_SUPPORT} == "yes"
66179237SjbCFLAGS+=	-DLOADER_NFS_SUPPORT
67179237Sjb.endif
68179237Sjb.if ${LOADER_TFTP_SUPPORT} == "yes"
69179237SjbCFLAGS+=	-DLOADER_TFTP_SUPPORT
70179237Sjb.endif
71179237Sjb.if ${LOADER_FDT_SUPPORT} == "yes"
72179237SjbCFLAGS+=	-I${.CURDIR}/../../fdt
73179237SjbCFLAGS+=	-I${.OBJDIR}/../../fdt
74179237SjbCFLAGS+=	-DLOADER_FDT_SUPPORT
75179237SjbLIBUBOOT_FDT=	${.OBJDIR}/../../uboot/fdt/libuboot_fdt.a
76179237SjbLIBFDT=		${.OBJDIR}/../../fdt/libfdt.a
77179237Sjb.endif
78179237Sjb
79179237Sjb.if ${MK_FORTH} != "no"
80179237Sjb# Enable BootForth
81179237SjbBOOT_FORTH=	yes
82179237SjbCFLAGS+=	-DBOOT_FORTH -I${.CURDIR}/../../ficl -I${.CURDIR}/../../ficl/arm
83179237SjbLIBFICL=	${.OBJDIR}/../../ficl/libficl.a
84179237Sjb.endif
85179237Sjb
86179237Sjb# Always add MI sources
87179237Sjb.PATH:		${.CURDIR}/../../common
88179237Sjb.include	"${.CURDIR}/../../common/Makefile.inc"
89179237SjbCFLAGS+=	-I${.CURDIR}/../../common
90179237SjbCFLAGS+=	-I.
91179237Sjb
92179237SjbCLEANFILES+=	vers.c loader.help
93179237Sjb
94179237SjbCFLAGS+=	-ffreestanding -msoft-float
95179237Sjb
96179237SjbLDFLAGS=	-nostdlib -static
97179237SjbLDFLAGS+=	-T ldscript.generated
98179237SjbLDFLAGS+=	-T ${.CURDIR}/ldscript.${MACHINE_CPUARCH}
99179237Sjb
100179237Sjb# Pull in common loader code
101179237Sjb.PATH:		${.CURDIR}/../../uboot/common
102179237Sjb.include	"${.CURDIR}/../../uboot/common/Makefile.inc"
103179237SjbCFLAGS+=	-I${.CURDIR}/../../uboot/common
104179237Sjb
105179237Sjb# U-Boot standalone support library
106179237SjbLIBUBOOT=	${.OBJDIR}/../../uboot/lib/libuboot.a
107179237SjbCFLAGS+=	-I${.CURDIR}/../../uboot/lib
108179237SjbCFLAGS+=	-I${.OBJDIR}/../../uboot/lib
109179237Sjb
110179237Sjb# where to get libstand from
111179237SjbCFLAGS+=	-I${.CURDIR}/../../../../lib/libstand/
112179237Sjb
113179237Sjb# clang doesn't understand %D as a specifier to printf
114179237SjbNO_WERROR.clang=
115179237Sjb
116179237SjbDPADD=		${LIBFICL} ${LIBUBOOT} ${LIBFDT} ${LIBUBOOT_FDT} ${LIBSTAND}
117179237SjbLDADD=		${LIBFICL} ${LIBUBOOT} ${LIBFDT} ${LIBUBOOT_FDT} -lstand
118179237Sjb
119179237Sjbvers.c:	${.CURDIR}/../../common/newvers.sh ${.CURDIR}/version
120179237Sjb	sh ${.CURDIR}/../../common/newvers.sh ${.CURDIR}/version ${NEWVERSWHAT}
121179237Sjb
122179237Sjbloader.help: help.common help.uboot ${.CURDIR}/../../fdt/help.fdt
123179237Sjb	cat ${.ALLSRC} | \
124179237Sjb	    awk -f ${.CURDIR}/../../common/merge_help.awk > ${.TARGET}
125179237Sjb
126179237Sjb${PROG}: ldscript.generated ${.CURDIR}/ldscript.${MACHINE_CPUARCH}
127179237Sjb
128179237Sjbldscript.generated::
129211607Srpaulo	rm -f ldscript.generated.tmp
130211607Srpaulo	echo "UBLDR_LOADADDR = ${UBLDR_LOADADDR};" >ldscript.generated.tmp
131211607Srpaulo	if diff ldscript.generated ldscript.generated.tmp > /dev/null; then \
132211607Srpaulo		true; \
133211607Srpaulo	else \
134211607Srpaulo		rm -f ldscript.generated; \
135179237Sjb		mv ldscript.generated.tmp ldscript.generated; \
136179237Sjb	fi
137179237Sjb
138179237Sjb.if !defined(LOADER_ONLY)
139179237Sjb.PATH: ${.CURDIR}/../../forth
140.include	"${.CURDIR}/../../forth/Makefile.inc"
141
142# Put sample loader.rc and menu.rc on disk but don't enable them
143# by default.
144FILES+=	loader.rc
145FILESNAME_loader.rc=	loader.rc.sample
146FILES+=	menu.rc
147FILESNAME_menu.rc=	menu.rc.sample
148.endif
149
150.include <bsd.prog.mk>
151