ed4e46bdce
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.
91 lines
2.3 KiB
Makefile
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
|