Improve Makefile - simplify make, without local omt-tools (PR )

pull/598/head
Hsieh Chin Fan (Pham) 2019-03-22 16:34:00 +08:00 zatwierdzone przez Martin Mikita
rodzic 2871b234a5
commit 3591cb2f8d
3 zmienionych plików z 53 dodań i 50 usunięć

Wyświetl plik

@ -20,7 +20,9 @@ help:
@echo " make psql-vacuum-analyze # PostgreSQL: VACUUM ANALYZE"
@echo " make psql-analyze # PostgreSQL: ANALYZE"
@echo " make generate-qareports # generate reports [./build/qareports]"
@echo " make generate-devdoc # generate devdoc [./build/devdoc]"
@echo " make generate-devdoc # generate devdoc including graphs for all layers [./build/devdoc]"
@echo " make etl-graph # hint for generating a single etl graph"
@echo " make mapping-graph # hint for generating a single mapping graph"
@echo " make import-sql-dev # start import-sql /bin/bash terminal"
@echo " make import-osm-dev # start import-osm /bin/bash terminal (imposm3)"
@echo " make clean-docker # remove docker containers, PG data volume"
@ -31,18 +33,22 @@ help:
@echo " make pgclimb-list-views # list PostgreSQL public schema views"
@echo " make pgclimb-list-tables # list PostgreSQL public schema tables"
@echo " cat .env # list PG database and MIN_ZOOM and MAX_ZOOM information"
@echo " cat ./quickstart.log # backup of the last ./quickstart.sh"
@echo " cat quickstart.log # backup of the last ./quickstart.sh"
@echo " make help # help about available commands"
@echo "=============================================================================="
build/openmaptiles.tm2source/data.yml:
mkdir -p build/openmaptiles.tm2source && generate-tm2source openmaptiles.yaml --host="postgres" --port=5432 --database="openmaptiles" --user="openmaptiles" --password="openmaptiles" > build/openmaptiles.tm2source/data.yml
build:
mkdir -p build
build/mapping.yaml:
mkdir -p build && generate-imposm3 openmaptiles.yaml > build/mapping.yaml
build/openmaptiles.tm2source/data.yml: build
mkdir -p build/openmaptiles.tm2source
docker-compose run --rm openmaptiles-tools generate-tm2source openmaptiles.yaml --host="postgres" --port=5432 --database="openmaptiles" --user="openmaptiles" --password="openmaptiles" > build/openmaptiles.tm2source/data.yml
build/tileset.sql:
mkdir -p build && generate-sql openmaptiles.yaml > build/tileset.sql
build/mapping.yaml: build
docker-compose run --rm openmaptiles-tools generate-imposm3 openmaptiles.yaml > build/mapping.yaml
build/tileset.sql: build
docker-compose run --rm openmaptiles-tools generate-sql openmaptiles.yaml > build/tileset.sql
clean:
rm -f build/openmaptiles.tm2source/data.yml && rm -f build/mapping.yaml && rm -f build/tileset.sql
@ -70,30 +76,18 @@ download-geofabrik:
psql: db-start
docker-compose run --rm import-osm /usr/src/app/psql.sh
cfg-remake:
docker-compose run --rm openmaptiles-tools make clean
docker-compose run --rm openmaptiles-tools make
import-osm: db-start
docker-compose run --rm openmaptiles-tools make clean
docker-compose run --rm openmaptiles-tools make
import-osm: db-start all
docker-compose run --rm import-osm
import-sql: db-start
docker-compose run --rm openmaptiles-tools make clean
docker-compose run --rm openmaptiles-tools make
import-sql: db-start all
docker-compose run --rm import-sql
import-osmsql: db-start
docker-compose run --rm openmaptiles-tools make clean
docker-compose run --rm openmaptiles-tools make
import-osmsql: db-start all
docker-compose run --rm import-osm
docker-compose run --rm import-sql
generate-tiles: db-start
generate-tiles: db-start all
rm -rf data/tiles.mbtiles
docker-compose run --rm openmaptiles-tools make clean
docker-compose run --rm openmaptiles-tools make
if [ -f ./data/docker-compose-config.yml ]; then \
docker-compose -f docker-compose.yml -f ./data/docker-compose-config.yml run --rm generate-vectortiles; \
else \
@ -147,23 +141,35 @@ start-postserve:
generate-qareports:
./qa/run.sh
# work in progress - please don't remove
generate-devdoc:
build/devdoc:
mkdir -p ./build/devdoc
docker run --rm -v $$(pwd):/tileset openmaptiles/openmaptiles-tools generate-etlgraph layers/aeroway/aeroway.yaml ./build/devdoc
docker run --rm -v $$(pwd):/tileset openmaptiles/openmaptiles-tools generate-etlgraph layers/boundary/boundary.yaml ./build/devdoc
docker run --rm -v $$(pwd):/tileset openmaptiles/openmaptiles-tools generate-etlgraph layers/building/building.yaml ./build/devdoc
docker run --rm -v $$(pwd):/tileset openmaptiles/openmaptiles-tools generate-etlgraph layers/housenumber/housenumber.yaml ./build/devdoc
docker run --rm -v $$(pwd):/tileset openmaptiles/openmaptiles-tools generate-etlgraph layers/landcover/landcover.yaml ./build/devdoc
docker run --rm -v $$(pwd):/tileset openmaptiles/openmaptiles-tools generate-etlgraph layers/landuse/landuse.yaml ./build/devdoc
docker run --rm -v $$(pwd):/tileset openmaptiles/openmaptiles-tools generate-etlgraph layers/park/park.yaml ./build/devdoc
docker run --rm -v $$(pwd):/tileset openmaptiles/openmaptiles-tools generate-etlgraph layers/place/place.yaml ./build/devdoc
docker run --rm -v $$(pwd):/tileset openmaptiles/openmaptiles-tools generate-etlgraph layers/poi/poi.yaml ./build/devdoc
docker run --rm -v $$(pwd):/tileset openmaptiles/openmaptiles-tools generate-etlgraph layers/transportation/transportation.yaml ./build/devdoc
docker run --rm -v $$(pwd):/tileset openmaptiles/openmaptiles-tools generate-etlgraph layers/transportation_name/transportation_name.yaml ./build/devdoc
docker run --rm -v $$(pwd):/tileset openmaptiles/openmaptiles-tools generate-etlgraph layers/water/water.yaml ./build/devdoc
docker run --rm -v $$(pwd):/tileset openmaptiles/openmaptiles-tools generate-etlgraph layers/water_name/water_name.yaml ./build/devdoc
docker run --rm -v $$(pwd):/tileset openmaptiles/openmaptiles-tools generate-etlgraph layers/waterway/waterway.yaml ./build/devdoc
layers = $(notdir $(wildcard layers/*)) # all layers
etl-graph:
@echo 'Use'
@echo ' make etl-graph-[layer] to generate etl graph for [layer]'
@echo ' example: make etl-graph-poi'
@echo 'Valid layers: $(layers)'
# generate etl graph for a certain layer, e.g. etl-graph-building, etl-graph-place
etl-graph-%: layers/% build/devdoc
docker run --rm -v $$(pwd):/tileset openmaptiles/openmaptiles-tools generate-etlgraph layers/$*/$*.yaml ./build/devdoc
mappingLayers = $(notdir $(patsubst %/mapping.yaml,%, $(wildcard layers/*/mapping.yaml))) # layers with mapping.yaml
# generate mapping graph for a certain layer, e.g. mapping-graph-building, mapping-graph-place
mapping-graph:
@echo 'Use'
@echo ' make mapping-graph-[layer] to generate mapping graph for [layer]'
@echo ' example: make mapping-graph-poi'
@echo 'Valid layers: $(mappingLayers)'
mapping-graph-%: ./layers/%/mapping.yaml build/devdoc
docker run --rm -v $$(pwd):/tileset openmaptiles/openmaptiles-tools generate-mapping-graph layers/$*/$*.yaml ./build/devdoc/mapping-diagram-$*
# generate all etl and mapping graphs
generate-devdoc: $(addprefix etl-graph-,$(layers)) $(addprefix mapping-graph-,$(mappingLayers))
import-sql-dev:
docker-compose run --rm import-sql /bin/bash

Wyświetl plik

@ -2,7 +2,7 @@
OpenMapTiles is an extensible and open tile schema based on the OpenStreetMap. It is used to generate vector tiles for online zoomable maps. The project is about creating a beautiful basemaps with general layers that contain topographic information. More information [openmaptiles.org](http://openmaptiles.org/) and [openmaptiles.com](http://openmaptiles.com/).
We encourage you to collaborate, reuse and adapt existing layers and add your own layers or use our approach for your own vector tile project. Feel free to fork the repo and experiment. The repository is built on top of the [openmaptiles/tools](https://github.com/openmaptiles/openmaptiles-tools) to simplify vector tile creation.
We encourage you to collaborate, reuse and adapt existing layers and add your own layers or use our approach for your own vector tile project. Feel free to fork the repo and experiment. The repository is built on top of the [openmaptiles/openmaptiles-tools](https://github.com/openmaptiles/openmaptiles-tools) to simplify vector tile creation.
- :link: Discuss at the #openmaptiles channel at [OSM Slack](https://osmus-slack.herokuapp.com/)
- :link: Docs https://openmaptiles.org/docs
@ -63,11 +63,10 @@ Together the layers make up the OpenMapTiles tileset.
## Develop
To work on OpenMapTiles you need Docker and Python.
To work on OpenMapTiles you need Docker.
- Install [Docker](https://docs.docker.com/engine/installation/). Minimum version is 1.12.3+.
- Install [Docker Compose](https://docs.docker.com/compose/install/). Minimum version is 1.7.1+.
- Install [OpenMapTiles tools](https://github.com/openmaptiles/openmaptiles-tools) with `pip install openmaptiles-tools`
### Build
@ -78,8 +77,6 @@ git clone git@github.com:openmaptiles/openmaptiles.git
cd openmaptiles
# Build the imposm mapping, the tm2source project and collect all SQL scripts
make
# You can also run the build process inside a Docker container
docker run -v $(pwd):/tileset openmaptiles/openmaptiles-tools make
```
You can execute the following manual steps (for better understanding)
@ -122,10 +119,10 @@ docker-compose run import-osm
### Work on Layers
Each time you modify layer SQL code run `make` and `docker-compose run import-sql`.
Each time you modify layer SQL code run `make` and `make import-sql`.
```
make clean && make && docker-compose run import-sql
make clean && make && make import-sql
```
Now you are ready to **generate the vector tiles**. Using environment variables

Wyświetl plik

@ -167,21 +167,21 @@ fi
echo " "
echo "-------------------------------------------------------------------------------------"
echo "====> : Remove old generated source files ( ./build/* ) ( if they exist ) "
docker-compose run --rm openmaptiles-tools make clean
make clean
echo " "
echo "-------------------------------------------------------------------------------------"
echo "====> : Code generating from the layer definitions ( ./build/mapping.yaml; ./build/tileset.sql )"
echo " : The tool source code: https://github.com/openmaptiles/openmaptiles-tools "
echo " : But we generate the tm2source, Imposm mappings and SQL functions from the layer definitions! "
docker-compose run --rm openmaptiles-tools make
make
echo " "
echo "-------------------------------------------------------------------------------------"
echo "====> : Start PostgreSQL service ; create PostgreSQL data volume "
echo " : Source code: https://github.com/openmaptiles/postgis "
echo " : Thank you: https://www.postgresql.org ! Thank you http://postgis.org !"
docker-compose up -d postgres
docker-compose up -d postgres
echo " "
echo "-------------------------------------------------------------------------------------"