diff options
Diffstat (limited to 'sys/boot/pc98/loader/Makefile')
-rw-r--r-- | sys/boot/pc98/loader/Makefile | 133 |
1 files changed, 133 insertions, 0 deletions
diff --git a/sys/boot/pc98/loader/Makefile b/sys/boot/pc98/loader/Makefile new file mode 100644 index 0000000..be070c5 --- /dev/null +++ b/sys/boot/pc98/loader/Makefile @@ -0,0 +1,133 @@ +# $FreeBSD$ + +PROG= loader +STRIP= +NEWVERSWHAT= "bootstrap loader" pc98 +BINDIR?= /boot +INSTALLFLAGS= -b + +CFLAGS+= -DPC98 + +# architecture-specific loader code +SRCS= main.c conf.c +.PATH: ${.CURDIR}/../../i386/loader + +CFLAGS+= -ffreestanding +# Enable PXE TFTP or NFS support, not both. +.if defined(LOADER_TFTP_SUPPORT) +CFLAGS+= -DLOADER_TFTP_SUPPORT +.else +CFLAGS+= -DLOADER_NFS_SUPPORT +.endif + +# Enable PnP and ISA-PnP code. +HAVE_PNP= yes +HAVE_ISABUS= yes + +.if !defined(NOFORTH) +# Enable BootForth +BOOT_FORTH= yes +CFLAGS+= -DBOOT_FORTH -I${.CURDIR}/../../ficl -I${.CURDIR}/../../ficl/i386 +.if exists(${.OBJDIR}/../../ficl/libficl.a) +LIBFICL= ${.OBJDIR}/../../ficl/libficl.a +.else +LIBFICL= ${.CURDIR}/../../ficl/libficl.a +.endif +.endif + +.if defined(LOADER_BZIP2_SUPPORT) +CFLAGS+= -DLOADER_BZIP2_SUPPORT +.endif +.if !defined(LOADER_NO_GZIP_SUPPORT) +CFLAGS+= -DLOADER_GZIP_SUPPORT +.endif + +# Always add MI sources +.PATH: ${.CURDIR}/../../common +.include <${.CURDIR}/../../common/Makefile.inc> +CFLAGS+= -I${.CURDIR}/../../common +CFLAGS+= -I${.CURDIR}/../../.. -I. -I${.CURDIR}/../../i386 + +CLEANFILES+= vers.c vers.o ${PROG}.list ${PROG}.bin ${PROG}.sym ${PROG}.help + +CFLAGS+= -Wall +LDFLAGS= -nostdlib -static -Ttext 0x0 + +# pc98 standalone support library +LIBPC98= ${.OBJDIR}/../libpc98/libpc98.a +CFLAGS+= -I${.CURDIR}/.. + +# 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 +CFLAGS+= -I${.CURDIR}/../../../../lib/libstand/ + +# BTX components +.if exists(${.OBJDIR}/../btx) +BTXDIR= ${.OBJDIR}/../btx +.else +BTXDIR= ${.CURDIR}/../btx +.endif +BTXLDR= ${BTXDIR}/btxldr/btxldr +BTXKERN= ${BTXDIR}/btx/btx +BTXCRT= ${BTXDIR}/lib/crt0.o +CFLAGS+= -I${.CURDIR}/../btx/lib + +# BTX is expecting ELF components +CFLAGS+= -elf + +# Debug me! +#CFLAGS+= -g +#LDFLAGS+= -g + +vers.o: ${.CURDIR}/../../common/newvers.sh ${.CURDIR}/../../i386/loader/version + sh ${.CURDIR}/../../common/newvers.sh ${.CURDIR}/../../i386/loader/version ${NEWVERSWHAT} + ${CC} -c vers.c + +${PROG}: ${PROG}.bin ${BTXLDR} ${BTXKERN} ${BTXCRT} + btxld -v -f aout -e ${LOADER_ADDRESS} -o ${.TARGET} -l ${BTXLDR} \ + -b ${BTXKERN} ${PROG}.bin +# /usr/bin/kzip ${.TARGET} +# mv ${.TARGET}.kz ${.TARGET} + +${PROG}.bin: ${PROG}.sym + cp ${.ALLSRC} ${.TARGET} + strip -R .comment -R .note ${.TARGET} + +${PROG}.help: help.common help.pc98 + cat ${.ALLSRC} | awk -f ${.CURDIR}/../../common/merge_help.awk > ${.TARGET} + +.PATH: ${.CURDIR}/../../forth +FILES= ${PROG}.help loader.4th support.4th loader.conf +FILES+= screen.4th frames.4th beastie.4th +FILESDIR_loader.conf= /boot/defaults + +.if !exists(${DESTDIR}/boot/loader.rc) +FILES+= ${.CURDIR}/../../i386/loader/loader.rc +.endif + +.include <${.CURDIR}/../Makefile.inc> + +# Cannot use ${OBJS} above this line +.include <bsd.prog.mk> + +${PROG}.sym: ${OBJS} ${LIBPC98} ${LIBSTAND} ${LIBFICL} vers.o + ${CC} ${LDFLAGS} -o ${.TARGET} ${BTXCRT} ${OBJS} vers.o \ + ${LIBFICL} ${LIBPC98} ${LIBSTAND} + +# If it's not there, don't consider it a target +.if exists(${.CURDIR}/../../../i386/include) +beforedepend ${OBJS}: machine + +machine: + ln -sf ${.CURDIR}/../../../i386/include machine + +.endif + +CLEANFILES+= machine |