PageRenderTime 54ms CodeModel.GetById 14ms RepoModel.GetById 1ms app.codeStats 0ms

/external/Makefile

https://github.com/TopographicaSVN/TopographicaSVN
Makefile | 1243 lines | 710 code | 313 blank | 220 comment | 2 complexity | 6bd6bfa3032feefe69f12e86e1f19ad3 MD5 | raw file
Possible License(s): BSD-3-Clause
  1. PREFIX = ${dir ${CURDIR}}
  2. CC = gcc
  3. default: gui-skip platform-skip python jpeg pil numpy matplotlib weave pychecker common pylint epydoc docutils ipython gmpy pyflakes
  4. # avoid building some things on some platforms
  5. # uses touch -a to avoid changing modification dates
  6. platform-skip:
  7. ifeq ("$(shell uname -s)","Darwin")
  8. touch -a tcl
  9. touch -a tk
  10. # CEBALERT: doesn't stop readline building on mac!
  11. touch -a readline
  12. endif
  13. gui-skip:
  14. ifeq (${GUI},0)
  15. touch -a tcl
  16. touch -a tk
  17. endif
  18. all: default pyaudiolab mlabwrap scipy ipython pyrex pytables psyco gnuplotpy
  19. dist: bluesphere
  20. clean: python-clean jpeg-clean pil-clean numpy-clean tk-clean tcl-clean matplotlib-clean weave-clean pychecker-clean common-clean pylint-clean epydoc-clean docutils-clean scipy-clean mlabwrap-clean ipython-clean libsndfile-clean pyaudiolab-clean psyco-clean pyrex-clean hdf5-clean pytables-clean gnuplotpy-clean bluesphere-clean player-clean progressbar-clean stage-clean gmp-clean mxnumber-clean gmpy-clean svn2cl-clean readline-clean termcap-clean guppy-clean pyopenssl-clean foolscap-clean zope_interface-clean twisted-clean mpi4py-clean openmpi-clean pyflakes-clean setuptools-clean freetype-clean libpng-clean zlib-clean m4-clean
  21. uninstall: python-uninstall jpeg-uninstall pil-uninstall numpy-uninstall tk-uninstall tcl-uninstall matplotlib-uninstall weave-uninstall pychecker-uninstall common-uninstall pylint-uninstall epydoc-uninstall docutils-uninstall scipy-uninstall mlabwrap-uninstall ipython-uninstall libsndfile-uninstall pyaudiolab-uninstall psyco-uninstall pyrex-uninstall hdf5-uninstall pytables-uninstall gnuplotpy-uninstall player-uninstall progressbar-uninstall stage-uninstall gmp-uninstall mxnumber-uninstall gmpy-uninstall svn2cl-uninstall readline-uninstall termcap-uninstall guppy-uninstall pyopenssl-uninstall foolscap-uninstall zope_interface-uninstall twisted-uninstall mpi4py-uninstall openmpi-uninstall pyflakes-clean setuptools-clean freetype-uninstall libpng-uninstall zlib-uninstall m4-uninstall
  22. #####
  23. # CEB: hack apparently necessary to avoid occasional and mysterious
  24. # "broken pipes" on buildbot
  25. %.tar.gz_extract: %.tar.gz
  26. cp $< $<_tmp.tar.gz
  27. gunzip $<_tmp.tar.gz
  28. tar -xf $<_tmp.tar
  29. rm -f $<_tmp.tar
  30. %.tgz_extract: %.tgz
  31. cp $< $<_tmp.tgz
  32. gunzip -f $<_tmp.tgz
  33. tar -xf $<_tmp.tar
  34. rm -f $<_tmp.tar
  35. #####
  36. ##############################################################
  37. # Python (interpreted language)
  38. #
  39. PYTHON2 = Python-2.6.4
  40. PYTHON2_LIB = lib/python2.6
  41. PYTHON2_INC = include/python2.6
  42. PYTHON2_CONF = lib/python2.6/config
  43. PYTHON2_UNINSTALL += bin/idle bin/python bin/pydoc bin/python2.6
  44. PYTHON2_UNINSTALL += ${PYTHON2_LIB} man/man1/python.1 include/python2.6
  45. # LDFLAGS sets ${PREFIX}/lib as the LD_LIBRARY in the binary
  46. # CB: rpath is ignored on OS X (so where are the library files taken from?).
  47. python: ${PYTHON2}.tgz tk readline zlib
  48. echo ${PREFIX}
  49. tar -xzf ${PYTHON2}.tgz
  50. # Configure for specific operating system versions
  51. ifeq ("$(shell uname -s)","Darwin")
  52. ifeq ("$(shell uname -r | cut -d . -f 1)","9") # Darwin 9.x == Mac OS X 10.5 (Leopard)
  53. patch -p0 < Python_OSX_tk.diff # build python with tcl/tk from /Library/Frameworks
  54. cd ${PYTHON2}; ./configure --prefix=${PREFIX} MACOSX_DEPLOYMENT_TARGET=10.5
  55. else
  56. ifeq ("$(shell uname -r | cut -d . -f 1)","10") # Darwin 10.x == Mac OS X 10.6 (Snow Leopard)
  57. cd ${PYTHON2}; ./configure --prefix=${PREFIX} MACOSX_DEPLOYMENT_TARGET=10.6
  58. else # Darwin pre 9
  59. patch -p0 < Python_OSX_tk.diff # build python with tcl/tk from /Library/Frameworks
  60. cd ${PYTHON2}; ./configure --prefix=${PREFIX}
  61. endif
  62. endif
  63. else # linux
  64. cd ${PYTHON2}; ./configure --prefix=${PREFIX} LDFLAGS=-Wl,-rpath,${PREFIX}/lib
  65. endif
  66. cd ${PYTHON2}; env PREFIX=${PREFIX} make EXTRA_CFLAGS=-I${PREFIX}/include
  67. cd ${PYTHON2}; env PREFIX=${PREFIX} make install
  68. touch python
  69. python-clean:
  70. rm -rf ${PYTHON2} Python-2.4*/ Python-2.5*/
  71. python-uninstall:
  72. rm -rf python ${foreach f,${PYTHON2_UNINSTALL}, ${PREFIX}/${f}} Python-2.4*/ Python-2.5*/
  73. ##############################################################
  74. # Tcl (required by Tk GUI toolkit)
  75. #
  76. TCL = tcl8.5.10
  77. TCL_UNINSTALL += bin/tclsh8.5 bin/wish8.5 lib/tclConfig.sh
  78. TCL_UNINSTALL += lib/tcl8.5 lib.tclConfig.sh lib/libtcl8.5.so lib/libtclstub8.5.a
  79. TCL_UNINSTALL += include/tcl*.h man/man*
  80. tcl: ${TCL}-src.tar.gz
  81. tar -xzf ${TCL}-src.tar.gz
  82. cd ${TCL}/unix; ./configure --prefix=${PREFIX}
  83. make -C ${TCL}/unix install
  84. touch tcl
  85. tcl-clean:
  86. rm -rf ${TCL} tcl8*/
  87. tcl-uninstall:
  88. rm -rf tcl ${foreach f,${TCL_UNINSTALL}, ${PREFIX}/${f}} tcl8*/
  89. ##############################################################
  90. # Tk (GUI toolkit)
  91. #
  92. TK = tk8.5.5
  93. TK_UNINSTALL += lib/tk8.5 lib/libtk8.5.so lib/libtkstub8.5.a
  94. TK_UNINSTALL += include/tk*.h lib/tkConfig.sh
  95. tk: ${TK}-src.tar.gz tcl
  96. tar -xzf ${TK}-src.tar.gz
  97. cd ${TK}/unix; ./configure --prefix=${PREFIX} --enable-xft
  98. make -C ${TK}/unix install
  99. touch tk
  100. tk-clean:
  101. rm -rf ${TK} tk8*/
  102. tk-uninstall:
  103. rm -rf tk ${foreach f,${TK_UNINSTALL}, ${PREFIX}/${f}} tk8*/
  104. ##############################################################
  105. # ipython (improved interactive prompt)
  106. #
  107. IPYTHON = ipython-0.10
  108. IPYTHON_UNINSTALL = ${PYTHON_LIB}/site-packages/IPython
  109. ipython: ${IPYTHON}.tar.gz python
  110. tar -xzf ${IPYTHON}.tar.gz
  111. cd ${IPYTHON}; ${PREFIX}/bin/python setup.py install
  112. touch ipython
  113. ipython-clean:
  114. rm -rf ${IPYTHON}
  115. ipython-uninstall:
  116. rm -rf ipython ${IPYTHON} $(foreach f, ${IPYTHON_UNINSTALL}, ${PREFIX}/${f})
  117. #############################################################
  118. # freetype
  119. FREETYPE = freetype-2.3.9
  120. # CEBALERT: stuff missing, probably
  121. FREETYPE_UNINSTALL += lib/libfreetype.*
  122. freetype: ${FREETYPE}.tar.gz
  123. tar -xzf ${FREETYPE}.tar.gz
  124. cd ${FREETYPE}; ./configure --prefix=${PREFIX}
  125. make -C ${FREETYPE}
  126. make -C ${FREETYPE} install
  127. touch freetype
  128. freetype-clean:
  129. rm -rf ${FREETYPE}
  130. freetype-uninstall:
  131. rm -rf freetype $(foreach f, ${FREETYPE_UNINSTALL}, ${PREFIX}/${f})
  132. #############################################################
  133. # zlib (dependency of libpng)
  134. ZLIB = zlib-1.2.5
  135. ZLIB_UNINSTALL += lib/libz*
  136. ZLIB_UNINSTALL += share/man/man3/zlib*
  137. ZLIB_UNINSTALL += lib/pkgconfig/zlib*
  138. ZLIB_UNINSTALL += include/zlib*
  139. zlib: ${ZLIB}.tar.gz
  140. tar -xzf ${ZLIB}.tar.gz
  141. cd ${ZLIB}; ./configure --prefix=${PREFIX}
  142. make -C ${ZLIB} install
  143. touch zlib
  144. zlib-clean:
  145. rm -rf ${ZLIB}
  146. zlib-uninstall:
  147. rm -rf zlib $(foreach f, ${ZLIB_UNINSTALL}, ${PREFIX}/${f})
  148. #############################################################
  149. # libpng
  150. LIBPNG = libpng-1.2.40
  151. LIBPNG_UNINSTALL += lib/libpng*
  152. LIBPNG_UNINSTALL += include/libpng*
  153. LIBPNG_UNINSTALL += include/png*
  154. LIBPNG_UNINSTALL += share/man/man5/png*
  155. LIBPNG_UNINSTALL += lib/pkgconfig/libpng*
  156. libpng: ${LIBPNG}.tar.gz zlib
  157. tar -xzf ${LIBPNG}.tar.gz
  158. cd ${LIBPNG}; env CFLAGS="-I${PREFIX}/include" LDFLAGS="-L${PREFIX}/lib" ./configure --prefix=${PREFIX} --includedir=${PREFIX}/include --libdir=${PREFIX}/lib
  159. make -C ${LIBPNG}
  160. make -C ${LIBPNG} install
  161. touch libpng
  162. libpng-clean:
  163. rm -rf ${LIBPNG}
  164. libpng-uninstall:
  165. rm -rf libpng $(foreach f, ${LIBPNG_UNINSTALL}, ${PREFIX}/${f})
  166. #############################################################
  167. # jpeg (JPEG image library)
  168. JPEG = jpeg-6b
  169. JPEG_UNINSTALL += bin/cjpeg bin/djpeg bin/jpegtran bin/rdjpgcom bin/wrjpgcom
  170. JPEG_UNINSTALL += lib/libjpeg.*
  171. JPEG_UNINSTALL += man/man1/cjpeg.1 man/man1/djpeg.1 man/man1/jpegtran.1
  172. JPEG_UNINSTALL += man/man1/rdjpgcom.1 man/man1/wrjpgcom.1
  173. JPEG_UNINSTALL += include/jconfig.h include/jerror.h include/jmorecfg.h include/jpeglib.h
  174. jpeg: ${JPEG}.tgz
  175. tar -xzf ${JPEG}.tgz
  176. # CEBALERT: for mac!
  177. mkdir -p ${PREFIX}/man
  178. mkdir -p ${PREFIX}/man/man1
  179. cd ${JPEG}; ./configure --prefix=${PREFIX} --enable-shared --enable-static
  180. make -C ${JPEG}
  181. make -C ${JPEG} test
  182. make -C ${JPEG} install
  183. touch jpeg
  184. jpeg-clean:
  185. rm -rf ${JPEG}
  186. jpeg-uninstall:
  187. rm -rf jpeg $(foreach f, ${JPEG_UNINSTALL}, ${PREFIX}/${f})
  188. ##############################################################
  189. # PIL (bitmap image library)
  190. #
  191. PIL = Imaging-1.1.6
  192. PIL_UNINSTALL = ${PYTHON_LIB}/site-packages/PIL
  193. pil: ${PIL}.tgz jpeg python
  194. tar -xzf ${PIL}.tgz
  195. # cd ${PIL}/libImaging; ./configure --prefix=${PREFIX} --with-jpeg=${PREFIX}/lib
  196. # make -C ${PIL}/libImaging
  197. #
  198. # Apply OS-specific patches:
  199. ifeq ("$(shell uname -m)","x86_64")
  200. # CEBALERT: patch below might no longer be necessary, now we include zlib
  201. # # Tell 64-bit Linux machines where to find zlib, to prevent "encoder zip not available" problems
  202. cd ${PIL}; patch < ../Imaging.diff
  203. endif
  204. # On Mac, PIL inserts mac-specific locations before user-specified
  205. # ones (surely a bug) no matter what you try to do ...except hack the
  206. # setup.py script.
  207. ifeq ("$(shell uname -s)","Darwin")
  208. cd ${PIL}; cp setup.py setup.py~; sed s^'join(prefix, "lib"))'^'join(prefix, "lib"),where=0)'^ setup.py~ > setup.py
  209. cd ${PIL}; cp setup.py setup.py~; sed s^'join(prefix, "include"))'^'join(prefix, "include"),where=0)'^ setup.py~ > setup.py
  210. endif
  211. cd ${PIL}; env PREFIX=${PREFIX} LD_LIBRARY_PATH=${PREFIX}/lib ${PREFIX}/bin/python setup.py build_ext -i
  212. cd ${PIL}; env PREFIX=${PREFIX} LD_LIBRARY_PATH=${PREFIX}/lib ${PREFIX}/bin/python selftest.py
  213. cd ${PIL}; env PREFIX=${PREFIX} LD_LIBRARY_PATH=${PREFIX}/lib ${PREFIX}/bin/python setup.py install
  214. touch pil
  215. pil-clean:
  216. rm -rf ${PIL}
  217. pil-uninstall:
  218. rm -rf pil $(foreach f, ${PIL_UNINSTALL}, ${PREFIX}/${f})
  219. ##############################################################
  220. # numpy (matrix library)
  221. #
  222. NUMPY = numpy-1.3.0
  223. NUMPY_UNINSTALL = ${PYTHON_LIB}/site-packages/numpy
  224. numpy: ${NUMPY}.tar.gz python
  225. tar -xzf ${NUMPY}.tar.gz
  226. cd ${NUMPY}; ${PREFIX}/bin/python setup.py install
  227. touch numpy
  228. numpy-clean:
  229. rm -rf ${NUMPY}
  230. numpy-uninstall:
  231. rm -rf numpy $(foreach f, ${NUMPY_UNINSTALL}, ${PREFIX}/${f})
  232. ##############################################################
  233. # MatPlotLib (plotting library)
  234. #
  235. MATPLOTLIB = matplotlib-0.99.1.1
  236. MATPLOTLIB_UNINSTALL = ${PYTHON_LIB}/site-packages/matplotlib
  237. # Workaround to allow MATPLOTLIB to compile on a remote session.
  238. #
  239. # Forces the DISPLAY variable to be set, if only to a guess at the
  240. # correct value. If DISPLAY is set incorrectly, matplotlib may not be
  241. # able to find the right Tcl/Tk libraries.
  242. ifeq ($(strip $(DISPLAY)),)
  243. MATPLOTLIB_DISPLAY="DISPLAY=:0"
  244. else
  245. MATPLOTLIB_DISPLAY=
  246. endif
  247. matplotlib: ${MATPLOTLIB}.tar.gz python freetype libpng
  248. make ${MATPLOTLIB}.tar.gz_extract
  249. # tar -xzf ${MATPLOTLIB}.tar.gz
  250. # mistakenly included in matplotlib distribution?
  251. # http://thread.gmane.org/gmane.comp.python.matplotlib.devel/7737
  252. cd ${MATPLOTLIB}; rm setup.cfg
  253. # use env vars because mpl somehow doesn't pass through I and L properly
  254. cd ${MATPLOTLIB}; env LDFLAGS="-L${PREFIX}/lib" CFLAGS="-I${PREFIX}/include -I${PREFIX}/include/freetype2 -I${PREFIX}/include/libpng12" ${PREFIX}/bin/python setup.py build_ext -L${PREFIX}/lib/
  255. cd ${MATPLOTLIB}; env PREFIX=${PREFIX} LD_LIBRARY_PATH=${PREFIX}/lib ${MATPLOTLIB_DISPLAY} ${PREFIX}/bin/python setup.py build
  256. cd ${MATPLOTLIB}; env PREFIX=${PREFIX} LD_LIBRARY_PATH=${PREFIX}/lib ${MATPLOTLIB_DISPLAY} ${PREFIX}/bin/python setup.py install
  257. touch matplotlib
  258. matplotlib-clean:
  259. rm -rf ${MATPLOTLIB} matplotlib-0.90*/
  260. matplotlib-uninstall:
  261. rm -rf matplotlib ${MATPLOTLIB} $(foreach f, ${MATPLOTLIB_UNINSTALL}, ${PREFIX}/${f}) matplotlib-0.90*/
  262. ##############################################################
  263. # Weave (on its own apart from Scipy)
  264. #
  265. WEAVE = scipy-0.7.1
  266. WEAVE_UNINSTALL = ${PYTHON_LIB}/site-packages/weave external/weave
  267. # Forces removal of weave version used with Numeric
  268. weave: ${WEAVE}.tar.gz python
  269. rm -rf Scipy_core-0.3.0_108.1820
  270. rm -f ${PYTHON_LIB}/site-packages/weave external/weave
  271. tar -xzf ${WEAVE}.tar.gz
  272. # we make weave not depend on scipy
  273. patch -p0 < weave.diff
  274. # CEBALERT: Remove next time scipy is updated
  275. # http://projects.scipy.org/scipy/ticket/855
  276. patch -p0 < weave_keyerror.patch
  277. cp ${WEAVE}/scipy/io/dumb_shelve.py ${WEAVE}/scipy/weave/
  278. cp ${WEAVE}/scipy/io/dumbdbm_patched.py ${WEAVE}/scipy/weave
  279. cd ${WEAVE}/scipy/weave/; env PREFIX=${PREFIX} LD_LIBRARY_PATH=${PREFIX}/lib ${PREFIX}/bin/python setup.py install
  280. touch weave
  281. weave-clean:
  282. rm -rf ${WEAVE} weave-3852
  283. weave-uninstall:
  284. rm -rf weave ${WEAVE} $(foreach f, ${WEAVE_UNINSTALL}, ${PREFIX}/${f}) weave-3852
  285. ##############################################################
  286. # Scipy
  287. #
  288. SCIPY = scipy-0.7.1
  289. SCIPY_UNINSTALL = ${PYTHON_LIB}/site-packages/scipy external/scipy
  290. # Forces removal of scipy version used with Numeric
  291. scipy: ${SCIPY}.tar.gz python
  292. rm -f ${PYTHON_LIB}/site-packages/scipy external/scipy
  293. tar -xzf ${SCIPY}.tar.gz
  294. cp scipy-site.cfg ${SCIPY}/site.cfg
  295. cd ${SCIPY}; env PREFIX=${PREFIX} LD_LIBRARY_PATH=${PREFIX}/lib ${PREFIX}/bin/python setup.py install
  296. touch scipy
  297. scipy-clean:
  298. rm -rf ${SCIPY}
  299. scipy-uninstall:
  300. rm -rf scipy ${SCIPY} $(foreach f, ${SCIPY_UNINSTALL}, ${PREFIX}/${f})
  301. ##############################################################
  302. # Fixed-Point package
  303. #
  304. # We no longer build fixedpoint because it's included in topo as
  305. # topo/misc/fixedpoint.py. This section shows how we generate
  306. # fixedpoint.py by patching the original fixedpoint.py to support
  307. # pickling.
  308. #
  309. #
  310. FIXEDPT = fixedpoint-0.1.2
  311. FIXEDPT_UNINSTALL = ${PYTHON_LIB}/site-packages
  312. fixedpoint: ${FIXEDPT}.tgz python fixedpoint.diff fixedpoint_setup.py
  313. rm -rf ${FIXEDPT}
  314. tar -xzf ${FIXEDPT}.tgz
  315. mv fixedpoint ${FIXEDPT}
  316. cp fixedpoint.diff ${FIXEDPT}
  317. cp fixedpoint_setup.py ${FIXEDPT}/setup.py
  318. cd ${FIXEDPT}; patch < fixedpoint.diff; env PREFIX=${PREFIX} LD_LIBRARY_PATH=${PREFIX}/lib ${PREFIX}/bin/python setup.py install
  319. touch fixedpoint
  320. fixedpoint-clean:
  321. rm -rf ${FIXEDPT}
  322. fixedpoint-uninstall:
  323. rm -rf fixedpoint ${FIXEDPT} ${FIXEDPT_UNINSTALL}/fixedpoint*
  324. ##############################################################
  325. # pyflakes (optional source code checker)
  326. #
  327. PYFLAKES = PyFlakes-divmod_r17780
  328. PYFLAKES_UNINSTALL = ${PYTHON_LIB}/site-packages/pyflakes*
  329. PYFLAKES_UNINSTALL = ${PREFIX}/bin/pyflakes
  330. pyflakes: ${PYFLAKES}.tar.gz python
  331. tar -xzf ${PYFLAKES}.tar.gz
  332. cd ${PYFLAKES}; ${PREFIX}/bin/python setup.py install
  333. touch pyflakes
  334. pyflakes-clean:
  335. rm -rf ${PYFLAKES}
  336. pyflakes-uninstall:
  337. rm -rf pyflakes ${PYFLAKES} $(foreach f, ${PYFLAKES_UNINSTALL}, ${PREFIX}/${f})
  338. ##############################################################
  339. # pychecker (optional source code checker)
  340. #
  341. PYCHECKER = pychecker-0.8.18-CVS-200712061936
  342. PYCHECKER_UNINSTALL = ${PYTHON_LIB}/site-packages/pychecker
  343. pychecker: ${PYCHECKER}.tar.gz python
  344. tar -xzf ${PYCHECKER}.tar.gz
  345. cd ${PYCHECKER}; env PREFIX=${PREFIX} LD_LIBRARY_PATH=${PREFIX}/lib ${PREFIX}/bin/python setup.py install
  346. touch pychecker
  347. pychecker-clean:
  348. rm -rf ${PYCHECKER}
  349. pychecker-uninstall:
  350. rm -rf pychecker ${PYCHECKER} $(foreach f, ${PYCHECKER_UNINSTALL}, ${PREFIX}/${f})
  351. ##############################################################
  352. # logilab common files, required for pylint (but should be
  353. # removed if pylint is removed)
  354. #
  355. COMMON = logilab-common-0.41.0
  356. COMMON_UNINSTALL = ${PYTHON_LIB}/site-packages/logilab/common
  357. common: ${COMMON}.tar.gz python
  358. tar -xzf ${COMMON}.tar.gz
  359. cd ${COMMON}; env PREFIX=${PREFIX} LD_LIBRARY_PATH=${PREFIX}/lib ${PREFIX}/bin/python setup.py install
  360. touch common
  361. common-clean:
  362. rm -rf ${COMMON}
  363. common-uninstall:
  364. rm -rf common ${COMMON} $(foreach f, ${COMMON_UNINSTALL}, ${PREFIX}/${f})
  365. ################################################################
  366. # logilab astng, required for pylint (but should be
  367. # removed if pylint is removed)
  368. ASTNG = logilab-astng-0.19.0
  369. ASTNG_UNINSTALL = ${PYTHON_LIB}/site-packages/logilab/astng
  370. astng: ${ASTNG}.tar.gz python
  371. tar -xzf ${ASTNG}.tar.gz
  372. cd ${ASTNG}; env PREFIX=${PREFIX} LD_LIBRARY_PATH=${PREFIX}/lib ${PREFIX}/bin/python setup.py install
  373. touch astng
  374. astng-clean:
  375. rm -rf ${ASTNG} logilab-astng-0.*/
  376. astng-uninstall:
  377. rm -rf astng ${ASTNG} $(foreach f, ${ASTNG_UNINSTALL}, ${PREFIX}/${f}) logilab-astng-0.*/
  378. ##############################################################
  379. # pylint (optional source-code checker)
  380. #
  381. PYLINT = pylint-0.18.0
  382. PYLINT_UNINSTALL = ${PYTHON_LIB}/site-packages/pylint
  383. pylint: ${PYLINT}.tar.gz python common astng
  384. tar -xzf ${PYLINT}.tar.gz
  385. cd ${PYLINT}; env PREFIX=${PREFIX} LD_LIBRARY_PATH=${PREFIX}/lib ${PREFIX}/bin/python setup.py install
  386. touch pylint
  387. pylint-clean: astng-clean common-clean
  388. rm -rf ${PYLINT} pylint-0.*/
  389. pylint-uninstall: astng-uninstall common-uninstall
  390. rm -rf pylint ${PYLINT} $(foreach f, ${PYLINT_UNINSTALL}, ${PREFIX}/${f}) pylint-0.*/
  391. ##############################################################
  392. # epydoc (Automatic Reference_Manual generator)
  393. #
  394. EPYDOC3 = epydoc-3.0.1
  395. EPYDOC3_UNINSTALL = ${PYTHON_LIB}/site-packages/epydoc
  396. epydoc: ${EPYDOC3}.tar.gz python
  397. tar -xzf ${EPYDOC3}.tar.gz
  398. cd ${EPYDOC3}; cd epydoc ; patch -p0 < ../../epydoc.diff; cd .. ; ${PREFIX}/bin/python setup.py install
  399. touch epydoc
  400. epydoc-clean:
  401. rm -rf ${EPYDOC3}
  402. epydoc-uninstall:
  403. rm -rf epydoc ${EPYDOC3} $(foreach f, ${EPYDOC3_UNINSTALL}, ${PREFIX}/${f})
  404. ##############################################################
  405. # docutils (used by epydoc)
  406. #
  407. DOCUTILS = docutils-0.4
  408. DOCUTILS_UNINSTALL = ${PYTHON_LIB}/site-packages/docutils
  409. docutils: ${DOCUTILS}.tar.gz python
  410. tar -xzf ${DOCUTILS}.tar.gz
  411. cd ${DOCUTILS}; ${PREFIX}/bin/python setup.py install
  412. touch docutils
  413. docutils-clean:
  414. rm -rf ${DOCUTILS}
  415. docutils-uninstall:
  416. rm -rf docutils ${DOCUTILS} $(foreach f, ${DOCUTILS_UNINSTALL}, ${PREFIX}/${f})
  417. ##############################################################
  418. # libsndfile (used by pyaudiolab)
  419. #
  420. LIBSNDFILE = libsndfile-1.0.24
  421. LIBSNDFILE_UNINSTALL += bin/sndfile-*
  422. LIBSNDFILE_UNINSTALL += lib/libsndfile.*
  423. libsndfile: ${LIBSNDFILE}.tar.gz
  424. tar -xzf ${LIBSNDFILE}.tar.gz
  425. cd ${LIBSNDFILE}; ./configure --prefix=${PREFIX}
  426. cd ${LIBSNDFILE}; make
  427. cd ${LIBSNDFILE}; make install
  428. touch libsndfile
  429. libsndfile-clean:
  430. rm -rf ${LIBSNDFILE}
  431. libsndfile-uninstall:
  432. rm -rf libsndfile ${foreach f,${LIBSNDFILE_UNINSTALL}, ${PREFIX}/${f}}
  433. ##############################################################
  434. # setuptools (required by audiolab)
  435. #
  436. SETUPTOOLS = setuptools-0.6c11
  437. SETUPTOOLS_UNINSTALL = ${PYTHON_LIB}/site-packages/setuptools*
  438. setuptools: ${SETUPTOOLS}.tar.gz python
  439. tar -xzf ${SETUPTOOLS}.tar.gz
  440. cd ${SETUPTOOLS}; ${PREFIX}/bin/python setup.py install
  441. touch setuptools
  442. setuptools-clean:
  443. rm -rf ${SETUPTOOLS}
  444. setuptools-uninstall:
  445. rm -rf setuptools ${SETUPTOOLS} $(foreach f, ${SETUPTOOLS_UNINSTALL}, ${PREFIX}/${f})
  446. ##############################################################
  447. # pyaudiolab (sound file reading)
  448. #
  449. # optionally sudo apt-get install libasound2-dev
  450. # (or for Mac, get the CoreAudio framework from Apple)
  451. PYAUDIOLAB = scikits.audiolab-0.11.0
  452. PYAUDIOLAB_UNINSTALL = ${PYTHON_LIB}/site-packages/scikits.audiolab*egg
  453. pyaudiolab: ${PYAUDIOLAB}.tar.gz python libsndfile setuptools
  454. tar -xzf ${PYAUDIOLAB}.tar.gz
  455. cd ${PYAUDIOLAB}; env PREFIX=${PREFIX} LD_LIBRARY_PATH=${PREFIX}/lib ${PREFIX}/bin/python setup.py install
  456. touch pyaudiolab
  457. pyaudiolab-clean:
  458. rm -rf ${PYAUDIOLAB}
  459. pyaudiolab-uninstall:
  460. rm -rf pyaudiolab ${PYAUDIOLAB} $(foreach f, ${PYAUDIOLAB_UNINSTALL}, ${PREFIX}/${f})
  461. ##############################################################
  462. # mlabwrap (high level python to matlab bridge)
  463. #
  464. MLABWRAP = mlabwrap-1.0
  465. MLABWRAP_UNINSTALL = ${PYTHON_LIB}/site-packages/mlabwrap.py*
  466. MLABWRAP_UNINSTALL += ${PYTHON_LIB}/site-packages/mlabrawmodule.so
  467. mlabwrap: ${MLABWRAP}.tar.gz python
  468. tar -xzf ${MLABWRAP}.tar.gz
  469. cd ${MLABWRAP}; ${PREFIX}/bin/python setup.py install
  470. touch mlabwrap
  471. mlabwrap-clean:
  472. rm -rf ${MLABWRAP}
  473. mlabwrap-uninstall:
  474. rm -rf mlabwrap ${MLABWRAP} $(foreach f, ${MLABWRAP_UNINSTALL}, ${PREFIX}/${f})
  475. ##############################################################
  476. # PSYCO
  477. #
  478. PSYCO = psyco-dist
  479. PSYCO_UNINSTALL += ${PYTHON_LIB}/site-packages/psyco
  480. psyco: ${PSYCO}-svn56930.tar.gz python
  481. tar -xzf ${PSYCO}-svn56930.tar.gz
  482. cd ${PSYCO}; ${PREFIX}/bin/python setup.py install
  483. touch psyco
  484. psyco-clean:
  485. rm -rf ${PSYCO}
  486. psyco-uninstall:
  487. rm -rf psyco ${foreach f,${PSYCO_UNINSTALL}, ${PREFIX}/${f}}
  488. ##############################################################
  489. # Pyrex (required by PyTables)
  490. #
  491. PYREX = Pyrex-0.9.5.1a
  492. PYREX_UNINSTALL += ${PYTHON_LIB}/site-packages/Pyrex
  493. pyrex: ${PYREX}.tar.gz python
  494. tar -xzf ${PYREX}.tar.gz
  495. cd ${PYREX}; ${PREFIX}/bin/python setup.py install
  496. touch pyrex
  497. pyrex-clean:
  498. rm -rf ${PYREX}
  499. pyrex-uninstall:
  500. rm -rf pyrex ${foreach f,${PYREX_UNINSTALL}, ${PREFIX}/${f}}
  501. ##############################################################
  502. # HDF5 library (required by PyTables)
  503. #
  504. HDF5 = hdf5-1.6.6
  505. HDF5_UNINSTALL +=
  506. hdf5: ${HDF5}.tar.gz
  507. tar -xzf ${HDF5}.tar.gz
  508. cd ${HDF5}; ./configure --enable-cxx --prefix=${PREFIX}
  509. make -C ${HDF5} install
  510. touch hdf5
  511. hdf5-clean:
  512. rm -rf ${HDF5}
  513. hdf5-uninstall:
  514. rm -rf hdf5 ${foreach f,${HDF5_UNINSTALL}, ${PREFIX}/${f}}
  515. ##############################################################
  516. # PyTables
  517. #
  518. PYTABLES = pytables
  519. PYTABLES_UNINSTALL += ${PYTHON_LIB}/site-packages/tables
  520. pytables: ${PYTABLES}-20070518.tar.gz pyrex hdf5
  521. tar -xzf ${PYTABLES}-20070518.tar.gz
  522. cd ${PYTABLES}; ${PREFIX}/bin/python setup.py install --hdf5=${PREFIX}
  523. touch pytables
  524. pytables-clean:
  525. rm -rf ${PYTABLES}
  526. pytables-uninstall:
  527. rm -rf pytables ${foreach f,${PYTABLES_UNINSTALL}, ${PREFIX}/${f}}
  528. ##############################################################
  529. # BlueSphere
  530. # Only needs to be updated when the choice of icons changes, as the results
  531. # are ordinarily checked in under topo/tkgui/icons/.
  532. #
  533. BLUESPHERE = BlueSphere-SVG-snapshot-Nov-29-2002
  534. BLUESPHERE_UNINSTALL += topo/tkgui/icons/*.png
  535. bluesphere: ${BLUESPHERE}.tar.gz
  536. rm -rf ${BLUESPHERE}
  537. mkdir ${BLUESPHERE}
  538. cd ${BLUESPHERE}; tar -xzf ../${BLUESPHERE}.tar.gz
  539. cp ${BLUESPHERE}_Makefile ${BLUESPHERE}/Makefile
  540. cd ${BLUESPHERE}; make
  541. cp ${BLUESPHERE}/*.png ../topo/tkgui/icons/
  542. touch bluesphere
  543. bluesphere-clean:
  544. rm -rf ${BLUESPHERE}
  545. bluesphere-uninstall:
  546. rm -rf bluesphere ${foreach f,${BLUESPHERE_UNINSTALL}, ${PREFIX}/${f}}
  547. ##############################################################
  548. # Gnuplotpy
  549. #
  550. GNUPLOTPY = gnuplot-py-1.7
  551. GNUPLOTPY_UNINSTALL += ${PYTHON_LIB}/site-packages/Gnuplot
  552. gnuplotpy: ${GNUPLOTPY}.tar.gz
  553. tar -xzf ${GNUPLOTPY}.tar.gz
  554. cd ${GNUPLOTPY}; ${PREFIX}/bin/python setup.py install
  555. touch gnuplotpy
  556. gnuplotpy-clean:
  557. rm -rf ${GNUPLOTPY}
  558. gnuplotpy-uninstall:
  559. rm -rf gnuplotpy ${foreach f,${GNUPLOTPY_UNINSTALL}, ${PREFIX}/${f}}
  560. ##############################################################
  561. # Player
  562. #
  563. # ALERT: Not fully tested yet; may need more attention
  564. PLAYER = player-2.1.0rc1
  565. PLAYER_UNINSTALL += ${PYTHON_LIB}/site-packages/playerc* ${PYTHON_LIB}/site-packages/_playerc.so ${PYTHON_LIB}/../libplayer*
  566. player: ${PLAYER}.tar.bz2
  567. tar -xjf ${PLAYER}.tar.bz2
  568. cd ${PLAYER}; ./configure --prefix=${PREFIX} ${PLAYER_FLAGS}
  569. make -C ${PLAYER} install
  570. make -C ${PLAYER}/client_libs/libplayerc/bindings/python
  571. cd ${PLAYER}/client_libs/libplayerc/bindings/python ; ${PREFIX}/bin/python ./setup.py install
  572. touch player
  573. player-clean:
  574. rm -rf ${PLAYER}
  575. player-uninstall:
  576. rm -rf player ${foreach f,${PLAYER_UNINSTALL}, ${PREFIX}/${f}}
  577. ##############################################################
  578. # Stage
  579. #
  580. # ALERT: Not fully tested yet; may need more attention
  581. STAGE = stage-2.1.0rc1
  582. STAGE_UNINSTALL += ${PYTHON_LIB}/../libstage*
  583. stage: ${STAGE}.tar.bz2
  584. tar -xjf ${STAGE}.tar.bz2
  585. cd ${STAGE}; ./configure --prefix=${PREFIX}
  586. make -C ${STAGE} install
  587. touch stage
  588. stage-clean:
  589. rm -rf ${STAGE}
  590. stage-uninstall:
  591. rm -rf stage ${foreach f,${STAGE_UNINSTALL}, ${PREFIX}/${f}}
  592. ##############################################################
  593. # progressbar
  594. #
  595. PROGRESSBAR = progressbar-2.2
  596. PROGRESSBAR_UNINSTALL += ${PYTHON_LIB}/site-packages/progressbar.py
  597. progressbar: ${PROGRESSBAR}.tar.gz python
  598. tar -xzf ${PROGRESSBAR}.tar.gz
  599. cd ${PROGRESSBAR}; ${PREFIX}/bin/python setup.py install
  600. touch progressbar
  601. progressbar-clean:
  602. rm -rf ${PROGRESSBAR}
  603. progressbar-uninstall:
  604. rm -rf progressbar ${foreach f,${PROGRESSBAR_UNINSTALL}, ${PREFIX}/${f}}
  605. #############################################################
  606. # GNU MP
  607. M4 = m4-1.4.9
  608. M4_UNINSTALL += share/info/m4*
  609. M4_UNINSTALL += share/man/man1/m4*
  610. m4: ${M4}.tar.gz
  611. tar -xzf ${M4}.tar.gz
  612. cd ${M4}; ./configure --prefix=${PREFIX}
  613. make -C ${M4}
  614. make -C ${M4} install
  615. touch m4
  616. m4-clean:
  617. rm -rf ${M4}
  618. m4-uninstall:
  619. rm -rf m4 $(foreach f, ${M4_UNINSTALL}, ${PREFIX}/${f})
  620. #############################################################
  621. # GNU MP
  622. GMP = gmp-4.3.1
  623. GMP_UNINSTALL += lib/libgmp.*
  624. GMP_UNINSTALL += include/gmp.h
  625. gmp: ${GMP}.tar.gz m4
  626. tar -xzf ${GMP}.tar.gz
  627. cd ${GMP}; env PATH=${PREFIX}/bin:${PATH} ./configure --prefix=${PREFIX}
  628. env PATH=${PREFIX}/bin:${PATH} make -C ${GMP}
  629. env PATH=${PREFIX}/bin:${PATH} make -C ${GMP} check
  630. env PATH=${PREFIX}/bin:${PATH} make -C ${GMP} install
  631. touch gmp
  632. gmp-clean:
  633. rm -rf ${GMP}
  634. gmp-uninstall:
  635. rm -rf gmp $(foreach f, ${GMP_UNINSTALL}, ${PREFIX}/${f})
  636. # CBALERT: there are probably other packages for which we should remove .egg-info?
  637. # CB: mxnumber will be removed
  638. ##############################################################
  639. # eGenix mx Experimental (for mxNumber)
  640. #
  641. MXNUMBER = egenix-mx-experimental-3.0.0
  642. MXNUMBER_UNINSTALL += ${PYTHON_LIB}/site-packages/mx/
  643. MXNUMBER_UNINSTALL += ${PYTHON_LIB}/site-packages/egenix_mx_experimental-3.0.0-py2.5.egg-info
  644. mxnumber: ${MXNUMBER}.tar.gz python gmp
  645. tar -xzf ${MXNUMBER}.tar.gz
  646. cd ${MXNUMBER}; ${PREFIX}/bin/python setup.py install
  647. touch mxnumber
  648. mxnumber-clean:
  649. rm -rf ${MXNUMBER}
  650. mxnumber-uninstall:
  651. rm -rf mxnumber ${foreach f,${MXNUMBER_UNINSTALL}, ${PREFIX}/${f}}
  652. ##############################################################
  653. # wraps GMP
  654. #
  655. GMPY = gmpy-sources-101
  656. GMPY_UNINSTALL += ${PYTHON_LIB}/site-packages/gmpy-1.01-py2.5.egg-info
  657. GMPY_UNINSTALL += ${PYTHON_LIB}/site-packages/gmpy.so
  658. gmpy: ${GMPY}.tar.gz python gmp
  659. tar -xzf ${GMPY}.tar.gz
  660. cd ${GMPY}; ${PREFIX}/bin/python setup.py build_ext --include-dirs='${PREFIX}/include' --library-dirs='${PREFIX}/lib'; ${PREFIX}/bin/python setup.py install
  661. touch gmpy
  662. gmpy-clean:
  663. rm -rf ${GMPY}
  664. gmpy-uninstall:
  665. rm -rf gmpy ${foreach f,${GMPY_UNINSTALL}, ${PREFIX}/${f}}
  666. ##############################################################
  667. # processing (improved interactive prompt)
  668. #
  669. PROCESSING = processing-0.51
  670. PROCESSING_UNINSTALL = ${PYTHON_LIB}/site-packages/processing
  671. PROCESSING_UNINSTALL += ${PYTHON_LIB}/site-packages/processing-0.51-py2.5.egg-info
  672. processing: ${PROCESSING}.tar.gz python
  673. tar -xzf ${PROCESSING}.tar.gz
  674. cd ${PROCESSING}; ${PREFIX}/bin/python setup.py install
  675. touch processing
  676. processing-clean:
  677. rm -rf ${PROCESSING}
  678. processing-uninstall:
  679. rm -rf processing ${PROCESSING} $(foreach f, ${PROCESSING_UNINSTALL}, ${PREFIX}/${f})
  680. ##############################################################
  681. # svn2cl (Only used for generating the ChangeLog)
  682. #
  683. SVN2CL = svn2cl-0.10
  684. svn2cl: ${SVN2CL}.tar.gz
  685. tar -xzf ${SVN2CL}.tar.gz
  686. ln -sf ${SVN2CL}/svn2cl.sh svn2cl
  687. svn2cl-clean:
  688. svn2cl-uninstall:
  689. rm -rf svn2cl ${SVN2CL}
  690. ##############################################################
  691. # pyttk (CB: currently unused - will replace Tile.py)
  692. #
  693. PYTTK = pyttk-0.2.6
  694. PYTTK_UNINSTALL += ${PYTHON_LIB}/site-packages/pyttk.py
  695. pyttk: ${PYTTK}.tar.gz python
  696. tar -xzf ${PYTTK}.tar.gz
  697. cd ${PYTTK}; ${PREFIX}/bin/python setup.py install
  698. touch pyttk
  699. pyttk-clean:
  700. rm -rf ${PYTTK}
  701. pyttk-uninstall:
  702. rm -rf pyttk ${foreach f,${PYTTK_UNINSTALL}, ${PREFIX}/${f}}
  703. #############################################################
  704. # GNU READLINE
  705. READLINE = readline-5.2
  706. READLINE_UNINSTALL += lib/libreadline.*
  707. READLINE_UNINSTALL += include/readline.h
  708. readline: ${READLINE}.tar.gz termcap
  709. tar -xzf ${READLINE}.tar.gz
  710. cd ${READLINE}; ./configure --prefix=${PREFIX}
  711. make -C ${READLINE}
  712. make -C ${READLINE} install
  713. touch readline
  714. readline-clean:
  715. rm -rf ${READLINE}
  716. readline-uninstall:
  717. rm -rf readline $(foreach f, ${READLINE_UNINSTALL}, ${PREFIX}/${f})
  718. #############################################################
  719. # GNU TERMCAP
  720. TERMCAP = termcap-1.3.1
  721. TERMCAP_UNINSTALL += lib/libtermcap.*
  722. TERMCAP_UNINSTALL += include/termcap.h
  723. termcap: ${TERMCAP}.tar.gz
  724. tar -xzf ${TERMCAP}.tar.gz
  725. cd ${TERMCAP}; ./configure --prefix=${PREFIX}
  726. make -C ${TERMCAP}
  727. make -C ${TERMCAP} install
  728. touch termcap
  729. termcap-clean:
  730. rm -rf ${TERMCAP}
  731. termcap-uninstall:
  732. rm -rf termcap $(foreach f, ${TERMCAP_UNINSTALL}, ${PREFIX}/${f})
  733. #############################################################
  734. # CYTHON
  735. CYTHON = Cython-0.13
  736. CYTHON_UNINSTALL += ${PYTHON_LIB}/site-packages/Cython*
  737. CYTHON_UNINSTALL += ${PYTHON_LIB}/site-packages/pyximport
  738. CYTHON_UNINSTALL += bin/cython
  739. cython: ${CYTHON}.tar.gz
  740. tar -xzf ${CYTHON}.tar.gz
  741. cd ${CYTHON}; ${PREFIX}/bin/python setup.py install
  742. touch cython
  743. cython-clean:
  744. rm -rf ${CYTHON}
  745. cython-uninstall:
  746. rm -rf cython $(foreach f, ${CYTHON_UNINSTALL}, ${PREFIX}/${f})
  747. #############################################################
  748. # LINE_PROFILER
  749. LINE_PROFILER = line_profiler-582df342463a
  750. LINE_PROFILER_UNINSTALL += ${PYTHON_LIB}/site-packages/line_profiler*
  751. LINE_PROFILER_UNINSTALL += bin/kernprof.py
  752. line_profiler: ${LINE_PROFILER}.tar.gz cython
  753. tar -xzf ${LINE_PROFILER}.tar.gz
  754. cd ${LINE_PROFILER}; ${PREFIX}/bin/python setup.py install
  755. touch line_profiler
  756. line_profiler-clean:
  757. rm -rf ${LINE_PROFILER}
  758. line_profiler-uninstall:
  759. rm -rf line_profiler $(foreach f, ${LINE_PROFILER_UNINSTALL}, ${PREFIX}/${f})
  760. #############################################################
  761. # guppy: provides heapy, a memory profiler
  762. GUPPY = guppy-r70
  763. GUPPY_UNINSTALL += ${PYTHON_LIB}/site-packages/guppy
  764. GUPPY_UNINSTALL += ${PYTHON_LIB}/site-packages/guppy*.egg*
  765. guppy: ${GUPPY}.tar.gz python
  766. tar -xzf ${GUPPY}.tar.gz
  767. cd ${GUPPY}; ${PREFIX}/bin/python setup.py install
  768. touch guppy
  769. guppy-clean:
  770. rm -rf ${GUPPY}
  771. guppy-uninstall:
  772. rm -rf guppy $(foreach f, ${GUPPY_UNINSTALL}, ${PREFIX}/${f})
  773. #############################################################
  774. # OpenMPI
  775. OPENMPI = openmpi-1.3.3
  776. # CEBALERT: uninstall info not complete!
  777. OPENMPI_UNINSTALL += lib/libmpi*
  778. OPENMPI_UNINSTALL += lib/openmpi
  779. OPENMPI_UNINSTALL += lib/mpi.mod
  780. OPENMPI_UNINSTALL += bin/mpi*
  781. openmpi: ${OPENMPI}.tar.gz
  782. tar -xzf ${OPENMPI}.tar.gz
  783. cd ${OPENMPI}; ./configure --prefix=${PREFIX}
  784. cd ${OPENMPI}; make all install
  785. touch openmpi
  786. openmpi-clean:
  787. rm -rf ${OPENMPI}
  788. openmpi-uninstall:
  789. rm -rf openmpi $(foreach f, ${OPENMPI_UNINSTALL}, ${PREFIX}/${f})
  790. #############################################################
  791. # mpi4py using Topographica's openmpi
  792. #
  793. # 2009/11/03: Works on DICE ("make mpi4py-test" shows most tests passing)
  794. # 2009/11/03: Works on my Ubuntu 9.10 machine (tests pass similarly to above)
  795. MPI4PY = mpi4py-1.1.0
  796. MPI4PY_UNINSTALL += ${PYTHON_LIB}/site-packages/mpi4py
  797. MPI4PY_UNINSTALL += ${PYTHON_LIB}/site-packages/mpi4py*.egg*
  798. mpi4py: ${MPI4PY}.tar.gz python openmpi
  799. tar -xzf ${MPI4PY}.tar.gz
  800. # specify topographica's copy of OpenMPI
  801. echo "[topo-openmpi]" >> ${MPI4PY}/mpi.cfg
  802. echo "mpi_dir = ${PREFIX}" >> ${MPI4PY}/mpi.cfg
  803. echo "mpicc = %(mpi_dir)s/bin/mpicc" >> ${MPI4PY}/mpi.cfg
  804. echo "mpicxx = %(mpi_dir)s/bin/mpicxx" >> ${MPI4PY}/mpi.cfg
  805. echo "library_dirs = %(mpi_dir)s/lib:%(mpi_dir)s/lib/openmpi" >> ${MPI4PY}/mpi.cfg
  806. echo "runtime_library_dirs = %(library_dirs)s" >> ${MPI4PY}/mpi.cfg
  807. # without MPILD, finds system linker first
  808. cd ${MPI4PY}; env MPILD=${PREFIX}/bin/mpicc ${PREFIX}/bin/python setup.py build --mpi=topo-openmpi
  809. # without MPILD, MPICC, and MPICXX, finds system versions first
  810. cd ${MPI4PY}; env MPILD=${PREFIX}/bin/mpicc MPICC=${PREFIX}/bin/mpicc MPICXX=${PREFIX}/bin/mpicxx ${PREFIX}/bin/python setup.py install
  811. touch mpi4py
  812. mpi4py-clean:
  813. rm -rf ${MPI4PY}
  814. mpi4py-uninstall:
  815. rm -rf mpi4py $(foreach f, ${MPI4PY_UNINSTALL}, ${PREFIX}/${f})
  816. mpi4py-test: mpi4py
  817. ${PREFIX}/bin/mpiexec -n 2 ${PREFIX}/bin/python ${PREFIX}/external/mpi4py-1.1.0/test/runalltest.py
  818. #############################################################
  819. # mpi4py using system mpi: optionally set SYSTEM_MPI
  820. # (e.g. SYSTEM_MPI=lam); you might also need to edit mpi.cfg.
  821. #
  822. # 2009/11/03: On eddie.ecdf, works fine as it is (just 'make -C
  823. # external mpi4py_systemmpi'; 'make mpi4py_systemmpi-test' shows most
  824. # tests passing).
  825. # Note that on eddie, it's necessary to do the following before building
  826. # or using mpi4py:
  827. # $ module load openmpi/ethernet/gcc/latest
  828. #
  829. # 2009/11/03: On my Ubuntu 9.10 machine (with OpenMPI installed from
  830. # Synaptic), builds ok but segfaults when running.
  831. # 2009/11/04: Works on DICE ("make -C external mpi4py_systemmpi") as
  832. # long as /usr/lib/openmpi/1.2.7-gcc/bin (or
  833. # /usr/lib64/openmpi/1.2.7-gcc/bin) is in PATH before /usr/bin
  834. # (e.g. type "export PATH=/usr/lib/openmpi/1.2.7-gcc/bin:$PATH").
  835. MPI4PY_SYSTEMMPI = mpi4py-1.1.0
  836. MPI4PY_SYSTEMMPI_UNINSTALL += ${PYTHON_LIB}/site-packages/mpi4py
  837. MPI4PY_SYSTEMMPI_UNINSTALL += ${PYTHON_LIB}/site-packages/mpi4py*.egg*
  838. mpi4py_systemmpi: ${MPI4PY_SYSTEMMPI}.tar.gz python
  839. tar -xzf ${MPI4PY_SYSTEMMPI}.tar.gz
  840. cd ${MPI4PY_SYSTEMMPI}; ${PREFIX}/bin/python setup.py build --mpi=${SYSTEMMPI_MPI}
  841. cd ${MPI4PY_SYSTEMMPI}; ${PREFIX}/bin/python setup.py install
  842. touch mpi4py_systemmpi
  843. mpi4py_systemmpi-clean: mpi4py-clean
  844. mpi4py_systemmpi-uninstall: mpi4py-uninstall
  845. mpi4py_systemmpi-test: mpi4py_systemmpi
  846. mpiexec -n 2 ${PREFIX}/bin/python ${PREFIX}/external/mpi4py-1.1.0/test/runalltest.py
  847. #############################################################
  848. # twisted: for parallel computing features in IPython
  849. TWISTED = Twisted-8.2.0
  850. # CEBALERT: probably not complete
  851. TWISTED_UNINSTALL += ${PYTHON_LIB}/bin/ckeygen
  852. TWISTED_UNINSTALL += ${PYTHON_LIB}/bin/trial
  853. TWISTED_UNINSTALL += ${PYTHON_LIB}/bin/tap2deb
  854. TWISTED_UNINSTALL += ${PYTHON_LIB}/bin/twistd
  855. TWISTED_UNINSTALL += ${PYTHON_LIB}/bin/tkconch
  856. TWISTED_UNINSTALL += ${PYTHON_LIB}/bin/cftp
  857. TWISTED_UNINSTALL += ${PYTHON_LIB}/bin/mailmail
  858. TWISTED_UNINSTALL += ${PYTHON_LIB}/bin/lore
  859. TWISTED_UNINSTALL += ${PYTHON_LIB}/bin/conch
  860. TWISTED_UNINSTALL += ${PYTHON_LIB}/bin/pyhtmlizer
  861. TWISTED_UNINSTALL += ${PYTHON_LIB}/bin/mktap
  862. TWISTED_UNINSTALL += ${PYTHON_LIB}/bin/manhole
  863. TWISTED_UNINSTALL += ${PYTHON_LIB}/bin/tap2rpm
  864. TWISTED_UNINSTALL += ${PYTHON_LIB}/bin/im
  865. TWISTED_UNINSTALL += ${PYTHON_LIB}/bin/tapconvert
  866. TWISTED_UNINSTALL += ${PYTHON_LIB}/site-packages/twisted
  867. TWISTED_UNINSTALL += ${PYTHON_LIB}/site-packages/twisted*.egg*
  868. twisted: ${TWISTED}.tar.gz python
  869. tar -xzf ${TWISTED}.tar.gz
  870. cd ${TWISTED}; ${PREFIX}/bin/python setup.py install
  871. touch twisted
  872. twisted-clean:
  873. rm -rf ${TWISTED}
  874. twisted-uninstall:
  875. rm -rf twisted $(foreach f, ${TWISTED_UNINSTALL}, ${PREFIX}/${f})
  876. #############################################################
  877. # zope_interface: for parallel computing features in IPython
  878. ZOPE_INTERFACE = zope.interface-3.3.0
  879. ZOPE_INTERFACE_UNINSTALL += ${PYTHON_LIB}/site-packages/zope*
  880. zope_interface: ${ZOPE_INTERFACE}.tar.gz python
  881. tar -xzf ${ZOPE_INTERFACE}.tar.gz
  882. cd ${ZOPE_INTERFACE}; ${PREFIX}/bin/python setup.py install
  883. touch zope_interface
  884. zope_interface-clean:
  885. rm -rf ${ZOPE_INTERFACE}
  886. zope_interface-uninstall:
  887. rm -rf zope_interface $(foreach f, ${ZOPE_INTERFACE_UNINSTALL}, ${PREFIX}/${f})
  888. #############################################################
  889. # foolscap: for parallel computing features in IPython
  890. FOOLSCAP = foolscap-0.4.2
  891. FOOLSCAP_UNINSTALL += ${PYTHON_LIB}/site-packages/foolscap*
  892. foolscap: ${FOOLSCAP}.tar.gz python pyopenssl
  893. tar -xzf ${FOOLSCAP}.tar.gz
  894. cd ${FOOLSCAP}; ${PREFIX}/bin/python setup.py install
  895. touch foolscap
  896. foolscap-clean:
  897. rm -rf ${FOOLSCAP}
  898. foolscap-uninstall:
  899. rm -rf foolscap $(foreach f, ${FOOLSCAP_UNINSTALL}, ${PREFIX}/${f})
  900. #############################################################
  901. # pyopenssl: required by foolscap
  902. # (requires e.g. ssl-dev package)
  903. PYOPENSSL = pyOpenSSL-0.9
  904. PYOPENSSL_UNINSTALL += ${PYTHON_LIB}/site-packages/pyopenssl*
  905. pyopenssl: ${PYOPENSSL}.tar.gz python
  906. tar -xzf ${PYOPENSSL}.tar.gz
  907. cd ${PYOPENSSL}; ${PREFIX}/bin/python setup.py build
  908. cd ${PYOPENSSL}; ${PREFIX}/bin/python setup.py install
  909. touch pyopenssl
  910. pyopenssl-clean:
  911. rm -rf ${PYOPENSSL}
  912. pyopenssl-uninstall:
  913. rm -rf pyopenssl $(foreach f, ${PYOPENSSL_UNINSTALL}, ${PREFIX}/${f})
  914. #############################################################
  915. # IPython with parallel computing features
  916. parallel_ipython: zope_interface twisted foolscap ipython
  917. ##############################################################
  918. # coverage (code coverage analysis)
  919. #
  920. COVERAGE = coverage-3.4
  921. COVERAGE_UNINSTALL += ${PYTHON_LIB}/site-packages/coverage*egg
  922. COVERAGE_UNINSTALL += ${PREFIX}/bin/coverage
  923. coverage: ${COVERAGE}.tar.gz python setuptools
  924. tar -xzf ${COVERAGE}.tar.gz
  925. cd ${COVERAGE}; ${PREFIX}bin/python setup.py install
  926. touch coverage
  927. coverage-clean:
  928. rm -rf ${COVERAGE}
  929. coverage-uninstall:
  930. rm -rf coverage ${COVERAGE} $(foreach f, ${COVERAGE_UNINSTALL}, ${PREFIX}/${f})