-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathMakefile
169 lines (133 loc) · 7.12 KB
/
Makefile
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
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
SHELL = /bin/bash
CWD := $(shell pwd)
LAST_TAG_COMMIT = $$(git rev-list --tags --max-count=1)
VERSION = $$(git describe --tags $(LAST_TAG_COMMIT) )
MACOSX_DEPLOYMENT_TARGET = 10.9
CFLAGS = -arch i386 -arch x86_64
CXXFLAGS = -arch i386 -arch x86_64
GEOS_CONFIG = "$(CWD)/parts/geos/bin/geos-config"
GDAL_CONFIG = "$(CWD)/parts/gdal/bin/gdal-config"
PROJ_LIB = "$(CWD)/parts/proj4/share/proj"
DYLD_LIBRARY_PATH = "$(CWD)/parts/gdal/lib:$(CWD)/parts/geos/lib:$(CWD)/parts/openjpeg/lib:$(CWD)/parts/json-c/lib:$(CWD)/parts/proj4/lib:$(CWD)/parts/hdf5/lib:$(CWD)/parts/netcdf/lib:$(CWD)/parts/sqlite/lib"
LD_LIBRARY_PATH = "$(CWD)/parts/gdal/lib:$(CWD)/parts/geos/lib:$(CWD)/parts/openjpeg/lib:$(CWD)/parts/json-c/lib:$(CWD)/parts/proj4/lib:$(CWD)/parts/hdf5/lib:$(CWD)/parts/netcdf/lib:$(CWD)/parts/sqlite/lib"
BUILDDIR := $(shell mktemp -d $(TMPDIR)frswb.XXXXXX)
all: fiona rasterio shapely
parts: buildout.cfg
buildout -c buildout.cfg
dist:
mkdir -p dist
wheels:
mkdir -p wheels
src/Shapely/.git:
git clone https://github.com/Toblerity/Shapely.git src/Shapely
src/Fiona/.git:
git clone https://github.com/Toblerity/Fiona.git src/Fiona
src/rasterio/.git:
git clone https://github.com/mapbox/rasterio.git src/rasterio
dist/shapely.tar.gz: src/Shapely/.git dist
virtualenv -p python3.5 $(BUILDDIR)/sdist && \
source $(BUILDDIR)/sdist/bin/activate && \
python get-pip.py && \
pip install -U pip && \
pip install "numpy>=1.11" && \
cd src/Shapely && \
git fetch --tags && git checkout $(VERSION) && \
pip install -r requirements-dev.txt && \
python setup.py --version | tail -1 > ../../SHAPELY_VERSION.txt && \
python setup.py sdist
cp src/Shapely/dist/*.tar.gz dist
cp dist/Shapely*.tar.gz dist/shapely.tar.gz
dist/fiona.tar.gz: src/Fiona/.git dist
virtualenv -p python3.5 $(BUILDDIR)/sdist && \
source $(BUILDDIR)/sdist/bin/activate && \
python --version && \
python get-pip.py && \
python -m pip install -U pip && \
pip --version && \
pip install "numpy>=1.11" && \
cd src/Fiona && \
git fetch --tags && git checkout $(VERSION) && \
pip install -r requirements-dev.txt && \
GDAL_CONFIG=$(GDAL_CONFIG) python setup.py --version | tail -1 > ../../FIONA_VERSION.txt && \
which python && pip list && \
GDAL_CONFIG=$(GDAL_CONFIG) python setup.py sdist
cp src/Fiona/dist/*.tar.gz dist
cp dist/Fiona*.tar.gz dist/fiona.tar.gz
dist/rasterio.tar.gz: src/rasterio/.git dist
virtualenv -p python3.5 $(BUILDDIR)/sdist && \
source $(BUILDDIR)/sdist/bin/activate && \
python get-pip.py && \
pip install -U pip && \
pip install "numpy>=1.11" && \
cd src/rasterio && \
git fetch --tags && git checkout $(VERSION) && \
pip install -r requirements-dev.txt && \
GDAL_CONFIG=$(GDAL_CONFIG) python setup.py --version | tail -1 > ../../RASTERIO_VERSION.txt && \
which python && pip list && python -c "import numpy; print(numpy.__version__)" && \
GDAL_CONFIG=$(GDAL_CONFIG) python setup.py sdist
cp src/rasterio/dist/*.tar.gz dist
cp dist/rasterio*.tar.gz dist/rasterio.tar.gz
.wheelbuilder_image_built: Dockerfile.wheels
docker build -f Dockerfile.wheels -t wheelbuilder .
touch .wheelbuilder_image_built
shapely_wheels: dist/shapely.tar.gz wheels
BUILDDIR=$(BUILDDIR) MACOSX_DEPLOYMENT_TARGET=$(MACOSX_DEPLOYMENT_TARGET) CXXFLAGS="$(CXXFLAGS)" CFLAGS="$(CFLAGS) $$($(GEOS_CONFIG) --cflags)" LDFLAGS="$$($(GEOS_CONFIG) --clibs) $(CFLAGS)" ./macosx_shapely_wheels.sh
shapely_macosx: shapely_wheels
DYLD_LIBRARY_PATH=$(DYLD_LIBRARY_PATH) LD_LIBRARY_PATH=$(LD_LIBRARY_PATH) BUILDDIR=$(BUILDDIR) ./macosx_shapely_tests.sh
parallel rename -e "s/macosx_10_6\.intel/macosx_10_9_intel.macosx_10_9_x86_64/" {} ::: dist/Shapely*.whl
shapely_manylinux1: dist .wheelbuilder_image_built build-linux-wheels.sh dist/shapely.tar.gz
docker run -v $(CURDIR):/io wheelbuilder bash -c "/io/build-linux-wheels.sh /io/dist/shapely.tar.gz"
shapely: dist/shapely.tar.gz shapely_macosx shapely_manylinux1
fiona_wheels: dist/fiona.tar.gz wheels
BUILDDIR=$(BUILDDIR) MACOSX_DEPLOYMENT_TARGET=$(MACOSX_DEPLOYMENT_TARGET) PACKAGE_DATA=1 PROJ_LIB=$(PROJ_LIB) GDAL_CONFIG=$(GDAL_CONFIG) CXXFLAGS="$(CXXFLAGS)" CFLAGS="$(CFLAGS) $$($(GDAL_CONFIG) --cflags)" LDFLAGS="$$($(GDAL_CONFIG) --libs) $(CFLAGS)" GDAL_VERSION="2.2" ./macosx_fiona_wheels.sh
fiona_macosx: fiona_wheels
DYLD_LIBRARY_PATH=$(DYLD_LIBRARY_PATH) BUILDDIR=$(BUILDDIR) ./macosx_fiona_tests.sh
parallel rename -e "s/macosx_10_6\.intel/macosx_10_9_intel.macosx_10_9_x86_64/" {} ::: dist/Fiona*.whl
fiona_manylinux1: dist .wheelbuilder_image_built build-linux-wheels.sh dist/fiona.tar.gz
docker run -v $(CURDIR):/io wheelbuilder bash -c "/io/build-linux-wheels.sh /io/dist/fiona.tar.gz"
fiona: dist/fiona.tar.gz fiona_macosx fiona_manylinux1
rasterio_wheels: dist/rasterio.tar.gz wheels
BUILDDIR=$(BUILDDIR) MACOSX_DEPLOYMENT_TARGET=$(MACOSX_DEPLOYMENT_TARGET) PACKAGE_DATA=1 PROJ_LIB=$(PROJ_LIB) GDAL_CONFIG=$(GDAL_CONFIG) CXXFLAGS="$(CXXFLAGS)" CFLAGS="$(CFLAGS) $$($(GDAL_CONFIG) --cflags)" LDFLAGS="$$($(GDAL_CONFIG) --libs) $(CFLAGS)" GDAL_VERSION="2.2" ./macosx_rasterio_wheels.sh
rasterio_macosx: rasterio_wheels
PATH=$(CWD)/parts/gdal/bin:$(PATH) DYLD_LIBRARY_PATH=$(DYLD_LIBRARY_PATH) BUILDDIR=$(BUILDDIR) ./macosx_rasterio_tests.sh
parallel rename -e "s/macosx_10_6\.intel/macosx_10_9_intel.macosx_10_9_x86_64/" {} ::: dist/rasterio*.whl
rasterio_manylinux1: dist .wheelbuilder_image_built build-linux-wheels.sh dist/rasterio.tar.gz
docker run -v $(CURDIR):/io wheelbuilder bash -c "/io/build-linux-wheels.sh /io/dist/rasterio.tar.gz"
rasterio: dist/rasterio.tar.gz rasterio_macosx rasterio_manylinux1
src/rio-color/.git:
git clone https://github.com/mapbox/rio-color.git src/rio-color
dist/rio-color.tar.gz: src/rio-color/.git dist
virtualenv -p python3.5 $(BUILDDIR)/sdist && \
source $(BUILDDIR)/sdist/bin/activate && \
python get-pip.py && \
pip install -U pip && \
pip install "numpy>=1.11" && \
cd src/rio-color && \
git fetch --tags && git checkout $(VERSION) && \
pip install -r requirements-dev.txt && \
python setup.py --version | tail -1 > ../../RIO_COLOR_VERSION.txt && \
which python && pip list && \
python setup.py sdist
cp src/rio-color/dist/*.tar.gz dist
cp dist/rio-color*.tar.gz dist/rio-color.tar.gz
rio_color_wheels: dist/rio-color.tar.gz wheels
BUILDDIR=$(BUILDDIR) MACOSX_DEPLOYMENT_TARGET=$(MACOSX_DEPLOYMENT_TARGET) CXXFLAGS="$(CXXFLAGS)" CFLAGS="$(CFLAGS)" LDFLAGS="$(CFLAGS)" ./macosx_riocolor_wheels.sh
rio_color_macosx: rio_color_wheels
DYLD_LIBRARY_PATH=$(DYLD_LIBRARY_PATH) BUILDDIR=$(BUILDDIR) ./macosx_riocolor_tests.sh
parallel rename -e "s/macosx_10_6\.intel/macosx_10_9_intel.macosx_10_9_x86_64/" {} ::: dist/rio_color*.whl
rio_color_manylinux1: dist .wheelbuilder_image_built build-linux-wheels.sh dist/rio-color.tar.gz
docker run -v $(CURDIR):/io wheelbuilder bash -c "/io/build-linux-wheels.sh /io/dist/rio-color.tar.gz"
rio_color_zip_delete: rio_color_manylinux1 rio_color_macosx
parallel zip -d {} rio_color/colorspace.pyx rio_color/colorspace.c ::: dist/rio_color*.whl
rio_color: dist/rio-color.tar.gz rio_color_zip_delete
clean:
rm -rf .wheelbuilder_image_built
rm -rf *VERSION.txt
rm -rf shapely
rm -rf fiona
rm -rf rasterio
rm -rf dist
rm -rf wheels
rm -rf src/Fiona
rm -rf src/rasterio
rm -rf src/rio-color