diff --git a/libexec/flua/Makefile b/libexec/flua/Makefile --- a/libexec/flua/Makefile +++ b/libexec/flua/Makefile @@ -6,10 +6,13 @@ # than mucking about with the infrastructure to make them linkable -- thus, why # these are all structured to have a Makefile that describes what we want # *installed*, and a Makefile.inc that describes what we need to *build*. +FLUA_MODULES+= lfbsd +FLUA_MODULES+= lfs FLUA_MODULES+= libhash FLUA_MODULES+= libjail FLUA_MODULES+= libucl FLUA_MODULES+= liblyaml +FLUA_MODULES+= lposix .ifdef BOOTSTRAPPING FLUA_MODULES+= libfreebsd/sys/linker @@ -47,7 +50,6 @@ # FreeBSD Extensions .PATH: ${.CURDIR}/modules SRCS+= linit_flua.c -SRCS+= lfs.c lposix.c lfbsd.c CFLAGS+= -I${SRCTOP}/lib/liblua -I${.CURDIR}/modules -I${LUASRC} CFLAGS+= -DLUA_PROGNAME="\"${PROG}\"" diff --git a/libexec/flua/lfbsd/Makefile b/libexec/flua/lfbsd/Makefile new file mode 100644 --- /dev/null +++ b/libexec/flua/lfbsd/Makefile @@ -0,0 +1,5 @@ +SHLIB_NAME= fbsd.so +WARNS?= 3 + +.include "Makefile.inc" +.include diff --git a/libexec/flua/lfbsd/Makefile.inc b/libexec/flua/lfbsd/Makefile.inc new file mode 100644 --- /dev/null +++ b/libexec/flua/lfbsd/Makefile.inc @@ -0,0 +1,2 @@ +.PATH: ${.PARSEDIR} +SRCS+= lfbsd.c diff --git a/libexec/flua/modules/lfbsd.h b/libexec/flua/lfbsd/lfbsd.h rename from libexec/flua/modules/lfbsd.h rename to libexec/flua/lfbsd/lfbsd.h diff --git a/libexec/flua/modules/lfbsd.c b/libexec/flua/lfbsd/lfbsd.c rename from libexec/flua/modules/lfbsd.c rename to libexec/flua/lfbsd/lfbsd.c --- a/libexec/flua/modules/lfbsd.c +++ b/libexec/flua/lfbsd/lfbsd.c @@ -40,6 +40,8 @@ #include "lauxlib.h" #include "lfbsd.h" +#include "bootstrap.h" + #define FBSD_PROCESSHANDLE "fbsd_process_t*" struct fbsd_process { @@ -283,3 +285,5 @@ return (1); } + +FLUA_MODULE(fbsd); diff --git a/libexec/flua/lfs/Makefile b/libexec/flua/lfs/Makefile new file mode 100644 --- /dev/null +++ b/libexec/flua/lfs/Makefile @@ -0,0 +1,5 @@ +SHLIB_NAME= lfs.so +WARNS?= 3 + +.include "Makefile.inc" +.include diff --git a/libexec/flua/lfs/Makefile.inc b/libexec/flua/lfs/Makefile.inc new file mode 100644 --- /dev/null +++ b/libexec/flua/lfs/Makefile.inc @@ -0,0 +1,2 @@ +.PATH: ${.PARSEDIR} +SRCS+= lfs.c diff --git a/libexec/flua/modules/lfs.h b/libexec/flua/lfs/lfs.h rename from libexec/flua/modules/lfs.h rename to libexec/flua/lfs/lfs.h diff --git a/libexec/flua/modules/lfs.c b/libexec/flua/lfs/lfs.c rename from libexec/flua/modules/lfs.c rename to libexec/flua/lfs/lfs.c --- a/libexec/flua/modules/lfs.c +++ b/libexec/flua/lfs/lfs.c @@ -66,9 +66,10 @@ #ifdef _STANDALONE #include "lstd.h" #include "lutils.h" -#include "bootstrap.h" #endif +#include "bootstrap.h" + #ifndef nitems #define nitems(x) (sizeof((x)) / sizeof((x)[0])) #endif @@ -446,3 +447,7 @@ #endif return 1; } + +#ifndef _STANDALONE +FLUA_MODULE(lfs); +#endif diff --git a/libexec/flua/libhash/lhash.c b/libexec/flua/libhash/lhash.c --- a/libexec/flua/libhash/lhash.c +++ b/libexec/flua/libhash/lhash.c @@ -178,4 +178,6 @@ return 1; } +#ifndef _STANDALONE FLUA_MODULE(hash); +#endif diff --git a/libexec/flua/linit_flua.c b/libexec/flua/linit_flua.c --- a/libexec/flua/linit_flua.c +++ b/libexec/flua/linit_flua.c @@ -33,9 +33,6 @@ #include "lualib.h" #include "lauxlib.h" -#include "lfs.h" -#include "lposix.h" -#include "lfbsd.h" #include "bootstrap.h" @@ -57,10 +54,6 @@ #if defined(LUA_COMPAT_BITLIB) {LUA_BITLIBNAME, luaopen_bit32}, #endif - /* FreeBSD Extensions */ - {"lfs", luaopen_lfs}, - {"posix", luaopen_posix}, - {"fbsd", luaopen_fbsd}, {NULL, NULL} }; diff --git a/libexec/flua/lposix/Makefile b/libexec/flua/lposix/Makefile new file mode 100644 --- /dev/null +++ b/libexec/flua/lposix/Makefile @@ -0,0 +1,5 @@ +SHLIB_NAME= posix.so +WARNS?= 3 + +.include "Makefile.inc" +.include diff --git a/libexec/flua/lposix/Makefile.inc b/libexec/flua/lposix/Makefile.inc new file mode 100644 --- /dev/null +++ b/libexec/flua/lposix/Makefile.inc @@ -0,0 +1,2 @@ +.PATH: ${.PARSEDIR} +SRCS+= lposix.c diff --git a/libexec/flua/modules/lposix.h b/libexec/flua/lposix/lposix.h rename from libexec/flua/modules/lposix.h rename to libexec/flua/lposix/lposix.h diff --git a/libexec/flua/modules/lposix.c b/libexec/flua/lposix/lposix.c rename from libexec/flua/modules/lposix.c rename to libexec/flua/lposix/lposix.c --- a/libexec/flua/modules/lposix.c +++ b/libexec/flua/lposix/lposix.c @@ -21,6 +21,8 @@ #include "lauxlib.h" #include "lposix.h" +#include "bootstrap.h" + static void enforce_max_args(lua_State *L, int max) { @@ -697,3 +699,6 @@ return (1); } + +/* Only this one needed in our bootstrap set, it will load the others. */ +FLUA_MODULE(posix); diff --git a/stand/liblua/Makefile b/stand/liblua/Makefile --- a/stand/liblua/Makefile +++ b/stand/liblua/Makefile @@ -24,7 +24,7 @@ SRCS+= lerrno.c lpager.c lstd.c lutils.c SRCS+= gfx_utils.c -.PATH: ${FLUASRC}/modules +.PATH: ${FLUASRC}/lfs SRCS+= lfs.c .PATH: ${FLUALIB}/libhash SRCS+= lhash.c diff --git a/stand/loader.mk b/stand/loader.mk --- a/stand/loader.mk +++ b/stand/loader.mk @@ -89,7 +89,7 @@ .include "${BOOTSRC}/lua.mk" LDR_INTERP= ${LIBLUA} LDR_INTERP32= ${LIBLUA32} -CFLAGS.interp_lua.c= -DLUA_PATH=\"${LUAPATH}\" -I${FLUASRC}/modules +CFLAGS.interp_lua.c= -DLUA_PATH=\"${LUAPATH}\" -I${FLUASRC}/lfs .elif ${LOADER_INTERP} == "4th" SRCS+= interp_forth.c .include "${BOOTSRC}/ficl.mk"