Makefile revision 281009
120253Sjoerg# $FreeBSD: head/sys/boot/i386/loader/Makefile 281009 2015-04-03 02:27:40Z jkim $ 220302Sjoerg 320302Sjoerg.include <src.opts.mk> 420253SjoergMK_SSP= no 520253Sjoerg 620253SjoergLOADER?= loader 720253SjoergPROG= ${LOADER}.sym 820253SjoergINTERNALPROG= 920302SjoergNEWVERSWHAT?= "bootstrap loader" x86 1020253Sjoerg 1120253Sjoerg# architecture-specific loader code 1220253SjoergSRCS= main.c conf.c vers.c 1320253Sjoerg 1420302Sjoerg# Put LOADER_FIREWIRE_SUPPORT=yes in /etc/make.conf for FireWire/dcons support 1520253Sjoerg.if defined(LOADER_FIREWIRE_SUPPORT) 1620253SjoergCFLAGS+= -DLOADER_FIREWIRE_SUPPORT 1720302SjoergLIBFIREWIRE= ${.OBJDIR}/../libfirewire/libfirewire.a 1820253Sjoerg.endif 1920253Sjoerg 2020253Sjoerg# Set by zfsloader Makefile 2120253Sjoerg.if defined(LOADER_ZFS_SUPPORT) 2220253SjoergCFLAGS+= -DLOADER_ZFS_SUPPORT 2320253SjoergLIBZFSBOOT= ${.OBJDIR}/../../zfs/libzfsboot.a 2420253Sjoerg.endif 2544229Sdavidn 2620253Sjoerg# Enable PXE TFTP or NFS support, not both. 2720253Sjoerg.if defined(LOADER_TFTP_SUPPORT) 2830259ScharnierCFLAGS+= -DLOADER_TFTP_SUPPORT 2930259Scharnier.else 3050479SpeterCFLAGS+= -DLOADER_NFS_SUPPORT 3130259Scharnier.endif 3230259Scharnier 3330259Scharnier# Include bcache code. 3430259ScharnierHAVE_BCACHE= yes 3520253Sjoerg 3620253Sjoerg# Enable PnP and ISA-PnP code. 3720253SjoergHAVE_PNP= yes 3830259ScharnierHAVE_ISABUS= yes 3920253Sjoerg 4020555Sdavidn.if ${MK_FORTH} != "no" 4120555Sdavidn# Enable BootForth 4220555SdavidnBOOT_FORTH= yes 4364918SgreenCFLAGS+= -DBOOT_FORTH -I${.CURDIR}/../../ficl -I${.CURDIR}/../../ficl/i386 44242349Sbapt.if ${MACHINE_CPUARCH} == "amd64" 45242349SbaptLIBFICL= ${.OBJDIR}/../../ficl32/libficl.a 46242349Sbapt.else 4720253SjoergLIBFICL= ${.OBJDIR}/../../ficl/libficl.a 4820253Sjoerg.endif 4920253Sjoerg.endif 5023318Sache 5122394Sdavidn.if defined(LOADER_BZIP2_SUPPORT) 5252512SdavidnCFLAGS+= -DLOADER_BZIP2_SUPPORT 5324214Sache.endif 5444386Sdavidn.if !defined(LOADER_NO_GZIP_SUPPORT) 5520253SjoergCFLAGS+= -DLOADER_GZIP_SUPPORT 5620253Sjoerg.endif 5720253Sjoerg.if defined(LOADER_NANDFS_SUPPORT) 5820253SjoergCFLAGS+= -DLOADER_NANDFS_SUPPORT 5920253Sjoerg.endif 6020253Sjoerg 6120253Sjoerg# Always add MI sources 6220253Sjoerg.PATH: ${.CURDIR}/../../common 6320253Sjoerg.include "${.CURDIR}/../../common/Makefile.inc" 6485145SacheCFLAGS+= -I${.CURDIR}/../../common 6520253SjoergCFLAGS+= -I. 66283961Sbapt 67283961SbaptCLEANFILES= vers.c ${LOADER} ${LOADER}.bin loader.help 68283961Sbapt 69283961SbaptCFLAGS+= -Wall 70283961SbaptLDFLAGS= -static -Ttext 0x0 71283961Sbapt 72283961Sbapt# i386 standalone support library 73283961SbaptLIBI386= ${.OBJDIR}/../libi386/libi386.a 74283961SbaptCFLAGS+= -I${.CURDIR}/.. 75283961Sbapt 76283961SbaptLIBSTAND= ${.OBJDIR}/../../libstand32/libstand.a 77283961Sbapt 78283961Sbapt# BTX components 79283961SbaptCFLAGS+= -I${.CURDIR}/../btx/lib 80283961Sbapt 81283961Sbapt# Debug me! 82283961Sbapt#CFLAGS+= -g 83283961Sbapt#LDFLAGS+= -g 84283961Sbapt 85283961Sbapt# Pick up ../Makefile.inc early. 86283961Sbapt.include <bsd.init.mk> 87283961Sbapt 8820253Sjoergvers.c: ${.CURDIR}/../../common/newvers.sh ${.CURDIR}/../loader/version 8920253Sjoerg sh ${.CURDIR}/../../common/newvers.sh ${.CURDIR}/../loader/version \ 9020253Sjoerg ${NEWVERSWHAT} 9120253Sjoerg 9220253Sjoerg${LOADER}: ${LOADER}.bin ${BTXLDR} ${BTXKERN} 9320253Sjoerg btxld -v -f aout -e ${LOADER_ADDRESS} -o ${.TARGET} -l ${BTXLDR} \ 9420253Sjoerg -b ${BTXKERN} ${LOADER}.bin 9520253Sjoerg 9620253Sjoerg${LOADER}.bin: ${LOADER}.sym 9720253Sjoerg cp ${.ALLSRC} ${.TARGET} 9820253Sjoerg strip -R .comment -R .note ${.TARGET} 9920253Sjoerg 10020253Sjoergloader.help: help.common help.i386 10120253Sjoerg cat ${.ALLSRC} | awk -f ${.CURDIR}/../../common/merge_help.awk > ${.TARGET} 10220253Sjoerg 10320253SjoergFILES= ${LOADER} 10420253Sjoerg# XXX INSTALLFLAGS_loader= -b 105124382SiedowseFILESMODE_${LOADER}= ${BINMODE} -b 10620253Sjoerg 10720253Sjoerg.if !defined(LOADER_ONLY) 10820253Sjoerg.PATH: ${.CURDIR}/../../forth 10920253Sjoerg.include "${.CURDIR}/../../forth/Makefile.inc" 11020253SjoergFILES+= pcibios.4th 11120253Sjoerg 11220253Sjoerg.if !exists(${DESTDIR}/boot/loader.rc) 11320253SjoergFILES+= loader.rc 11420253Sjoerg.endif 11520253Sjoerg.if !exists(${DESTDIR}/boot/menu.rc) 11620253SjoergFILES+= menu.rc 11720253Sjoerg.endif 11820253Sjoerg.endif 11920253Sjoerg 12020253Sjoerg# XXX crt0.o needs to be first for pxeboot(8) to work 12120253SjoergOBJS= ${BTXCRT} 12220253Sjoerg 12352527SdavidnDPADD= ${LIBFICL} ${LIBFIREWIRE} ${LIBZFSBOOT} ${LIBI386} ${LIBSTAND} 12420253SjoergLDADD= ${LIBFICL} ${LIBFIREWIRE} ${LIBZFSBOOT} ${LIBI386} ${LIBSTAND} 12552512Sdavidn 12620253Sjoerg.include <bsd.prog.mk> 12720253Sjoerg 12820253Sjoerg.if ${MACHINE_CPUARCH} == "amd64" 12920253Sjoergbeforedepend ${OBJS}: machine 13020253SjoergCLEANFILES+= machine 13120253SjoergCFLAGS+= -DLOADER_PREFER_AMD64 13220747Sdavidnmachine: .NOPATH 133283961Sbapt ln -sf ${.CURDIR}/../../../i386/include machine 13482868Sdd.endif 135167919Sle