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