diff options
Diffstat (limited to 'package/lua/lua.mk')
-rw-r--r-- | package/lua/lua.mk | 175 |
1 files changed, 108 insertions, 67 deletions
diff --git a/package/lua/lua.mk b/package/lua/lua.mk index aeb6c8285..9b2302144 100644 --- a/package/lua/lua.mk +++ b/package/lua/lua.mk @@ -4,78 +4,119 @@ # ############################################################# -LUA_VERSION=5.1.4 +LUA_VERSION = 5.1.4 +LUA_SITE = http://www.lua.org/ftp +LUA_INSTALL_STAGING = YES -LUA_SOURCE=lua-$(LUA_VERSION).tar.gz -LUA_CAT:=$(ZCAT) -LUA_SITE=http://www.lua.org/ftp - -LUA_DIR=$(BUILD_DIR)/lua-$(LUA_VERSION) - -LUA_CFLAGS=-DLUA_USE_LINUX -LUA_MYLIBS="-Wl,-E -ldl -lreadline -lhistory -lncurses" - -$(DL_DIR)/$(LUA_SOURCE): - $(call DOWNLOAD,$(LUA_SITE),$(LUA_SOURCE)) - -$(LUA_DIR)/.unpacked: $(DL_DIR)/$(LUA_SOURCE) - $(LUA_CAT) $(DL_DIR)/$(LUA_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) - - touch $(LUA_DIR)/.unpacked - -$(LUA_DIR)/src/lua: $(LUA_DIR)/.unpacked - rm -f $@ - $(MAKE) $(TARGET_CONFIGURE_OPTS) \ - MYCFLAGS=$(LUA_CFLAGS) \ - MYLIBS=$(LUA_MYLIBS) \ - AR="$(TARGET_CROSS)ar rcu" \ - -C $(LUA_DIR)/src all - -$(LUA_DIR)/src/luac: $(LUA_DIR)/src/lua - -$(LUA_DIR)/src/liblua.a: $(LUA_DIR)/src/lua - -$(STAGING_DIR)/usr/lib/liblua.a: $(LUA_DIR)/src/liblua.a - cp -dpf $(LUA_DIR)/src/liblua.a $(STAGING_DIR)/usr/lib/liblua.a - -$(STAGING_DIR)/usr/bin/lua: $(LUA_DIR)/src/lua - cp -dpf $(LUA_DIR)/src/lua $(STAGING_DIR)/usr/bin/lua - -$(STAGING_DIR)/usr/bin/luac: $(LUA_DIR)/src/luac - cp -dpf $(LUA_DIR)/src/luac $(STAGING_DIR)/usr/bin/luac - -$(TARGET_DIR)/usr/lib/liblua.a: $(STAGING_DIR)/usr/lib/liblua.a - cp -dpf $(STAGING_DIR)/usr/lib/liblua.a $(TARGET_DIR)/usr/lib/liblua.a - -$(TARGET_DIR)/usr/bin/lua: $(STAGING_DIR)/usr/bin/lua - cp -dpf $(STAGING_DIR)/usr/bin/lua $(TARGET_DIR)/usr/bin/lua - -$(TARGET_DIR)/usr/bin/luac: $(STAGING_DIR)/usr/bin/luac - cp -dpf $(STAGING_DIR)/usr/bin/luac $(TARGET_DIR)/usr/bin/luac - - -lua-bins: $(TARGET_DIR)/usr/bin/lua $(TARGET_DIR)/usr/bin/luac +ifeq ($(BR2_PACKAGE_LUA_SHARED_LIBRARY),y) + LUA_MYCFLAGS += -fPIC -DLUA_USE_DLOPEN + LUA_MYLIBS += -ldl +endif -lua-libs: $(if $(BR2_HAVE_DEVFILES),$(TARGET_DIR)/usr/lib/liblua.a) +ifeq ($(BR2_PACKAGE_LUA_INTERPRETER_READLINE),y) + LUA_DEPENDENCIES = readline ncurses + LUA_MYLIBS += -lreadline -lhistory -lncurses + LUA_MYCFLAGS += -DLUA_USE_LINUX +else + LUA_MYCFLAGS += -DLUA_USE_POSIX +endif -lua: readline ncurses lua-bins lua-libs +define LUA_BUILD_CMDS + sed -i -e 's/-O2//' $(@D)/src/Makefile + sed -i -e 's/\/usr\/local/\/usr/' $(@D)/etc/lua.pc + $(MAKE) $(TARGET_CONFIGURE_OPTS) MYCFLAGS="$(LUA_MYCFLAGS)" \ + MYLIBS="$(LUA_MYLIBS)" AR="$(TARGET_CROSS)ar rcu" \ + PKG_VERSION=$(LUA_VERSION) -C $(@D)/src all +endef + +ifeq ($(BR2_PACKAGE_LUA_SHARED_LIBRARY),y) +define LUA_INSTALL_STAGING_SHARED_LIB + $(INSTALL) -D $(@D)/src/liblua.so.$(LUA_VERSION) \ + $(STAGING_DIR)/usr/lib/liblua.so.$(LUA_VERSION) + ln -sf liblua.so.$(LUA_VERSION) $(STAGING_DIR)/usr/lib/liblua.so +endef +endif -lua-source: $(DL_DIR)/$(LUA_SOURCE) +define LUA_INSTALL_STAGING_CMDS + $(INSTALL) -m 0644 -D $(@D)/etc/lua.pc \ + $(STAGING_DIR)/usr/lib/pkgconfig + $(INSTALL) $(@D)/src/liblua.a $(STAGING_DIR)/usr/lib + $(INSTALL) $(@D)/src/lua $(STAGING_DIR)/usr/bin + $(INSTALL) $(@D)/src/luac $(STAGING_DIR)/usr/bin + $(INSTALL) $(@D)/src/lua.h $(STAGING_DIR)/usr/include + $(INSTALL) $(@D)/src/luaconf.h $(STAGING_DIR)/usr/include + $(INSTALL) $(@D)/src/lualib.h $(STAGING_DIR)/usr/include + $(INSTALL) $(@D)/src/lauxlib.h $(STAGING_DIR)/usr/include +endef + +ifeq ($(BR2_PACKAGE_LUA_INTERPRETER),y) +define LUA_INSTALL_INTERPRETER + $(INSTALL) $(@D)/src/lua $(TARGET_DIR)/usr/bin +endef +endif -lua-clean: - rm -f $(STAGING_DIR)/usr/bin/lua $(TARGET_DIR)/usr/bin/luac - rm -f $(STAGING_DIR)/usr/lib/liblua.a - rm -f $(TARGET_DIR)/usr/bin/lua $(TARGET_DIR)/usr/bin/luac - rm -f $(TARGET_DIR)/usr/lib/liblua.a - -$(MAKE) -C $(LUA_DIR) clean +ifeq ($(BR2_PACKAGE_LUA_COMPILER),y) +define LUA_INSTALL_COMPILER + $(INSTALL) $(@D)/src/luac $(TARGET_DIR)/usr/bin +endef +endif -lua-dirclean: - rm -rf $(LUA_DIR) +ifeq ($(BR2_PACKAGE_LUA_SHARED_LIBRARY),y) +define LUA_INSTALL_LIBRARY + $(INSTALL) $(@D)/src/liblua.so.$(LUA_VERSION) \ + $(TARGET_DIR)/usr/lib/liblua.so.$(LUA_VERSION) + ln -sf liblua.so.$(LUA_VERSION) $(TARGET_DIR)/usr/lib/liblua.so + $(INSTALL) $(@D)/src/liblua.a $(TARGET_DIR)/usr/lib/liblua.a +endef +else +define LUA_INSTALL_LIBRARY + $(INSTALL) $(@D)/src/liblua.a $(TARGET_DIR)/usr/lib/liblua.a +endef +endif -############################################################# -# -# Toplevel Makefile options -# -############################################################# -ifeq ($(BR2_PACKAGE_LUA),y) -TARGETS+=lua +ifeq ($(BR2_HAVE_DEVFILES),y) +define LUA_INSTALL_DEVFILES + $(INSTALL) -m 0644 -D $(@D)/etc/lua.pc \ + $(TARGET_DIR)/usr/lib/pkgconfig/lua.pc + $(INSTALL) $(@D)/src/lua.h $(TARGET_DIR)/usr/include + $(INSTALL) $(@D)/src/luaconf.h $(TARGET_DIR)/usr/include + $(INSTALL) $(@D)/src/lualib.h $(TARGET_DIR)/usr/include + $(INSTALL) $(@D)/src/lauxlib.h $(TARGET_DIR)/usr/include +endef endif + +define LUA_INSTALL_TARGET_CMDS + $(LUA_INSTALL_INTERPRETER) + $(LUA_INSTALL_COMPILER) + $(LUA_INSTALL_LIBRARY) + $(LUA_INSTALL_DEVFILES) +endef + +LUA_INSTALLED_FILES = \ + /usr/include/lua.h \ + /usr/include/luaconf.h \ + /usr/include/lualib.h \ + /usr/include/lauxlib.h \ + /usr/lib/pkgconfig/lua.pc \ + /usr/bin/lua \ + /usr/bin/luac \ + /usr/lib/liblua.a \ + /usr/lib/liblua.so* + +define LUA_UNINSTALL_STAGING_CMDS + for i in $(LUA_INSTALLED_FILES); do \ + rm -f $(STAGING_DIR)$$i; \ + done +endef + +define LUA_UNINSTALL_TARGET_CMDS + for i in $(LUA_INSTALLED_FILES); do \ + rm -f $(TARGET_DIR)$$i; \ + done +endef + +define LUA_CLEAN_CMDS + -$(MAKE) -C $(@D) clean +endef + +$(eval $(call GENTARGETS,package,lua)) |