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