freebsd-dev/sys/boot/arc/loader/Makefile
Stefan Eßer ed4e46bdce The ARC BIOS / AlphaBIOS specific primary boot loader. This code is the
result of a joined effort with parts contributed by Doug Rabson, Warner
Losh and Stefan Esser (hope I did not forget anybody). Part of the sources
is obtained from NetBSD with modifications.

This code is work in progress:

As of the time of the initial import, a loader.exe executable is built,
which can be loaded on an Alpha with NT only firmware, but no attempt is
made to switch to OSF PAL code as required to start an actual kernel.
1999-07-28 20:28:47 +00:00

91 lines
2.3 KiB
Makefile

# $NetBSD: Makefile,v 1.12 1998/02/19 14:18:36 drochner Exp $
BASE= loader
PROG= ${BASE}
NOMAN=
NEWVERSWHAT= "ARC disk boot" ${MACHINE_ARCH}
.PATH: ${.CURDIR}/../common
# i386-specific bootstrap sources
SRCS+= main.c conf.c
# Always add MI sources
.PATH: ${.CURDIR}/../../common
.include <${.CURDIR}/../../common/Makefile.inc>
CFLAGS+= -mno-fp-regs
CFLAGS+= -I${.CURDIR}/../../common -I${.CURDIR}
CFLAGS+= -I${.CURDIR}/../../.. -I.
CFLAGS+= -DLOADER
CLEANFILES+= vers.c vers.o gensetdefs.o gensetdefs setdef0.o setdef1.o \
setdefs.h start.o
CLEANFILES+= ${BASE} ${BASE}.sym ${BASE}.list
CFLAGS+= -Wall
CFLAGS+= -I${LIBSTANDDIR}
CFLAGS+= -I${.CURDIR}/../include
CRT= start.o
STRIP=
BINDIR?= /boot
LOAD_ADDRESS?= 0xffffffff80900000
all: ${BASE}.exe
vers.o: ${.CURDIR}/../../common/newvers.sh ${.CURDIR}/version
sh ${.CURDIR}/../../common/newvers.sh ${.CURDIR}/version ${NEWVERSWHAT}
${CC} -c vers.c
${BASE}.exe: ${BASE} ${BASE}.help
elf2exe ${BASE}.sym ${BASE}.exe
#${BASE}: ${OBJS} ${LIBSTAND} ${LIBARC} ${CRT} vers.o setdef0.o setdef1.o
# ${LD} -o ${BASE}.sym -M -e __start -N -Ttext ${LOAD_ADDRESS} \
# ${CRT} setdef0.o ${OBJS} setdef1.o \
# vers.o ${LIBSTAND} ${LIBARC} ${LIBSTAND} >${.OBJDIR}/${BASE}.list
${BASE}: ${OBJS} ${LIBSTAND} ${LIBARC} ${CRT} vers.o setdef0.o setdef1.o
${LD} -o ${BASE}.sym -M -N -Ttext ${LOAD_ADDRESS} \
${CRT} setdef0.o ${OBJS} setdef1.o \
vers.o ${LIBSTAND} ${LIBARC} ${LIBSTAND} >${.OBJDIR}/${BASE}.list
${BASE}.help: help.common help.alpha
cat ${.ALLSRC} | awk -f ${.CURDIR}/../../common/merge_help.awk > ${.TARGET}
beforeinstall:
.if exists(${.OBJDIR}/loader.help)
${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 \
${.OBJDIR}/${BASE}.help ${DESTDIR}/boot
.else
${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 \
${.CURDIR}/${BASE}.help ${DESTDIR}/boot
.endif
# Other fragments still to be brought in from ../Makfile.booters?
start.o: ${.CURDIR}/../lib/arch/${MACHINE}/start.S
${CC} -c ${CFLAGS} $<
setdef0.o: setdefs.h
setdef1.o: setdefs.h
machine:
ln -sf ${.CURDIR}/../../../alpha/include machine
CLEANFILES+= machine setdefs.h gensetdefs ${BASE} ${BASE}.exe loader.help
.include <bsd.prog.mk>
setdefs.h: gensetdefs ${OBJS}
@echo Generating linker sets
@./gensetdefs ${OBJS} >setdefs.h
gensetdefs: gensetdefs.o
${CC} -static gensetdefs.o -o $@
gensetdefs.o: gensetdefs.c
${CC} -c $<
beforedepend ${OBJS}: machine