Changeset 9207


Ignore:
Timestamp:
2007-10-09T02:54:48+02:00 (10 years ago)
Author:
nico
Message:

[packages] python: add a minimal python-mini package, remove readline support since it needs ncurses, fix optimization flags for extension building, add -expat and -openssl subpackages, cleanup

Location:
packages/lang/python
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • packages/lang/python/Makefile

    r9173 r9207  
    11# 
    2 # Copyright (C) 2006 OpenWrt.org 
     2# Copyright (C) 2006-2007 OpenWrt.org 
    33# 
    44# This is free software, licensed under the GNU General Public License v2. 
     
    1616PKG_SOURCE_URL:=http://www.python.org/ftp/python/$(PKG_VERSION)/ 
    1717PKG_MD5SUM:=70084ffa561660f07de466c2c8c4842d 
    18 PKG_CAT:=bzcat 
    1918 
    2019PKG_BUILD_DIR:=$(BUILD_DIR)/Python-$(PKG_VERSION) 
    21 PKG_INSTALL_DIR:=$(PKG_BUILD_DIR)/ipkg-install 
     20 
     21PKG_BUILD_DEPENDS:=libexpat libopenssl zlib 
    2222 
    2323include $(INCLUDE_DIR)/package.mk 
    24  
    25 PY_DISABLED_MODULES=\ 
    26         _curses _curses_panel _tkinter nis  
    27  
    28 define Package/python 
     24include ./python-package.mk 
     25 
     26define PyPackage/python/Default 
    2927  SUBMENU:=Python 
    3028  SECTION:=lang 
    3129  CATEGORY:=Languages 
    32   DEPENDS:=+libexpat +libopenssl +libpthread +libreadline +uclibcxx 
    3330  TITLE:=Python 2.5 programming language 
    3431  URL:=http://www.python.org/ 
    3532endef 
    3633 
    37 define Package/python/description 
    38 Python programming language 
    39         Python is a dynamic object-oriented programming language that  
    40         can be used for many kinds of software development. It offers  
    41         strong support for integration with other languages and tools,  
    42         comes with extensive standard libraries, and can be learned in a  
    43         few days. Many Python programmers report substantial productivity  
    44         gains and feel the language encourages the development of higher  
    45         quality, more maintainable code. 
    46 endef 
    47  
    48 define Build/Configure 
    49         (cd $(PKG_BUILD_DIR); \ 
    50                 rm -rf config.cache; \ 
    51                 CONFIG_SITE= \ 
    52                 ./configure --with-threads=no --with-cxx=no; \ 
    53                 $(MAKE) python Parser/pgen; \ 
    54                 mv python hostpython; \ 
    55                 mv Parser/pgen Parser/hostpgen; \ 
    56                 make distclean; \ 
    57         ); 
    58         $(call Build/Configure/Default, \ 
    59                 --disable-shared \ 
    60                 --with-cxx=no \ 
    61                 --sysconfdir=/etc \ 
    62                 --with-threads \ 
    63                 --disable-ipv6 \ 
    64                 HOSTPYTHON=./hostpython \ 
    65                 HOSTPGEN=./Parser/hostpgen \ 
    66         ) 
    67 endef 
     34define PyPackage/python/Default/description 
     35 Python is a dynamic object-oriented programming language that can be used  
     36 for many kinds of software development. It offers strong support for  
     37 integration with other languages and tools, comes with extensive standard  
     38 libraries, and can be learned in a few days. Many Python programmers  
     39 report substantial productivity gains and feel the language encourages  
     40 the development of higher quality, more maintainable code. 
     41endef 
     42 
     43define PyPackage/python 
     44$(call PyPackage/python/Default) 
     45 TITLE+= (full) 
     46 DEPENDS:= +libpthread +zlib 
     47 PROVIDES:=python-core 
     48endef 
     49 
     50define PyPackage/python/description 
     51$(call PyPackage/python/Default/description) 
     52 . 
     53 This package contains the full Python install. 
     54endef 
     55 
     56define PyPackage/python-mini 
     57$(call PyPackage/python/Default) 
     58 TITLE+= (minimal) 
     59 DEPENDS:= +libpthread +zlib 
     60 PROVIDES:=python-core 
     61endef 
     62 
     63define PyPackage/python-mini/description 
     64$(call PyPackage/python/Default/description) 
     65 . 
     66 This package contains only a minimal Python install. 
     67endef 
     68 
     69define PyPackage/python-doc 
     70$(call PyPackage/python/Default) 
     71 TITLE:=Python interactive documentation 
     72endef 
     73 
     74define PyPackage/python-expat 
     75$(call PyPackage/python/Default) 
     76 TITLE:=Python support for expat 
     77 DEPENDS+= +libexpat 
     78endef 
     79 
     80define PyPackage/python-openssl 
     81$(call PyPackage/python/Default) 
     82 TITLE:=Python support for OpenSSL 
     83 DEPENDS+= +libopenssl 
     84endef 
     85 
     86 
     87PY_DISABLED_MODULES:= \ 
     88        readline _curses _curses_panel _tkinter nis 
    6889 
    6990MAKE_OPTS:=\ 
    7091        $(TARGET_CONFIGURE_OPTS) \ 
    71         PYTHON_MODULES_INCLUDE=$(STAGING_DIR)/include \ 
    72         PYTHON_MODULES_LIB=$(STAGING_DIR)/lib \ 
    7392        PYTHON_DISABLE_MODULES="$(PY_DISABLED_MODULES)" \ 
     93        PYTHON_MODULES_INCLUDE="$(STAGING_DIR)/usr/include" \ 
     94        PYTHON_MODULES_LIB="$(STAGING_DIR)/usr/lib" \ 
     95        CROSS_COMPILE=yes \ 
    7496        CFLAGS="$(TARGET_CFLAGS) -fno-inline" \ 
    7597        LDFLAGS="$(TARGET_LDFLAGS)" \ 
    7698        LD="$(TARGET_CC)" \ 
    7799        HOSTPYTHON=./hostpython \ 
    78         HOSTPGEN=./Parser/hostpgen 
     100        HOSTPGEN=./hostpgen 
     101 
     102define Build/Configure 
     103endef 
    79104 
    80105define Build/Compile 
     106        -$(MAKE) -C $(PKG_BUILD_DIR) distclean 
     107        (cd $(PKG_BUILD_DIR); \ 
     108                rm -rf config.cache; \ 
     109                CONFIG_SITE= \ 
     110                OPT="$(HOST_CFLAGS)" \ 
     111                ./configure --without-cxx-main --without-threads; \ 
     112        ); 
     113        $(MAKE) -C $(PKG_BUILD_DIR) python Parser/pgen 
     114        (cd $(PKG_BUILD_DIR); \ 
     115                mv python ./hostpython; \ 
     116                mv Parser/pgen ./hostpgen; \ 
     117        ); 
     118        $(MAKE) -C $(PKG_BUILD_DIR) distclean 
     119        #echo "readline readline.c -lreadline -lncurses" >> $(PKG_BUILD_DIR)/Modules/Setup.local 
     120        $(call Build/Configure/Default, \ 
     121                --sysconfdir=/etc \ 
     122                --disable-shared \ 
     123                --disable-ipv6 \ 
     124                --without-cxx-main \ 
     125                --with-threads \ 
     126                HOSTPYTHON=./hostpython \ 
     127                HOSTPGEN=./hostpgen \ 
     128                OPT="$(TARGET_CFLAGS)" \ 
     129        ) 
    81130        $(MAKE) -C $(PKG_BUILD_DIR) \ 
    82131                $(MAKE_OPTS) \ 
    83132                DESTDIR="$(PKG_INSTALL_DIR)" \ 
    84                 EXTRA_CFLAGS="$(TARGET_CFLAGS) -fno-inline" \ 
    85                 CROSS_COMPILE=yes \ 
    86133                all install 
    87134endef 
     
    90137        mkdir -p $(1)/usr/bin 
    91138        $(CP) $(PKG_BUILD_DIR)/hostpython $(1)/usr/bin/ 
    92         mkdir -p $(1)/usr/include 
    93         $(CP) $(PKG_INSTALL_DIR)/usr/include/python2.5 $(1)/usr/include/ 
    94         mkdir -p $(1)/usr/lib 
    95         $(CP) $(PKG_INSTALL_DIR)/usr/lib/python2.5 $(1)/usr/lib/ 
    96         $(CP) $(PKG_BUILD_DIR)/libpython2.5.a $(1)/usr/lib/python2.5/ 
     139        ln -sf hostpython $(1)/usr/bin/python 
     140        mkdir -p $(STAGING_DIR)/usr/include 
     141        $(CP)   $(PKG_INSTALL_DIR)/usr/include/python$(PYTHON_VERSION) \ 
     142                $(1)/usr/include/ 
     143        mkdir -p $(STAGING_DIR)/usr/lib 
     144        $(CP)   $(PKG_INSTALL_DIR)/usr/lib/python$(PYTHON_VERSION) \ 
     145                $(1)/usr/lib/ 
     146        $(CP)   $(PKG_BUILD_DIR)/libpython$(PYTHON_VERSION).a \ 
     147                $(1)/usr/lib/ 
    97148endef 
    98149 
    99150define Build/UninstallDev 
    100151        rm -rf  $(STAGING_DIR)/usr/bin/hostpython \ 
    101                 $(STAGING_DIR)/usr/include/python2.5 \ 
    102                 $(STAGING_DIR)/usr/lib/python2.5 
    103 endef 
    104  
    105 define Package/python/install 
    106         $(INSTALL_DIR) $(1)/usr/bin 
    107         $(CP) $(PKG_INSTALL_DIR)/usr/bin/python2.5 $(1)/usr/bin/ 
    108         $(CP) $(PKG_INSTALL_DIR)/usr/bin/python $(1)/usr/bin/ 
    109         $(INSTALL_DIR) $(1)/usr/include/python2.5 
    110         $(CP) $(PKG_INSTALL_DIR)/usr/include/python2.5/Python.h $(1)/usr/include/python2.5/ 
    111         $(INSTALL_DIR) $(1)/usr/lib 
    112         $(CP) $(PKG_INSTALL_DIR)/usr/lib/python2.5 $(1)/usr/lib/ 
    113         rm -rf  $(1)/usr/lib/python2.5/bsddb/test \ 
    114                 $(1)/usr/lib/python2.5/distutils/tests \ 
    115                 $(1)/usr/lib/python2.5/email/test \ 
    116                 $(1)/usr/lib/python2.5/idlelib \ 
    117                 $(1)/usr/lib/python2.5/lib-tk \ 
    118                 $(1)/usr/lib/python2.5/sqlite3/test \ 
    119                 $(1)/usr/lib/python2.5/ctypes/test \ 
    120                 $(1)/usr/lib/python2.5/test 
    121  
    122 endef 
    123  
    124 $(eval $(call BuildPackage,python)) 
     152                $(STAGING_DIR)/usr/bin/python \ 
     153                $(STAGING_DIR)/usr/include/python$(PYTHON_VERSION) \ 
     154                $(STAGING_DIR)/usr/lib/python$(PYTHON_VERSION) \ 
     155                $(STAGING_DIR)/usr/lib/libpython$(PYTHON_VERSION).a 
     156endef 
     157 
     158define PyPackage/python/filespec 
     159+|/usr/bin/python$(PYTHON_VERSION) 
     160+|/usr/lib/python$(PYTHON_VERSION) 
     161-|/usr/lib/python$(PYTHON_VERSION)/bsddb/test 
     162-|/usr/lib/python$(PYTHON_VERSION)/config 
     163-|/usr/lib/python$(PYTHON_VERSION)/ctypes/test 
     164-|/usr/lib/python$(PYTHON_VERSION)/distutils/command/wininst-*.exe 
     165-|/usr/lib/python$(PYTHON_VERSION)/distutils/tests 
     166-|/usr/lib/python$(PYTHON_VERSION)/email/test 
     167-|/usr/lib/python$(PYTHON_VERSION)/idlelib 
     168-|/usr/lib/python$(PYTHON_VERSION)/lib-tk 
     169-|/usr/lib/python$(PYTHON_VERSION)/sqlite3/test 
     170-|/usr/lib/python$(PYTHON_VERSION)/test 
     171endef 
     172 
     173define PyPackage/python/install 
     174        ln -sf python$(PYTHON_VERSION) $(1)/usr/bin/python 
     175endef 
     176 
     177define PyPackage/python-mini/filespec 
     178+|/usr/bin/python$(PYTHON_VERSION) 
     179+|/usr/lib/python$(PYTHON_VERSION)/__future__.py 
     180+|/usr/lib/python$(PYTHON_VERSION)/codecs.py 
     181+|/usr/lib/python$(PYTHON_VERSION)/compileall.py 
     182+|/usr/lib/python$(PYTHON_VERSION)/ConfigParser.py 
     183+|/usr/lib/python$(PYTHON_VERSION)/copy.py 
     184+|/usr/lib/python$(PYTHON_VERSION)/copy_reg.py 
     185+|/usr/lib/python$(PYTHON_VERSION)/dis.py 
     186+|/usr/lib/python$(PYTHON_VERSION)/encodings 
     187+|/usr/lib/python$(PYTHON_VERSION)/fnmatch.py 
     188+|/usr/lib/python$(PYTHON_VERSION)/getopt.py 
     189+|/usr/lib/python$(PYTHON_VERSION)/glob.py 
     190+|/usr/lib/python$(PYTHON_VERSION)/hashlib.py 
     191+|/usr/lib/python$(PYTHON_VERSION)/inspect.py 
     192+|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/array.so 
     193+|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/binascii.so 
     194+|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/cStringIO.so 
     195+|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/fcntl.so 
     196+|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/grp.so 
     197+|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/itertools.so 
     198+|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/math.so 
     199+|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/operator.so 
     200+|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/_random.so 
     201+|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/select.so 
     202+|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/_socket.so 
     203+|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/strop.so 
     204+|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/_struct.so 
     205+|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/syslog.so 
     206+|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/time.so 
     207+|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/unicodedata.so 
     208+|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/zlib.so 
     209+|/usr/lib/python$(PYTHON_VERSION)/linecache.py 
     210+|/usr/lib/python$(PYTHON_VERSION)/md5.py 
     211+|/usr/lib/python$(PYTHON_VERSION)/opcode.py 
     212+|/usr/lib/python$(PYTHON_VERSION)/optparse.py 
     213+|/usr/lib/python$(PYTHON_VERSION)/os.py 
     214+|/usr/lib/python$(PYTHON_VERSION)/pickle.py 
     215+|/usr/lib/python$(PYTHON_VERSION)/pickle.py 
     216+|/usr/lib/python$(PYTHON_VERSION)/pkgutil.py 
     217+|/usr/lib/python$(PYTHON_VERSION)/popen2.py 
     218+|/usr/lib/python$(PYTHON_VERSION)/posixpath.py 
     219+|/usr/lib/python$(PYTHON_VERSION)/py_compile.py 
     220+|/usr/lib/python$(PYTHON_VERSION)/random.py 
     221+|/usr/lib/python$(PYTHON_VERSION)/repr.py 
     222+|/usr/lib/python$(PYTHON_VERSION)/re.py 
     223+|/usr/lib/python$(PYTHON_VERSION)/sha.py 
     224+|/usr/lib/python$(PYTHON_VERSION)/site.py 
     225+|/usr/lib/python$(PYTHON_VERSION)/socket.py 
     226+|/usr/lib/python$(PYTHON_VERSION)/sre_compile.py 
     227+|/usr/lib/python$(PYTHON_VERSION)/sre_constants.py 
     228+|/usr/lib/python$(PYTHON_VERSION)/sre_parse.py 
     229+|/usr/lib/python$(PYTHON_VERSION)/sre.py 
     230+|/usr/lib/python$(PYTHON_VERSION)/stat.py 
     231+|/usr/lib/python$(PYTHON_VERSION)/StringIO.py 
     232+|/usr/lib/python$(PYTHON_VERSION)/stringprep.py 
     233+|/usr/lib/python$(PYTHON_VERSION)/string.py 
     234+|/usr/lib/python$(PYTHON_VERSION)/struct.py 
     235+|/usr/lib/python$(PYTHON_VERSION)/subprocess.py 
     236+|/usr/lib/python$(PYTHON_VERSION)/tempfile.py 
     237+|/usr/lib/python$(PYTHON_VERSION)/textwrap.py 
     238+|/usr/lib/python$(PYTHON_VERSION)/tokenize.py 
     239+|/usr/lib/python$(PYTHON_VERSION)/token.py 
     240+|/usr/lib/python$(PYTHON_VERSION)/traceback.py 
     241+|/usr/lib/python$(PYTHON_VERSION)/types.py 
     242+|/usr/lib/python$(PYTHON_VERSION)/UserDict.py 
     243+|/usr/lib/python$(PYTHON_VERSION)/warnings.py 
     244endef 
     245 
     246define PyPackage/python-mini/install 
     247        ln -sf python$(PYTHON_VERSION) $(1)/usr/bin/python 
     248endef 
     249 
     250define PyPackage/python-pydoc/filespec 
     251+|/usr/lib/python$(PYTHON_VERSION)/pydoc.py 
     252endef 
     253 
     254define PyPackage/python-expat/filespec 
     255+|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/pyexpat.so 
     256endef 
     257 
     258define PyPackage/python-openssl/filespec 
     259+|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/_ssl.so 
     260endef 
     261 
     262$(eval $(call PyPackage,python)) 
     263$(eval $(call PyPackage,python-mini)) 
     264$(eval $(call PyPackage,python-doc)) 
     265$(eval $(call PyPackage,python-expat)) 
     266$(eval $(call PyPackage,python-openssl)) 
     267 
  • packages/lang/python/python-package.mk

    r8988 r9207  
    99ifeq ($(DUMP),) 
    1010 
    11   PYTHON:=$(STAGING_DIR)/usr/bin/hostpython 
    12  
    1311  PYTHON_VERSION=2.5 
    1412 
    15   PYTHON_INC_DIR:=$(STAGING_DIR)/usr/include/python$(PYTHON_VERSION) 
    16   PYTHON_LIB_DIR:=$(STAGING_DIR)/usr/lib/python$(PYTHON_VERSION) 
     13  PYTHON_DIR:=$(STAGING_DIR)/usr 
     14  PYTHON_BIN_DIR:=$(PYTHON_DIR)/bin 
     15  PYTHON_INC_DIR:=$(PYTHON_DIR)/include/python$(PYTHON_VERSION) 
     16  PYTHON_LIB_DIR:=$(PYTHON_DIR)/lib/python$(PYTHON_VERSION) 
     17 
     18  PYTHON:=$(PYTHON_BIN_DIR)/python 
    1719 
    1820  PYTHON_PKG_DIR:=/usr/lib/python$(PYTHON_VERSION)/site-packages 
     
    2931    SECTION:=lang 
    3032    CATEGORY:=Languages 
    31     DEPENDS:=python 
     33    DEPENDS:=python-core 
    3234    $(call PyPackage/$(1)) 
    3335  endef 
Note: See TracChangeset for help on using the changeset viewer.