Makefile revision 296705
155714Skris# $FreeBSD: head/sys/boot/i386/loader/Makefile 296705 2016-03-11 23:45:45Z bdrewery $ 255714Skris 355714Skris.include <src.opts.mk> 455714SkrisMK_SSP= no 555714Skris 655714SkrisLOADER?= loader 755714SkrisPROG= ${LOADER}.sym 855714SkrisMAN= 9238405SjkimINTERNALPROG= 1055714SkrisNEWVERSWHAT?= "bootstrap loader" x86 1155714Skris 1259191Skris# architecture-specific loader code 1355714SkrisSRCS= main.c conf.c vers.c 14238405Sjkim 15160814Ssimon# Put LOADER_FIREWIRE_SUPPORT=yes in /etc/make.conf for FireWire/dcons support 16238405Sjkim.if defined(LOADER_FIREWIRE_SUPPORT) 17160814SsimonCFLAGS+= -DLOADER_FIREWIRE_SUPPORT 18160814SsimonLIBFIREWIRE= ${.OBJDIR}/../libfirewire/libfirewire.a 19238405Sjkim.endif 20160814Ssimon 21238405Sjkim# Set by zfsloader Makefile 22160814Ssimon.if defined(LOADER_ZFS_SUPPORT) 23238405SjkimCFLAGS+= -DLOADER_ZFS_SUPPORT 24194206SsimonLIBZFSBOOT= ${.OBJDIR}/../../zfs/libzfsboot.a 25238405Sjkim.endif 26238405Sjkim 27238405Sjkim# Enable PXE TFTP or NFS support, not both. 28238405Sjkim.if defined(LOADER_TFTP_SUPPORT) 29238405SjkimCFLAGS+= -DLOADER_TFTP_SUPPORT 30238405Sjkim.else 31238405SjkimCFLAGS+= -DLOADER_NFS_SUPPORT 32238405Sjkim.endif 33238405Sjkim 34238405Sjkim# Include bcache code. 35238405SjkimHAVE_BCACHE= yes 36238405Sjkim 37238405Sjkim# Enable PnP and ISA-PnP code. 38238405SjkimHAVE_PNP= yes 39238405SjkimHAVE_ISABUS= yes 40238405Sjkim 41238405Sjkim.if ${MK_FORTH} != "no" 42238405Sjkim# Enable BootForth 43238405SjkimBOOT_FORTH= yes 44238405SjkimCFLAGS+= -DBOOT_FORTH -I${.CURDIR}/../../ficl -I${.CURDIR}/../../ficl/i386 45238405Sjkim.if ${MACHINE_CPUARCH} == "amd64" 46238405SjkimLIBFICL= ${.OBJDIR}/../../ficl32/libficl.a 47238405Sjkim.else 48238405SjkimLIBFICL= ${.OBJDIR}/../../ficl/libficl.a 49194206Ssimon.endif 50194206Ssimon.endif 51142425Snectar 5255714Skris.if defined(LOADER_BZIP2_SUPPORT) 53238405SjkimCFLAGS+= -DLOADER_BZIP2_SUPPORT 54238405Sjkim.endif 55238405Sjkim.if !defined(LOADER_NO_GZIP_SUPPORT) 56238405SjkimCFLAGS+= -DLOADER_GZIP_SUPPORT 57238405Sjkim.endif 58238405Sjkim.if defined(LOADER_NANDFS_SUPPORT) 5955714SkrisCFLAGS+= -DLOADER_NANDFS_SUPPORT 6055714Skris.endif 6155714Skris 62238405Sjkim# Always add MI sources 63238405Sjkim.PATH: ${.CURDIR}/../../common 64142425Snectar.include "${.CURDIR}/../../common/Makefile.inc" 6555714SkrisCFLAGS+= -I${.CURDIR}/../../common 6655714SkrisCFLAGS+= -I. 6755714Skris 6855714SkrisCLEANFILES= vers.c ${LOADER} ${LOADER}.bin loader.help 6955714Skris 70160814SsimonCFLAGS+= -Wall 71160814SsimonLDFLAGS= -static -Ttext 0x0 72109998Smarkm 7355714Skris# i386 standalone support library 7455714SkrisLIBI386= ${.OBJDIR}/../libi386/libi386.a 7555714SkrisCFLAGS+= -I${.CURDIR}/.. 7655714Skris 7755714SkrisLIBSTAND= ${.OBJDIR}/../../libstand32/libstand.a 7855714Skris 7955714Skris# BTX components 80109998SmarkmCFLAGS+= -I${.CURDIR}/../btx/lib 81160814Ssimon 82194206Ssimon# Debug me! 83160814Ssimon#CFLAGS+= -g 84160814Ssimon#LDFLAGS+= -g 8555714Skris 86238405Sjkim# Pick up ../Makefile.inc early. 8755714Skris.include <bsd.init.mk> 8855714Skris 8955714Skrisvers.c: ${.CURDIR}/../../common/newvers.sh ${.CURDIR}/../loader/version 90160814Ssimon sh ${.CURDIR}/../../common/newvers.sh ${.CURDIR}/../loader/version \ 9155714Skris ${NEWVERSWHAT} 9255714Skris 9355714Skris${LOADER}: ${LOADER}.bin ${BTXLDR} ${BTXKERN} 9455714Skris btxld -v -f aout -e ${LOADER_ADDRESS} -o ${.TARGET} -l ${BTXLDR} \ 9555714Skris -b ${BTXKERN} ${LOADER}.bin 9655714Skris 9755714Skris${LOADER}.bin: ${LOADER}.sym 9855714Skris cp ${.ALLSRC} ${.TARGET} 9955714Skris strip -R .comment -R .note ${.TARGET} 10055714Skris 10155714Skrisloader.help: help.common help.i386 10268651Skris cat ${.ALLSRC} | awk -f ${.CURDIR}/../../common/merge_help.awk > ${.TARGET} 10368651Skris 104109998SmarkmFILES= ${LOADER} 105194206Ssimon# XXX INSTALLFLAGS_loader= -b 10655714SkrisFILESMODE_${LOADER}= ${BINMODE} -b 10755714Skris 10855714Skris.if !defined(LOADER_ONLY) 10955714Skris.PATH: ${.CURDIR}/../../forth 110109998Smarkm.include "${.CURDIR}/../../forth/Makefile.inc" 111238405SjkimFILES+= pcibios.4th 112109998Smarkm 113160814SsimonFILES+= loader.rc menu.rc 114160814Ssimon.endif 115111147Snectar 116111147Snectar# XXX crt0.o needs to be first for pxeboot(8) to work 11755714SkrisOBJS= ${BTXCRT} 118160814Ssimon 119194206SsimonDPADD= ${LIBFICL} ${LIBFIREWIRE} ${LIBZFSBOOT} ${LIBI386} ${LIBSTAND} 12059191SkrisLDADD= ${LIBFICL} ${LIBFIREWIRE} ${LIBZFSBOOT} ${LIBI386} ${LIBSTAND} 12155714Skris 12255714Skris.include <bsd.prog.mk> 12355714Skris 12455714Skris.if ${MACHINE_CPUARCH} == "amd64" 12568651Skrisbeforedepend ${OBJS}: machine 12655714SkrisCLEANFILES+= machine 12755714SkrisCFLAGS+= -DLOADER_PREFER_AMD64 12855714Skrismachine: 12955714Skris ln -sf ${.CURDIR}/../../../i386/include machine 13055714Skris.endif 13155714Skris