Makefile revision 267233
1# $FreeBSD: head/sys/boot/i386/loader/Makefile 267233 2014-06-08 17:29:31Z bdrewery $ 2 3.include <src.opts.mk> 4MK_SSP= no 5 6LOADER?= loader 7PROG= ${LOADER}.sym 8INTERNALPROG= 9NEWVERSWHAT?= "bootstrap loader" x86 10 11NO_PIE= yes 12 13# architecture-specific loader code 14SRCS= main.c conf.c vers.c 15 16# Put LOADER_FIREWIRE_SUPPORT=yes in /etc/make.conf for FireWire/dcons support 17.if defined(LOADER_FIREWIRE_SUPPORT) 18CFLAGS+= -DLOADER_FIREWIRE_SUPPORT 19LIBFIREWIRE= ${.OBJDIR}/../libfirewire/libfirewire.a 20.endif 21 22# Set by zfsloader Makefile 23.if defined(LOADER_ZFS_SUPPORT) 24CFLAGS+= -DLOADER_ZFS_SUPPORT 25LIBZFSBOOT= ${.OBJDIR}/../../zfs/libzfsboot.a 26.endif 27 28# Enable PXE TFTP or NFS support, not both. 29.if defined(LOADER_TFTP_SUPPORT) 30CFLAGS+= -DLOADER_TFTP_SUPPORT 31.else 32CFLAGS+= -DLOADER_NFS_SUPPORT 33.endif 34 35# Include bcache code. 36HAVE_BCACHE= yes 37 38# Enable PnP and ISA-PnP code. 39HAVE_PNP= yes 40HAVE_ISABUS= yes 41 42.if ${MK_FORTH} != "no" 43# Enable BootForth 44BOOT_FORTH= yes 45CFLAGS+= -DBOOT_FORTH -I${.CURDIR}/../../ficl -I${.CURDIR}/../../ficl/i386 46.if ${MACHINE_CPUARCH} == "amd64" 47LIBFICL= ${.OBJDIR}/../../ficl32/libficl.a 48.else 49LIBFICL= ${.OBJDIR}/../../ficl/libficl.a 50.endif 51.endif 52 53.if defined(LOADER_BZIP2_SUPPORT) 54CFLAGS+= -DLOADER_BZIP2_SUPPORT 55.endif 56.if !defined(LOADER_NO_GZIP_SUPPORT) 57CFLAGS+= -DLOADER_GZIP_SUPPORT 58.endif 59.if defined(LOADER_NANDFS_SUPPORT) 60CFLAGS+= -DLOADER_NANDFS_SUPPORT 61.endif 62 63# Always add MI sources 64.PATH: ${.CURDIR}/../../common 65.include "${.CURDIR}/../../common/Makefile.inc" 66CFLAGS+= -I${.CURDIR}/../../common 67CFLAGS+= -I. 68 69CLEANFILES= vers.c ${LOADER} ${LOADER}.bin loader.help 70 71CFLAGS+= -Wall 72LDFLAGS= -static -Ttext 0x0 73 74# i386 standalone support library 75LIBI386= ${.OBJDIR}/../libi386/libi386.a 76CFLAGS+= -I${.CURDIR}/.. 77 78LIBSTAND= ${.OBJDIR}/../../libstand32/libstand.a 79 80# BTX components 81CFLAGS+= -I${.CURDIR}/../btx/lib 82 83# Debug me! 84#CFLAGS+= -g 85#LDFLAGS+= -g 86 87# Pick up ../Makefile.inc early. 88.include <bsd.init.mk> 89 90vers.c: ${.CURDIR}/../../common/newvers.sh ${.CURDIR}/../loader/version 91 sh ${.CURDIR}/../../common/newvers.sh ${.CURDIR}/../loader/version \ 92 ${NEWVERSWHAT} 93 94${LOADER}: ${LOADER}.bin ${BTXLDR} ${BTXKERN} 95 btxld -v -f aout -e ${LOADER_ADDRESS} -o ${.TARGET} -l ${BTXLDR} \ 96 -b ${BTXKERN} ${LOADER}.bin 97 98${LOADER}.bin: ${LOADER}.sym 99 cp ${.ALLSRC} ${.TARGET} 100 strip -R .comment -R .note ${.TARGET} 101 102loader.help: help.common help.i386 103 cat ${.ALLSRC} | awk -f ${.CURDIR}/../../common/merge_help.awk > ${.TARGET} 104 105FILES= ${LOADER} 106# XXX INSTALLFLAGS_loader= -b 107FILESMODE_${LOADER}= ${BINMODE} -b 108 109.if !defined(LOADER_ONLY) 110.PATH: ${.CURDIR}/../../forth 111FILES+= loader.help loader.4th support.4th loader.conf 112FILES+= screen.4th frames.4th beastie.4th 113FILES+= brand.4th check-password.4th color.4th delay.4th 114FILES+= menu.4th menu-commands.4th menusets.4th shortcuts.4th version.4th 115FILESDIR_loader.conf= /boot/defaults 116 117.if !exists(${DESTDIR}/boot/loader.rc) 118FILES+= loader.rc 119.endif 120.if !exists(${DESTDIR}/boot/menu.rc) 121FILES+= menu.rc 122.endif 123.endif 124 125# XXX crt0.o needs to be first for pxeboot(8) to work 126OBJS= ${BTXCRT} 127 128DPADD= ${LIBFICL} ${LIBFIREWIRE} ${LIBZFSBOOT} ${LIBI386} ${LIBSTAND} 129LDADD= ${LIBFICL} ${LIBFIREWIRE} ${LIBZFSBOOT} ${LIBI386} ${LIBSTAND} 130 131.include <bsd.prog.mk> 132 133.if ${MACHINE_CPUARCH} == "amd64" 134beforedepend ${OBJS}: machine 135CLEANFILES+= machine 136CFLAGS+= -DLOADER_PREFER_AMD64 137machine: 138 ln -sf ${.CURDIR}/../../../i386/include machine 139.endif 140