Makefile revision 102556
148730Siwasaki# $FreeBSD: head/sys/boot/i386/loader/Makefile 102556 2002-08-29 02:02:28Z peter $ 248730Siwasaki 3214907SjoelBASE= loader 448730SiwasakiPROG= ${BASE} 548730SiwasakiSTRIP= 648730SiwasakiNEWVERSWHAT= "bootstrap loader" i386 748730SiwasakiBINDIR?= /boot 848730SiwasakiINSTALLFLAGS= -b 948730Siwasaki 1048730Siwasaki# architecture-specific loader code 1148730SiwasakiSRCS= main.c conf.c 1248730Siwasaki 1348730SiwasakiCFLAGS+= -ffreestanding 1448730Siwasaki# Enable PXE TFTP or NFS support, not both. 1548730Siwasaki.if defined(LOADER_TFTP_SUPPORT) 1648730SiwasakiCFLAGS+= -DLOADER_TFTP_SUPPORT 1748730Siwasaki.else 1848730SiwasakiCFLAGS+= -DLOADER_NFS_SUPPORT 1948730Siwasaki.endif 2048730Siwasaki 2148730Siwasaki# Enable PnP and ISA-PnP code. 2248730SiwasakiHAVE_PNP= yes 2348730SiwasakiHAVE_ISABUS= yes 2448730Siwasaki 2548730Siwasaki.if !defined(NOFORTH) 2648730Siwasaki# Enable BootForth 2748730SiwasakiBOOT_FORTH= yes 2848730SiwasakiCFLAGS+= -DBOOT_FORTH -I${.CURDIR}/../../ficl -I${.CURDIR}/../../ficl/i386 2950479Speter.if exists(${.OBJDIR}/../../ficl/libficl.a) 3048730SiwasakiLIBFICL= ${.OBJDIR}/../../ficl/libficl.a 3148730Siwasaki.else 32124786SruLIBFICL= ${.CURDIR}/../../ficl/libficl.a 3348730Siwasaki.endif 3448730Siwasaki.endif 3548730Siwasaki 3648730Siwasaki.if defined(LOADER_BZIP2_SUPPORT) 3748730SiwasakiCFLAGS+= -DLOADER_BZIP2_SUPPORT 3868965Sru.endif 3948730Siwasaki.if !defined(LOADER_NO_GZIP_SUPPORT) 4048730SiwasakiCFLAGS+= -DLOADER_GZIP_SUPPORT 41116666Smdodd.endif 4248730Siwasaki 4348730Siwasaki# Always add MI sources 4499968Scharnier.PATH: ${.CURDIR}/../../common 4599968Scharnier.include <${.CURDIR}/../../common/Makefile.inc> 4699968ScharnierCFLAGS+= -I${.CURDIR}/../../common 4748730SiwasakiCFLAGS+= -I${.CURDIR}/../../.. -I. 4881251Sru 4948730SiwasakiCLEANFILES+= vers.c vers.o ${BASE}.list ${BASE}.bin ${BASE}.sym ${BASE}.help 50131500Sru 51131500SruCFLAGS+= -Wall 5248730SiwasakiLDFLAGS= -nostdlib -static -Ttext 0x0 5368965Sru 54131500Sru# i386 standalone support library 55131500SruLIBI386= ${.OBJDIR}/../libi386/libi386.a 5668965SruCFLAGS+= -I${.CURDIR}/.. 5748730Siwasaki 5848730Siwasaki# where to get libstand from 5968965Sru#XXX need a better way to do this 6079755SddLIBSTAND= ${.CURDIR}/../../../../lib/libstand/libstand.a 6179755Sdd.if !exists(${LIBSTAND}) 6248730SiwasakiLIBSTAND= ${.OBJDIR}/../../../../lib/libstand/libstand.a 6379755Sdd.if !exists(${LIBSTAND}) 6448730SiwasakiLIBSTAND= -lstand 6548730Siwasaki.endif 6699968Scharnier.endif 6799968ScharnierCFLAGS+= -I${.CURDIR}/../../../../lib/libstand/ 6899968Scharnier 69233522Sjoel# BTX components 7048730Siwasaki.if exists(${.OBJDIR}/../btx) 71131500SruBTXDIR= ${.OBJDIR}/../btx 72131500Sru.else 7368965SruBTXDIR= ${.CURDIR}/../btx 7448730Siwasaki.endif 7548730SiwasakiBTXLDR= ${BTXDIR}/btxldr/btxldr 7648730SiwasakiBTXKERN= ${BTXDIR}/btx/btx 7748730SiwasakiBTXCRT= ${BTXDIR}/lib/crt0.o 7848730SiwasakiCFLAGS+= -I${.CURDIR}/../btx/lib 7948730Siwasaki 80116666Smdodd# BTX is expecting ELF components 81116666SmdoddCFLAGS+= -elf 82116666Smdodd 83116666Smdodd# Debug me! 84141846Sru#CFLAGS+= -g 85116666Smdodd#LDFLAGS+= -g 86116666Smdodd 8748730Siwasakivers.o: ${.CURDIR}/../../common/newvers.sh ${.CURDIR}/version 8848730Siwasaki sh ${.CURDIR}/../../common/newvers.sh ${.CURDIR}/version ${NEWVERSWHAT} 8948730Siwasaki ${CC} -c vers.c 9048730Siwasaki 9148730Siwasaki${BASE}: ${BASE}.bin ${BTXLDR} ${BTXKERN} ${BTXCRT} 9268965Sru btxld -v -f aout -e ${LOADER_ADDRESS} -o ${.TARGET} -l ${BTXLDR} \ 9348730Siwasaki -b ${BTXKERN} ${BASE}.bin 9481251Sru# /usr/bin/kzip ${.TARGET} 9581251Sru# mv ${.TARGET}.kz ${.TARGET} 9648730Siwasaki 9748730Siwasaki${BASE}.bin: ${BASE}.sym 9848730Siwasaki cp ${.ALLSRC} ${.TARGET} 9948730Siwasaki strip -R .comment -R .note ${.TARGET} 10079755Sdd 10168965Sru${BASE}.help: help.common help.i386 102208075Suqs cat ${.ALLSRC} | awk -f ${.CURDIR}/../../common/merge_help.awk > ${.TARGET} 103208075Suqs 104208075Suqs.PATH: ${.CURDIR}/../../forth 10548730SiwasakiFILES= ${BASE}.help loader.4th support.4th loader.conf 10648730SiwasakiFILESDIR_loader.conf= /boot/defaults 10799968Scharnier 10899968Scharnier.if !exists(${DESTDIR}/boot/loader.rc) 10999968ScharnierFILES+= loader.rc 11048730Siwasaki.endif 11148730Siwasaki 11248730Siwasaki.include <${.CURDIR}/../Makefile.inc> 11348730Siwasaki 11448730Siwasaki# Cannot use ${OBJS} above this line 11568965Sru.include <bsd.prog.mk> 11648730Siwasaki 11748730Siwasaki${BASE}.sym: ${OBJS} ${LIBI386} ${LIBSTAND} ${LIBFICL} vers.o 11879755Sdd ${CC} ${LDFLAGS} -o ${.TARGET} ${BTXCRT} ${OBJS} vers.o \ 11968965Sru ${LIBFICL} ${LIBI386} ${LIBSTAND} 12048730Siwasaki 12148730Siwasaki# If it's not there, don't consider it a target 122131500Sru.if exists(${.CURDIR}/../../../i386/include) 123131500Srubeforedepend ${OBJS}: machine 12448730Siwasaki 12548730Siwasakimachine: 12679755Sdd ln -sf ${.CURDIR}/../../../i386/include machine 12768965Sru 12848730Siwasaki.endif 12948730Siwasaki 13048730SiwasakiCLEANFILES+= machine 13148730Siwasaki