7887857c7fa165b7818f112a2ecd186aa1e20db3
[packages.git] / lang / python / Makefile
1 #
2 # Copyright (C) 2006-2008 OpenWrt.org
3 #
4 # This is free software, licensed under the GNU General Public License v2.
5 # See /LICENSE for more information.
6 #
7 # $Id$
8
9 include $(TOPDIR)/rules.mk
10
11 PKG_NAME:=python
12 PKG_VERSION:=2.5.1
13 PKG_RELEASE:=2
14
15 PKG_SOURCE:=Python-$(PKG_VERSION).tar.bz2
16 PKG_SOURCE_URL:=http://www.python.org/ftp/python/$(PKG_VERSION)/
17 PKG_MD5SUM:=70084ffa561660f07de466c2c8c4842d
18
19 PKG_BUILD_DIR:=$(BUILD_DIR)/Python-$(PKG_VERSION)
20
21 PKG_BUILD_DEPENDS:=python libexpat libopenssl zlib
22
23 include $(INCLUDE_DIR)/package.mk
24 -include $(if $(DUMP),,./python-package.mk)
25
26 define Package/python/Default
27   SUBMENU:=Python
28   SECTION:=lang
29   CATEGORY:=Languages
30   TITLE:=Python 2.5 programming language
31   URL:=http://www.python.org/
32 endef
33
34 define Package/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.
41 endef
42
43 define Package/python
44 $(call Package/python/Default)
45  TITLE+= (full)
46  DEPENDS:= +libpthread +zlib
47  PROVIDES:=python-core
48 endef
49
50 define Package/python/description
51 $(call Package/python/Default/description)
52  .
53  This package contains the full Python install.
54 endef
55
56 define Package/python-mini
57 $(call Package/python/Default)
58  TITLE+= (minimal)
59  DEPENDS:= +libpthread +zlib
60  PROVIDES:=python-core
61 endef
62
63 define Package/python-mini/description
64 $(call Package/python/Default/description)
65  .
66  This package contains only a minimal Python install.
67 endef
68
69 define Package/python-doc
70 $(call Package/python/Default)
71  TITLE:=Python interactive documentation
72  DEPENDS+= python-core
73 endef
74
75 define Package/python-expat
76 $(call Package/python/Default)
77  TITLE:=Python support for expat
78  DEPENDS+= python-core +libexpat
79 endef
80
81 define Package/python-openssl
82 $(call Package/python/Default)
83  TITLE:=Python support for OpenSSL
84  DEPENDS+= python-core +libopenssl
85 endef
86
87
88 PY_DISABLED_MODULES:= \
89         readline _curses _curses_panel _tkinter nis
90
91 MAKE_OPTS:=\
92         $(TARGET_CONFIGURE_OPTS) \
93         PYTHON_DISABLE_MODULES="$(PY_DISABLED_MODULES)" \
94         PYTHON_MODULES_INCLUDE="$(STAGING_DIR)/usr/include" \
95         PYTHON_MODULES_LIB="$(STAGING_DIR)/usr/lib" \
96         CROSS_COMPILE=yes \
97         CFLAGS="$(TARGET_CFLAGS) -fno-inline" \
98         LDFLAGS="$(TARGET_LDFLAGS)" \
99         LD="$(TARGET_CC)" \
100         HOSTPYTHON=./hostpython \
101         HOSTPGEN=./hostpgen
102
103 define Build/Configure
104 endef
105
106 define Build/Compile
107         -$(MAKE) -C $(PKG_BUILD_DIR) distclean
108         (cd $(PKG_BUILD_DIR); \
109                 rm -rf config.cache; \
110                 CONFIG_SITE= \
111                 OPT="$(HOST_CFLAGS)" \
112                 ./configure --without-cxx-main --without-threads; \
113         );
114         $(MAKE) -C $(PKG_BUILD_DIR) python Parser/pgen
115         (cd $(PKG_BUILD_DIR); \
116                 mv python ./hostpython; \
117                 mv Parser/pgen ./hostpgen; \
118         );
119         $(MAKE) -C $(PKG_BUILD_DIR) distclean
120         #echo "readline readline.c -lreadline -lncurses" >> $(PKG_BUILD_DIR)/Modules/Setup.local
121         $(call Build/Configure/Default, \
122                 --sysconfdir=/etc \
123                 --disable-shared \
124                 --disable-ipv6 \
125                 --without-cxx-main \
126                 --with-threads \
127                 ac_cv_lib_readline_readline=no \
128                 HOSTPYTHON=./hostpython \
129                 HOSTPGEN=./hostpgen \
130                 OPT="$(TARGET_CFLAGS)" \
131         )
132         $(MAKE) -C $(PKG_BUILD_DIR) \
133                 $(MAKE_OPTS) \
134                 DESTDIR="$(PKG_INSTALL_DIR)" \
135                 all install
136 endef
137
138 define Build/InstallDev
139         $(INSTALL_DIR) $(1)/mk $(2)/bin $(1)/usr/bin $(1)/usr/include $(1)/usr/lib
140         $(INSTALL_DATA) ./python-package.mk $(1)/mk/
141         $(CP) $(PKG_BUILD_DIR)/hostpython $(1)/usr/bin/
142         ln -sf hostpython $(1)/usr/bin/python
143         ln -sf $(STAGING_DIR)/usr/bin/hostpython $(2)/bin/
144         ln -sf $(STAGING_DIR)/usr/bin/python $(2)/bin/
145         $(CP) \
146                 $(PKG_INSTALL_DIR)/usr/include/python$(PYTHON_VERSION) \
147                 $(1)/usr/include/
148         $(CP) \
149                 $(PKG_INSTALL_DIR)/usr/lib/python$(PYTHON_VERSION) \
150                 $(PKG_BUILD_DIR)/libpython$(PYTHON_VERSION).a \
151                 $(1)/usr/lib/
152 endef
153
154 define PyPackage/python/filespec
155 +|/usr/bin/python$(PYTHON_VERSION)
156 +|/usr/include/python$(PYTHON_VERSION)/pyconfig.h
157 +|/usr/lib/python$(PYTHON_VERSION)
158 -|/usr/lib/python$(PYTHON_VERSION)/bsddb/test
159 -|/usr/lib/python$(PYTHON_VERSION)/config
160 +|/usr/lib/python$(PYTHON_VERSION)/config/Makefile
161 -|/usr/lib/python$(PYTHON_VERSION)/ctypes/test
162 -|/usr/lib/python$(PYTHON_VERSION)/distutils/command/wininst-*.exe
163 -|/usr/lib/python$(PYTHON_VERSION)/distutils/tests
164 -|/usr/lib/python$(PYTHON_VERSION)/email/test
165 -|/usr/lib/python$(PYTHON_VERSION)/idlelib
166 -|/usr/lib/python$(PYTHON_VERSION)/lib-tk
167 -|/usr/lib/python$(PYTHON_VERSION)/sqlite3/test
168 -|/usr/lib/python$(PYTHON_VERSION)/test
169 endef
170
171 define PyPackage/python/install
172         ln -sf python$(PYTHON_VERSION) $(1)/usr/bin/python
173 endef
174
175 define PyPackage/python-mini/filespec
176 +|/usr/bin/python$(PYTHON_VERSION)
177 +|/usr/lib/python$(PYTHON_VERSION)/__future__.py
178 +|/usr/lib/python$(PYTHON_VERSION)/codecs.py
179 +|/usr/lib/python$(PYTHON_VERSION)/compileall.py
180 +|/usr/lib/python$(PYTHON_VERSION)/ConfigParser.py
181 +|/usr/lib/python$(PYTHON_VERSION)/copy.py
182 +|/usr/lib/python$(PYTHON_VERSION)/copy_reg.py
183 +|/usr/lib/python$(PYTHON_VERSION)/dis.py
184 +|/usr/lib/python$(PYTHON_VERSION)/encodings
185 +|/usr/lib/python$(PYTHON_VERSION)/fnmatch.py
186 +|/usr/lib/python$(PYTHON_VERSION)/getopt.py
187 +|/usr/lib/python$(PYTHON_VERSION)/glob.py
188 +|/usr/lib/python$(PYTHON_VERSION)/hashlib.py
189 +|/usr/lib/python$(PYTHON_VERSION)/inspect.py
190 +|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/array.so
191 +|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/binascii.so
192 +|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/cStringIO.so
193 +|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/fcntl.so
194 +|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/grp.so
195 +|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/itertools.so
196 +|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/math.so
197 +|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/operator.so
198 +|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/_random.so
199 +|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/select.so
200 +|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/_socket.so
201 +|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/strop.so
202 +|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/_struct.so
203 +|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/syslog.so
204 +|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/time.so
205 +|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/unicodedata.so
206 +|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/zlib.so
207 +|/usr/lib/python$(PYTHON_VERSION)/linecache.py
208 +|/usr/lib/python$(PYTHON_VERSION)/md5.py
209 +|/usr/lib/python$(PYTHON_VERSION)/opcode.py
210 +|/usr/lib/python$(PYTHON_VERSION)/optparse.py
211 +|/usr/lib/python$(PYTHON_VERSION)/os.py
212 +|/usr/lib/python$(PYTHON_VERSION)/pickle.py
213 +|/usr/lib/python$(PYTHON_VERSION)/pickle.py
214 +|/usr/lib/python$(PYTHON_VERSION)/pkgutil.py
215 +|/usr/lib/python$(PYTHON_VERSION)/popen2.py
216 +|/usr/lib/python$(PYTHON_VERSION)/posixpath.py
217 +|/usr/lib/python$(PYTHON_VERSION)/py_compile.py
218 +|/usr/lib/python$(PYTHON_VERSION)/random.py
219 +|/usr/lib/python$(PYTHON_VERSION)/repr.py
220 +|/usr/lib/python$(PYTHON_VERSION)/re.py
221 +|/usr/lib/python$(PYTHON_VERSION)/sha.py
222 +|/usr/lib/python$(PYTHON_VERSION)/site.py
223 +|/usr/lib/python$(PYTHON_VERSION)/socket.py
224 +|/usr/lib/python$(PYTHON_VERSION)/sre_compile.py
225 +|/usr/lib/python$(PYTHON_VERSION)/sre_constants.py
226 +|/usr/lib/python$(PYTHON_VERSION)/sre_parse.py
227 +|/usr/lib/python$(PYTHON_VERSION)/sre.py
228 +|/usr/lib/python$(PYTHON_VERSION)/stat.py
229 +|/usr/lib/python$(PYTHON_VERSION)/StringIO.py
230 +|/usr/lib/python$(PYTHON_VERSION)/stringprep.py
231 +|/usr/lib/python$(PYTHON_VERSION)/string.py
232 +|/usr/lib/python$(PYTHON_VERSION)/struct.py
233 +|/usr/lib/python$(PYTHON_VERSION)/subprocess.py
234 +|/usr/lib/python$(PYTHON_VERSION)/tempfile.py
235 +|/usr/lib/python$(PYTHON_VERSION)/textwrap.py
236 +|/usr/lib/python$(PYTHON_VERSION)/tokenize.py
237 +|/usr/lib/python$(PYTHON_VERSION)/token.py
238 +|/usr/lib/python$(PYTHON_VERSION)/traceback.py
239 +|/usr/lib/python$(PYTHON_VERSION)/types.py
240 +|/usr/lib/python$(PYTHON_VERSION)/UserDict.py
241 +|/usr/lib/python$(PYTHON_VERSION)/warnings.py
242 endef
243
244 define PyPackage/python-mini/install
245         ln -sf python$(PYTHON_VERSION) $(1)/usr/bin/python
246 endef
247
248 define PyPackage/python-doc/filespec
249 +|/usr/lib/python$(PYTHON_VERSION)/pydoc.py
250 endef
251
252 define PyPackage/python-expat/filespec
253 +|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/pyexpat.so
254 endef
255
256 define PyPackage/python-openssl/filespec
257 +|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/_ssl.so
258 endef
259
260 $(eval $(call PyPackage,python))
261 $(eval $(call PyPackage,python-mini))
262 $(eval $(call PyPackage,python-doc))
263 $(eval $(call PyPackage,python-expat))
264 $(eval $(call PyPackage,python-openssl))
265
266 $(eval $(call BuildPackage,python))
267 $(eval $(call BuildPackage,python-mini))
268 $(eval $(call BuildPackage,python-doc))
269 $(eval $(call BuildPackage,python-expat))
270 $(eval $(call BuildPackage,python-openssl))
271