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