diff --git a/stand/Makefile b/stand/Makefile index bacf39e26eca..c5c7ca60375a 100644 --- a/stand/Makefile +++ b/stand/Makefile @@ -1,41 +1,85 @@ # $FreeBSD$ .include # For amd64 we have to build 32 and 64 bit versions of things. For # others we don't. LIB32LIST is a list of libraries, which if # included, need to be built 32-bit as well. .if ${MACHINE_ARCH} == "amd64" -LIB32LIST=libsa ficl liblua +LIB32LIST=libsa +.if ${MK_FORTH} != "no" +LIB32LIST+= ficl +.endif +.if ${MK_LOADER_LUA} != "no" +LIB32LIST+= liblua +.endif .endif S.yes+= libsa +S.${MK_LOADER_OFW}+= libofw +S.${MK_FDT}+= fdt + S.${MK_FORTH}+= ficl S.${MK_FORTH}+= forth S.${MK_LOADER_LUA}+= liblua S.${MK_LOADER_LUA}+= lua -S.${MK_FDT}+= fdt -S.${MK_LOADER_OFW}+= libofw S.yes+= defaults S.yes+= man +.if ${MK_FORTH} != "no" +INTERP_DEPENDS+= forth +.endif +.if ${MK_LOADER_LUA} != "no" +INTERP_DEPENDS+= lua +.endif + .include S.${MK_EFI}+= efi S.${MK_LOADER_UBOOT}+= uboot +.if defined(LIB32LIST) +LIB32DEPENDS= ${LIB32LIST:S/$/32/} +.endif + .if exists(${.CURDIR}/${MACHINE}/.) S.yes+= ${MACHINE} +SUBDIR_DEPEND_${MACHINE}+= ${INTERP_DEPENDS} +.if ${MK_FDT} != "no" +SUBDIR_DEPEND_${MACHINE}+= fdt +.endif +.if ${MK_LOADER_UBOOT} != "no" +SUBDIR_DEPEND_${MACHINE}+= uboot +.endif +.if ${MK_LOADER_OFW} != "no" +SUBDIR_DEPEND_${MACHINE}+= libofw +.endif .endif # Build the actual subdir list from S.yes, adding in the 32-bit # variant if necessary. .for _x in ${S.yes} SUBDIR+=${_x} .if defined(LIB32LIST) && ${LIB32LIST:M${_x}} SUBDIR+=${_x}32 .endif +.if ${_x} != "libsa" +SUBDIR_DEPEND_${_x}+= libsa +SUBDIR_DEPEND_${_x}32+= libsa32 +.endif .endfor +# Remaining dependencies +SUBDIR_DEPEND_libsa32+= libsa + +SUBDIR_DEPEND_forth+= ficl +SUBDIR_DEPEND_lua+= liblua + +.if ${MK_FDT} != "no" +SUBDIR_DEPEND_efi+= fdt +.endif + +SUBDIR_PARALLEL= yes + .include diff --git a/stand/Makefile.amd64 b/stand/Makefile.amd64 index b2b918ebed5b..9ee3649071b2 100644 --- a/stand/Makefile.amd64 +++ b/stand/Makefile.amd64 @@ -1,4 +1,8 @@ # $FreeBSD$ S.yes+= userboot S.yes+= i386 + +SUBDIR_DEPEND_userboot+= ${INTERP_DEPENDS} +# These won't get tacked on in an amd64 build +SUBDIR_DEPEND_i386+= ${LIB32DEPENDS} ${INTERP_DEPENDS} diff --git a/stand/Makefile.inc b/stand/Makefile.inc index d7b9d228287e..aa7cfa14542f 100644 --- a/stand/Makefile.inc +++ b/stand/Makefile.inc @@ -1,3 +1,5 @@ # $FreeBSD$ +SUBDIR_PARALLEL= yes + .include "defs.mk" diff --git a/stand/efi/Makefile b/stand/efi/Makefile index 2e0daba6dab8..9ab6aa4291fb 100644 --- a/stand/efi/Makefile +++ b/stand/efi/Makefile @@ -1,19 +1,23 @@ # $FreeBSD$ NO_OBJ=t .include # In-tree GCC does not support __attribute__((ms_abi)), but gcc newer # than 4.5 supports it. .if ${COMPILER_TYPE} != "gcc" || ${COMPILER_VERSION} >= 40500 +SUBDIR.yes+= libefi SUBDIR.${MK_FDT}+= fdt -SUBDIR.yes+= libefi boot1 gptboot +SUBDIR.yes+= .WAIT + +SUBDIR.yes+= boot1 gptboot + SUBDIR.${MK_FORTH}+= loader_4th SUBDIR.${MK_LOADER_LUA}+= loader_lua SUBDIR.yes+= loader_simp .endif # ${COMPILER_TYPE} != "gcc" || ${COMPILER_VERSION} >= 40500 .include diff --git a/stand/i386/Makefile b/stand/i386/Makefile index 2a9ead4c8e72..2b628d408d1e 100644 --- a/stand/i386/Makefile +++ b/stand/i386/Makefile @@ -1,25 +1,32 @@ # $FreeBSD$ NO_OBJ=t .include -SUBDIR.yes= mbr pmbr boot0 boot0sio btx boot2 cdboot gptboot \ - isoboot libi386 - +# Almost everything else here relies on btxldr, so we must make sure it's built +# before everything else proceeds so we don't end up building against a stale +# btxldr and ending up with a build-during-install scenario. +SUBDIR.yes+= btx libi386 SUBDIR.${MK_LOADER_FIREWIRE}+= libfirewire +SUBDIR.yes+= .WAIT + +SUBDIR.yes+= mbr pmbr boot0 boot0sio boot2 cdboot gptboot \ + isoboot SUBDIR.${MK_FORTH}+= loader_4th SUBDIR.${MK_LOADER_LUA}+= loader_lua SUBDIR.yes+= loader_simp # special boot programs, 'self-extracting boot2+loader' SUBDIR.yes+= pxeldr .if ${MACHINE_CPUARCH} == "i386" SUBDIR.yes+= kgzldr .endif SUBDIR.${MK_LOADER_ZFS}+= zfsboot gptzfsboot +SUBDIR_DEPEND_pxeldr+= loader_${LOADER_DEFAULT_INTERP} + .include