a2394ca5dc13d40ddd1aaf2f3cf3e7f7e18486dd
[openwrt/svn-archive/archive.git] / lang / python / Makefile
1 #
2 # Copyright (C) 2006-2007 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:=1
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/lib/python$(PYTHON_VERSION)
157 -|/usr/lib/python$(PYTHON_VERSION)/bsddb/test
158 -|/usr/lib/python$(PYTHON_VERSION)/config
159 -|/usr/lib/python$(PYTHON_VERSION)/ctypes/test
160 -|/usr/lib/python$(PYTHON_VERSION)/distutils/command/wininst-*.exe
161 -|/usr/lib/python$(PYTHON_VERSION)/distutils/tests
162 -|/usr/lib/python$(PYTHON_VERSION)/email/test
163 -|/usr/lib/python$(PYTHON_VERSION)/idlelib
164 -|/usr/lib/python$(PYTHON_VERSION)/lib-tk
165 -|/usr/lib/python$(PYTHON_VERSION)/sqlite3/test
166 -|/usr/lib/python$(PYTHON_VERSION)/test
167 endef
168
169 define PyPackage/python/install
170 ln -sf python$(PYTHON_VERSION) $(1)/usr/bin/python
171 endef
172
173 define PyPackage/python-mini/filespec
174 +|/usr/bin/python$(PYTHON_VERSION)
175 +|/usr/lib/python$(PYTHON_VERSION)/__future__.py
176 +|/usr/lib/python$(PYTHON_VERSION)/codecs.py
177 +|/usr/lib/python$(PYTHON_VERSION)/compileall.py
178 +|/usr/lib/python$(PYTHON_VERSION)/ConfigParser.py
179 +|/usr/lib/python$(PYTHON_VERSION)/copy.py
180 +|/usr/lib/python$(PYTHON_VERSION)/copy_reg.py
181 +|/usr/lib/python$(PYTHON_VERSION)/dis.py
182 +|/usr/lib/python$(PYTHON_VERSION)/encodings
183 +|/usr/lib/python$(PYTHON_VERSION)/fnmatch.py
184 +|/usr/lib/python$(PYTHON_VERSION)/getopt.py
185 +|/usr/lib/python$(PYTHON_VERSION)/glob.py
186 +|/usr/lib/python$(PYTHON_VERSION)/hashlib.py
187 +|/usr/lib/python$(PYTHON_VERSION)/inspect.py
188 +|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/array.so
189 +|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/binascii.so
190 +|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/cStringIO.so
191 +|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/fcntl.so
192 +|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/grp.so
193 +|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/itertools.so
194 +|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/math.so
195 +|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/operator.so
196 +|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/_random.so
197 +|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/select.so
198 +|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/_socket.so
199 +|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/strop.so
200 +|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/_struct.so
201 +|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/syslog.so
202 +|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/time.so
203 +|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/unicodedata.so
204 +|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/zlib.so
205 +|/usr/lib/python$(PYTHON_VERSION)/linecache.py
206 +|/usr/lib/python$(PYTHON_VERSION)/md5.py
207 +|/usr/lib/python$(PYTHON_VERSION)/opcode.py
208 +|/usr/lib/python$(PYTHON_VERSION)/optparse.py
209 +|/usr/lib/python$(PYTHON_VERSION)/os.py
210 +|/usr/lib/python$(PYTHON_VERSION)/pickle.py
211 +|/usr/lib/python$(PYTHON_VERSION)/pickle.py
212 +|/usr/lib/python$(PYTHON_VERSION)/pkgutil.py
213 +|/usr/lib/python$(PYTHON_VERSION)/popen2.py
214 +|/usr/lib/python$(PYTHON_VERSION)/posixpath.py
215 +|/usr/lib/python$(PYTHON_VERSION)/py_compile.py
216 +|/usr/lib/python$(PYTHON_VERSION)/random.py
217 +|/usr/lib/python$(PYTHON_VERSION)/repr.py
218 +|/usr/lib/python$(PYTHON_VERSION)/re.py
219 +|/usr/lib/python$(PYTHON_VERSION)/sha.py
220 +|/usr/lib/python$(PYTHON_VERSION)/site.py
221 +|/usr/lib/python$(PYTHON_VERSION)/socket.py
222 +|/usr/lib/python$(PYTHON_VERSION)/sre_compile.py
223 +|/usr/lib/python$(PYTHON_VERSION)/sre_constants.py
224 +|/usr/lib/python$(PYTHON_VERSION)/sre_parse.py
225 +|/usr/lib/python$(PYTHON_VERSION)/sre.py
226 +|/usr/lib/python$(PYTHON_VERSION)/stat.py
227 +|/usr/lib/python$(PYTHON_VERSION)/StringIO.py
228 +|/usr/lib/python$(PYTHON_VERSION)/stringprep.py
229 +|/usr/lib/python$(PYTHON_VERSION)/string.py
230 +|/usr/lib/python$(PYTHON_VERSION)/struct.py
231 +|/usr/lib/python$(PYTHON_VERSION)/subprocess.py
232 +|/usr/lib/python$(PYTHON_VERSION)/tempfile.py
233 +|/usr/lib/python$(PYTHON_VERSION)/textwrap.py
234 +|/usr/lib/python$(PYTHON_VERSION)/tokenize.py
235 +|/usr/lib/python$(PYTHON_VERSION)/token.py
236 +|/usr/lib/python$(PYTHON_VERSION)/traceback.py
237 +|/usr/lib/python$(PYTHON_VERSION)/types.py
238 +|/usr/lib/python$(PYTHON_VERSION)/UserDict.py
239 +|/usr/lib/python$(PYTHON_VERSION)/warnings.py
240 endef
241
242 define PyPackage/python-mini/install
243 ln -sf python$(PYTHON_VERSION) $(1)/usr/bin/python
244 endef
245
246 define PyPackage/python-pydoc/filespec
247 +|/usr/lib/python$(PYTHON_VERSION)/pydoc.py
248 endef
249
250 define PyPackage/python-expat/filespec
251 +|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/pyexpat.so
252 endef
253
254 define PyPackage/python-openssl/filespec
255 +|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/_ssl.so
256 endef
257
258 $(eval $(call PyPackage,python))
259 $(eval $(call PyPackage,python-mini))
260 $(eval $(call PyPackage,python-doc))
261 $(eval $(call PyPackage,python-expat))
262 $(eval $(call PyPackage,python-openssl))
263
264 $(eval $(call BuildPackage,python))
265 $(eval $(call BuildPackage,python-mini))
266 $(eval $(call BuildPackage,python-doc))
267 $(eval $(call BuildPackage,python-expat))
268 $(eval $(call BuildPackage,python-openssl))
269