File: rules

package info (click to toggle)
pandas 0.8.0-2
  • links: PTS, VCS
  • area: main
  • in suites: wheezy
  • size: 12,480 kB
  • sloc: python: 57,610; ansic: 3,960; makefile: 77; sh: 8
file content (100 lines) | stat: -rwxr-xr-x 3,623 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
#!/usr/bin/make -f
# -*- mode: makefile; coding: utf-8 -*-

PACKAGE_NAME = python-pandas
PACKAGE_ROOT_DIR = debian/${PACKAGE_NAME}

PYVERS = $(shell pyversions -vr)
PYVER = $(shell pyversions -vd)

UVER := $(shell LC_ALL=C dpkg-parsechangelog | awk '/^Version:/{print $$2;}' | sed -e 's,-[^-]*$$,,g')
CYTHONVER := $(shell dpkg -l cython | awk '/^ii/{print $$3;}' || echo 0)
MPLVER := $(shell dpkg -l python-matplotlib | awk '/^ii/{print $$3;}' || echo 0)

MIN_CYTHONVER = 0.15.1
EXCLUDE_MORETESTS := 
# $(shell dpkg --compare-versions $(MPLVER) lt 1.0 && echo '|test_hist|test_plot|test_boxplot|test_corr_rank' || echo '')

# Mega rule
%:
	: # Explicit build system to avoid use of all-in-1 Makefile
	dh $@ --buildsystem=python_distutils

cythonize:
	find pandas/src -iname *.c -delete
	python setup.py cython
	cp pandas/src/*.c debian/cythonized-files
	echo "$(UVER)" >| debian/cythonized-files/VERSION

override_dh_auto_configure:
	dpkg --compare-versions $(CYTHONVER) lt $(MIN_CYTHONVER) && { \
		echo "I: Using pre-Cython-ed files"; \
		cp -rp debian/cythonized-files/*.c pandas/src/; } || :
	dh_auto_configure

override_dh_clean:
	: # Make sure that cythonized sources are up-to-date
	[ "$(UVER)" = "`cat debian/cythonized-files/VERSION`" ]
	rm -rf build doc/_build *-stamp # pandas.egg-info pandas/datasets/__config__.py
	grep -l -e 'Generated by Cython' pandas/src/*.c | xargs -r rm -f
	dh_clean
	: # prune auto-generated version.py -- will be generated during build again
	rm -f pandas/version.py

override_dh_auto_build:
	# Override default build operation which --force's re-cythonization
	# on elderly ubuntus
	:

override_dh_auto_install: ${PYVERS:%=python-install%} ${PYVERS:%=python-test%}
# Per Python version logic -- install, test, move .so into -lib
python-install%:
	python$* setup.py install --install-layout=deb --root=$(PACKAGE_ROOT_DIR)

python-test%: python-install%
ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS)))
	echo "backend : Agg" >| $(CURDIR)/build/matplotlibrc
	: # Run unittests here against installed pandas
	export PYTHONPATH=`/bin/ls -d $$PWD/$(PACKAGE_ROOT_DIR)/usr/lib/python$*/*/`; \
	export MPLCONFIGDIR=$(CURDIR)/build HOME=$(CURDIR)/build; \
	cd build/; python$* /usr/bin/nosetests -s -v -a '!network' pandas;
else
	: # Skip unittests due to nocheck
endif


override_dh_installdocs:
	: # Build Documentation using installed pandas
ifeq (,$(filter nodoc,$(DEB_BUILD_OPTIONS)))
ifneq (,$(findstring -a,$(DH_INTERNAL_OPTIONS)))
	: # not building documentation in -a
else
	: # not building documentation ATM since requires ipython 0.11
# 	export PYTHONPATH=`/bin/ls -d $$PWD/$(PACKAGE_ROOT_DIR)/usr/lib/python$(PYVER)/*`; \
# 	export MPLCONFIGDIR=$(CURDIR)/build HOME=$(CURDIR)/build; \
# 	 cd doc; python make.py html
endif
endif
	: # Use jquery from Debian package, so prune shipped one
	#TODO -rm doc/_build/html/_static/jquery.js
	dh_installdocs -A RELEASE.rst TODO.rst README*.rst

#override_dh_installchangelogs:
#	dh_installchangelogs doc/whats_new.rst

## move binary libraries into -lib
override_dh_pysupport:
	: # Move platform-specific libraries into -lib
	for lib in $$(find $(PACKAGE_ROOT_DIR)/usr -name '*.so'); do \
	   sdir=$$(dirname $$lib) ; \
	   tdir=$(PACKAGE_ROOT_DIR)-lib/$${sdir#*$(PACKAGE_NAME)/} ; \
	   mkdir -p $$tdir ; \
	   echo "I: Moving '$$lib' into '$$tdir'." ; \
	   mv $$lib $$tdir ; \
	done
	if [ -x /usr/bin/dh_numpy ]; then dh_numpy -ppython-pandas-lib; fi
	dh_pysupport

## immediately useable documentation and exemplar scripts/data
override_dh_compress:
	dh_compress -X.py -X.html -X.pdf -X.css -X.jpg -X.txt -X.js -X.json -X.rtc -Xobjects.inv