mapnik/INSTALL.md

185 lines
4.9 KiB
Markdown
Raw Normal View History

# Mapnik Installation
2006-01-31 23:09:52 +00:00
Mapnik runs on Linux, OS X, Windows, and BSD systems.
To configure and build Mapnik do:
2008-04-15 07:24:52 +00:00
```bash
./configure
make
```
To trigger parallel compilation you can pass a JOBS value to make:
```bash
JOBS=4 make
```
Mapnik needs > 2 GB of RAM to build. If you use parallel compilation it needs more.
If you are on a system with less memory make sure you only build with one JOB:
```bash
JOBS=1 make
```
To use a Python interpreter that is not named `python` for your build, do
something like the following instead:
```bash
$ PYTHON=python2 ./configure
$ make PYTHON=python2
```
2013-03-22 21:14:36 +00:00
NOTE: the above will not work on windows, rather see https://github.com/mapnik/mapnik/wiki/WindowsInstallation
Then to run the tests locally (without needing to install):
git submodule update --init
make test
Install like:
make install
2009-03-31 17:46:05 +00:00
If you need to uninstall do:
2009-03-31 17:46:05 +00:00
make uninstall
2008-04-15 07:24:52 +00:00
For more details see the `Building` Section below.
2008-04-15 07:24:52 +00:00
Platform specific install guides at https://github.com/mapnik/mapnik/wiki/Mapnik-Installation
For troubleshooting help see https://github.com/mapnik/mapnik/wiki/InstallationTroubleshooting
2008-04-15 07:24:52 +00:00
## Depends
Build system dependencies are:
2014-10-02 20:24:00 +00:00
* C++ compiler supporting `-std=c++11` (like >= g++ 4.8 or >= clang++ 3.4)
* >= 2 GB RAM (> 5 GB for g++)
* Python 2.4-2.7
* Scons (a copy is bundled)
Mapnik Core depends on:
2008-04-15 07:24:52 +00:00
* Boost
- >= 1.47 is required and >= 1.56 recommended
- These libraries are used:
- filesystem
- system
- regex (optionally built with icu regex support)
- program_options (optionally for mapnik command line programs)
* libicuuc >= 4.0 (ideally >= 4.2) - International Components for Unicode
* libz - Zlib compression
* libfreetype - Freetype2 for font support (Install requires freetype-config)
* libxml2 - XML parsing (Install requires xml2-config)
* libharfbuzz - an OpenType text shaping engine (>=0.9.34 needed for CSS font-feature-settings support)
Mapnik Core optionally depends on:
* libpng >= 1.2.x - PNG graphics (Default enabled, if found)
* libjpeg - JPEG graphics (Default enabled, if found)
* libtiff - TIFF graphics (Default enabled, if found)
* libwebp - WEBP graphics (Default enabled, if found)
* libproj - PROJ.4 projection library (Default enabled, if found)
2008-04-15 07:24:52 +00:00
Additional optional dependencies:
2006-01-31 23:09:52 +00:00
2013-05-24 23:45:02 +00:00
* Cairo >= 1.6.0 - Graphics library for output formats like PDF, PS, and SVG
- pkg-config - Required for building with cairo support
* PostgreSQL (for PostGIS plugin support)
- libpq - PostreSQL libraries
- pg_config - PostgreSQL installation capabilities
* libgdal - GDAL/OGR input (For gdal and ogr plugin support)
* libsqlite3 - SQLite input (needs RTree support builtin) (sqlite plugin support)
Instructions for installing many of these dependencies on
various platforms can be found at the Mapnik Wiki:
2008-04-15 07:24:52 +00:00
https://github.com/mapnik/mapnik/wiki/Mapnik-Installation
2008-04-15 07:24:52 +00:00
## Building
The build system uses SCons, a pure python equivalent to autotools or cmake.
2006-01-31 23:09:52 +00:00
We provide a simple Makefile wrapper that can be used like:
2006-01-31 23:09:52 +00:00
./configure && make && make install
2006-01-31 23:09:52 +00:00
For help on what options are accepted do:
./configure --help
To interact with the local copy of scons directly you can do:
2006-01-31 23:09:52 +00:00
python scons/scons.py configure
2006-01-31 23:09:52 +00:00
You can also use a globally installed scons:
scons configure
If you want to clean your build do:
2006-01-31 23:09:52 +00:00
make clean
2009-03-31 17:46:05 +00:00
If you experience odd configure errors, try cleaning the configure caches:
2009-03-31 17:46:05 +00:00
make distclean
2006-01-31 23:09:52 +00:00
To install in a custom location do:
./configure PREFIX=/opt/mapnik
2008-04-15 07:24:52 +00:00
To pass custom CXXFLAGS or LDFLAGS do:
2008-04-15 07:24:52 +00:00
./configure CUSTOM_CXXFLAGS="-g -I/usr/include" CUSTOM_LDFLAGS="-L/usr/lib"
2006-01-31 23:09:52 +00:00
To pass custom paths to a dependency, like boost, do:
2006-01-31 23:09:52 +00:00
./configure BOOST_INCLUDES=/opt/boost/include BOOST_LIBS=/opt/boost/lib
2006-01-31 23:09:52 +00:00
To pass custom paths to a dependency, like icu, do:
2006-01-31 23:09:52 +00:00
./configure ICU_INCLUDES=/usr/local/include ICU_LIBS=/usr/local/include
2006-01-31 23:09:52 +00:00
For more details on usage see:
https://github.com/mapnik/mapnik/wiki/UsingScons
2006-01-31 23:09:52 +00:00
## Testing Installation
You can run the Mapnik tests locally (without installing) like:
make test
2008-04-15 07:24:52 +00:00
## Learning Mapnik
### Help
Mapnik has an active community of talented users and developers making beautiful maps.
If you need help or want to participate starting points include:
2008-04-15 07:24:52 +00:00
- Sign up and post to the mailing list: http://mapnik.org/contact/
- Join and ask questions on the #mapnik channel on irc://irc.freenode.net/mapnik
- Add your help questions to https://github.com/mapnik/mapnik-support
### Cartographers
TileMill, which uses Mapnik internally, offers great step by step tutorials for
learning advanced map styling: http://mapbox.com/tilemill/docs/crashcourse/introduction/
### Programmers
Mapnik is great for building your own mapping applications. Visit
https://github.com/mapnik/mapnik/wiki/LearningMapnik for basic
tutorials on how to programmatically use Mapnik.
### Contributers
2008-04-15 07:24:52 +00:00
Read docs/contributing.md for resources for getting involved with Mapnik development.