diff --git a/Makefile b/Makefile index 7fa91c8..c85ede2 100644 --- a/Makefile +++ b/Makefile @@ -112,3 +112,18 @@ pc: .PHONY: all $(PLATS) clean test install local none dummy echo pecho lecho # (end of Makefile) + +# Use libtool for binary installs, etc. + +export V +export LIBTOOL = ../libtool --quiet --tag=CC +# See libtool manual about how to set this + +alpine_clean: + cd src; $(MAKE) $@ + +alpine_install: + mkdir -p $(INSTALL_BIN) $(INSTALL_INC) $(INSTALL_LIB) + cd src; $(LIBTOOL) --mode=install $(INSTALL_EXEC) lua luac $(INSTALL_BIN) + cd src; $(INSTALL_DATA) $(TO_INC) $(INSTALL_INC) + cd src; $(LIBTOOL) --mode=install $(INSTALL_DATA) liblua.la $(INSTALL_LIB) diff --git a/src/Makefile b/src/Makefile index 2e7a412..a72f342 100644 --- a/src/Makefile +++ b/src/Makefile @@ -59,10 +59,10 @@ $(LUA_A): $(BASE_O) $(AR) $@ $(BASE_O) $(RANLIB) $@ -$(LUA_T): $(LUA_O) $(LUA_A) +origin$(LUA_T): $(LUA_O) $(LUA_A) $(CC) -o $@ $(LDFLAGS) $(LUA_O) $(LUA_A) $(LIBS) -$(LUAC_T): $(LUAC_O) $(LUA_A) +origin$(LUAC_T): $(LUAC_O) $(LUA_A) $(CC) -o $@ $(LDFLAGS) $(LUAC_O) $(LUA_A) $(LIBS) clean: @@ -194,4 +194,33 @@ lvm.o: lvm.c lprefix.h lua.h luaconf.h ldebug.h lstate.h lobject.h \ lzio.o: lzio.c lprefix.h lua.h luaconf.h llimits.h lmem.h lstate.h \ lobject.h ltm.h lzio.h + +export LIBTOOL = ../libtool --quiet --tag=CC +export LIB_VERSION = 0:0:0 + +# The following rules use libtool for compiling and linking in order to +# provide shared library support. + +LIB_NAME = liblua.la +LIB_OBJS = $(CORE_O:.o=.lo) $(LIB_O:.o=.lo) + +%.lo %.o: %.c + $(LIBTOOL) --mode=compile $(CC) -c $(CPPFLAGS) $(CFLAGS) -o $@ $< + +$(LIB_NAME): $(LIB_OBJS) + $(LIBTOOL) --mode=link $(CC) -version-info $(LIB_VERSION) -release $(V) \ + -rpath $(RPATH) $(LDFLAGS) -o $(LIB_NAME) $(LIB_OBJS) $(LIB_LIBS) + +$(LUA_T): $(LUA_O:.o=.lo) $(LIB_NAME) + $(LIBTOOL) --mode=link $(CC) -export-dynamic $(LDFLAGS) -o $@ \ + $(LUA_O:.o=.lo) $(LIB_NAME) $(LUA_LIBS) + +$(LUAC_T): $(LUAC_O:.o=.lo) $(LIB_NAME) + $(LIBTOOL) --mode=link $(CC) -static $(LDFLAGS) -o $@ $(LUAC_O:.o=.lo) \ + $(LIB_NAME) + +alpine_clean: + $(LIBTOOL) --mode=clean $(RM) $(ALL_O:.o=.lo) $(LIB_NAME) lua luac + +alpine_all: $(LIB_NAME) $(LUA_T) $(LUAC_T) # (end of Makefile)