Makefile revision 93352
160107Sobrien# $FreeBSD: head/sys/boot/i386/loader/Makefile 93352 2002-03-28 19:09:44Z obrien $ 217695Swosch 317695SwoschBASE= loader 417695SwoschPROG= ${BASE} 517695Swosch#NOMAN= 617695SwoschSTRIP= 748663SyokotaNEWVERSWHAT= "bootstrap loader" i386 817695SwoschBINDIR?= /boot 917695SwoschINSTALLFLAGS= -b 1017695Swosch.if !defined(LOADER_NO_AOUT_SUPPORT) 1117695SwoschLOADER_AOUT_SUPPORT= yes 1217695Swosch.endif 1348663Syokota 1419554Sjoerg# architecture-specific loader code 1526656SacheSRCS= main.c conf.c 1617695Swosch 1748663Syokota# Enable PXE TFTP or NFS support, not both. 1848663Syokota.if defined(LOADER_TFTP_SUPPORT) 1948663SyokotaCFLAGS+= -DLOADER_TFTP_SUPPORT 2017695Swosch.else 2117695SwoschCFLAGS+= -DLOADER_NFS_SUPPORT 2248663Syokota.endif 2348663Syokota 2461118Sroberto# Enable PnP and ISA-PnP code. 2517695SwoschHAVE_PNP= yes 2617695SwoschHAVE_ISABUS= yes 2717695Swosch 2817695Swosch.if !defined(NOFORTH) 2917695Swosch# Enable BootForth 3017695SwoschBOOT_FORTH= yes 3117695SwoschCFLAGS+= -DBOOT_FORTH -I${.CURDIR}/../../ficl -I${.CURDIR}/../../ficl/i386 3217695Swosch.if exists(${.OBJDIR}/../../ficl/libficl.a) 3317695SwoschLIBFICL= ${.OBJDIR}/../../ficl/libficl.a 3417695Swosch.else 3517695SwoschLIBFICL= ${.CURDIR}/../../ficl/libficl.a 3648663Syokota.endif 3717695Swosch.endif 3817695Swosch 3917695Swosch.if defined(LOADER_BZIP2_SUPPORT) 4017695SwoschCFLAGS+= -DLOADER_BZIP2_SUPPORT 4117695Swosch.endif 4217695Swosch.if !defined(LOADER_NO_GZIP_SUPPORT) 4317695SwoschCFLAGS+= -DLOADER_GZIP_SUPPORT 4417695Swosch.endif 45115050Smurray 4648663Syokota# Always add MI sources 4748663Syokota.PATH: ${.CURDIR}/../../common 4817695Swosch.include <${.CURDIR}/../../common/Makefile.inc> 4948663SyokotaCFLAGS+= -I${.CURDIR}/../../common 5048663SyokotaCFLAGS+= -I${.CURDIR}/../../.. -I. 5117695Swosch 5217695SwoschCLEANFILES+= vers.c vers.o ${BASE}.list ${BASE}.bin ${BASE}.sym ${BASE}.help 5317695Swosch 5417695SwoschCFLAGS+= -Wall 5517695SwoschLDFLAGS= -nostdlib -static -Ttext 0x0 56115050Smurray 5717695Swosch# i386 standalone support library 5817695SwoschLIBI386= ${.OBJDIR}/../libi386/libi386.a 5917695SwoschCFLAGS+= -I${.CURDIR}/.. 6017695Swosch 6143334Syokota# where to get libstand from 6217695Swosch#XXX need a better way to do this 6332822SyokotaLIBSTAND= ${.CURDIR}/../../../../lib/libstand/libstand.a 6417695Swosch.if !exists(${LIBSTAND}) 6517695SwoschLIBSTAND= ${.OBJDIR}/../../../../lib/libstand/libstand.a 6617695Swosch.if !exists(${LIBSTAND}) 6717695SwoschLIBSTAND= -lstand 6817695Swosch.endif 6917695Swosch.endif 7017695SwoschCFLAGS+= -I${.CURDIR}/../../../../lib/libstand/ 7117695Swosch 7217695Swosch# BTX components 7317695Swosch.if exists(${.OBJDIR}/../btx) 7417695SwoschBTXDIR= ${.OBJDIR}/../btx 7543334Syokota.else 7643334SyokotaBTXDIR= ${.CURDIR}/../btx 7717695Swosch.endif 7817695SwoschBTXLDR= ${BTXDIR}/btxldr/btxldr 7917695SwoschBTXKERN= ${BTXDIR}/btx/btx 8017695SwoschBTXCRT= ${BTXDIR}/lib/crt0.o 8117695SwoschCFLAGS+= -I${.CURDIR}/../btx/lib 8217695Swosch 8317695Swosch# BTX is expecting ELF components 8417695SwoschCFLAGS+= -elf 8517695Swosch 8617695Swosch# Debug me! 8717695Swosch#CFLAGS+= -g 8817695Swosch#LDFLAGS+= -g 8917695Swosch 9043334Syokotavers.o: ${.CURDIR}/../../common/newvers.sh ${.CURDIR}/version 9117695Swosch sh ${.CURDIR}/../../common/newvers.sh ${.CURDIR}/version ${NEWVERSWHAT} 9248663Syokota ${CC} -c vers.c 9317695Swosch 9417695Swosch${BASE}: ${BASE}.bin ${BTXLDR} ${BTXKERN} ${BTXCRT} ${BASE}.help 9518194Ssos btxld -v -f aout -e ${LOADER_ADDRESS} -o ${.TARGET} -l ${BTXLDR} \ 9617695Swosch -b ${BTXKERN} ${BASE}.bin 9717695Swosch# /usr/bin/kzip ${.TARGET} 9874119Sache# mv ${.TARGET}.kz ${.TARGET} 9917695Swosch 10017695Swosch${BASE}.bin: ${BASE}.sym 10117695Swosch cp ${.ALLSRC} ${.TARGET} 10217695Swosch strip -R .comment -R .note ${.TARGET} 10317695Swosch 10417695Swosch${BASE}.help: help.common help.i386 10517695Swosch cat ${.ALLSRC} | awk -f ${.CURDIR}/../../common/merge_help.awk > ${.TARGET} 10617695Swosch 10717695Swoschbeforeinstall: 10874119Sache.if exists(${.OBJDIR}/loader.help) 10917695Swosch ${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 \ 11043334Syokota ${.OBJDIR}/${BASE}.help ${DESTDIR}/boot 11143334Syokota.else 11243334Syokota ${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 \ 11343334Syokota ${.CURDIR}/${BASE}.help ${DESTDIR}/boot 11443334Syokota.endif 115.if !exists(${DESTDIR}/boot/loader.rc) 116 ${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 \ 117 ${.CURDIR}/../../forth/loader.rc ${DESTDIR}/boot 118.endif 119 ${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 \ 120 ${.CURDIR}/../../forth/loader.4th ${DESTDIR}/boot 121 ${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 \ 122 ${.CURDIR}/../../forth/support.4th ${DESTDIR}/boot 123 ${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 \ 124 ${.CURDIR}/../../forth/loader.conf ${DESTDIR}/boot/defaults 125 126.include <${.CURDIR}/../Makefile.inc> 127 128# Cannot use ${OBJS} above this line 129.include <bsd.prog.mk> 130 131${BASE}.sym: ${OBJS} ${LIBI386} ${LIBSTAND} ${LIBFICL} vers.o 132 ${CC} ${LDFLAGS} -o ${.TARGET} ${BTXCRT} ${OBJS} vers.o \ 133 ${LIBFICL} ${LIBI386} ${LIBSTAND} 134 135# If it's not there, don't consider it a target 136.if exists(${.CURDIR}/../../../i386/include) 137beforedepend ${OBJS}: machine 138 139machine: 140 ln -sf ${.CURDIR}/../../../i386/include machine 141 142.endif 143 144CLEANFILES+= machine 145