[package] update python to 2.6.4 (#6407, fixes #6192)
[packages.git] / lang / python / Makefile
1 #
2 # Copyright (C) 2006-2009 OpenWrt.org
3 #
4 # This is free software, licensed under the GNU General Public License v2.
5 # See /LICENSE for more information.
6 #
7
8 include $(TOPDIR)/rules.mk
9
10 PKG_NAME:=python
11 PKG_VERSION:=2.6.4
12 PKG_RELEASE:=2
13
14 PKG_SOURCE:=Python-$(PKG_VERSION).tar.bz2
15 PKG_SOURCE_URL:=http://www.python.org/ftp/python/$(PKG_VERSION)/
16 PKG_MD5SUM:=fee5408634a54e721a93531aba37f8c1
17
18 PKG_BUILD_DIR:=$(BUILD_DIR)/Python-$(PKG_VERSION)
19
20 include $(INCLUDE_DIR)/package.mk
21 -include $(if $(DUMP),,./files/python-package.mk)
22
23 define Package/python/Default
24   SUBMENU:=Python
25   SECTION:=lang
26   CATEGORY:=Languages
27   TITLE:=Python $(PYTHON_VERSION) programming language
28   URL:=http://www.python.org/
29 endef
30
31 define Package/python/Default/description
32  Python is a dynamic object-oriented programming language that can be used
33  for many kinds of software development. It offers strong support for
34  integration with other languages and tools, comes with extensive standard
35  libraries, and can be learned in a few days. Many Python programmers
36  report substantial productivity gains and feel the language encourages
37  the development of higher quality, more maintainable code.
38 endef
39
40 define Package/python
41 $(call Package/python/Default)
42   TITLE+= (full)
43   DEPENDS:=+libpthread +zlib +PACKAGE_python:libffi +python-mini
44 endef
45
46 define Package/python/description
47 $(call Package/python/Default/description)
48  .
49  This package contains the full Python install.
50 endef
51
52 define Package/python-mini
53 $(call Package/python/Default)
54   TITLE+= (minimal)
55   DEPENDS:=+libpthread +zlib
56 endef
57
58 define Package/python-mini/description
59 $(call Package/python/Default/description)
60   .
61   This package contains only a minimal Python install.
62 endef
63
64 define Package/python-doc
65 $(call Package/python/Default)
66   TITLE:=Python interactive documentation
67   DEPENDS+=+python-mini
68 endef
69
70 define Package/python-expat
71 $(call Package/python/Default)
72   TITLE:=Python support for expat
73   DEPENDS+=+python-mini +libexpat
74 endef
75
76 define Package/python-openssl
77 $(call Package/python/Default)
78  TITLE:=Python support for OpenSSL
79  DEPENDS+=+python-mini +libopenssl
80 endef
81
82 define Package/python-sqlite3
83 $(call Package/python/Default)
84  TITLE:=Python support for sqlite3
85  DEPENDS+=+python-mini +libsqlite3
86 endef
87
88
89 PY_DISABLED_MODULES:= \
90         readline _curses _curses_panel _tkinter nis
91
92 MAKE_OPTS:=\
93         $(TARGET_CONFIGURE_OPTS) \
94         PYTHON_DISABLE_MODULES="$(PY_DISABLED_MODULES)" \
95         PYTHON_MODULES_INCLUDE="$(STAGING_DIR)/usr/include" \
96         PYTHON_MODULES_LIB="$(STAGING_DIR)/usr/lib" \
97         CROSS_COMPILE=yes \
98         CFLAGS="$(TARGET_CFLAGS) -fno-inline" \
99         LDFLAGS="$(TARGET_LDFLAGS)" \
100         LD="$(TARGET_CC)" \
101         HOSTPYTHON=./hostpython \
102         HOSTPGEN=./hostpgen \
103
104 define Build/Configure
105 endef
106
107 define Build/Compile
108         -$(MAKE) -C $(PKG_BUILD_DIR) distclean
109         (cd $(PKG_BUILD_DIR); autoreconf --force --install || exit 0);
110         (cd $(PKG_BUILD_DIR); \
111                 rm -rf config.cache; \
112                 CONFIG_SITE= \
113                 OPT="$(HOST_CFLAGS)" \
114                 ./configure --without-cxx-main --without-threads --prefix=$(PKG_INSTALL_DIR)/host; \
115         );
116         $(MAKE) -C $(PKG_BUILD_DIR) \
117                 python Parser/pgen
118         $(MAKE) -C $(PKG_BUILD_DIR) \
119                 HOSTPYTHON=$(PKG_BUILD_DIR)/python \
120                 sharedmods install
121         (cd $(PKG_BUILD_DIR);mv Parser/pgen hostpgen)
122         # The python executable needs to stay in the rootdir since its location will
123         # be used to compute the path of the config files.
124         $(CP) $(PKG_BUILD_DIR)/python $(PKG_BUILD_DIR)/hostpython
125         $(MAKE) -C $(PKG_BUILD_DIR) distclean
126         $(call Build/Configure/Default, \
127                 --sysconfdir=/etc \
128                 --disable-shared \
129                 --without-cxx-main \
130                 --with-threads \
131                 --with-system-ffi \
132                 ac_cv_lib_readline_readline=no \
133                 ac_cv_have_chflags=no \
134                 ac_cv_have_lchflags=no \
135                 ac_cv_py_format_size_t=no \
136                 OPT="$(TARGET_CFLAGS)" \
137         )
138         $(MAKE) -C $(PKG_BUILD_DIR) \
139                 $(MAKE_OPTS) \
140                 DESTDIR="$(PKG_INSTALL_DIR)" \
141                 all install
142 endef
143
144 define Build/InstallDev
145         $(INSTALL_DIR) $(1)/mk $(2)/bin $(1)/usr/bin $(1)/usr/include $(1)/usr/lib
146         $(INSTALL_DATA) ./files/python-package.mk $(1)/mk/
147         $(CP) \
148                 $(PKG_INSTALL_DIR)/usr/include/python$(PYTHON_VERSION) \
149                 $(1)/usr/include/
150         $(CP) \
151                 $(PKG_INSTALL_DIR)/host/lib/python$(PYTHON_VERSION) \
152                 $(PKG_BUILD_DIR)/libpython$(PYTHON_VERSION).a \
153                 $(1)/usr/lib/
154
155         $(CP) \
156                 $(PKG_INSTALL_DIR)/usr/lib/python$(PYTHON_VERSION)/config \
157                 $(1)/usr/lib/python$(PYTHON_VERSION)/
158
159         $(CP) \
160                 $(PKG_INSTALL_DIR)/host/bin/python \
161                 $(1)/usr/bin/hostpython
162         (cd $(2)/bin; \
163         ln -sf ../../usr/bin/hostpython python$(PYTHON_VERSION); \
164         ln -sf python$(PYTHON_VERSION) python)
165
166         $(CP) \
167                 $(PKG_INSTALL_DIR)/host/bin/python$(PYTHON_VERSION)-config \
168                 $(2)/bin/
169         $(SED) 's,^#!.*,#!/usr/bin/env python$(PYTHON_VERSION),g' $(2)/bin/python$(PYTHON_VERSION)-config
170
171         (cd $(2)/bin; \
172         ln -sf python$(PYTHON_VERSION)-config python-config;)
173 endef
174
175 define PyPackage/python/filespec
176 +|/usr/bin/python$(PYTHON_VERSION)
177 +|/usr/lib/python$(PYTHON_VERSION)
178 -|/usr/lib/python$(PYTHON_VERSION)/bsddb/test
179 -|/usr/lib/python$(PYTHON_VERSION)/config
180 +|/usr/lib/python$(PYTHON_VERSION)/config/Makefile
181 -|/usr/lib/python$(PYTHON_VERSION)/ctypes/test
182 -|/usr/lib/python$(PYTHON_VERSION)/distutils/command/wininst-*.exe
183 -|/usr/lib/python$(PYTHON_VERSION)/distutils/tests
184 -|/usr/lib/python$(PYTHON_VERSION)/email/test
185 -|/usr/lib/python$(PYTHON_VERSION)/idlelib
186 -|/usr/lib/python$(PYTHON_VERSION)/json/tests
187 -|/usr/lib/python$(PYTHON_VERSION)/lib-tk
188 -|/usr/lib/python$(PYTHON_VERSION)/sqlite3
189 -|/usr/lib/python$(PYTHON_VERSION)/test
190 -|/usr/lib/python$(PYTHON_VERSION)/lib2to3
191 -|/usr/lib/python$(PYTHON_VERSION)/lib-old
192 -|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/_sqlite3.so
193 -|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/_ssl.so
194 -|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/pyexpat.so
195 -|/usr/lib/python$(PYTHON_VERSION)/pydoc_topics.py
196 -|/usr/lib/python$(PYTHON_VERSION)/pydoc.py
197 -|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/_ctypes_test.so
198 -|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/_testcapi.so
199 -|/usr/lib/python$(PYTHON_VERSION)/__future__.py
200 -|/usr/lib/python$(PYTHON_VERSION)/_abcoll.py
201 -|/usr/lib/python$(PYTHON_VERSION)/abc.py
202 -|/usr/lib/python$(PYTHON_VERSION)/codecs.py
203 -|/usr/lib/python$(PYTHON_VERSION)/compileall.py
204 -|/usr/lib/python$(PYTHON_VERSION)/ConfigParser.py
205 -|/usr/lib/python$(PYTHON_VERSION)/copy.py
206 -|/usr/lib/python$(PYTHON_VERSION)/copy_reg.py
207 -|/usr/lib/python$(PYTHON_VERSION)/dis.py
208 -|/usr/lib/python$(PYTHON_VERSION)/encodings
209 -|/usr/lib/python$(PYTHON_VERSION)/fnmatch.py
210 -|/usr/lib/python$(PYTHON_VERSION)/genericpath.py
211 -|/usr/lib/python$(PYTHON_VERSION)/getopt.py
212 -|/usr/lib/python$(PYTHON_VERSION)/glob.py
213 -|/usr/lib/python$(PYTHON_VERSION)/hashlib.py
214 -|/usr/lib/python$(PYTHON_VERSION)/inspect.py
215 -|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/array.so
216 -|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/binascii.so
217 -|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/cStringIO.so
218 -|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/fcntl.so
219 -|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/grp.so
220 -|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/itertools.so
221 -|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/math.so
222 -|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/operator.so
223 -|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/_random.so
224 -|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/select.so
225 -|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/_socket.so
226 -|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/strop.so
227 -|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/_struct.so
228 -|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/syslog.so
229 -|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/time.so
230 -|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/unicodedata.so
231 -|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/zlib.so
232 -|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/_weakref.so
233 -|/usr/lib/python$(PYTHON_VERSION)/linecache.py
234 -|/usr/lib/python$(PYTHON_VERSION)/md5.py
235 -|/usr/lib/python$(PYTHON_VERSION)/new.py
236 -|/usr/lib/python$(PYTHON_VERSION)/opcode.py
237 -|/usr/lib/python$(PYTHON_VERSION)/optparse.py
238 -|/usr/lib/python$(PYTHON_VERSION)/os.py
239 -|/usr/lib/python$(PYTHON_VERSION)/pickle.py
240 -|/usr/lib/python$(PYTHON_VERSION)/pickle.py
241 -|/usr/lib/python$(PYTHON_VERSION)/pkgutil.py
242 -|/usr/lib/python$(PYTHON_VERSION)/popen2.py
243 -|/usr/lib/python$(PYTHON_VERSION)/posixpath.py
244 -|/usr/lib/python$(PYTHON_VERSION)/py_compile.py
245 -|/usr/lib/python$(PYTHON_VERSION)/random.py
246 -|/usr/lib/python$(PYTHON_VERSION)/repr.py
247 -|/usr/lib/python$(PYTHON_VERSION)/re.py
248 -|/usr/lib/python$(PYTHON_VERSION)/sha.py
249 -|/usr/lib/python$(PYTHON_VERSION)/site.py
250 -|/usr/lib/python$(PYTHON_VERSION)/socket.py
251 -|/usr/lib/python$(PYTHON_VERSION)/sre_compile.py
252 -|/usr/lib/python$(PYTHON_VERSION)/sre_constants.py
253 -|/usr/lib/python$(PYTHON_VERSION)/sre_parse.py
254 -|/usr/lib/python$(PYTHON_VERSION)/sre.py
255 -|/usr/lib/python$(PYTHON_VERSION)/stat.py
256 -|/usr/lib/python$(PYTHON_VERSION)/StringIO.py
257 -|/usr/lib/python$(PYTHON_VERSION)/stringprep.py
258 -|/usr/lib/python$(PYTHON_VERSION)/string.py
259 -|/usr/lib/python$(PYTHON_VERSION)/struct.py
260 -|/usr/lib/python$(PYTHON_VERSION)/subprocess.py
261 -|/usr/lib/python$(PYTHON_VERSION)/tempfile.py
262 -|/usr/lib/python$(PYTHON_VERSION)/textwrap.py
263 -|/usr/lib/python$(PYTHON_VERSION)/tokenize.py
264 -|/usr/lib/python$(PYTHON_VERSION)/token.py
265 -|/usr/lib/python$(PYTHON_VERSION)/traceback.py
266 -|/usr/lib/python$(PYTHON_VERSION)/types.py
267 -|/usr/lib/python$(PYTHON_VERSION)/UserDict.py
268 -|/usr/lib/python$(PYTHON_VERSION)/warnings.py
269 -|/usr/lib/python$(PYTHON_VERSION)/weakref.py
270 endef
271
272 define PyPackage/python/install
273         ln -sf python$(PYTHON_VERSION) $(1)/usr/bin/python
274 endef
275
276 define PyPackage/python-mini/filespec
277 +|/usr/bin/python$(PYTHON_VERSION)
278 +|/usr/lib/python$(PYTHON_VERSION)/__future__.py
279 +|/usr/lib/python$(PYTHON_VERSION)/_abcoll.py
280 +|/usr/lib/python$(PYTHON_VERSION)/abc.py
281 +|/usr/lib/python$(PYTHON_VERSION)/codecs.py
282 +|/usr/lib/python$(PYTHON_VERSION)/compileall.py
283 +|/usr/lib/python$(PYTHON_VERSION)/ConfigParser.py
284 +|/usr/lib/python$(PYTHON_VERSION)/copy.py
285 +|/usr/lib/python$(PYTHON_VERSION)/copy_reg.py
286 +|/usr/lib/python$(PYTHON_VERSION)/dis.py
287 +|/usr/lib/python$(PYTHON_VERSION)/encodings
288 +|/usr/lib/python$(PYTHON_VERSION)/fnmatch.py
289 +|/usr/lib/python$(PYTHON_VERSION)/genericpath.py
290 +|/usr/lib/python$(PYTHON_VERSION)/getopt.py
291 +|/usr/lib/python$(PYTHON_VERSION)/glob.py
292 +|/usr/lib/python$(PYTHON_VERSION)/hashlib.py
293 +|/usr/lib/python$(PYTHON_VERSION)/inspect.py
294 +|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/array.so
295 +|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/binascii.so
296 +|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/cStringIO.so
297 +|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/fcntl.so
298 +|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/grp.so
299 +|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/itertools.so
300 +|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/math.so
301 +|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/operator.so
302 +|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/_random.so
303 +|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/select.so
304 +|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/_socket.so
305 +|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/strop.so
306 +|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/_struct.so
307 +|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/syslog.so
308 +|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/time.so
309 +|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/unicodedata.so
310 +|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/zlib.so
311 +|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/_weakref.so
312 +|/usr/lib/python$(PYTHON_VERSION)/linecache.py
313 +|/usr/lib/python$(PYTHON_VERSION)/md5.py
314 +|/usr/lib/python$(PYTHON_VERSION)/new.py
315 +|/usr/lib/python$(PYTHON_VERSION)/opcode.py
316 +|/usr/lib/python$(PYTHON_VERSION)/optparse.py
317 +|/usr/lib/python$(PYTHON_VERSION)/os.py
318 +|/usr/lib/python$(PYTHON_VERSION)/pickle.py
319 +|/usr/lib/python$(PYTHON_VERSION)/pickle.py
320 +|/usr/lib/python$(PYTHON_VERSION)/pkgutil.py
321 +|/usr/lib/python$(PYTHON_VERSION)/popen2.py
322 +|/usr/lib/python$(PYTHON_VERSION)/posixpath.py
323 +|/usr/lib/python$(PYTHON_VERSION)/py_compile.py
324 +|/usr/lib/python$(PYTHON_VERSION)/random.py
325 +|/usr/lib/python$(PYTHON_VERSION)/repr.py
326 +|/usr/lib/python$(PYTHON_VERSION)/re.py
327 +|/usr/lib/python$(PYTHON_VERSION)/sha.py
328 +|/usr/lib/python$(PYTHON_VERSION)/site.py
329 +|/usr/lib/python$(PYTHON_VERSION)/socket.py
330 +|/usr/lib/python$(PYTHON_VERSION)/sre_compile.py
331 +|/usr/lib/python$(PYTHON_VERSION)/sre_constants.py
332 +|/usr/lib/python$(PYTHON_VERSION)/sre_parse.py
333 +|/usr/lib/python$(PYTHON_VERSION)/sre.py
334 +|/usr/lib/python$(PYTHON_VERSION)/stat.py
335 +|/usr/lib/python$(PYTHON_VERSION)/StringIO.py
336 +|/usr/lib/python$(PYTHON_VERSION)/stringprep.py
337 +|/usr/lib/python$(PYTHON_VERSION)/string.py
338 +|/usr/lib/python$(PYTHON_VERSION)/struct.py
339 +|/usr/lib/python$(PYTHON_VERSION)/subprocess.py
340 +|/usr/lib/python$(PYTHON_VERSION)/tempfile.py
341 +|/usr/lib/python$(PYTHON_VERSION)/textwrap.py
342 +|/usr/lib/python$(PYTHON_VERSION)/tokenize.py
343 +|/usr/lib/python$(PYTHON_VERSION)/token.py
344 +|/usr/lib/python$(PYTHON_VERSION)/traceback.py
345 +|/usr/lib/python$(PYTHON_VERSION)/types.py
346 +|/usr/lib/python$(PYTHON_VERSION)/UserDict.py
347 +|/usr/lib/python$(PYTHON_VERSION)/warnings.py
348 +|/usr/lib/python$(PYTHON_VERSION)/weakref.py
349 endef
350
351 define PyPackage/python-mini/install
352         ln -sf python$(PYTHON_VERSION) $(1)/usr/bin/python
353 endef
354
355 define PyPackage/python-doc/filespec
356 +|/usr/lib/python$(PYTHON_VERSION)/pydoc_topics.py
357 +|/usr/lib/python$(PYTHON_VERSION)/pydoc.py
358 endef
359
360 define PyPackage/python-expat/filespec
361 +|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/pyexpat.so
362 endef
363
364 define PyPackage/python-openssl/filespec
365 +|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/_ssl.so
366 endef
367
368 define PyPackage/python-sqlite3/filespec
369 +|/usr/lib/python$(PYTHON_VERSION)/sqlite3
370 +|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/_sqlite3.so
371 endef
372
373 $(eval $(call PyPackage,python))
374 $(eval $(call PyPackage,python-mini))
375 $(eval $(call PyPackage,python-doc))
376 $(eval $(call PyPackage,python-expat))
377 $(eval $(call PyPackage,python-openssl))
378 $(eval $(call PyPackage,python-sqlite3))
379
380 $(eval $(call BuildPackage,python))
381 $(eval $(call BuildPackage,python-mini))
382 $(eval $(call BuildPackage,python-doc))
383 $(eval $(call BuildPackage,python-expat))
384 $(eval $(call BuildPackage,python-openssl))
385 $(eval $(call BuildPackage,python-sqlite3))