Makefile revision 39664
1139743Simp# $Id: Makefile,v 1.6 1998/09/25 17:14:16 peter Exp $
243412Snewton
343412SnewtonBASE=		loader
443412SnewtonPROG=		${BASE}
543412SnewtonNOMAN=
643412SnewtonNEWVERSWHAT=	"bootstrap loader"
743412Snewton
843412Snewton# architecture-specific loader code
943412SnewtonSRCS=		main.c conf.c
1043412Snewton
1143412Snewton# Enable PnP and ISA-PnP code.
1243412Snewton#HAVE_PNP=	yes
1343412Snewton#HAVE_ISABUS=	yes
1443412Snewton
1543412Snewton# Verbose ls causes extra heap usage
1643412SnewtonCFLAGS+=	-DVERBOSE_LS
1743412Snewton
1843412Snewton# Always add MI sources 
1943412Snewton.PATH:		${.CURDIR}/../../common
2043412Snewton.include	<${.CURDIR}/../../common/Makefile.inc>
2143412SnewtonCFLAGS+=	-I${.CURDIR}/../../common -I.
2243412Snewton
2343412SnewtonCLEANFILES+=	vers.c vers.o ${BASE}.list setdef0.o setdef1.o setdefs.h \
2443412Snewton		gensetdefs.o gensetdefs ${BASE}.bin
2543412Snewton
2643412SnewtonCFLAGS+=	-Wall
2749267SnewtonLDFLAGS=	-nostdlib -static -Ttext 0x1000
2850477Speter
2943412Snewton# i386 standalone support library
3043412SnewtonLIBI386=	${.OBJDIR}/../libi386/libi386.a
3143412SnewtonCFLAGS+=	-I${.CURDIR}/..
3243412Snewton
3343412Snewton# where to get libstand from
3443412SnewtonLIBSTAND=	-lstand
3543412Snewton#LIBSTAND=	${.CURDIR}/../../../lib/libstand/libstand.a
3643412Snewton#CFLAGS+=	-I${.CURDIR}/../../../lib/libstand/
3743412Snewton
3843412Snewton# BTX components
3943412Snewton.if exists(${.OBJDIR}/../btx)
4043412SnewtonBTXDIR=		${.OBJDIR}/../btx
4143412Snewton.else
4243412SnewtonBTXDIR=		${.CURDIR}/../btx
4343412Snewton.endif
4443412SnewtonBTXLDR=		${BTXDIR}/btxldr/btxldr
4543412SnewtonBTXKERN=	${BTXDIR}/btx/btx
4643412SnewtonBTXCRT=		${BTXDIR}/lib/crt0.o
4743412SnewtonCFLAGS+=	-I${.CURDIR}/../btx/lib
4843412Snewton
4943412Snewton# BTX is expecting ELF components
5043412SnewtonCFLAGS+=	-elf
5143412Snewton
5243412Snewton# Debug me!
5343412Snewton#CFLAGS+=	-g
5443412Snewton#LDFLAGS+=	-g
5543412Snewton
5643412Snewtonvers.o:
5743412Snewton	sh ${.CURDIR}/newvers.sh ${.CURDIR}/version ${NEWVERSWHAT}
5843412Snewton	${CC} -c vers.c
5943412Snewton
6043412Snewton${BASE}: ${BASE}.bin ${BTXLDR} ${BTXKERN}
6143412Snewton	btxld -v -f aout -e 0x100000 -o ${.TARGET} -l ${BTXLDR} -b ${BTXKERN} \
6243412Snewton		${BASE}.bin
6343412Snewton
6443412Snewton${BASE}.bin: ${OBJS} ${LIBI386} vers.o setdef0.o setdef1.o
6543412Snewton	${LD} ${LDFLAGS} -o ${.TARGET} ${BTXCRT} setdef0.o ${OBJS} vers.o setdef1.o \
6643412Snewton		${LIBSTAND} ${LIBI386} ${LIBSTAND}
6743412Snewton
6843412Snewtonsetdef0.o:	setdefs.h
6943412Snewton
7043412Snewtonsetdef1.o:	setdefs.h
7143412Snewton
7243412Snewton.include <bsd.prog.mk>
7343412Snewton
7443412Snewton# Linker set gymnastics
7543412Snewtonsetdefs.h: gensetdefs ${OBJS}
7643412Snewton	@echo Generating linker sets
7743412Snewton	@./gensetdefs ${OBJS} >setdefs.h
7843412Snewton
7943412Snewtongensetdefs: gensetdefs.o
8043412Snewton	${CC} -static gensetdefs.o -o $@
8143412Snewton
8243412Snewtongensetdefs.o: gensetdefs.c
8343412Snewton	${CC} -c $<
8443412Snewton
8543412Snewton
8643412Snewton