Makefile revision 82133
121173Sjkh# $FreeBSD: head/sys/boot/i386/loader/Makefile 82133 2001-08-22 08:02:01Z peter $ 250479Speter 350479SpeterBASE= loader 421173SjkhPROG= ${BASE} 521173Sjkh#NOMAN= 621173SjkhSTRIP= 721173SjkhNEWVERSWHAT= "bootstrap loader" i386 821173SjkhBINDIR?= /boot 921173Sjkh 1021173Sjkh# architecture-specific loader code 1121173SjkhSRCS= main.c conf.c 1221173Sjkh 1321173Sjkh# Enable PXE TFTP or NFS support, not both. 14159363Strhodes.if defined(LOADER_TFTP_SUPPORT) 15159363StrhodesCFLAGS+= -DLOADER_TFTP_SUPPORT 16159363Strhodes.else 17159363StrhodesCFLAGS+= -DLOADER_NFS_SUPPORT 18159363Strhodes.endif 19159363Strhodes 20159363Strhodes# Enable PnP and ISA-PnP code. 2164057SalexHAVE_PNP= yes 2264057SalexHAVE_ISABUS= yes 2364057Salex 2421173Sjkh.if !defined(NOFORTH) 2564057Salex# Enable BootForth 2664057SalexBOOT_FORTH= yes 27100446SwoschCFLAGS+= -DBOOT_FORTH -I${.CURDIR}/../../ficl -I${.CURDIR}/../../ficl/i386 2821369Smax.if exists(${.OBJDIR}/../../ficl/libficl.a) 2964057SalexLIBFICL= ${.OBJDIR}/../../ficl/libficl.a 3093217Sru.else 3164057SalexLIBFICL= ${.CURDIR}/../../ficl/libficl.a 3221173Sjkh.endif 3393217Sru.endif 3421173Sjkh 3521173Sjkh# Always add MI sources 3664047Salex.PATH: ${.CURDIR}/../../common 3764047Salex.include <${.CURDIR}/../../common/Makefile.inc> 3864047SalexCFLAGS+= -I${.CURDIR}/../../common 3964047SalexCFLAGS+= -I${.CURDIR}/../../.. -I. 4021173Sjkh 4121173SjkhCLEANFILES+= vers.c vers.o ${BASE}.list ${BASE}.bin ${BASE}.sym ${BASE}.help 4221173Sjkh 4321173SjkhCFLAGS+= -Wall 4493217SruLDFLAGS= -nostdlib -static -Ttext 0x0 4521173Sjkh 46215293Sjoel# i386 standalone support library 47215293SjoelLIBI386= ${.OBJDIR}/../libi386/libi386.a 48215293SjoelCFLAGS+= -I${.CURDIR}/.. 4921173Sjkh 5021173Sjkh# where to get libstand from 5164047Salex#XXX need a better way to do this 5221173SjkhLIBSTAND= ${.CURDIR}/../../../../lib/libstand/libstand.a 5393217Sru.if !exists(${LIBSTAND}) 5421173SjkhLIBSTAND= ${.OBJDIR}/../../../../lib/libstand/libstand.a 5521173Sjkh.if !exists(${LIBSTAND}) 5621173SjkhLIBSTAND= -lstand 5721173Sjkh.endif 5821173Sjkh.endif 5921173SjkhCFLAGS+= -I${.CURDIR}/../../../../lib/libstand/ 6021173Sjkh 6121173Sjkh# BTX components 6293217Sru.if exists(${.OBJDIR}/../btx) 6337283SjkhBTXDIR= ${.OBJDIR}/../btx 6421173Sjkh.else 6521173SjkhBTXDIR= ${.CURDIR}/../btx 6621173Sjkh.endif 6721173SjkhBTXLDR= ${BTXDIR}/btxldr/btxldr 6821173SjkhBTXKERN= ${BTXDIR}/btx/btx 6921173SjkhBTXCRT= ${BTXDIR}/lib/crt0.o 70156171SceriCFLAGS+= -I${.CURDIR}/../btx/lib 71156171Sceri 7221173Sjkh# BTX is expecting ELF components 7321173SjkhCFLAGS+= -elf 7465298Smarkm 7521173Sjkh# Debug me! 7621173Sjkh#CFLAGS+= -g 7721173Sjkh#LDFLAGS+= -g 7821173Sjkh 7921173Sjkhvers.o: ${.CURDIR}/../../common/newvers.sh ${.CURDIR}/version 8021173Sjkh sh ${.CURDIR}/../../common/newvers.sh ${.CURDIR}/version ${NEWVERSWHAT} 8121173Sjkh ${CC} -c vers.c 8221173Sjkh 8321173Sjkh${BASE}: ${BASE}.bin ${BTXLDR} ${BTXKERN} ${BTXCRT} ${BASE}.help 8421173Sjkh btxld -v -f aout -e ${LOADER_ADDRESS} -o ${.TARGET} -l ${BTXLDR} \ 8521173Sjkh -b ${BTXKERN} ${BASE}.bin 8621173Sjkh# /usr/bin/kzip ${.TARGET} 8721173Sjkh# mv ${.TARGET}.kz ${.TARGET} 8821173Sjkh 8921173Sjkh${BASE}.bin: ${BASE}.sym 90100446Swosch cp ${.ALLSRC} ${.TARGET} 91 strip -R .comment -R .note ${.TARGET} 92 93${BASE}.help: help.common help.i386 94 cat ${.ALLSRC} | awk -f ${.CURDIR}/../../common/merge_help.awk > ${.TARGET} 95 96beforeinstall: 97.if exists(${DESTDIR}/boot/loader) 98 mv ${DESTDIR}/boot/loader ${DESTDIR}/boot/loader.old 99.endif 100.if exists(${.OBJDIR}/loader.help) 101 ${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 \ 102 ${.OBJDIR}/${BASE}.help ${DESTDIR}/boot 103.else 104 ${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 \ 105 ${.CURDIR}/${BASE}.help ${DESTDIR}/boot 106.endif 107.if !exists(${DESTDIR}/boot/loader.rc) 108 ${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 \ 109 ${.CURDIR}/../../forth/loader.rc ${DESTDIR}/boot 110.endif 111 ${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 \ 112 ${.CURDIR}/../../forth/loader.4th ${DESTDIR}/boot 113 ${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 \ 114 ${.CURDIR}/../../forth/support.4th ${DESTDIR}/boot 115 ${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 \ 116 ${.CURDIR}/../../forth/loader.conf ${DESTDIR}/boot/defaults 117 118.include <${.CURDIR}/../Makefile.inc> 119 120# Cannot use ${OBJS} above this line 121.include <bsd.prog.mk> 122 123${BASE}.sym: ${OBJS} ${LIBI386} ${LIBSTAND} ${LIBFICL} vers.o 124 ${CC} ${LDFLAGS} -o ${.TARGET} ${BTXCRT} ${OBJS} vers.o \ 125 ${LIBFICL} ${LIBI386} ${LIBSTAND} 126 127# If it's not there, don't consider it a target 128.if exists(${.CURDIR}/../../../i386/include) 129beforedepend ${OBJS}: machine 130 131machine: 132 ln -sf ${.CURDIR}/../../../i386/include machine 133 134.endif 135 136CLEANFILES+= machine 137