2 # Copyright (C) 2006-2008 OpenWrt.org
4 # This is free software, licensed under the GNU General Public License v2.
5 # See /LICENSE for more information.
9 include $(TOPDIR)/rules.mk
15 PKG_SOURCE:=Python-$(PKG_VERSION).tar.bz2
16 PKG_SOURCE_URL:=http://www.python.org/ftp/python/$(PKG_VERSION)/
17 PKG_MD5SUM:=70084ffa561660f07de466c2c8c4842d
19 PKG_BUILD_DIR:=$(BUILD_DIR)/Python-$(PKG_VERSION)
21 PKG_BUILD_DEPENDS:=python libexpat libopenssl zlib
23 include $(INCLUDE_DIR)/package.mk
24 -include $(if $(DUMP),,./python-package.mk)
26 define Package/python/Default
30 TITLE:=Python 2.5 programming language
31 URL:=http://www.python.org/
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.
44 $(call Package/python/Default)
46 DEPENDS:= +libpthread +zlib
50 define Package/python/description
51 $(call Package/python/Default/description)
53 This package contains the full Python install.
56 define Package/python-mini
57 $(call Package/python/Default)
59 DEPENDS:= +libpthread +zlib
63 define Package/python-mini/description
64 $(call Package/python/Default/description)
66 This package contains only a minimal Python install.
69 define Package/python-doc
70 $(call Package/python/Default)
71 TITLE:=Python interactive documentation
75 define Package/python-expat
76 $(call Package/python/Default)
77 TITLE:=Python support for expat
78 DEPENDS+= python-core +libexpat
81 define Package/python-openssl
82 $(call Package/python/Default)
83 TITLE:=Python support for OpenSSL
84 DEPENDS+= python-core +libopenssl
88 PY_DISABLED_MODULES:= \
89 readline _curses _curses_panel _tkinter nis
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" \
97 CFLAGS="$(TARGET_CFLAGS) -fno-inline" \
98 LDFLAGS="$(TARGET_LDFLAGS)" \
100 HOSTPYTHON=./hostpython \
103 define Build/Configure
107 -$(MAKE) -C $(PKG_BUILD_DIR) distclean
108 (cd $(PKG_BUILD_DIR); \
109 rm -rf config.cache; \
111 OPT="$(HOST_CFLAGS)" \
112 ./configure --without-cxx-main --without-threads; \
114 $(MAKE) -C $(PKG_BUILD_DIR) python Parser/pgen
115 (cd $(PKG_BUILD_DIR); \
116 mv python ./hostpython; \
117 mv Parser/pgen ./hostpgen; \
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, \
127 ac_cv_lib_readline_readline=no \
128 HOSTPYTHON=./hostpython \
129 HOSTPGEN=./hostpgen \
130 OPT="$(TARGET_CFLAGS)" \
132 $(MAKE) -C $(PKG_BUILD_DIR) \
134 DESTDIR="$(PKG_INSTALL_DIR)" \
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/
146 $(PKG_INSTALL_DIR)/usr/include/python$(PYTHON_VERSION) \
149 $(PKG_INSTALL_DIR)/usr/lib/python$(PYTHON_VERSION) \
150 $(PKG_BUILD_DIR)/libpython$(PYTHON_VERSION).a \
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
171 define PyPackage/python/install
172 ln -sf python$(PYTHON_VERSION) $(1)/usr/bin/python
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
244 define PyPackage/python-mini/install
245 ln -sf python$(PYTHON_VERSION) $(1)/usr/bin/python
248 define PyPackage/python-doc/filespec
249 +|/usr/lib/python$(PYTHON_VERSION)/pydoc.py
252 define PyPackage/python-expat/filespec
253 +|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/pyexpat.so
256 define PyPackage/python-openssl/filespec
257 +|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/_ssl.so
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))
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))