Build an openssl capabable python and install some headers and libs (#2225)
[openwrt/svn-archive/archive.git] / lang / python / Makefile
index 638af2c6fbcc9409649b4cc00f947ae9e1d28c7f..f01f54011a23f5c41be02a47c37fb98c4795a2ac 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_VERSION:=2.5.1
 PKG_RELEASE:=1
 
 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/$(PKG_VERSION)/
+PKG_MD5SUM:=70084ffa561660f07de466c2c8c4842d
 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 \
+       _curses _curses_panel _tkinter nis 
+
 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 +libopenssl
+  TITLE:=Python 2.5 programming language
+  URL:=http://www.python.org/
 endef
 
 define Package/python/description
@@ -34,48 +46,78 @@ 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
        $(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/
+       $(CP) $(PKG_BUILD_DIR)/libpython2.5.a $(STAGING_DIR)/usr/lib/python2.5
+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/include/python2.5
+       $(CP) $(PKG_INSTALL_DIR)/usr/include/python2.5/Python.h $(1)/usr/include/python2.5/
+       $(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/sqlite3/test \
+               $(1)/usr/lib/python2.5/ctypes/test \
+               $(1)/usr/lib/python2.5/test
+
 endef
 
 $(eval $(call BuildPackage,python))