9 NEWVERSWHAT= "bootstrap loader" i386
11 # architecture-specific loader code
12 SRCS= main.c conf.c vers.c
14 # Put LOADER_FIREWIRE_SUPPORT=yes in /etc/make.conf for FireWire/dcons support
15 .if defined(LOADER_FIREWIRE_SUPPORT)
16 CFLAGS+= -DLOADER_FIREWIRE_SUPPORT
17 LIBFIREWIRE= ${.OBJDIR}/../libfirewire/libfirewire.a
20 # Enable PXE TFTP or NFS support, not both.
21 .if defined(LOADER_TFTP_SUPPORT)
22 CFLAGS+= -DLOADER_TFTP_SUPPORT
24 CFLAGS+= -DLOADER_NFS_SUPPORT
27 # Include bcache code.
30 # Enable PnP and ISA-PnP code.
34 .if ${MK_FORTH} != "no"
37 CFLAGS+= -DBOOT_FORTH -I${.CURDIR}/../../ficl -I${.CURDIR}/../../ficl/i386
38 LIBFICL= ${.OBJDIR}/../../ficl/libficl.a
41 .if defined(LOADER_BZIP2_SUPPORT)
42 CFLAGS+= -DLOADER_BZIP2_SUPPORT
44 .if !defined(LOADER_NO_GZIP_SUPPORT)
45 CFLAGS+= -DLOADER_GZIP_SUPPORT
48 # Always add MI sources
49 .PATH: ${.CURDIR}/../../common
50 .include "${.CURDIR}/../../common/Makefile.inc"
51 CFLAGS+= -I${.CURDIR}/../../common
54 CLEANFILES= vers.c loader loader.bin loader.help
57 LDFLAGS= -static -Ttext 0x0
59 # i386 standalone support library
60 LIBI386= ${.OBJDIR}/../libi386/libi386.a
61 CFLAGS+= -I${.CURDIR}/..
64 CFLAGS+= -I${.CURDIR}/../btx/lib
70 # Pick up ../Makefile.inc early.
71 .include <bsd.init.mk>
73 vers.c: ${.CURDIR}/../../common/newvers.sh ${.CURDIR}/version
74 sh ${.CURDIR}/../../common/newvers.sh ${.CURDIR}/version ${NEWVERSWHAT}
76 loader: loader.bin ${BTXLDR} ${BTXKERN}
77 btxld -v -f aout -e ${LOADER_ADDRESS} -o ${.TARGET} -l ${BTXLDR} \
78 -b ${BTXKERN} loader.bin
80 loader.bin: loader.sym
81 cp ${.ALLSRC} ${.TARGET}
82 strip -R .comment -R .note ${.TARGET}
84 loader.help: help.common help.i386
85 cat ${.ALLSRC} | awk -f ${.CURDIR}/../../common/merge_help.awk > ${.TARGET}
87 .PATH: ${.CURDIR}/../../forth
88 FILES= loader loader.help loader.4th support.4th loader.conf
89 FILES+= screen.4th frames.4th beastie.4th
90 # XXX INSTALLFLAGS_loader= -b
91 FILESMODE_loader= ${BINMODE} -b
92 FILESDIR_loader.conf= /boot/defaults
94 .if !exists(${DESTDIR}/boot/loader.rc)
98 # XXX crt0.o needs to be first for pxeboot(8) to work
101 DPADD= ${LIBFICL} ${LIBFIREWIRE} ${LIBI386} ${LIBSTAND}
102 LDADD= ${LIBFICL} ${LIBFIREWIRE} ${LIBI386} -lstand
104 .include <bsd.prog.mk>
106 .if ${MACHINE_ARCH} == "amd64"
107 beforedepend ${OBJS}: machine
110 ln -sf ${.CURDIR}/../../../i386/include machine