add a lang subdir, port lua to buildroot-ng
authorNicolas Thill <nico@openwrt.org>
Mon, 24 Jul 2006 07:13:53 +0000 (07:13 +0000)
committerNicolas Thill <nico@openwrt.org>
Mon, 24 Jul 2006 07:13:53 +0000 (07:13 +0000)
SVN-Revision: 4249

lang/lua/Makefile [new file with mode: 0644]
lang/lua/patches/lua-5.0.2-config.patch [new file with mode: 0644]
lang/lua/patches/lua-5.0.2-soname.patch [new file with mode: 0644]

diff --git a/lang/lua/Makefile b/lang/lua/Makefile
new file mode 100644 (file)
index 0000000..f62b40a
--- /dev/null
@@ -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 (file)
index 0000000..fa5b0e7
--- /dev/null
@@ -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 (file)
index 0000000..3364ff6
--- /dev/null
@@ -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