|
@@ -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))
|