X-Git-Url: http://git.openwrt.org/?p=openwrt%2Fsvn-archive%2Farchive.git;a=blobdiff_plain;f=lang%2Fruby%2FMakefile;h=dba34b9f9bd80c0d7f53ed106fce925cb959e4c8;hp=aad9ca086317e6e57ad5b634f3defc914962243c;hb=a63e6cbc65621972850c73c3bb5de1bc7a1b6ce9;hpb=415f83826cc4e1eff69a92b1e8a8601181fe1660 diff --git a/lang/ruby/Makefile b/lang/ruby/Makefile index aad9ca0863..dba34b9f9b 100644 --- a/lang/ruby/Makefile +++ b/lang/ruby/Makefile @@ -1,53 +1,488 @@ -# Copyright (C) 2006 OpenWrt.org +# +# Copyright (C) 2006-2010 OpenWrt.org # # This is free software, licensed under the GNU General Public License v2. # See /LICENSE for more information. # -# $Id$ + +# +# To Do: +# - split up encodings +# - allow selection of either native or pure version of a library where supported +# +-> some native libraries are probably only supported if ruby-dl is enabled +# anything else? include $(TOPDIR)/rules.mk PKG_NAME:=ruby -PKG_VERSION:=1.8.4 -PKG_RELEASE:=1 +PKG_VERSION:=1.9.1-p376 +PKG_RELEASE:=3 + +PKG_LIBVER:=1.9 -PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz -PKG_SOURCE_URL:=ftp://ftp.ruby-lang.org/pub/ruby/1.8/ -PKG_MD5SUM:=bd8c2e593e1fa4b01fd98eaf016329bb -PKG_CAT:=zcat +PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2 +PKG_SOURCE_URL:=ftp://ftp.ruby-lang.org/pub/ruby/$(PKG_LIBVER)/ +PKG_MD5SUM:=e019ae9c643c5efe91be49e29781fb94 -PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION) -PKG_INSTALL_DIR:=$(PKG_BUILD_DIR)/ipkg-install +PKG_BUILD_DEPENDS:=ruby/host +PKG_INSTALL:=1 +PKG_BUILD_PARALLEL:=1 +include $(INCLUDE_DIR)/host-build.mk include $(INCLUDE_DIR)/package.mk -define Package/ruby +define Package/ruby/Default + SUBMENU:=Ruby SECTION:=lang CATEGORY:=Languages - TITLE:=Ruby object-oriented scripting language interpreter - DESCRIPTION:=\ - Ruby is the interpreted scripting language for quick and \\\ - easy object-oriented programming. It has many features to \\\ - process text files and to do system management tasks (as in \\\ - perl). It is simple, straight-forward, and extensible. + TITLE:=Ruby scripting language URL:=http://www.ruby-lang.org/ endef -#use Build/Configure/Default +define Package/ruby/Default/description + Ruby is the interpreted scripting language for quick and easy + object-oriented programming. It has many features to process text files + and to do system management tasks (as in perl). It is simple, + straight-forward, and extensible. +endef + +define Package/ruby +$(call Package/ruby/Default) + TITLE+= (interpreter) + DEPENDS:=+libruby +endef + +define Package/ruby/description +$(call Package/ruby/Default/description) +endef + +define Package/libruby +$(call Package/ruby/Default) + SUBMENU:= + SECTION:=libs + CATEGORY:=Libraries + TITLE+= (shared library) + DEPENDS+= +libpthread +endef + +# Ongoing work to break up ruby's standard library into coherent pieces +# with minimal dependencies between them + +define Package/ruby-core +$(call Package/ruby/Default) + TITLE:=Ruby standard libraries + DEPENDS:=ruby +endef + +define Package/ruby-cgi +$(call Package/ruby/Default) + TITLE:=Ruby CGI support toolkit + DEPENDS:=ruby +endef + +define Package/ruby-dl +$(call Package/ruby/Default) + TITLE+= (dynamic linker support) (adds 5MB+) + DEPENDS:=ruby +endef + +define Package/ruby-enc +$(call Package/ruby/Default) + TITLE+= (character re-coding library) (adds 2MB+) + DEPENDS:=ruby +endef + +define Package/ruby-erb +$(call Package/ruby/Default) + TITLE+= (embedded interpreter) + DEPENDS:=ruby +endef + +define Package/ruby-gdbm +$(call Package/ruby/Default) + TITLE:=Ruby support for gdbm + DEPENDS:=ruby +libgdbm +endef + +define Package/ruby-gems +$(call Package/ruby/Default) + TITLE:=Ruby gems packet management + DEPENDS:=ruby +ruby-yaml +ruby-zlib +ruby-openssl +ruby-webrick +ruby-erb +endef + +define Package/ruby-irb +$(call Package/ruby/Default) + TITLE+= (interactive shell) + DEPENDS:=ruby +ruby-core +endef + +define Package/ruby-json +$(call Package/ruby/Default) + TITLE:=Ruby support for JSON + DEPENDS:=ruby +endef + +define Package/ruby-ncurses +$(call Package/ruby/Default) + TITLE:=Ruby support for ncurses + DEPENDS:=ruby +libncurses +endef + +define Package/ruby-nkf +$(call Package/ruby/Default) + TITLE:=Ruby Network Kanji Filter + DEPENDS:=ruby +endef + +define Package/ruby-openssl +$(call Package/ruby/Default) + TITLE:=Ruby support for openssl + DEPENDS:=ruby +libopenssl +endef + +define Package/ruby-rdoc +$(call Package/ruby/Default) + TITLE+= (documentation generator) + DEPENDS:=ruby +endef + +define Package/ruby-rake +$(call Package/ruby/Default) + TITLE+=Ruby Rake (make replacement) + DEPENDS:=ruby +endef + +define Package/ruby-readline +$(call Package/ruby/Default) + TITLE:=Ruby support for readline + DEPENDS:=ruby +libncurses +libreadline +endef + +define Package/ruby-rexml +$(call Package/ruby/Default) + TITLE:=Ruby XML toolkit + DEPENDS:=ruby +endef + +define Package/ruby-rss +$(call Package/ruby/Default) + TITLE:=Ruby RSS toolkit + DEPENDS:=ruby +endef + +define Package/ruby-unit +$(call Package/ruby/Default) + TITLE:=Ruby unit testing toolkit + DEPENDS:=ruby +endef + +define Package/ruby-webrick +$(call Package/ruby/Default) + TITLE:=Ruby Web server toolkit + DEPENDS:=ruby +endef + +define Package/ruby-xmlrpc +$(call Package/ruby/Default) + TITLE:=Ruby XML-RPC toolkit + DEPENDS:=ruby +endef + +define Package/ruby-yaml +$(call Package/ruby/Default) + TITLE:=Ruby YAML toolkit + DEPENDS:=ruby +endef + +define Package/ruby-zlib +$(call Package/ruby/Default) + TITLE:=Ruby support for zlib + DEPENDS:=ruby +zlib +endef + -define Build/Compile - $(MAKE) -C $(PKG_BUILD_DIR) \ - DESTDIR="$(PKG_INSTALL_DIR)" \ - all install +CONFIGURE_ARGS += \ + --enable-shared \ + --enable-static \ + --disable-rpath \ + --enable-ipv6 \ + --enable-wide-getaddrinfo \ + --with-ruby-version=minor \ + --with-iconv-dir=$(STAGING_DIR_ROOT)/../usr/lib/libiconv \ + +TARGET_LDFLAGS += -L$(PKG_BUILD_DIR) + +MAKE_FLAGS += \ + DESTDIR="$(PKG_INSTALL_DIR)" \ + SHELL="/bin/bash" + +define Build/Prepare +$(call Build/Prepare/Default) + ( cd $(PKG_BUILD_DIR) ; \ + autoconf ; \ + ) endef define Package/ruby/install $(INSTALL_DIR) $(1)/usr/bin - $(CP) $(PKG_INSTALL_DIR)/usr/bin/ruby $(1)/usr/bin/ + $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/ruby $(1)/usr/bin/ endef -$(eval $(call BuildPackage,ruby)) +define Package/libruby/install + $(INSTALL_DIR) $(1)/usr/lib + $(CP) $(PKG_INSTALL_DIR)/usr/lib/libruby.so.* $(1)/usr/lib/ +endef + +define Package/ruby-core/install + $(INSTALL_DIR) $(1)/usr/lib + $(CP) $(PKG_INSTALL_DIR)/usr/lib/ruby $(1)/usr/lib/ + rm -rf \ + $(1)/usr/lib/ruby/$(PKG_LIBVER)/*/curses.so \ + \ + $(1)/usr/lib/ruby/$(PKG_LIBVER)/*/gdbm.so \ + \ + $(1)/usr/lib/ruby/$(PKG_LIBVER)/kconv.rb \ + $(1)/usr/lib/ruby/$(PKG_LIBVER)/*/nkf.so \ + \ + $(1)/usr/lib/ruby/$(PKG_LIBVER)/digest \ + $(1)/usr/lib/ruby/$(PKG_LIBVER)/digest.rb \ + $(1)/usr/lib/ruby/$(PKG_LIBVER)/*/digest \ + $(1)/usr/lib/ruby/$(PKG_LIBVER)/*/digest.so \ + $(1)/usr/lib/ruby/$(PKG_LIBVER)/openssl \ + $(1)/usr/lib/ruby/$(PKG_LIBVER)/openssl.rb \ + $(1)/usr/lib/ruby/$(PKG_LIBVER)/*/openssl.so \ + $(1)/usr/lib/ruby/$(PKG_LIBVER)/drb/ssl.rb \ + $(1)/usr/lib/ruby/$(PKG_LIBVER)/net/https.rb \ + $(1)/usr/lib/ruby/$(PKG_LIBVER)/webrick/ssl.rb \ + \ + $(1)/usr/lib/ruby/$(PKG_LIBVER)/*/dl.so \ + \ + $(1)/usr/lib/ruby/$(PKG_LIBVER)/*/enc \ + \ + $(1)/usr/lib/ruby/$(PKG_LIBVER)/*/readline.so \ + $(1)/usr/lib/ruby/$(PKG_LIBVER)/irb/completion.rb \ + $(1)/usr/lib/ruby/$(PKG_LIBVER)/irb/ext/save-history.rb \ + \ + $(1)/usr/lib/ruby/$(PKG_LIBVER)/*/zlib.so \ + \ + $(1)/usr/lib/ruby/$(PKG_LIBVER)/erb.rb \ + \ + $(1)/usr/lib/ruby/$(PKG_LIBVER)/json.rb \ + $(1)/usr/lib/ruby/$(PKG_LIBVER)/json \ + $(1)/usr/lib/ruby/$(PKG_LIBVER)/*/json \ + \ + $(1)/usr/lib/ruby/$(PKG_LIBVER)/irb.rb \ + $(1)/usr/lib/ruby/$(PKG_LIBVER)/irb \ + \ + $(1)/usr/lib/ruby/$(PKG_LIBVER)/rdoc \ + \ + $(1)/usr/lib/ruby/$(PKG_LIBVER)/rake.rb \ + $(1)/usr/lib/ruby/$(PKG_LIBVER)/rake \ + \ + $(1)/usr/lib/ruby/$(PKG_LIBVER)/rubygems.rb \ + $(1)/usr/lib/ruby/$(PKG_LIBVER)/rubygems \ + \ + $(1)/usr/lib/ruby/$(PKG_LIBVER)/cgi.rb \ + $(1)/usr/lib/ruby/$(PKG_LIBVER)/cgi \ + \ + $(1)/usr/lib/ruby/$(PKG_LIBVER)/rexml \ + \ + $(1)/usr/lib/ruby/$(PKG_LIBVER)/rss \ + $(1)/usr/lib/ruby/$(PKG_LIBVER)/rss.rb \ + \ + $(1)/usr/lib/ruby/$(PKG_LIBVER)/test \ + \ + $(1)/usr/lib/ruby/$(PKG_LIBVER)/webrick \ + $(1)/usr/lib/ruby/$(PKG_LIBVER)/webrick.rb \ + \ + $(1)/usr/lib/ruby/$(PKG_LIBVER)/xmlrpc \ + \ + $(1)/usr/lib/ruby/$(PKG_LIBVER)/yaml \ + $(1)/usr/lib/ruby/$(PKG_LIBVER)/yaml.rb \ + $(1)/usr/lib/ruby/$(PKG_LIBVER)/*/syck.so \ + + find $(1) -name '*.h' | xargs rm -f +endef + +define Package/ruby-cgi/install + $(INSTALL_DIR) $(1)/usr/lib/ruby/$(PKG_LIBVER) + $(CP) $(PKG_INSTALL_DIR)/usr/lib/ruby/$(PKG_LIBVER)/cgi $(1)/usr/lib/ruby/$(PKG_LIBVER)/ + $(CP) $(PKG_INSTALL_DIR)/usr/lib/ruby/$(PKG_LIBVER)/cgi.rb $(1)/usr/lib/ruby/$(PKG_LIBVER)/ +endef + +define Package/ruby-dl/install + ( cd $(PKG_INSTALL_DIR); $(TAR) -cf - \ + usr/lib/ruby/$(PKG_LIBVER)/*/dl.so \ + ) | ( cd $(1); $(TAR) -xf - ) +endef + +define Package/ruby-enc/install + ( cd $(PKG_INSTALL_DIR); $(TAR) -cf - \ + usr/lib/ruby/$(PKG_LIBVER)/*/enc \ + ) | ( cd $(1); $(TAR) -xf - ) +endef + +define Package/ruby-erb/install + $(INSTALL_DIR) $(1)/usr/bin + $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/erb $(1)/usr/bin/ + $(INSTALL_DIR) $(1)/usr/lib/ruby/$(PKG_LIBVER)/ + $(CP) $(PKG_INSTALL_DIR)/usr/lib/ruby/$(PKG_LIBVER)/erb.rb $(1)/usr/lib/ruby/$(PKG_LIBVER)/ +endef + +define Package/ruby-gdbm/install + ( cd $(PKG_INSTALL_DIR); $(TAR) -cf - \ + usr/lib/ruby/$(PKG_LIBVER)/*/gdbm.so \ + ) | ( cd $(1); $(TAR) -xf - ) +endef + +define Package/ruby-gems/install + $(INSTALL_DIR) $(1)/usr/bin + $(CP) $(PKG_INSTALL_DIR)/usr/bin/gem $(1)/usr/bin/ + $(INSTALL_DIR) $(1)/usr/lib/ruby/$(PKG_LIBVER) + $(CP) $(PKG_INSTALL_DIR)/usr/lib/ruby/$(PKG_LIBVER)/rubygems.rb $(1)/usr/lib/ruby/$(PKG_LIBVER)/ + $(CP) $(PKG_INSTALL_DIR)/usr/lib/ruby/$(PKG_LIBVER)/rubygems $(1)/usr/lib/ruby/$(PKG_LIBVER)/ +endef + +define Package/ruby-irb/install + $(INSTALL_DIR) $(1)/usr/bin + $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/irb $(1)/usr/bin/ + $(INSTALL_DIR) $(1)/usr/lib/ruby/$(PKG_LIBVER) + $(CP) $(PKG_INSTALL_DIR)/usr/lib/ruby/$(PKG_LIBVER)/irb $(1)/usr/lib/ruby/$(PKG_LIBVER)/ + $(CP) $(PKG_INSTALL_DIR)/usr/lib/ruby/$(PKG_LIBVER)/irb.rb $(1)/usr/lib/ruby/$(PKG_LIBVER)/ +endef + +define Package/ruby-json/install + ( cd $(PKG_INSTALL_DIR); $(TAR) -cf - \ + usr/lib/ruby/$(PKG_LIBVER)/json.rb \ + usr/lib/ruby/$(PKG_LIBVER)/json \ + usr/lib/ruby/$(PKG_LIBVER)/*/json \ + ) | ( cd $(1); $(TAR) -xf - ) +endef + +define Package/ruby-ncurses/install + ( cd $(PKG_INSTALL_DIR); $(TAR) -cf - \ + usr/lib/ruby/$(PKG_LIBVER)/*/curses.so \ + ) | ( cd $(1); $(TAR) -xf - ) +endef + +define Package/ruby-nkf/install + ( cd $(PKG_INSTALL_DIR); $(TAR) -cf - \ + usr/lib/ruby/$(PKG_LIBVER)/kconv.rb \ + usr/lib/ruby/$(PKG_LIBVER)/*/nkf.so \ + ) | ( cd $(1); $(TAR) -xf - ) +endef -$(eval $(call RequireCommand,/usr/bin/ruby, \ - Ruby requires ruby installed on the host-system. \ -)) +define Package/ruby-openssl/install + ( cd $(PKG_INSTALL_DIR); $(TAR) -cf - \ + usr/lib/ruby/$(PKG_LIBVER)/digest \ + usr/lib/ruby/$(PKG_LIBVER)/digest.rb \ + usr/lib/ruby/$(PKG_LIBVER)/*/digest.so \ + usr/lib/ruby/$(PKG_LIBVER)/*/digest/*.so \ + usr/lib/ruby/$(PKG_LIBVER)/openssl \ + usr/lib/ruby/$(PKG_LIBVER)/openssl.rb \ + usr/lib/ruby/$(PKG_LIBVER)/*/openssl.so \ + usr/lib/ruby/$(PKG_LIBVER)/drb/ssl.rb \ + usr/lib/ruby/$(PKG_LIBVER)/net/https.rb \ + usr/lib/ruby/$(PKG_LIBVER)/webrick/ssl.rb \ + ) | ( cd $(1); $(TAR) -xf - ) +endef + +define Package/ruby-rdoc/install + $(INSTALL_DIR) $(1)/usr/bin + $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/rdoc $(1)/usr/bin/ + $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/ri $(1)/usr/bin/ + $(INSTALL_DIR) $(1)/usr/lib/ruby/$(PKG_LIBVER) + $(CP) $(PKG_INSTALL_DIR)/usr/lib/ruby/$(PKG_LIBVER)/rdoc $(1)/usr/lib/ruby/$(PKG_LIBVER)/ +endef + +define Package/ruby-rake/install + $(INSTALL_DIR) $(1)/usr/bin + $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/rake $(1)/usr/bin/ + $(INSTALL_DIR) $(1)/usr/lib/ruby/$(PKG_LIBVER) + $(CP) $(PKG_INSTALL_DIR)/usr/lib/ruby/$(PKG_LIBVER)/rake.rb $(1)/usr/lib/ruby/$(PKG_LIBVER)/ + $(CP) $(PKG_INSTALL_DIR)/usr/lib/ruby/$(PKG_LIBVER)/rake $(1)/usr/lib/ruby/$(PKG_LIBVER)/ +endef + +define Package/ruby-readline/install + ( cd $(PKG_INSTALL_DIR); $(TAR) -cf - \ + usr/lib/ruby/$(PKG_LIBVER)/*/readline.so \ + usr/lib/ruby/$(PKG_LIBVER)/irb/completion.rb \ + usr/lib/ruby/$(PKG_LIBVER)/irb/ext/save-history.rb \ + ) | ( cd $(1); $(TAR) -xf - ) +endef + +define Package/ruby-rexml/install + $(INSTALL_DIR) $(1)/usr/lib/ruby/$(PKG_LIBVER) + $(CP) $(PKG_INSTALL_DIR)/usr/lib/ruby/$(PKG_LIBVER)/rexml $(1)/usr/lib/ruby/$(PKG_LIBVER)/ +endef + + +define Package/ruby-rss/install + $(INSTALL_DIR) $(1)/usr/lib/ruby/$(PKG_LIBVER) + $(CP) $(PKG_INSTALL_DIR)/usr/lib/ruby/$(PKG_LIBVER)/rss $(1)/usr/lib/ruby/$(PKG_LIBVER)/ + $(CP) $(PKG_INSTALL_DIR)/usr/lib/ruby/$(PKG_LIBVER)/rss.rb $(1)/usr/lib/ruby/$(PKG_LIBVER)/ +endef + +define Package/ruby-unit/install + $(INSTALL_DIR) $(1)/usr/bin + $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/testrb $(1)/usr/bin/ + $(INSTALL_DIR) $(1)/usr/lib/ruby/$(PKG_LIBVER) + $(CP) $(PKG_INSTALL_DIR)/usr/lib/ruby/$(PKG_LIBVER)/test $(1)/usr/lib/ruby/$(PKG_LIBVER)/ +endef + +define Package/ruby-webrick/install + $(INSTALL_DIR) $(1)/usr/lib/ruby/$(PKG_LIBVER) + $(CP) $(PKG_INSTALL_DIR)/usr/lib/ruby/$(PKG_LIBVER)/webrick $(1)/usr/lib/ruby/$(PKG_LIBVER)/ + $(CP) $(PKG_INSTALL_DIR)/usr/lib/ruby/$(PKG_LIBVER)/webrick.rb $(1)/usr/lib/ruby/$(PKG_LIBVER)/ +endef + +define Package/ruby-xmlrpc/install + $(INSTALL_DIR) $(1)/usr/lib/ruby/$(PKG_LIBVER) + $(CP) $(PKG_INSTALL_DIR)/usr/lib/ruby/$(PKG_LIBVER)/xmlrpc $(1)/usr/lib/ruby/$(PKG_LIBVER)/ +endef + +define Package/ruby-yaml/install + ( cd $(PKG_INSTALL_DIR); $(TAR) -cf - \ + usr/lib/ruby/$(PKG_LIBVER)/yaml \ + usr/lib/ruby/$(PKG_LIBVER)/yaml.rb \ + usr/lib/ruby/$(PKG_LIBVER)/*/syck.so \ + ) | ( cd $(1); $(TAR) -xf - ) +endef + +define Package/ruby-zlib/install + ( cd $(PKG_INSTALL_DIR); $(TAR) -cf - \ + usr/lib/ruby/$(PKG_LIBVER)/*/zlib.so \ + ) | ( cd $(1); $(TAR) -xf - ) +endef + +define Build/InstallDev + ( cd $(PKG_INSTALL_DIR); $(TAR) -cf - \ + . \ + ) | ( cd $(1); $(TAR) -xf - ) +endef + +$(eval $(call BuildPackage,ruby)) +$(eval $(call BuildPackage,libruby)) +$(eval $(call BuildPackage,ruby-core)) +$(eval $(call BuildPackage,ruby-cgi)) +$(eval $(call BuildPackage,ruby-dl)) +$(eval $(call BuildPackage,ruby-enc)) +$(eval $(call BuildPackage,ruby-erb)) +$(eval $(call BuildPackage,ruby-gdbm)) +$(eval $(call BuildPackage,ruby-gems)) +$(eval $(call BuildPackage,ruby-json)) +$(eval $(call BuildPackage,ruby-irb)) +$(eval $(call BuildPackage,ruby-ncurses)) +$(eval $(call BuildPackage,ruby-nkf)) +$(eval $(call BuildPackage,ruby-openssl)) +$(eval $(call BuildPackage,ruby-rake)) +$(eval $(call BuildPackage,ruby-rdoc)) +$(eval $(call BuildPackage,ruby-readline)) +$(eval $(call BuildPackage,ruby-rexml)) +$(eval $(call BuildPackage,ruby-rss)) +$(eval $(call BuildPackage,ruby-unit)) +$(eval $(call BuildPackage,ruby-webrick)) +$(eval $(call BuildPackage,ruby-xmlrpc)) +$(eval $(call BuildPackage,ruby-yaml)) +$(eval $(call BuildPackage,ruby-zlib)) +$(eval $(call HostBuild))