[packages] lang/python: Fixed duplicate files in python and python-mini packages...
[openwrt/svn-archive/archive.git] / lang / python / Makefile
1 #
2 # Copyright (C) 2006-2010 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:=3
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 +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-gzip
77 $(call Package/python/Default)
78 TITLE:=Python support for gzip
79 DEPENDS+=+python-mini
80 endef
81
82 define Package/python-openssl
83 $(call Package/python/Default)
84 TITLE:=Python support for OpenSSL
85 DEPENDS+=+python-mini +libopenssl
86 endef
87
88 define Package/python-shutil
89 $(call Package/python/Default)
90 TITLE:=Python support for shutil
91 DEPENDS+=+python-mini
92 endef
93
94 define Package/python-sqlite3
95 $(call Package/python/Default)
96 TITLE:=Python support for sqlite3
97 DEPENDS+=+python-mini +libsqlite3
98 endef
99
100 define Package/python-gdbm
101 $(call Package/python/Default)
102 TITLE:=Python support for gdbm
103 DEPENDS+=+python-mini +libgdbm
104 endef
105
106 PY_DISABLED_MODULES:= \
107 readline _curses _curses_panel _tkinter nis
108
109 MAKE_OPTS:=\
110 $(TARGET_CONFIGURE_OPTS) \
111 PYTHON_DISABLE_MODULES="$(PY_DISABLED_MODULES)" \
112 PYTHON_MODULES_INCLUDE="$(STAGING_DIR)/usr/include" \
113 PYTHON_MODULES_LIB="$(STAGING_DIR)/usr/lib" \
114 CROSS_COMPILE=yes \
115 CFLAGS="$(TARGET_CFLAGS) -fno-inline" \
116 LDFLAGS="$(TARGET_LDFLAGS)" \
117 LD="$(TARGET_CC)" \
118 HOSTPYTHON=./hostpython \
119 HOSTPGEN=./hostpgen \
120
121 define Build/Configure
122 endef
123
124 define Build/Compile
125 -$(MAKE) -C $(PKG_BUILD_DIR) distclean
126 (cd $(PKG_BUILD_DIR); autoreconf --force --install || exit 0);
127 (cd $(PKG_BUILD_DIR); \
128 rm -rf config.cache; \
129 CONFIG_SITE= \
130 OPT="$(HOST_CFLAGS)" \
131 ./configure --without-cxx-main --without-threads --prefix=$(PKG_INSTALL_DIR)/host; \
132 );
133 $(MAKE) -C $(PKG_BUILD_DIR) \
134 python Parser/pgen
135 $(MAKE) -C $(PKG_BUILD_DIR) \
136 HOSTPYTHON=$(PKG_BUILD_DIR)/python \
137 sharedmods install
138 (cd $(PKG_BUILD_DIR);mv Parser/pgen hostpgen)
139 # The python executable needs to stay in the rootdir since its location will
140 # be used to compute the path of the config files.
141 $(CP) $(PKG_BUILD_DIR)/python $(PKG_BUILD_DIR)/hostpython
142 $(MAKE) -C $(PKG_BUILD_DIR) distclean
143 $(call Build/Configure/Default, \
144 --sysconfdir=/etc \
145 --disable-shared \
146 --without-cxx-main \
147 --with-threads \
148 --with-system-ffi \
149 ac_cv_lib_readline_readline=no \
150 ac_cv_have_chflags=no \
151 ac_cv_have_lchflags=no \
152 ac_cv_py_format_size_t=no \
153 OPT="$(TARGET_CFLAGS)" \
154 )
155 $(MAKE) -C $(PKG_BUILD_DIR) \
156 $(MAKE_OPTS) \
157 DESTDIR="$(PKG_INSTALL_DIR)" \
158 all install
159 endef
160
161 define Build/InstallDev
162 $(INSTALL_DIR) $(1)/mk $(2)/bin $(1)/usr/bin $(1)/usr/include $(1)/usr/lib
163 $(INSTALL_DATA) ./files/python-package.mk $(1)/mk/
164 $(CP) \
165 $(PKG_INSTALL_DIR)/usr/include/python$(PYTHON_VERSION) \
166 $(1)/usr/include/
167 $(CP) \
168 $(PKG_INSTALL_DIR)/host/lib/python$(PYTHON_VERSION) \
169 $(PKG_BUILD_DIR)/libpython$(PYTHON_VERSION).a \
170 $(1)/usr/lib/
171
172 $(CP) \
173 $(PKG_INSTALL_DIR)/usr/lib/python$(PYTHON_VERSION)/config \
174 $(1)/usr/lib/python$(PYTHON_VERSION)/
175
176 $(CP) \
177 $(PKG_INSTALL_DIR)/host/bin/python \
178 $(1)/usr/bin/hostpython
179 (cd $(2)/bin; \
180 ln -sf ../../usr/bin/hostpython python$(PYTHON_VERSION); \
181 ln -sf python$(PYTHON_VERSION) python)
182
183 $(CP) \
184 $(PKG_INSTALL_DIR)/host/bin/python$(PYTHON_VERSION)-config \
185 $(2)/bin/
186 $(SED) 's,^#!.*,#!/usr/bin/env python$(PYTHON_VERSION),g' $(2)/bin/python$(PYTHON_VERSION)-config
187
188 (cd $(2)/bin; \
189 ln -sf python$(PYTHON_VERSION)-config python-config;)
190 endef
191
192 define PyPackage/python/filespec
193 +|/usr/lib/python$(PYTHON_VERSION)
194 -|/usr/lib/python$(PYTHON_VERSION)/bsddb/test
195 -|/usr/lib/python$(PYTHON_VERSION)/config
196 +|/usr/lib/python$(PYTHON_VERSION)/config/Makefile
197 -|/usr/lib/python$(PYTHON_VERSION)/ctypes/test
198 -|/usr/lib/python$(PYTHON_VERSION)/distutils/command/wininst-*.exe
199 -|/usr/lib/python$(PYTHON_VERSION)/distutils/tests
200 -|/usr/lib/python$(PYTHON_VERSION)/email/test
201 -|/usr/lib/python$(PYTHON_VERSION)/idlelib
202 -|/usr/lib/python$(PYTHON_VERSION)/json/tests
203 -|/usr/lib/python$(PYTHON_VERSION)/lib-tk
204 -|/usr/lib/python$(PYTHON_VERSION)/sqlite3
205 -|/usr/lib/python$(PYTHON_VERSION)/test
206 -|/usr/lib/python$(PYTHON_VERSION)/lib2to3
207 -|/usr/lib/python$(PYTHON_VERSION)/lib-old
208 -|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/gdbm.so
209 -|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/_sqlite3.so
210 -|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/_ssl.so
211 -|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/pyexpat.so
212 -|/usr/lib/python$(PYTHON_VERSION)/pydoc_topics.py
213 -|/usr/lib/python$(PYTHON_VERSION)/pydoc.py
214 -|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/_ctypes_test.so
215 -|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/_testcapi.so
216 -|/usr/lib/python$(PYTHON_VERSION)/__future__.py
217 -|/usr/lib/python$(PYTHON_VERSION)/_abcoll.py
218 -|/usr/lib/python$(PYTHON_VERSION)/abc.py
219 -|/usr/lib/python$(PYTHON_VERSION)/codecs.py
220 -|/usr/lib/python$(PYTHON_VERSION)/compileall.py
221 -|/usr/lib/python$(PYTHON_VERSION)/ConfigParser.py
222 -|/usr/lib/python$(PYTHON_VERSION)/copy.py
223 -|/usr/lib/python$(PYTHON_VERSION)/copy_reg.py
224 -|/usr/lib/python$(PYTHON_VERSION)/dis.py
225 -|/usr/lib/python$(PYTHON_VERSION)/encodings
226 -|/usr/lib/python$(PYTHON_VERSION)/fnmatch.py
227 -|/usr/lib/python$(PYTHON_VERSION)/genericpath.py
228 -|/usr/lib/python$(PYTHON_VERSION)/getopt.py
229 -|/usr/lib/python$(PYTHON_VERSION)/glob.py
230 -|/usr/lib/python$(PYTHON_VERSION)/hashlib.py
231 -|/usr/lib/python$(PYTHON_VERSION)/inspect.py
232 -|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/array.so
233 -|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/binascii.so
234 -|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/cStringIO.so
235 -|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/fcntl.so
236 -|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/grp.so
237 -|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/itertools.so
238 -|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/math.so
239 -|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/_md5.so
240 -|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/operator.so
241 -|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/_random.so
242 -|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/select.so
243 -|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/_sha.so
244 -|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/_sha256.so
245 -|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/_sha512.so
246 -|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/_socket.so
247 -|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/strop.so
248 -|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/_struct.so
249 -|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/syslog.so
250 -|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/time.so
251 -|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/unicodedata.so
252 -|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/zlib.so
253 -|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/_weakref.so
254 -|/usr/lib/python$(PYTHON_VERSION)/linecache.py
255 -|/usr/lib/python$(PYTHON_VERSION)/md5.py
256 -|/usr/lib/python$(PYTHON_VERSION)/new.py
257 -|/usr/lib/python$(PYTHON_VERSION)/opcode.py
258 -|/usr/lib/python$(PYTHON_VERSION)/optparse.py
259 -|/usr/lib/python$(PYTHON_VERSION)/os.py
260 -|/usr/lib/python$(PYTHON_VERSION)/pickle.py
261 -|/usr/lib/python$(PYTHON_VERSION)/pickle.py
262 -|/usr/lib/python$(PYTHON_VERSION)/pkgutil.py
263 -|/usr/lib/python$(PYTHON_VERSION)/popen2.py
264 -|/usr/lib/python$(PYTHON_VERSION)/posixpath.py
265 -|/usr/lib/python$(PYTHON_VERSION)/py_compile.py
266 -|/usr/lib/python$(PYTHON_VERSION)/random.py
267 -|/usr/lib/python$(PYTHON_VERSION)/repr.py
268 -|/usr/lib/python$(PYTHON_VERSION)/re.py
269 -|/usr/lib/python$(PYTHON_VERSION)/sha.py
270 -|/usr/lib/python$(PYTHON_VERSION)/site.py
271 -|/usr/lib/python$(PYTHON_VERSION)/socket.py
272 -|/usr/lib/python$(PYTHON_VERSION)/sre_compile.py
273 -|/usr/lib/python$(PYTHON_VERSION)/sre_constants.py
274 -|/usr/lib/python$(PYTHON_VERSION)/sre_parse.py
275 -|/usr/lib/python$(PYTHON_VERSION)/sre.py
276 -|/usr/lib/python$(PYTHON_VERSION)/stat.py
277 -|/usr/lib/python$(PYTHON_VERSION)/StringIO.py
278 -|/usr/lib/python$(PYTHON_VERSION)/stringprep.py
279 -|/usr/lib/python$(PYTHON_VERSION)/string.py
280 -|/usr/lib/python$(PYTHON_VERSION)/struct.py
281 -|/usr/lib/python$(PYTHON_VERSION)/subprocess.py
282 -|/usr/lib/python$(PYTHON_VERSION)/tempfile.py
283 -|/usr/lib/python$(PYTHON_VERSION)/textwrap.py
284 -|/usr/lib/python$(PYTHON_VERSION)/tokenize.py
285 -|/usr/lib/python$(PYTHON_VERSION)/token.py
286 -|/usr/lib/python$(PYTHON_VERSION)/traceback.py
287 -|/usr/lib/python$(PYTHON_VERSION)/types.py
288 -|/usr/lib/python$(PYTHON_VERSION)/UserDict.py
289 -|/usr/lib/python$(PYTHON_VERSION)/warnings.py
290 -|/usr/lib/python$(PYTHON_VERSION)/weakref.py
291 endef
292
293 define PyPackage/python-mini/filespec
294 +|/usr/bin/python$(PYTHON_VERSION)
295 +|/usr/lib/python$(PYTHON_VERSION)/__future__.py
296 +|/usr/lib/python$(PYTHON_VERSION)/_abcoll.py
297 +|/usr/lib/python$(PYTHON_VERSION)/abc.py
298 +|/usr/lib/python$(PYTHON_VERSION)/codecs.py
299 +|/usr/lib/python$(PYTHON_VERSION)/compileall.py
300 +|/usr/lib/python$(PYTHON_VERSION)/ConfigParser.py
301 +|/usr/lib/python$(PYTHON_VERSION)/copy.py
302 +|/usr/lib/python$(PYTHON_VERSION)/copy_reg.py
303 +|/usr/lib/python$(PYTHON_VERSION)/dis.py
304 +|/usr/lib/python$(PYTHON_VERSION)/encodings
305 +|/usr/lib/python$(PYTHON_VERSION)/fnmatch.py
306 +|/usr/lib/python$(PYTHON_VERSION)/genericpath.py
307 +|/usr/lib/python$(PYTHON_VERSION)/getopt.py
308 +|/usr/lib/python$(PYTHON_VERSION)/glob.py
309 +|/usr/lib/python$(PYTHON_VERSION)/hashlib.py
310 +|/usr/lib/python$(PYTHON_VERSION)/inspect.py
311 +|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/array.so
312 +|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/binascii.so
313 +|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/cStringIO.so
314 +|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/fcntl.so
315 +|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/grp.so
316 +|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/itertools.so
317 +|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/math.so
318 +|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/_md5.so
319 +|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/operator.so
320 +|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/_random.so
321 +|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/select.so
322 +|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/_sha.so
323 +|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/_sha256.so
324 +|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/_sha512.so
325 +|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/_socket.so
326 +|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/strop.so
327 +|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/_struct.so
328 +|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/syslog.so
329 +|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/time.so
330 +|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/unicodedata.so
331 +|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/zlib.so
332 +|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/_weakref.so
333 +|/usr/lib/python$(PYTHON_VERSION)/linecache.py
334 +|/usr/lib/python$(PYTHON_VERSION)/md5.py
335 +|/usr/lib/python$(PYTHON_VERSION)/new.py
336 +|/usr/lib/python$(PYTHON_VERSION)/opcode.py
337 +|/usr/lib/python$(PYTHON_VERSION)/optparse.py
338 +|/usr/lib/python$(PYTHON_VERSION)/os.py
339 +|/usr/lib/python$(PYTHON_VERSION)/pickle.py
340 +|/usr/lib/python$(PYTHON_VERSION)/pickle.py
341 +|/usr/lib/python$(PYTHON_VERSION)/pkgutil.py
342 +|/usr/lib/python$(PYTHON_VERSION)/popen2.py
343 +|/usr/lib/python$(PYTHON_VERSION)/posixpath.py
344 +|/usr/lib/python$(PYTHON_VERSION)/py_compile.py
345 +|/usr/lib/python$(PYTHON_VERSION)/random.py
346 +|/usr/lib/python$(PYTHON_VERSION)/repr.py
347 +|/usr/lib/python$(PYTHON_VERSION)/re.py
348 +|/usr/lib/python$(PYTHON_VERSION)/sha.py
349 +|/usr/lib/python$(PYTHON_VERSION)/site.py
350 +|/usr/lib/python$(PYTHON_VERSION)/socket.py
351 +|/usr/lib/python$(PYTHON_VERSION)/sre_compile.py
352 +|/usr/lib/python$(PYTHON_VERSION)/sre_constants.py
353 +|/usr/lib/python$(PYTHON_VERSION)/sre_parse.py
354 +|/usr/lib/python$(PYTHON_VERSION)/sre.py
355 +|/usr/lib/python$(PYTHON_VERSION)/stat.py
356 +|/usr/lib/python$(PYTHON_VERSION)/StringIO.py
357 +|/usr/lib/python$(PYTHON_VERSION)/stringprep.py
358 +|/usr/lib/python$(PYTHON_VERSION)/string.py
359 +|/usr/lib/python$(PYTHON_VERSION)/struct.py
360 +|/usr/lib/python$(PYTHON_VERSION)/subprocess.py
361 +|/usr/lib/python$(PYTHON_VERSION)/tempfile.py
362 +|/usr/lib/python$(PYTHON_VERSION)/textwrap.py
363 +|/usr/lib/python$(PYTHON_VERSION)/tokenize.py
364 +|/usr/lib/python$(PYTHON_VERSION)/token.py
365 +|/usr/lib/python$(PYTHON_VERSION)/traceback.py
366 +|/usr/lib/python$(PYTHON_VERSION)/types.py
367 +|/usr/lib/python$(PYTHON_VERSION)/UserDict.py
368 +|/usr/lib/python$(PYTHON_VERSION)/warnings.py
369 +|/usr/lib/python$(PYTHON_VERSION)/weakref.py
370 endef
371
372 define PyPackage/python-mini/install
373 ln -sf python$(PYTHON_VERSION) $(1)/usr/bin/python
374 endef
375
376 define PyPackage/python-doc/filespec
377 +|/usr/lib/python$(PYTHON_VERSION)/pydoc_topics.py
378 +|/usr/lib/python$(PYTHON_VERSION)/pydoc.py
379 endef
380
381 define PyPackage/python-expat/filespec
382 +|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/pyexpat.so
383 endef
384
385 define PyPackage/python-gzip/filespec
386 +|/usr/lib/python$(PYTHON_VERSION)/gzip.py
387 endef
388
389 define PyPackage/python-openssl/filespec
390 +|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/_ssl.so
391 endef
392
393 define PyPackage/python-shutil/filespec
394 +|/usr/lib/python$(PYTHON_VERSION)/shutil.py
395 endef
396
397 define PyPackage/python-sqlite3/filespec
398 +|/usr/lib/python$(PYTHON_VERSION)/sqlite3
399 +|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/_sqlite3.so
400 endef
401
402 define PyPackage/python-gdbm/filespec
403 +|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/gdbm.so
404 endef
405
406 $(eval $(call PyPackage,python))
407 $(eval $(call PyPackage,python-mini))
408 $(eval $(call PyPackage,python-doc))
409 $(eval $(call PyPackage,python-expat))
410 $(eval $(call PyPackage,python-gzip))
411 $(eval $(call PyPackage,python-openssl))
412 $(eval $(call PyPackage,python-shutil))
413 $(eval $(call PyPackage,python-sqlite3))
414 $(eval $(call PyPackage,python-gdbm))
415
416 $(eval $(call BuildPackage,python))
417 $(eval $(call BuildPackage,python-mini))
418 $(eval $(call BuildPackage,python-doc))
419 $(eval $(call BuildPackage,python-expat))
420 $(eval $(call BuildPackage,python-gzip))
421 $(eval $(call BuildPackage,python-openssl))
422 $(eval $(call BuildPackage,python-shutil))
423 $(eval $(call BuildPackage,python-sqlite3))
424 $(eval $(call BuildPackage,python-gdbm))