Makefile revision 270168
1153486Sphk# $FreeBSD: head/sys/boot/i386/loader/Makefile 270168 2014-08-19 15:04:32Z bdrewery $ 2153486Sphk 3153486Sphk.include <src.opts.mk> 4153486SphkMK_SSP= no 5153486Sphk 6153486SphkLOADER?= loader 7153486SphkPROG= ${LOADER}.sym 8153486SphkINTERNALPROG= 9153486SphkNEWVERSWHAT?= "bootstrap loader" x86 10153486Sphk 11153486Sphk# architecture-specific loader code 12153486SphkSRCS= main.c conf.c vers.c 13153486Sphk 14153486Sphk# Put LOADER_FIREWIRE_SUPPORT=yes in /etc/make.conf for FireWire/dcons support 15153486Sphk.if defined(LOADER_FIREWIRE_SUPPORT) 16153486SphkCFLAGS+= -DLOADER_FIREWIRE_SUPPORT 17153486SphkLIBFIREWIRE= ${.OBJDIR}/../libfirewire/libfirewire.a 18153486Sphk.endif 19153486Sphk 20153486Sphk# Set by zfsloader Makefile 21153486Sphk.if defined(LOADER_ZFS_SUPPORT) 22153486SphkCFLAGS+= -DLOADER_ZFS_SUPPORT 23153486SphkLIBZFSBOOT= ${.OBJDIR}/../../zfs/libzfsboot.a 24153486Sphk.endif 25153486Sphk 26153486Sphk# Enable PXE TFTP or NFS support, not both. 27153486Sphk.if defined(LOADER_TFTP_SUPPORT) 28153486SphkCFLAGS+= -DLOADER_TFTP_SUPPORT 29153486Sphk.else 30153486SphkCFLAGS+= -DLOADER_NFS_SUPPORT 31153486Sphk.endif 32153486Sphk 33153486Sphk# Include bcache code. 34153486SphkHAVE_BCACHE= yes 35153486Sphk 36178721Sjhb# Enable PnP and ISA-PnP code. 37153486SphkHAVE_PNP= yes 38153486SphkHAVE_ISABUS= yes 39153486Sphk 40153486Sphk.if ${MK_FORTH} != "no" 41153486Sphk# Enable BootForth 42153486SphkBOOT_FORTH= yes 43153486SphkCFLAGS+= -DBOOT_FORTH -I${.CURDIR}/../../ficl -I${.CURDIR}/../../ficl/i386 44153486Sphk.if ${MACHINE_CPUARCH} == "amd64" 45153486SphkLIBFICL= ${.OBJDIR}/../../ficl32/libficl.a 46153486Sphk.else 47153486SphkLIBFICL= ${.OBJDIR}/../../ficl/libficl.a 48153486Sphk.endif 49178721Sjhb.endif 50153486Sphk 51205021Sjhb.if defined(LOADER_BZIP2_SUPPORT) 52153486SphkCFLAGS+= -DLOADER_BZIP2_SUPPORT 53153486Sphk.endif 54153486Sphk.if !defined(LOADER_NO_GZIP_SUPPORT) 55153486SphkCFLAGS+= -DLOADER_GZIP_SUPPORT 56153486Sphk.endif 57153486Sphk.if defined(LOADER_NANDFS_SUPPORT) 58153486SphkCFLAGS+= -DLOADER_NANDFS_SUPPORT 59153486Sphk.endif 60153486Sphk 61153486Sphk# Always add MI sources 62153486Sphk.PATH: ${.CURDIR}/../../common 63153486Sphk.include "${.CURDIR}/../../common/Makefile.inc" 64153486SphkCFLAGS+= -I${.CURDIR}/../../common 65153486SphkCFLAGS+= -I. 66153486Sphk 67153486SphkCLEANFILES= vers.c ${LOADER} ${LOADER}.bin loader.help 68153486Sphk 69153486SphkCFLAGS+= -Wall 70153486SphkLDFLAGS= -static -Ttext 0x0 71153486Sphk 72153486Sphk# i386 standalone support library 73153486SphkLIBI386= ${.OBJDIR}/../libi386/libi386.a 74153486SphkCFLAGS+= -I${.CURDIR}/.. 75153486Sphk 76153486SphkLIBSTAND= ${.OBJDIR}/../../libstand32/libstand.a 77153486Sphk 78153486Sphk# BTX components 79153486SphkCFLAGS+= -I${.CURDIR}/../btx/lib 80153486Sphk 81153486Sphk# Debug me! 82153486Sphk#CFLAGS+= -g 83153486Sphk#LDFLAGS+= -g 84153486Sphk 85153486Sphk# Pick up ../Makefile.inc early. 86153486Sphk.include <bsd.init.mk> 87153486Sphk 88153486Sphkvers.c: ${.CURDIR}/../../common/newvers.sh ${.CURDIR}/../loader/version 89153486Sphk sh ${.CURDIR}/../../common/newvers.sh ${.CURDIR}/../loader/version \ 90153486Sphk ${NEWVERSWHAT} 91153486Sphk 92153486Sphk${LOADER}: ${LOADER}.bin ${BTXLDR} ${BTXKERN} 93153486Sphk btxld -v -f aout -e ${LOADER_ADDRESS} -o ${.TARGET} -l ${BTXLDR} \ 94153486Sphk -b ${BTXKERN} ${LOADER}.bin 95153486Sphk 96153486Sphk${LOADER}.bin: ${LOADER}.sym 97153486Sphk cp ${.ALLSRC} ${.TARGET} 98153486Sphk strip -R .comment -R .note ${.TARGET} 99153486Sphk 100153486Sphkloader.help: help.common help.i386 101153486Sphk cat ${.ALLSRC} | awk -f ${.CURDIR}/../../common/merge_help.awk > ${.TARGET} 102153486Sphk 103153486SphkFILES= ${LOADER} 104153486Sphk# XXX INSTALLFLAGS_loader= -b 105153486SphkFILESMODE_${LOADER}= ${BINMODE} -b 106153486Sphk 107153486Sphk.if !defined(LOADER_ONLY) 108153486Sphk.PATH: ${.CURDIR}/../../forth 109153486SphkFILES+= loader.help loader.4th support.4th loader.conf 110153486SphkFILES+= screen.4th frames.4th beastie.4th 111153486SphkFILES+= brand.4th check-password.4th color.4th delay.4th 112153486SphkFILES+= menu.4th menu-commands.4th menusets.4th shortcuts.4th version.4th 113153486SphkFILESDIR_loader.conf= /boot/defaults 114153486Sphk 115153486Sphk.if !exists(${DESTDIR}/boot/loader.rc) 116153486SphkFILES+= loader.rc 117153486Sphk.endif 118153486Sphk.if !exists(${DESTDIR}/boot/menu.rc) 119153486SphkFILES+= menu.rc 120153486Sphk.endif 121153486Sphk.endif 122153486Sphk 123153486Sphk# XXX crt0.o needs to be first for pxeboot(8) to work 124153486SphkOBJS= ${BTXCRT} 125153486Sphk 126153486SphkDPADD= ${LIBFICL} ${LIBFIREWIRE} ${LIBZFSBOOT} ${LIBI386} ${LIBSTAND} 127153486SphkLDADD= ${LIBFICL} ${LIBFIREWIRE} ${LIBZFSBOOT} ${LIBI386} ${LIBSTAND} 128153486Sphk 129153486Sphk.include <bsd.prog.mk> 130153486Sphk 131153486Sphk.if ${MACHINE_CPUARCH} == "amd64" 132153486Sphkbeforedepend ${OBJS}: machine 133153486SphkCLEANFILES+= machine 134153486SphkCFLAGS+= -DLOADER_PREFER_AMD64 135153486Sphkmachine: .NOPATH 136153486Sphk ln -sf ${.CURDIR}/../../../i386/include machine 137153486Sphk.endif 138153486Sphk