From ee74c236246cc2567b00578bbc760e38ee42fdfd Mon Sep 17 00:00:00 2001 From: Kyle Evans Date: Sat, 2 Nov 2019 03:37:58 +0000 Subject: [PATCH] stand: consolidate knowledge of lua path Multiple places coordinate to 'know' where lua scripts are installed. Knock this down to being formally defined (and overridable) in exactly one spot, defs.mk, and spread the knowledge to loaders and liblua alike. A future commit will expose this to lua as loader.lua_path, so it can build absolute paths to lua scripts as needed. MFC after: 1 week --- stand/common/interp_lua.c | 4 +++- stand/defs.mk | 3 +++ stand/liblua/Makefile | 2 +- stand/liblua/luaconf.h | 2 +- stand/loader.mk | 1 + stand/lua/Makefile | 2 +- 6 files changed, 10 insertions(+), 4 deletions(-) diff --git a/stand/common/interp_lua.c b/stand/common/interp_lua.c index 3c6691a7d10e..f63bad03b486 100644 --- a/stand/common/interp_lua.c +++ b/stand/common/interp_lua.c @@ -60,6 +60,8 @@ static struct interp_lua_softc lua_softc; #define LDBG(...) #endif +#define LOADER_LUA LUA_PATH "/loader.lua" + INTERP_DEFINE("lua"); static void * @@ -120,7 +122,7 @@ interp_init(void) lua_pop(luap, 1); /* remove lib */ } - filename = "/boot/lua/loader.lua"; + filename = LOADER_LUA; if (interp_include(filename) != 0) { const char *errstr = lua_tostring(luap, -1); errstr = errstr == NULL ? "unknown" : errstr; diff --git a/stand/defs.mk b/stand/defs.mk index ac8ee7f526ba..2318961ddc41 100644 --- a/stand/defs.mk +++ b/stand/defs.mk @@ -40,6 +40,9 @@ BOOTOBJ= ${OBJTOP}/stand # BINDIR is where we install BINDIR?= /boot +# LUAPATH is where we search for and install lua scripts. +LUAPATH?= /boot/lua + LIBSA= ${BOOTOBJ}/libsa/libsa.a .if ${MACHINE} == "i386" LIBSA32= ${LIBSA} diff --git a/stand/liblua/Makefile b/stand/liblua/Makefile index edbbf60b2d25..49ed02709299 100644 --- a/stand/liblua/Makefile +++ b/stand/liblua/Makefile @@ -27,7 +27,7 @@ SRCS+= lerrno.c lfs.c lstd.c lutils.c WARNS= 3 -CFLAGS+= -DLUA_PATH_DEFAULT=\"/boot/lua/\?.lua\" +CFLAGS+= -DLUA_PATH=\"${LUAPATH}\" -DLUA_PATH_DEFAULT=\"${LUAPATH}/\?.lua\" CFLAGS+= -ffreestanding -nostdlib -DLUA_USE_POSIX CFLAGS+= -fno-stack-protector -D__BSD_VISIBLE CFLAGS+= -I${BOOTSRC}/include -I${LIBLUASRC} -I${LUASRC} -I${LDRSRC} diff --git a/stand/liblua/luaconf.h b/stand/liblua/luaconf.h index f3a1b4ec9ad5..dd642cba92f4 100644 --- a/stand/liblua/luaconf.h +++ b/stand/liblua/luaconf.h @@ -202,7 +202,7 @@ #else /* }{ */ -#define LUA_ROOT "/boot/lua/" LUA_VDIR "/" +#define LUA_ROOT LUA_PATH "/" LUA_VDIR "/" #define LUA_LDIR LUA_ROOT "share/" #define LUA_CDIR LUA_ROOT "lib/" #ifndef LUA_PATH_DEFAULT diff --git a/stand/loader.mk b/stand/loader.mk index a7fbd6c12dd9..573e82d8964b 100644 --- a/stand/loader.mk +++ b/stand/loader.mk @@ -62,6 +62,7 @@ SRCS+= interp_lua.c .include "${BOOTSRC}/lua.mk" LDR_INTERP= ${LIBLUA} LDR_INTERP32= ${LIBLUA32} +CFLAGS+= -DLUA_PATH=\"${LUAPATH}\" .elif ${LOADER_INTERP} == "4th" SRCS+= interp_forth.c .include "${BOOTSRC}/ficl.mk" diff --git a/stand/lua/Makefile b/stand/lua/Makefile index 6e7019603ae4..7bdcc3fee056 100644 --- a/stand/lua/Makefile +++ b/stand/lua/Makefile @@ -12,7 +12,7 @@ MAN= cli.lua.8 \ password.lua.8 \ screen.lua.8 -FILESDIR= /boot/lua +FILESDIR= ${LUAPATH} FILES= cli.lua \ color.lua \ config.lua \