2c94cd1ba0
special-case make rule 2.) Cleanups, remove superfluous expicit rules, add -nostdlib to LDFLAGS, remove -X and -g, remove -g from CFLAGS 3.) Add BINDIR 4.) Build install the loader help file, add an empty help.sparc64 5.) Change the default configuration to only support booting from disk 6.) Get libofw.a from a path relative ${.OBJDIR}, not ${.CURDIR} Submitted by: jake (1 - 5), obrien (6)
95 lines
2.5 KiB
Makefile
95 lines
2.5 KiB
Makefile
# $FreeBSD$
|
|
|
|
BASE= loader
|
|
PROG= ${BASE}
|
|
NEWVERSWHAT= "bootstrap loader" sparc64
|
|
BINDIR?= /boot
|
|
INSTALLFLAGS= -b
|
|
|
|
CFLAGS= -mno-app-regs
|
|
|
|
LOADER_DISK_SUPPORT?= yes
|
|
LOADER_UFS_SUPPORT?= yes
|
|
LOADER_CD9660_SUPPORT?= no
|
|
LOADER_NET_SUPPORT?= no
|
|
LOADER_NFS_SUPPORT?= no
|
|
LOADER_TFTP_SUPPORT?= no
|
|
|
|
.if ${LOADER_DISK_SUPPORT} == "yes"
|
|
CFLAGS+= -DLOADER_DISK_SUPPORT
|
|
.endif
|
|
.if ${LOADER_UFS_SUPPORT} == "yes"
|
|
CFLAGS+= -DLOADER_UFS_SUPPORT
|
|
.endif
|
|
.if ${LOADER_CD9660_SUPPORT} == "yes"
|
|
CFLAGS+= -DLOADER_CD9660_SUPPORT
|
|
.endif
|
|
.if ${LOADER_NET_SUPPORT} == "yes"
|
|
CFLAGS+= -DLOADER_NET_SUPPORT
|
|
.endif
|
|
.if ${LOADER_NFS_SUPPORT} == "yes"
|
|
CFLAGS+= -DLOADER_NFS_SUPPORT
|
|
.endif
|
|
.if ${LOADER_TFTP_SUPPORT} == "yes"
|
|
CFLAGS+= -DLOADER_TFTP_SUPPORT
|
|
.endif
|
|
|
|
# Architecture-specific loader code
|
|
SRCS= locore.S main.c metadata.c
|
|
|
|
# Always add MI sources
|
|
.PATH: ${.CURDIR}/../../common
|
|
.include <${.CURDIR}/../../common/Makefile.inc>
|
|
CFLAGS+= -I${.CURDIR}/../../common
|
|
CFLAGS+= -I${.CURDIR}/../../.. -I.
|
|
|
|
CLEANFILES+= ${PROG}.help
|
|
|
|
CFLAGS+= -W -Wall -ffreestanding
|
|
LDFLAGS= -nostdlib -static
|
|
LDADD= ${LIBSTAND} ${LIBOFW}
|
|
|
|
# where to get libstand from
|
|
#XXX need a better way to do this
|
|
LIBSTAND= ${.CURDIR}/../../../../lib/libstand/libstand.a
|
|
.if !exists(${LIBSTAND})
|
|
LIBSTAND= ${.OBJDIR}/../../../../lib/libstand/libstand.a
|
|
.if !exists(${LIBSTAND})
|
|
LIBSTAND= -lstand
|
|
.endif
|
|
.endif
|
|
LIBOFW= ${.OBJDIR}/../../ofw/libofw/libofw.a
|
|
CFLAGS+= -I${.CURDIR}/../../../../lib/libstand/
|
|
CFLAGS+= -I${.CURDIR}/../../ofw/libofw/
|
|
|
|
${BASE}.help: help.common help.sparc64
|
|
cat ${.ALLSRC} | \
|
|
awk -f ${.CURDIR}/../../common/merge_help.awk > ${.TARGET}
|
|
|
|
beforeinstall: ${PROG}.help
|
|
.if exists(${DESTDIR}/boot/loader)
|
|
mv ${DESTDIR}/boot/loader ${DESTDIR}/boot/loader.old
|
|
.endif
|
|
#.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
|
|
.if !exists(${DESTDIR}/boot/loader.rc)
|
|
${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 \
|
|
${.CURDIR}/../../forth/loader.rc ${DESTDIR}/boot
|
|
.endif
|
|
${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 \
|
|
${.CURDIR}/../../forth/loader.4th ${DESTDIR}/boot
|
|
${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 \
|
|
${.CURDIR}/../../forth/support.4th ${DESTDIR}/boot
|
|
${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 \
|
|
${.CURDIR}/../../forth/loader.conf ${DESTDIR}/boot/defaults
|
|
|
|
# There are no things relevant to all boot parts of FreeBSD/sparc64 yet.
|
|
#.include <${.CURDIR}/../Makefile.inc>
|
|
|
|
.include <bsd.prog.mk>
|