From 1a0a492215cc83cc2a2ed405f6301968175786c2 Mon Sep 17 00:00:00 2001 From: Jeremy Baxter Date: Thu, 13 Jun 2024 11:10:31 +1200 Subject: [PATCH] makefile: link Lua objects into libcallisto Fixes: https://todo.sr.ht/~jeremy/callisto/13 --- Makefile | 20 +++++++++----------- configure | 12 ++++++++++++ 2 files changed, 21 insertions(+), 11 deletions(-) diff --git a/Makefile b/Makefile index 5ed8dff..9fcc932 100644 --- a/Makefile +++ b/Makefile @@ -14,7 +14,6 @@ LDFLAGS = ${_LDFLAGS} OBJS = callisto.o lcl.o lenviron.o lextra.o lfs.o ljson.o \ lprocess.o util.o -LIBS = liblua.a HEADERS = callisto.h \ ${LUADIR}/lua.h \ ${LUADIR}/luaconf.h \ @@ -27,10 +26,10 @@ CJSON_CFLAGS = ${_CFLAGS} -I${LUADIR} all: csto libcallisto.a -csto: ${LIBS} libcallisto.a csto.o - ${CC} -o $@ csto.o libcallisto.a ${LIBS} ${LDFLAGS} -libcallisto.a: liblua.a ${CJSON_OBJS} ${OBJS} - ar cr $@ ${OBJS} ${CJSON_OBJS} +csto: libcallisto.a csto.o + ${CC} -o $@ csto.o libcallisto.a ${LDFLAGS} +libcallisto.a: lua ${CJSON_OBJS} ${OBJS} + ar cr $@ ${OBJS} ${CJSON_OBJS} ${_LUAOBJS} .SUFFIXES: .o @@ -56,14 +55,13 @@ lua_cjson.o: ${CJSON_SRC}/lua_cjson.c strbuf.o: ${CJSON_SRC}/strbuf.c ${CC} ${CJSON_CFLAGS} -c $< -liblua.a: external/lua/*.c - ${MAKE} -Cexternal/lua - mv -f external/lua/liblua.a . +lua: + ${MAKE} -C${LUADIR} clean: - rm -f csto libcallisto.a csto.o ${OBJS} ${CJSON_OBJS} ${LIBS} + rm -f csto libcallisto.a csto.o ${OBJS} ${CJSON_OBJS} rm -fr include doc/*.html doc/modules - ${MAKE} -s -Cexternal/lua clean + ${MAKE} -s -C${LUADIR} clean doc: ldoc -s . -q . >/dev/null @@ -86,4 +84,4 @@ install: cp -f libcallisto.a "${DESTDIR}${PREFIX}"/lib/ cp -f man/csto.1 "${DESTDIR}${PREFIX}"/share/man/man1/ -.PHONY: all clean doc format gitconfig install +.PHONY: all clean doc format gitconfig install lua diff --git a/configure b/configure index ed5911d..ef501d3 100755 --- a/configure +++ b/configure @@ -130,6 +130,14 @@ gen_LDFLAGS () { ldflags="$(trim "$ldflags")" } +## Lua objects +gen_LUAOBJS () { + for obj in $(make -Cexternal/lua -s echo | grep -E '^BASE_O= ' | cut -d " " -f2-); do + luaobjs="$luaobjs external/lua/$obj" + done + luaobjs="$(trim "$luaobjs")" +} + # ## misc. functions # @@ -197,6 +205,7 @@ cd $(dirname $0) gen_CC gen_CFLAGS gen_LDFLAGS +gen_LUAOBJS printf '# generated by configure @@ -206,10 +215,13 @@ _CPPFLAGS = %s _LDFLAGS =%s _EXT_CPPFLAGS = %s + +_LUAOBJS = %s ' \ "$cc" \ "$cflags" \ "$cppflags"\ "$ldflags" \ "$ext_cppflags"\ + "$luaobjs"\ >"$mkf"