Makefile revision 235156
1279264Sdelphij# $FreeBSD: head/sys/boot/i386/loader/Makefile 235156 2012-05-09 08:07:08Z avg $ 2110010Smarkm 3110010Smarkm.include <bsd.own.mk> 4160819SsimonMK_SSP= no 5110010Smarkm 6110010SmarkmLOADER?= loader 7110010SmarkmPROG= ${LOADER}.sym 8110010SmarkmINTERNALPROG= 9110010SmarkmNEWVERSWHAT?= "bootstrap loader" x86 10110010Smarkm 11110010Smarkm# architecture-specific loader code 12110010SmarkmSRCS= main.c conf.c vers.c 13110010Smarkm 14110010Smarkm# Put LOADER_FIREWIRE_SUPPORT=yes in /etc/make.conf for FireWire/dcons support 15110010Smarkm.if defined(LOADER_FIREWIRE_SUPPORT) 16110010SmarkmCFLAGS+= -DLOADER_FIREWIRE_SUPPORT 17110010SmarkmLIBFIREWIRE= ${.OBJDIR}/../libfirewire/libfirewire.a 18110010Smarkm.endif 19110010Smarkm 20215698Ssimon# Set by zfsloader Makefile 21215698Ssimon.if defined(LOADER_ZFS_SUPPORT) 22215698SsimonCFLAGS+= -DLOADER_ZFS_SUPPORT 23215698SsimonLIBZFSBOOT= ${.OBJDIR}/../../zfs/libzfsboot.a 24215698Ssimon.endif 25110010Smarkm 26110010Smarkm# Enable PXE TFTP or NFS support, not both. 27110010Smarkm.if defined(LOADER_TFTP_SUPPORT) 28110010SmarkmCFLAGS+= -DLOADER_TFTP_SUPPORT 29110010Smarkm.else 30110010SmarkmCFLAGS+= -DLOADER_NFS_SUPPORT 31110010Smarkm.endif 32110010Smarkm 33110010Smarkm# Include bcache code. 34110010SmarkmHAVE_BCACHE= yes 35110010Smarkm 36110010Smarkm# Enable PnP and ISA-PnP code. 37110010SmarkmHAVE_PNP= yes 38110010SmarkmHAVE_ISABUS= yes 39110010Smarkm 40110010Smarkm.if ${MK_FORTH} != "no" 41279264Sdelphij# Enable BootForth 42279264SdelphijBOOT_FORTH= yes 43110010SmarkmCFLAGS+= -DBOOT_FORTH -I${.CURDIR}/../../ficl -I${.CURDIR}/../../ficl/i386 44110010SmarkmLIBFICL= ${.OBJDIR}/../../ficl/libficl.a 45215698Ssimon.endif 46215698Ssimon 47215698Ssimon.if defined(LOADER_BZIP2_SUPPORT) 48215698SsimonCFLAGS+= -DLOADER_BZIP2_SUPPORT 49160819Ssimon.endif 50215698Ssimon.if !defined(LOADER_NO_GZIP_SUPPORT) 51160819SsimonCFLAGS+= -DLOADER_GZIP_SUPPORT 52160819Ssimon.endif 53279264Sdelphij.if !defined(LOADER_NO_GPT_SUPPORT) 54279264SdelphijCFLAGS+= -DLOADER_GPT_SUPPORT 55279264Sdelphij.endif 56110010Smarkm 57279264Sdelphij# Always add MI sources 58279264Sdelphij.PATH: ${.CURDIR}/../../common 59279264Sdelphij.include "${.CURDIR}/../../common/Makefile.inc" 60279264SdelphijCFLAGS+= -I${.CURDIR}/../../common 61279264SdelphijCFLAGS+= -I. 62279264Sdelphij 63215698SsimonCLEANFILES= vers.c ${LOADER} ${LOADER}.bin loader.help 64279264Sdelphij 65279264SdelphijCFLAGS+= -Wall 66279264SdelphijLDFLAGS= -static -Ttext 0x0 67279264Sdelphij 68279264Sdelphij# i386 standalone support library 69215698SsimonLIBI386= ${.OBJDIR}/../libi386/libi386.a 70279264SdelphijCFLAGS+= -I${.CURDIR}/.. 71110010Smarkm 72110010Smarkm# BTX components 73110010SmarkmCFLAGS+= -I${.CURDIR}/../btx/lib 74110010Smarkm 75110010Smarkm# Debug me! 76110010Smarkm#CFLAGS+= -g 77110010Smarkm#LDFLAGS+= -g 78110010Smarkm 79110010Smarkm# Pick up ../Makefile.inc early. 80110010Smarkm.include <bsd.init.mk> 81110010Smarkm 82110010Smarkmvers.c: ${.CURDIR}/../../common/newvers.sh ${.CURDIR}/../loader/version 83110010Smarkm sh ${.CURDIR}/../../common/newvers.sh ${.CURDIR}/../loader/version \ 84110010Smarkm ${NEWVERSWHAT} 85110010Smarkm 86110010Smarkm${LOADER}: ${LOADER}.bin ${BTXLDR} ${BTXKERN} 87110010Smarkm btxld -v -f aout -e ${LOADER_ADDRESS} -o ${.TARGET} -l ${BTXLDR} \ 88110010Smarkm -b ${BTXKERN} ${LOADER}.bin 89110010Smarkm 90110010Smarkm${LOADER}.bin: ${LOADER}.sym 91110010Smarkm cp ${.ALLSRC} ${.TARGET} 92110010Smarkm strip -R .comment -R .note ${.TARGET} 93110010Smarkm 94110010Smarkmloader.help: help.common help.i386 95110010Smarkm cat ${.ALLSRC} | awk -f ${.CURDIR}/../../common/merge_help.awk > ${.TARGET} 96110010Smarkm 97110010SmarkmFILES= ${LOADER} 98110010Smarkm# XXX INSTALLFLAGS_loader= -b 99110010SmarkmFILESMODE_${LOADER}= ${BINMODE} -b 100110010Smarkm 101110010Smarkm.if !defined(LOADER_ONLY) 102110010Smarkm.PATH: ${.CURDIR}/../../forth 103110010SmarkmFILES+= loader.help loader.4th support.4th loader.conf 104110010SmarkmFILES+= screen.4th frames.4th beastie.4th 105110010SmarkmFILES+= brand.4th check-password.4th color.4th delay.4th 106110010SmarkmFILES+= menu.4th menu-commands.4th shortcuts.4th version.4th 107110010SmarkmFILESDIR_loader.conf= /boot/defaults 108110010Smarkm 109110010Smarkm.if !exists(${DESTDIR}/boot/loader.rc) 110110010SmarkmFILES+= loader.rc 111110010Smarkm.endif 112110010Smarkm.if !exists(${DESTDIR}/boot/menu.rc) 113110010SmarkmFILES+= menu.rc 114110010Smarkm.endif 115110010Smarkm.endif 116110010Smarkm 117110010Smarkm# XXX crt0.o needs to be first for pxeboot(8) to work 118110010SmarkmOBJS= ${BTXCRT} 119110010Smarkm 120110010SmarkmDPADD= ${LIBFICL} ${LIBFIREWIRE} ${LIBZFSBOOT} ${LIBI386} ${LIBSTAND} 121110010SmarkmLDADD= ${LIBFICL} ${LIBFIREWIRE} ${LIBZFSBOOT} ${LIBI386} ${LIBSTAND} 122110010Smarkm 123110010Smarkm.include <bsd.prog.mk> 124110010Smarkm 125110010Smarkm.if ${MACHINE_CPUARCH} == "amd64" 126110010Smarkmbeforedepend ${OBJS}: machine 127110010SmarkmCLEANFILES+= machine 128110010Smarkmmachine: 129110010Smarkm ln -sf ${.CURDIR}/../../../i386/include machine 130110010Smarkm.endif 131110010Smarkm