add readline support for python
[openwrt/svn-archive/archive.git] / lang / python / Makefile
index 638af2c6fbcc9409649b4cc00f947ae9e1d28c7f..ff559a31e9f17cfc2685d370a25fbee2c9dd870c 100644 (file)
@@ -1,24 +1,36 @@
+#
+# 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:=python
-PKG_VERSION:=2.4.3
-PKG_RELEASE:=1
+PKG_VERSION:=2.5
+PKG_RELEASE:=4
 
 PKG_SOURCE:=Python-$(PKG_VERSION).tar.bz2
-PKG_SOURCE_URL:=http://www.python.org/ftp/python/2.4.3/
-PKG_MD5SUM:=141c683447d5e76be1d2bd4829574f02
+PKG_SOURCE_URL:=http://www.python.org/ftp/python/2.5/
+PKG_MD5SUM:=ddb7401e711354ca83b7842b733825a3
 PKG_CAT:=bzcat
 
 PKG_BUILD_DIR:=$(BUILD_DIR)/Python-$(PKG_VERSION)
+PKG_INSTALL_DIR:=$(PKG_BUILD_DIR)/ipkg-install
 
 include $(INCLUDE_DIR)/package.mk
 
+PY_DISABLED_MODULES=pyexpat dbm gdbm bsddb \
+       _curses _curses_panel _tkinter nis zipfile
+
 define Package/python
-       SECTION:=lang
-       CATEGORY:=Languages
-       TITLE:=Python programming language
-       URL:=http://www.python.org
-       DEPENDS:=+uclibcxx
+  SECTION:=lang
+  CATEGORY:=Languages
+  DEPENDS:=+uclibcxx +libpthread +libreadline +libncurses
+  TITLE:=Python 2.5 programming language
+  URL:=http://www.python.org/
 endef
 
 define Package/python/description
@@ -34,48 +46,74 @@ endef
 
 define Build/Configure
        (cd $(PKG_BUILD_DIR); \
+               rm -rf config.cache; \
                CONFIG_SITE= \
-               ./configure --with-threads=no; \
+               ./configure --with-threads=no --with-cxx=no; \
                $(MAKE) python Parser/pgen; \
                mv python hostpython; \
                mv Parser/pgen Parser/hostpgen; \
                make distclean; \
-               echo "import sys" > $(PKG_BUILD_DIR)/setup.py.new; \
-               echo "sys.path.append('$(PKG_BUILD_DIR)/Lib')" >> $(PKG_BUILD_DIR)/setup.py.new; \
-               cat $(PKG_BUILD_DIR)/setup.py.new $(PKG_BUILD_DIR)/setup.py > $(PKG_BUILD_DIR)/setup.py.foo; \
-               mv $(PKG_BUILD_DIR)/setup.py.foo $(PKG_BUILD_DIR)/setup.py; \
-               rm $(PKG_BUILD_DIR)/setup.py.new; \
        );
        $(call Build/Configure/Default, \
                --disable-shared \
+               --with-cxx=no \
                --sysconfdir=/etc \
-               --with-threads=no, \
+               --with-threads \
+               --disable-ipv6 \
                HOSTPYTHON=./hostpython \
                HOSTPGEN=./Parser/hostpgen \
        )
 endef
 
-MAKE_OPTS\
+MAKE_OPTS:=\
                $(TARGET_CONFIGURE_OPTS) \
-               CFLAGS="$(TARGET_CFLAGS)" \
-               LD_LIBRARY_PATH="$(STAGING_DIR)/lib:$(LD_LIBRARY_PATH)" \
+               PYTHON_MODULES_INCLUDE=$(STAGING_DIR)/include \
+               PYTHON_MODULES_LIB=$(STAGING_DIR)/lib \
+               PYTHON_DISABLE_MODULES="$(PY_DISABLED_MODULES)" \
+               CFLAGS="$(TARGET_CFLAGS) -fno-inline" \
+               LDFLAGS="$(TARGET_LDFLAGS) -lncurses" \
                LD="$(TARGET_CC)" \
                HOSTPYTHON=./hostpython \
                HOSTPGEN=./Parser/hostpgen
 
 define Build/Compile
+       export PYTHON_DISABLE_SSL=1
        $(MAKE) -C $(PKG_BUILD_DIR) \
-               DESTDIR="$(PKG_INSTALL_DIR)" \
                $(MAKE_OPTS) \
-               all
+               DESTDIR="$(PKG_INSTALL_DIR)" \
+               EXTRA_CFLAGS="$(TARGET_CFLAGS) -fno-inline" \
+               CROSS_COMPILE=yes \
+               all install
+endef
+
+define Build/InstallDev
+       mkdir -p $(STAGING_DIR)/usr/bin
+       $(CP) $(PKG_BUILD_DIR)/hostpython $(STAGING_DIR)/usr/bin/
+       mkdir -p $(STAGING_DIR)/usr/include
+       $(CP) $(PKG_INSTALL_DIR)/usr/include/python2.5 $(STAGING_DIR)/usr/include/
+       mkdir -p $(STAGING_DIR)/usr/lib
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/python2.5 $(STAGING_DIR)/usr/lib/
+endef
+
+define Build/UninstallDev
+       rm -rf \
+               $(STAGING_DIR)/usr/{include,lib}/python2.5
 endef
 
 define Package/python/install
-       mkdir -p $(1)/lib
-       $(MAKE) -C $(PKG_BUILD_DIR) \
-               $(MAKE_OPTS) \
-               DESTDIR="$(1)" \
-               install
+       $(INSTALL_DIR) $(1)/usr/bin
+       $(CP) $(PKG_INSTALL_DIR)/usr/bin/python2.5 $(1)/usr/bin/
+       $(CP) $(PKG_INSTALL_DIR)/usr/bin/python $(1)/usr/bin/
+       $(INSTALL_DIR) $(1)/usr/lib
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/python2.5 $(1)/usr/lib/
+       rm -rf \
+               $(1)/usr/lib/python2.5/bsddb/test \
+               $(1)/usr/lib/python2.5/distutils/tests \
+               $(1)/usr/lib/python2.5/email/test \
+               $(1)/usr/lib/python2.5/idlelib \
+               $(1)/usr/lib/python2.5/lib-tk \
+               $(1)/usr/lib/python2.5/test \
+
 endef
 
 $(eval $(call BuildPackage,python))