freebsd-dev/stand/Makefile

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

102 lines
2.0 KiB
Makefile
Raw Normal View History

# $FreeBSD$
.include <src.opts.mk>
# 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
.if ${MK_FORTH} != "no"
LIB32LIST+= ficl
.endif
.if ${MK_LOADER_LUA} != "no"
LIB32LIST+= liblua
.endif
Add Lua as a scripting langauge to /boot/loader liblua glues the lua run time into the boot loader. It implements all the runtime routines that lua expects. In addition, it has a few standard 'C' headers that nueter various aspects of the LUA build that are too specific to lua to be in libsa. Many refinements from the original code to improve implementation and the number of included lua libraries. Use int64_t for lua_Number. Have "/boot/lua" be the default module path. Numerous cleanups from the original GSoC project, including hacking libsa to allow lua to be built with only one change outside luaconf.h. Add the final bit of lua glue to bring in liblua and plug into the multiple interpreter framework, previously committed. Add LOADER_LUA option, currently off by default. Presently, this is an experimental option. One must opt-in to using this by defining WITH_LOADER_LUA and WITHOUT_FORTH. It's been lightly tested, so keep a backup copy of your old loader handy. The menu code, coming in the next commit, hasn't been exhaustively tested. A LUA boot loader is 60k larger than a FORTH one, which is 80k larger than a no-interpreter one. Subtle changes in size may tip things past some subtle limit (the binary is ~430k now when built with LUA). A future version may offer coexistance. Bump FreeBSD version to 1200058 to mark the milestone. Pedro Souza's 2014 Summer of Code project. Rui Paulo, Pedro Arthur, Zakary Nafziger and Wojciech A. Koszek also contributed. Warner Losh reworked it extensively into its current form. Obtained from: https://wiki.freebsd.org/SummerOfCode2014/LuaLoader Sponsored by: Google Summer of Code Relnotes: Yes MFC After: 1 month Differential Review: https://reviews.freebsd.org/D14295
2018-02-12 15:31:53 +00:00
.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.yes+= defaults
S.yes+= fonts
S.yes+= images
S.yes+= man
.if ${MK_FORTH} != "no"
INTERP_DEPENDS+= forth
.endif
.if ${MK_LOADER_LUA} != "no"
INTERP_DEPENDS+= lua
.endif
.include <bsd.arch.inc.mk>
S.${MK_EFI}+= efi
.if ${MK_FDT} != "no"
S.${MK_LOADER_KBOOT}+= kboot
.endif
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_forth+= ficl
SUBDIR_DEPEND_lua+= liblua
SUBDIR_DEPEND_efi+= ${INTERP_DEPENDS}
SUBDIR_DEPEND_kboot+= ${INTERP_DEPENDS}
.if ${MK_FDT} != "no"
SUBDIR_DEPEND_efi+= fdt
SUBDIR_DEPEND_kboot+= fdt
.endif
SUBDIR_DEPEND_uboot+= ${INTERP_DEPENDS}
.if ${MK_FDT} != "no"
SUBDIR_DEPEND_uboot+= fdt
.endif
SUBDIR_PARALLEL= yes
.include <bsd.subdir.mk>
# Simplified way to build-test the most important build combinations for the
# loader.
universe:
sh ${SRCTOP}/tools/boot/universe.sh