From d2e3a23fd3481f93a45c8668bed964dfad15a536 Mon Sep 17 00:00:00 2001 From: Nicolas Thill Date: Mon, 24 Jul 2006 07:13:53 +0000 Subject: [PATCH] add a lang subdir, port lua to buildroot-ng SVN-Revision: 4249 --- lang/lua/Makefile | 153 ++++++++++++++++++++++++ lang/lua/patches/lua-5.0.2-config.patch | 31 +++++ lang/lua/patches/lua-5.0.2-soname.patch | 14 +++ 3 files changed, 198 insertions(+) create mode 100644 lang/lua/Makefile create mode 100644 lang/lua/patches/lua-5.0.2-config.patch create mode 100644 lang/lua/patches/lua-5.0.2-soname.patch diff --git a/lang/lua/Makefile b/lang/lua/Makefile new file mode 100644 index 000000000..f62b40a94 --- /dev/null +++ b/lang/lua/Makefile @@ -0,0 +1,153 @@ +# +# Copyright (C) 2006 OpenWrt.org +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# +# $Id$ + +include $(TOPDIR)/rules.mk + +PKG_NAME:=lua +PKG_VERSION:=5.0.2 +PKG_RELEASE:=1 + +PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION) +PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz +PKG_SOURCE_URL:=http://www.lua.org/ftp/ \ + http://ftp.gwdg.de/pub/languages/lua/ \ + http://mirrors.dotsrc.org/lua/ \ + http://www.tecgraf.puc-rio.br/lua/ftp/ +PKG_MD5SUM:= dea74646b7e5c621fef7174df83c34b1 +PKG_CAT:=zcat + +PKG_INSTALL_DIR:=$(PKG_BUILD_DIR)/ipkg-install + +include $(INCLUDE_DIR)/package.mk + +define Package/liblua + SECTION:=libs + CATEGORY:=Libraries + TITLE:=LUA programming language (libraries) + DESCRIPTION:=LUA programming language (libraries).\\\ + Lua is a powerful light-weight programming language designed for extending \\\ + applications. Lua is also frequently used as a general-purpose, stand-alone \\\ + language. Lua is free software.\\\ + \\\ + This package contains the LUA shared libraries, needed by other programs. + URL:=http://www.lua.org/ +endef + +define Package/lua + SECTION:=utils + CATEGORY:=Utilities + DEPENDS:=+liblua + TITLE:=LUA programming language (interpreter) + DESCRIPTION:=LUA programming language (interpreter).\\\ + Lua is a powerful light-weight programming language designed for extending \\\ + applications. Lua is also frequently used as a general-purpose, stand-alone \\\ + language. Lua is free software.\\\ + \\\ + This package contains the LUA language interpreter. + URL:=http://www.lua.org/ +endef + +define Package/lua-examples + SECTION:=utils + CATEGORY:=Utilities + DEPENDS:=lua + TITLE:=LUA programming language (examples) + DESCRIPTION:=LUA programming language (examples).\\\ + Lua is a powerful light-weight programming language designed for extending \\\ + applications. Lua is also frequently used as a general-purpose, stand-alone \\\ + language. Lua is free software.\\\ + \\\ + This package contains LUA language examples. + URL:=http://www.lua.org/ +endef + +define Package/luac + SECTION:=utils + CATEGORY:=Utilities + DEPENDS:=+liblua + TITLE:=LUA programming language (compiler) + DESCRIPTION:=LUA programming language (compiler).\\\ + Lua is a powerful light-weight programming language designed for extending \\\ + applications. Lua is also frequently used as a general-purpose, stand-alone \\\ + language. Lua is free software.\\\ + \\\ + This package contains the LUA language compiler. + URL:=http://www.lua.org/ +endef + +define Build/Configure +endef + +define Build/Compile + $(MAKE) -C $(PKG_BUILD_DIR) \ + CC="$(TARGET_CROSS)gcc" \ + LD="$(TARGET_CROSS)ld" \ + AR="$(TARGET_CROSS)ar rcu" \ + RANLIB="$(TARGET_CROSS)ranlib" \ + INSTALL_ROOT=/usr \ + MYCFLAGS="-I$(STAGING_DIR)/usr/include $(TARGET_CFLAGS)" \ + MYLDFLAGS="-L$(STAGING_DIR)/usr/lib" \ + all so + # remove statically linked binaries, so that they will get linked against shlib this time + rm -f $(PKG_BUILD_DIR)/bin/lua{,c} + $(MAKE) -C $(PKG_BUILD_DIR) \ + CC="$(TARGET_CROSS)gcc" \ + LD="$(TARGET_CROSS)ld" \ + AR="$(TARGET_CROSS)ar rcu" \ + RANLIB="$(TARGET_CROSS)ranlib" \ + INSTALL_ROOT=/usr \ + MYCFLAGS="-I$(STAGING_DIR)/usr/include $(TARGET_CFLAGS)" \ + MYLDFLAGS="-L$(STAGING_DIR)/usr/lib" \ + all + rm -rf $(PKG_INSTALL_DIR) + mkdir -p $(PKG_INSTALL_DIR) + $(MAKE) -C $(PKG_BUILD_DIR) \ + INSTALL_ROOT="$(PKG_INSTALL_DIR)/usr" \ + install soinstall +endef + +define Package/liblua/install + install -d -m0755 $(1)/usr/lib + $(CP) $(PKG_INSTALL_DIR)/usr/lib/liblua{,lib}.so.* $(1)/usr/lib/ +endef + +define Package/lua/install + install -d -m0755 $(1)/usr/bin + $(CP) $(PKG_INSTALL_DIR)/usr/bin/lua $(1)/usr/bin/ +endef + +define Package/luac/install + install -d -m0755 $(1)/usr/bin + $(CP) $(PKG_INSTALL_DIR)/usr/bin/luac $(1)/usr/bin/ +endef + +define Package/lua-examples/install + install -d -m0755 $(1)/usr/share/lua/examples + install -m0644 $(PKG_BUILD_DIR)/test/*.lua \ + $(1)/usr/share/lua/examples/ +endef + +define Build/InstallDev + mkdir -p $(STAGING_DIR)/usr/include + $(CP) $(PKG_INSTALL_DIR)/usr/include/lua{,lib}.h $(STAGING_DIR)/usr/include/ + $(CP) $(PKG_INSTALL_DIR)/usr/include/lauxlib.h $(STAGING_DIR)/usr/include/ + mkdir -p $(STAGING_DIR)/usr/lib + $(CP) $(PKG_INSTALL_DIR)/usr/lib/liblua{,lib}.{a,so*} $(STAGING_DIR)/usr/lib/ +endef + +define Build/UninstallDev + rm -rf \ + $(STAGING_DIR)/usr/include/lua{,lib}.h \ + $(STAGING_DIR)/usr/include/lauxlib.h \ + $(STAGING_DIR)/usr/lib/liblua{,lib}.{a,so*} +endef + +$(eval $(call BuildPackage,liblua)) +$(eval $(call BuildPackage,lua)) +$(eval $(call BuildPackage,lua-examples)) +$(eval $(call BuildPackage,luac)) diff --git a/lang/lua/patches/lua-5.0.2-config.patch b/lang/lua/patches/lua-5.0.2-config.patch new file mode 100644 index 000000000..fa5b0e765 --- /dev/null +++ b/lang/lua/patches/lua-5.0.2-config.patch @@ -0,0 +1,31 @@ +diff -ruN lua-5.0.2-orig/config lua-5.0.2-1/config +--- lua-5.0.2-orig/config 2003-04-11 16:00:41.000000000 +0200 ++++ lua-5.0.2-1/config 2005-05-25 11:23:35.000000000 +0200 +@@ -25,15 +25,15 @@ + # interface (e.g., Linux, Solaris, IRIX, BSD, AIX, HPUX, and probably others), + # uncomment the next two lines. + # +-#LOADLIB= -DUSE_DLOPEN=1 +-#DLLIB= -ldl ++LOADLIB= -DUSE_DLOPEN=1 ++DLLIB= -ldl + # + # In Linux with gcc, you should also uncomment the next definition for + # MYLDFLAGS, which passes -E (= -export-dynamic) to the linker. This option + # allows dynamic libraries to link back to the `lua' program, so that they do + # not need the Lua libraries. (Other systems may have an equivalent facility.) + # +-#MYLDFLAGS= -Wl,-E ++MYLDFLAGS= -Wl,-E + # + # On Windows systems. support for dynamic loading is enabled by default. + # To disable this support, uncomment the next line. +@@ -142,7 +142,7 @@ + + # This should work in all Unix systems, but you may want to add options. + # +-STRIP= strip ++STRIP= /bin/true + + # ------------------------------------------------------------------ install + diff --git a/lang/lua/patches/lua-5.0.2-soname.patch b/lang/lua/patches/lua-5.0.2-soname.patch new file mode 100644 index 000000000..3364ff6ad --- /dev/null +++ b/lang/lua/patches/lua-5.0.2-soname.patch @@ -0,0 +1,14 @@ +diff -ruN lua-5.0.2-orig/Makefile lua-5.0.2-1/Makefile +--- lua-5.0.2-orig/Makefile 2004-03-12 02:50:55.000000000 +0100 ++++ lua-5.0.2-1/Makefile 2005-05-25 11:41:44.000000000 +0200 +@@ -38,8 +38,8 @@ + + # shared libraries (for Linux) + so: +- ld -o lib/liblua.so.$V -shared src/*.o +- ld -o lib/liblualib.so.$V -shared src/lib/*.o ++ $(LD) -o lib/liblua.so.$V -shared -soname="liblua.so.$V" src/*.o ++ $(LD) -o lib/liblualib.so.$V -shared -soname="liblualib.so.$V" src/lib/*.o + cd lib; ln -fs liblua.so.$V liblua.so; ln -fs liblualib.so.$V liblualib.so + + # binaries using shared libraries -- 2.30.2