Index: stand/defs.mk =================================================================== --- stand/defs.mk +++ stand/defs.mk @@ -146,6 +146,15 @@ .endif .endif +.if ${MK_FORTH} == "yes" +LOADER_DEFAULT_INTERP?=4th +.elif ${MK_LOADER_LUA} == "yes" +LOADER_DEFAULT_INTERP?=lua +.else +LOADER_DEFAULT_INTERP=simp +.endif +LOADER_INTERP?=${LOADER_DEFAULT_INTERP} + # Make sure we use the machine link we're about to create CFLAGS+=-I. Index: stand/i386/4thloader/Makefile =================================================================== --- /dev/null +++ stand/i386/4thloader/Makefile @@ -0,0 +1,6 @@ +# $FreeBSD$ + +LOADER_INTERP=4th + +.include "../loader/Makefile" + Index: stand/i386/Makefile =================================================================== --- stand/i386/Makefile +++ stand/i386/Makefile @@ -9,7 +9,9 @@ SUBDIR.${MK_LOADER_FIREWIRE}+= libfirewire -SUBDIR.yes+= loader +SUBDIR.${MK_FORTH}+= 4thloader +SUBDIR.${MK_LOADER_LUA}+= lualoader +SUBDIR.yes+= simploader # special boot programs, 'self-extracting boot2+loader' SUBDIR.yes+= pxeldr Index: stand/i386/loader/Makefile =================================================================== --- stand/i386/loader/Makefile +++ stand/i386/loader/Makefile @@ -14,7 +14,7 @@ .include -LOADER?= loader +LOADER?= ${LOADER_INTERP}loader PROG= ${LOADER}.sym INTERNALPROG= NEWVERSWHAT?= "bootstrap loader" x86 @@ -64,11 +64,13 @@ ${LOADER}.bin: ${LOADER}.sym strip -R .comment -R .note -o ${.TARGET} ${.ALLSRC} -.if ${MK_ZFS} == "yes" -LINKS= ${BINDIR}/${LOADER} ${BINDIR}/zfs${LOADER} +.if ${MK_ZFS} == "yes" && ${LOADER_INTERP} == ${LOADER_DEFAULT_INTERP} +LINKS+= ${BINDIR}/${LOADER} ${BINDIR}/zfsloader +.endif +.if ${LOADER_INTERP} == ${LOADER_DEFAULT_INTERP} +LINKS+= ${BINDIR}/${LOADER} ${BINDIR}/loader .endif FILES+= ${LOADER} -# XXX INSTALLFLAGS_loader= -b FILESMODE_${LOADER}= ${BINMODE} -b # XXX crt0.o needs to be first for pxeboot(8) to work Index: stand/i386/lualoader/Makefile =================================================================== --- /dev/null +++ stand/i386/lualoader/Makefile @@ -0,0 +1,6 @@ +# $FreeBSD$ + +LOADER_INTERP=lua + +.include "../loader/Makefile" + Index: stand/i386/pxeldr/Makefile =================================================================== --- stand/i386/pxeldr/Makefile +++ stand/i386/pxeldr/Makefile @@ -24,7 +24,7 @@ CFLAGS+=-I${BOOTSRC}/i386/common -LOADERBIN= ${BOOTOBJ}/i386/loader/loader.bin +LOADERBIN= ${BOOTOBJ}/i386/${LOADER_DEFAULT_INTERP}loader/${LOADER_DEFAULT_INTERP}loader.bin CLEANFILES+= ${BOOT}.tmp Index: stand/i386/simploader/Makefile =================================================================== --- /dev/null +++ stand/i386/simploader/Makefile @@ -0,0 +1,6 @@ +# $FreeBSD$ + +LOADER_INTERP=simp + +.include "../loader/Makefile" + Index: stand/loader.mk =================================================================== --- stand/loader.mk +++ stand/loader.mk @@ -57,19 +57,20 @@ SRCS+= pnp.c .endif -# Forth interpreter -.if ${MK_LOADER_LUA} != "no" +.if ${LOADER_INTERP} == "lua" SRCS+= interp_lua.c .include "${BOOTSRC}/lua.mk" LDR_INTERP= ${LIBLUA} LDR_INTERP32= ${LIBLUA32} -.elif ${MK_FORTH} != "no" +.elif ${LOADER_INTERP} == "4th" SRCS+= interp_forth.c .include "${BOOTSRC}/ficl.mk" LDR_INTERP= ${LIBFICL} LDR_INTERP32= ${LIBFICL32} -.else +.elif ${LOADER_INTERP} == "simp" SRCS+= interp_simple.c +.else +.error Unknown interpreter ${LOADER_INTERP} .endif .if defined(BOOT_PROMPT_123) Index: stand/userboot/Makefile =================================================================== --- stand/userboot/Makefile +++ stand/userboot/Makefile @@ -2,7 +2,7 @@ .include -SUBDIR= test userboot +SUBDIR= userboot .include