Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit a71414d

Browse files
committed
Simplify make.osx, add targets
1 parent aac96d1 commit a71414d

File tree

2 files changed

+52
-51
lines changed

2 files changed

+52
-51
lines changed

README.osx

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,22 @@ lib, png or freetype on your system
99

1010
Example usage::
1111

12-
make -f make.osx PREFIX=/Users/jdhunter/dev PYVERSION=2.6 fetch deps mpl_install
12+
make -f make.osx PREFIX=/Users/jdhunter/dev PYVERSION=2.6 \
13+
fetch deps mpl_install_std
1314

1415
Variables:
1516
PREFIX (required): where to install the dependencies
16-
PYVERSION (optional): which python version to use (default=python, e.g.=python2.6)
17+
PYVERSION (optional): which python version to use
18+
(default=python, e.g. PYVERSION=2.6 uses python2.6)
1719

18-
The Python libraries will be installed in the relevant site-packages, instead of under PREFIX.
20+
Targets:
1921

22+
clean: remove compiled files
23+
fetch: download dependencies
24+
deps: build all dependencies (zlib, png, freetype)
25+
mpl_build: compile matplotlib
26+
mpl_install: install matplotlib in $PREFIX/lib/pythonX.Y/site-packages
27+
mpl_install_std: install matplotlib in standard site-packages directory
28+
mpl_install_egg: install matplotlib as an egg
29+
mpl_install_develop: set up egg link to working directory (for developers)
30+
binaries: create the dmg file for distribution

make.osx

Lines changed: 38 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
# -*- makefile -*-
12
# build mpl into a local install dir with
23
# make -f make.osx PREFIX=/Users/jdhunter/dev PYVERSION=2.6 fetch deps mpl_install
34
# (see README.osx for more details)
@@ -8,18 +9,18 @@ PNGVERSION=1.2.39
89
FREETYPEVERSION=2.3.11
910
MACOSX_DEPLOYMENT_TARGET=10.6
1011
OSX_SDK_VER=10.6
11-
ARCH_FLAGS="-arch i386-arch x86_64"
12+
ARCH_FLAGS=-arch i386 -arch x86_64
1213

1314
## You shouldn't need to configure past this point
1415

15-
#PKG_CONFIG_PATH="${PREFIX}/lib/pkgconfig"
16-
#CFLAGS="${ARCH_FLAGS} -I${PREFIX}/include -I${PREFIX}/include/freetype2 -isysroot /Developer/SDKs/MacOSX${OSX_SDK_VER}.sdk"
17-
#LDFLAGS="${ARCH_FLAGS} -L${PREFIX}/lib -syslibroot,/Developer/SDKs/MacOSX${OSX_SDK_VER}.sdk"
16+
export PKG_CONFIG_PATH=${PREFIX}/lib/pkgconfig
17+
export CFLAGS=${ARCH_FLAGS} -I${PREFIX}/include -I${PREFIX}/include/freetype2 -isysroot /Developer/SDKs/MacOSX${OSX_SDK_VER}.sdk
18+
export LDFLAGS=${ARCH_FLAGS} -L${PREFIX}/lib -syslibroot,/Developer/SDKs/MacOSX${OSX_SDK_VER}.sdk
19+
export MACOSX_DEPLOYMENT_TARGET
1820

19-
PKG_CONFIG_PATH="${PREFIX}/lib/pkgconfig"
20-
CFLAGS="-arch i386 -arch x86_64 -I${PREFIX}/include -I${PREFIX}/include/freetype2 -isysroot /Developer/SDKs/MacOSX${OSX_SDK_VER}.sdk"
21-
LDFLAGS="-arch i386 -arch x86_64 -L${PREFIX}/lib -syslibroot,/Developer/SDKs/MacOSX${OSX_SDK_VER}.sdk"
22-
FFLAGS="-arch i386 -arch x86_64"
21+
help:
22+
@echo "Interesting targets: clean, fetch, deps, mpl_build, mpl_install_std"
23+
@echo "See README.osx for details"
2324

2425
clean:
2526
rm -rf zlib-${ZLIBVERSION}.tar.gz libpng-${PNGVERSION}.tar.gz \
@@ -36,72 +37,61 @@ fetch:
3637
${PYTHON} -c 'import urllib; urllib.urlretrieve("http://sourceforge.net/projects/libpng/files/libpng12/older-releases/${PNGVERSION}/libpng-${PNGVERSION}.tar.gz/download", "libpng-${PNGVERSION}.tar.gz")' &&\
3738
${PYTHON} -c 'import urllib; urllib.urlretrieve("http://download.savannah.gnu.org/releases/freetype/freetype-${FREETYPEVERSION}.tar.bz2", "freetype-${FREETYPEVERSION}.tar.bz2")'
3839

40+
check-prefix:
41+
@if [ ! -d "$(PREFIX)" ]; then echo Set PREFIX to a directory - see README.osx; exit 1; fi
3942

40-
41-
42-
zlib:
43-
export PKG_CONFIG_PATH=${PKG_CONFIG_PATH} &&\
43+
zlib: check-prefix
4444
rm -rf zlib-${ZLIBVERSION} &&\
4545
tar xvfz zlib-${ZLIBVERSION}.tar.gz &&\
4646
cd zlib-${ZLIBVERSION} &&\
47-
export MACOSX_DEPLOYMENT_TARGET=${MACOSX_DEPLOYMENT_TARGET} &&\
48-
export CFLAGS=${CFLAGS} &&\
49-
export LDFLAGS=${LDFLAGS} &&\
5047
./configure --prefix=${PREFIX}&&\
51-
MACOSX_DEPLOYMENT_TARGET=${MACOSX_DEPLOYMENT_TARGET} CFLAGS=${CFLAGS} LDFLAGS=${LDFLAGS} make -j3 install&& \
52-
unset MACOSX_DEPLOYMENT_TARGET
48+
${MAKE} -j3 install
5349

54-
png: zlib
55-
export PKG_CONFIG_PATH=${PKG_CONFIG_PATH} &&\
50+
png: check-prefix zlib
5651
rm -rf libpng-${PNGVERSION} &&\
5752
tar xvfz libpng-${PNGVERSION}.tar.gz && \
5853
cd libpng-${PNGVERSION} &&\
59-
export MACOSX_DEPLOYMENT_TARGET=${MACOSX_DEPLOYMENT_TARGET} &&\
60-
export CFLAGS=${CFLAGS} &&\
61-
export LDFLAGS=${LDFLAGS} &&\
6254
./configure --disable-dependency-tracking --prefix=${PREFIX} &&\
63-
make -j3 install&&\
64-
cp .libs/libpng.a . &&\
65-
unset MACOSX_DEPLOYMENT_TARGET
55+
${MAKE} -j3 install&&\
56+
cp .libs/libpng.a .
6657

67-
68-
freetype: zlib
69-
export PKG_CONFIG_PATH=${PKG_CONFIG_PATH} &&\
58+
freetype: check-prefix zlib
7059
rm -rf ${FREETYPEVERSION} &&\
7160
tar xvfj freetype-${FREETYPEVERSION}.tar.bz2 &&\
7261
cd freetype-${FREETYPEVERSION} &&\
73-
export MACOSX_DEPLOYMENT_TARGET=${MACOSX_DEPLOYMENT_TARGET} &&\
74-
export CFLAGS=${CFLAGS} &&\
75-
export LDFLAGS=${LDFLAGS} &&\
7662
./configure --prefix=${PREFIX} &&\
77-
make -j3 install &&\
78-
cp objs/.libs/libfreetype.a . &&\
79-
unset MACOSX_DEPLOYMENT_TARGET
80-
63+
${MAKE} -j3 install &&\
64+
cp objs/.libs/libfreetype.a .
8165

8266
deps: zlib png freetype
8367
echo 'all done'
8468

85-
mpl_build:
86-
export PKG_CONFIG_PATH=${PKG_CONFIG_PATH} &&\
87-
export MACOSX_DEPLOYMENT_TARGET=${MACOSX_DEPLOYMENT_TARGET} &&\
88-
export CFLAGS=${CFLAGS} &&\
89-
export LDFLAGS=${LDFLAGS} &&\
69+
# Various build and install targets
70+
#
71+
# The values of PKG_CONFIG_PATH, MACOSX_DEPLOYMENT_TARGET, CFLAGS,
72+
# LDFLAGS affect the compilation; note that variables are
73+
# automatically put into the environment by make.
74+
75+
mpl_build: check-prefix
9076
${PYTHON} setup.py build
9177

92-
mpl_install:
93-
export PKG_CONFIG_PATH=${PKG_CONFIG_PATH} &&\
94-
export MACOSX_DEPLOYMENT_TARGET=${MACOSX_DEPLOYMENT_TARGET} &&\
95-
export CFLAGS=${CFLAGS} &&\
96-
export LDFLAGS=${LDFLAGS} &&\
78+
mpl_install: check-prefix
79+
${PYTHON} setup.py install --prefix=${PREFIX}
80+
81+
mpl_install_std: check-prefix
9782
${PYTHON} setup.py install
9883

84+
mpl_install_egg: check-prefix
85+
${PYTHON} setupegg.py install
86+
87+
mpl_install_develop: check-prefix
88+
${PYTHON} setupegg.py develop
89+
9990

100-
binaries:
91+
binaries: check-prefix
92+
@if [ -z "$(PYVERSION)" ]; then echo Must set PYVERSION; exit 1; fi
10193
unset PKG_CONFIG_PATH &&\
10294
cp release/osx/data/setup.cfg release/osx/data/ReadMe.txt . &&\
103-
export CFLAGS=${CFLAGS} &&\
104-
export LDFLAGS=${LDFLAGS} &&\
10595
rm -f ${PREFIX}/lib/*.dylib &&\
10696
/Library/Frameworks/Python.framework/Versions/${PYVERSION}/bin/bdist_mpkg --readme=ReadMe.txt &&\
10797
hdiutil create -srcdir dist/matplotlib-${MPLVERSION}-py${PYVERSION}-macosx10.5.mpkg dist/matplotlib-${MPLVERSION}-py${PYVERSION}-macosx10.5.dmg &&\

0 commit comments

Comments
 (0)