mapnik/INSTALL.md

175 lines
4.6 KiB
Markdown
Raw Normal View History

# Mapnik Installation
2006-02-01 00:09:52 +01:00
## Quick Start
2008-04-15 09:24:52 +02:00
To configure and build mapnik do:
2008-04-15 09:24:52 +02:00
./configure
make
sudo make install
2009-03-31 19:46:05 +02:00
If you need to uninstall do:
2009-03-31 19:46:05 +02:00
sudo make uninstall
2008-04-15 09:24:52 +02:00
For more details see the 'Building' Section below.
2008-04-15 09:24:52 +02: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 09:24:52 +02:00
## Depends
Mapnik is cross platform and runs on Linux, Mac OSX, Solaris, *BSD, and Windows.
The build system should work for all posix/unix systems but for windows see:
https://github.com/mapnik/mapnik/wiki/BuildingOnWindows
Build dependencies are:
* C++ compiler (like g++ or clang++)
* Python >= 2.4
* >= 2 GB RAM
Mapnik Core depends on:
2008-04-15 09:24:52 +02:00
* Boost
- >= 1.47 is required.
- These libraries are required:
- filesystem
- system
- thread (if mapnik threadsafe support is required, default on)
- 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
* libpng >= 1.2.x - PNG Graphics
* libjpeg - JPEG Graphics
* libtiff - TIFF Graphics
* libz - Zlib Compression
* libfreetype - Freetype2 for Font support (Install requires freetype-config)
* libxml2 - XML parsing (Install requires xml2-config)
* libproj - PROJ.4 Projection library
2008-04-15 09:24:52 +02:00
Mapnik Python binding depend on:
* Python >= 2.4
* Boost python
2006-02-01 00:09:52 +01:00
Optional dependencies:
2006-02-01 00:09:52 +01:00
* Cairo - Graphics library for PDF, PS, and SVG formats
- pkg-config - Required for building with cairo support
- libsigc++ - C++ support for cairomm
- cairomm - C++ bindings for cairo
- pycairo - Python bindings for cairo
* libpq - PostgreSQL libraries (For PostGIS plugin support)
* libgdal - GDAL/OGR input (For gdal and ogr plugin support)
* libsqlite3 - SQLite input (needs RTree support) (sqlite plugin support)
* libocci - Oracle input plugin support
* libcurl - OSM input plugin support
Instructions for installing many of these dependencies on
various platforms can be found at the Mapnik Community Wiki
(https://github.com/mapnik/mapnik/wiki/Mapnik-Installation).
2008-04-15 09:24:52 +02:00
## Building
The build system uses SCons, a pure python equivalent to autotools or cmake.
2006-02-01 00:09:52 +01:00
We provide a simple Makefile wrapper that can be used like:
2006-02-01 00:09:52 +01:00
./configure && make && make install
2006-02-01 00:09:52 +01:00
To interact with the local copy of scons directly you can do:
2006-02-01 00:09:52 +01:00
python scons/scons.py configure
2006-02-01 00:09:52 +01:00
You can also use a globally installed scons:
scons configure
If you want to clean your build do:
2006-02-01 00:09:52 +01:00
make clean
2009-03-31 19:46:05 +02:00
If you experience odd configure errors, try resetting the SCons caches:
2009-03-31 19:46:05 +02:00
make reset
2006-02-01 00:09:52 +01:00
To install in a custom location do:
./configure PREFIX=/opt/mapnik
2008-04-15 09:24:52 +02:00
To pass custom CXXFLAGS or LDFLAGS do:
2008-04-15 09:24:52 +02:00
./configure CUSTOM_CXXFLAGS="-g -I/usr/include" CUSTOM_LDFLAGS="-L/usr/lib"
2006-02-01 00:09:52 +01:00
To pass custom paths to a dependency, like boost, do:
2006-02-01 00:09:52 +01:00
./configure BOOST_INCLUDES=/opt/boost/include BOOST_LIBS=/opt/boost/lib
2006-02-01 00:09:52 +01:00
To pass custom paths to a dependency, like icu, do:
2006-02-01 00:09:52 +01:00
./configure ICU_INCLUDES=/usr/local/include ICU_LIBS=/usr/local/include
2006-02-01 00:09:52 +01:00
If you want to see configure options do:
2006-02-01 00:09:52 +01:00
./configure --help
For more details on all the options see:
https://github.com/mapnik/mapnik/wiki/UsingScons
2006-02-01 00:09:52 +01:00
## Testing Installation
First, try importing the Mapnik python module in a python interpreter,
and make sure it does so without errors:
$ python
Python 2.5.1 (r251:54863, Jan 17 2008, 19:35:17)
[GCC 4.0.1 (Apple Inc. build 5465)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import mapnik
>>>
Then, try rendering the demo map, included in the Mapnik source code::
cd demo/python
python rundemo.py
If the resulting maps look good, this indicates the core components of
Mapnik are installed properly, as well as the Shapefile plugin, Unicode
text support (ICU), and re-projection support using Proj.
For further tests see the `tests` folder within the Mapnik source code.
2005-06-14 17:06:59 +02:00
2008-04-15 09:24:52 +02:00
## Learning Mapnik
### Users
Visit https://github.com/mapnik/mapnik/wiki/LearningMapnik for basic tutorials on making maps with Mapnik using the Python bindings.
### Developers
2008-04-15 09:24:52 +02:00
Read docs/contributing.markdown for resources for getting involved with Mapnik development.
## Mapnik Community
Mapnik has an active community of talented users and developers making
amazing maps.
Please feel free to subscribe to the community list and post on both
usage and development topics: http://mapnik.org/contact/
2008-04-15 09:24:52 +02:00
You can also get involved by joining the #mapnik channel on irc://irc.freenode.net/mapnik