8 NEWVERSWHAT= "Open Firmware loader" ${MACHINE_ARCH}
12 # Architecture-specific loader code
13 SRCS= conf.c metadata.c vers.c start.c
16 LOADER_DISK_SUPPORT?= yes
17 LOADER_UFS_SUPPORT?= yes
18 LOADER_CD9660_SUPPORT?= yes
19 LOADER_EXT2FS_SUPPORT?= no
20 LOADER_NET_SUPPORT?= yes
21 LOADER_NFS_SUPPORT?= yes
22 LOADER_TFTP_SUPPORT?= no
23 LOADER_GZIP_SUPPORT?= yes
24 LOADER_BZIP2_SUPPORT?= no
25 LOADER_FDT_SUPPORT?= yes
27 .if ${LOADER_DISK_SUPPORT} == "yes"
28 CFLAGS+= -DLOADER_DISK_SUPPORT
30 .if ${LOADER_UFS_SUPPORT} == "yes"
31 CFLAGS+= -DLOADER_UFS_SUPPORT
33 .if ${LOADER_CD9660_SUPPORT} == "yes"
34 CFLAGS+= -DLOADER_CD9660_SUPPORT
36 .if ${LOADER_EXT2FS_SUPPORT} == "yes"
37 CFLAGS+= -DLOADER_EXT2FS_SUPPORT
39 .if ${LOADER_GZIP_SUPPORT} == "yes"
40 CFLAGS+= -DLOADER_GZIP_SUPPORT
42 .if ${LOADER_BZIP2_SUPPORT} == "yes"
43 CFLAGS+= -DLOADER_BZIP2_SUPPORT
45 .if ${LOADER_NET_SUPPORT} == "yes"
46 CFLAGS+= -DLOADER_NET_SUPPORT
48 .if ${LOADER_NFS_SUPPORT} == "yes"
49 CFLAGS+= -DLOADER_NFS_SUPPORT
51 .if ${LOADER_TFTP_SUPPORT} == "yes"
52 CFLAGS+= -DLOADER_TFTP_SUPPORT
54 .if ${LOADER_FDT_SUPPORT} == "yes"
56 CFLAGS+= -I${.CURDIR}/../../fdt
57 CFLAGS+= -I${.OBJDIR}/../../fdt
58 CFLAGS+= -I${.CURDIR}/../../../contrib/libfdt
59 CFLAGS+= -DLOADER_FDT_SUPPORT
60 LIBFDT= ${.OBJDIR}/../../fdt/libfdt.a
63 .if ${MK_FORTH} != "no"
66 CFLAGS+= -DBOOT_FORTH -I${.CURDIR}/../../ficl -I${.CURDIR}/../../ficl/powerpc
67 LIBFICL= ${.OBJDIR}/../../ficl/libficl.a
70 # Avoid the open-close-dance for every file access as some firmwares perform
71 # an auto-negotiation on every open of the network interface and thus causes
72 # netbooting to take horribly long.
73 CFLAGS+= -DNETIF_OPEN_CLOSE_ONCE
75 # Always add MI sources
76 .PATH: ${.CURDIR}/../../common ${.CURDIR}/../../../libkern
77 .include "${.CURDIR}/../../common/Makefile.inc"
78 CFLAGS+= -I${.CURDIR}/../../common -I${.CURDIR}/../../..
81 CLEANFILES+= vers.c loader.help
83 CFLAGS+= -ffreestanding -msoft-float
84 # load address. set in linker script
86 CFLAGS+= -DRELOC=${RELOC}
88 LDFLAGS= -nostdlib -static -T ${.CURDIR}/ldscript.powerpc
90 # Pull in common loader code
91 .PATH: ${.CURDIR}/../../ofw/common
92 .include "${.CURDIR}/../../ofw/common/Makefile.inc"
94 # Open Firmware standalone support library
95 LIBOFW= ${.OBJDIR}/../../ofw/libofw/libofw.a
96 CFLAGS+= -I${.CURDIR}/../../ofw/libofw
98 # where to get libstand from
99 LIBSTAND= ${.OBJDIR}/../../libstand32/libstand.a
100 CFLAGS+= -I${.CURDIR}/../../../../lib/libstand/
102 DPADD= ${LIBFICL} ${LIBOFW} ${LIBFDT} ${LIBSTAND}
103 LDADD= ${LIBFICL} ${LIBOFW} ${LIBFDT} ${LIBSTAND}
105 vers.c: ${.CURDIR}/../../common/newvers.sh ${.CURDIR}/version
106 sh ${.CURDIR}/../../common/newvers.sh ${.CURDIR}/version ${NEWVERSWHAT}
108 loader.help: help.common help.ofw ${.CURDIR}/../../fdt/help.fdt
110 awk -f ${.CURDIR}/../../common/merge_help.awk > ${.TARGET}
112 .PATH: ${.CURDIR}/../../forth
113 .include "${.CURDIR}/../../forth/Makefile.inc"
115 FILES+= loader.rc menu.rc
117 .include <bsd.prog.mk>