mirror of
https://github.com/osm-search/Nominatim.git
synced 2024-11-27 00:49:55 +03:00
Merge pull request #381 from lonvia/cmake-port
Replace autotools with cmake and update osm2pgsql
This commit is contained in:
commit
279ea25e7d
26
.gitignore
vendored
26
.gitignore
vendored
@ -1,33 +1,11 @@
|
||||
*.log
|
||||
*.pyc
|
||||
|
||||
nominatim/*.d
|
||||
nominatim/*.o
|
||||
nominatim/nominatim
|
||||
module/nominatim.so
|
||||
module/nominatim.o
|
||||
settings/configuration.txt
|
||||
settings/download.lock
|
||||
settings/state.txt
|
||||
build
|
||||
settings/local.php
|
||||
|
||||
.deps/
|
||||
autom4te.cache/
|
||||
config.*
|
||||
configure
|
||||
Makefile
|
||||
!tests/scenes/bin/Makefile
|
||||
Makefile.in
|
||||
stamp-h1
|
||||
missing
|
||||
INSTALL
|
||||
aclocal.m4
|
||||
depcomp
|
||||
install-sh
|
||||
compile
|
||||
|
||||
data/wiki_import.sql
|
||||
data/wiki_specialphrases.sql
|
||||
data/osmosischange.osc
|
||||
|
||||
.vagrant
|
||||
.vagrant
|
||||
|
104
CMakeLists.txt
Normal file
104
CMakeLists.txt
Normal file
@ -0,0 +1,104 @@
|
||||
#-----------------------------------------------------------------------------
|
||||
#
|
||||
# CMake Config
|
||||
#
|
||||
# Nominatim
|
||||
#
|
||||
#-----------------------------------------------------------------------------
|
||||
|
||||
cmake_minimum_required(VERSION 2.8 FATAL_ERROR)
|
||||
list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake")
|
||||
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
#
|
||||
# Project version
|
||||
#
|
||||
#-----------------------------------------------------------------------------
|
||||
|
||||
project(nominatim)
|
||||
|
||||
set(NOMINATIM_VERSION_MAJOR 2)
|
||||
set(NOMINATIM_VERSION_MINOR 5)
|
||||
|
||||
set(NOMINATIM_VERSION "${NOMINATIM_VERSION_MAJOR}.${NOMINATIM_VERSION_MINOR}")
|
||||
|
||||
add_definitions(-DNOMINATIM_VERSION="${NOMINATIM_VERSION}")
|
||||
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
#
|
||||
# Find external dependencies
|
||||
#
|
||||
#-----------------------------------------------------------------------------
|
||||
|
||||
set(BUILD_TESTS on)
|
||||
add_subdirectory(osm2pgsql)
|
||||
|
||||
find_package(Threads REQUIRED)
|
||||
|
||||
unset(PostgreSQL_TYPE_INCLUDE_DIR CACHE)
|
||||
set(PostgreSQL_TYPE_INCLUDE_DIR "/usr/include/")
|
||||
find_package(PostgreSQL REQUIRED)
|
||||
include_directories(${PostgreSQL_INCLUDE_DIRS})
|
||||
|
||||
find_program(PG_CONFIG pg_config)
|
||||
execute_process(COMMAND ${PG_CONFIG} --pgxs
|
||||
OUTPUT_VARIABLE PGXS
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
|
||||
find_package(ZLIB REQUIRED)
|
||||
|
||||
find_package(BZip2 REQUIRED)
|
||||
|
||||
find_package(LibXml2 REQUIRED)
|
||||
include_directories(${LIBXML2_INCLUDE_DIR})
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
#
|
||||
# Setup settings and paths
|
||||
#
|
||||
#-----------------------------------------------------------------------------
|
||||
|
||||
configure_file(
|
||||
${PROJECT_SOURCE_DIR}/settings/settings.php
|
||||
${PROJECT_BINARY_DIR}/settings/settings.php
|
||||
)
|
||||
|
||||
configure_file(
|
||||
${PROJECT_SOURCE_DIR}/settings/phrase_settings.php
|
||||
${PROJECT_BINARY_DIR}/settings/phrase_settings.php
|
||||
)
|
||||
|
||||
execute_process(
|
||||
COMMAND ln -s -t ${PROJECT_BINARY_DIR} ${PROJECT_SOURCE_DIR}/utils
|
||||
)
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
#
|
||||
# Tests
|
||||
#
|
||||
#-----------------------------------------------------------------------------
|
||||
|
||||
include(CTest)
|
||||
|
||||
set(TEST_BDD db osm2pgsql api)
|
||||
|
||||
foreach (test ${TEST_BDD})
|
||||
add_test(NAME bdd_${test}
|
||||
COMMAND lettuce features/${test}
|
||||
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/tests)
|
||||
set_tests_properties(bdd_${test}
|
||||
PROPERTIES ENVIRONMENT "NOMINATIM_DIR=${PROJECT_BINARY_DIR}")
|
||||
endforeach()
|
||||
|
||||
add_test(NAME php
|
||||
COMMAND phpunit ./
|
||||
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/tests-php)
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
|
||||
add_subdirectory(module)
|
||||
add_subdirectory(nominatim)
|
||||
|
||||
#-----------------------------------------------------------------------------
|
27
Makefile.am
27
Makefile.am
@ -1,27 +0,0 @@
|
||||
ACLOCAL_AMFLAGS = -I osm2pgsql/m4
|
||||
AUTOMAKE_OPTIONS = -Wno-portability
|
||||
|
||||
SUBDIRS = osm2pgsql module nominatim
|
||||
|
||||
NOMINATIM_SERVER ?= $(shell echo a | php -F lib/init.php -E 'echo CONST_Website_BaseURL."\n";')
|
||||
NOMINATIM_DATABASE ?= $(shell echo a | php -F lib/init.php -E 'echo DB::parseDSN(CONST_Database_DSN)["database"];')
|
||||
|
||||
install:
|
||||
@echo Nominatim needs to be executed directly from this directory. No install necessary.
|
||||
|
||||
test:
|
||||
cd tests; NOMINATIM_SERVER=${NOMINATIM_SERVER} lettuce -t -Fail -t -poldi-only
|
||||
|
||||
test-fast:
|
||||
cd tests; NOMINATIM_SERVER=${NOMINATIM_SERVER} NOMINATIM_REUSE_TEMPLATE=1 lettuce -t -Fail -t -poldi-only
|
||||
|
||||
test-db:
|
||||
cd tests; NOMINATIM_SERVER=${NOMINATIM_SERVER} lettuce -t -Fail -t -poldi-only features/db
|
||||
|
||||
test-db-fast:
|
||||
cd tests; NOMINATIM_SERVER=${NOMINATIM_SERVER} NOMINATIM_REUSE_TEMPLATE=1 lettuce -t -Fail -t -poldi-only features/db
|
||||
|
||||
test-api:
|
||||
cd tests; NOMINATIM_SERVER=${NOMINATIM_SERVER} lettuce -t -Fail -t -poldi-only features/api
|
||||
|
||||
.PHONY: test test-fast test-db test-db-fast test-api
|
8
README
8
README
@ -29,13 +29,11 @@ is cloned as well by running `git submodule update --init`.
|
||||
|
||||
Installation steps:
|
||||
|
||||
0. If checking out from git run:
|
||||
|
||||
./autogen.sh
|
||||
|
||||
1. Compile Nominatim:
|
||||
|
||||
./configure
|
||||
mkdir build
|
||||
cd build
|
||||
cmake ..
|
||||
make
|
||||
|
||||
2. Get OSM data and import:
|
||||
|
@ -1,2 +0,0 @@
|
||||
#!/bin/sh
|
||||
autoreconf -vfi
|
67
configure.ac
67
configure.ac
@ -1,67 +0,0 @@
|
||||
AC_INIT(Nominatim,2.5)
|
||||
if git rev-parse HEAD 2>/dev/null >/dev/null; then
|
||||
AC_SUBST([PACKAGE_VERSION], [$PACKAGE_VERSION-git-`git rev-parse --short HEAD`])
|
||||
fi
|
||||
|
||||
dnl Required autoconf version
|
||||
AC_PREREQ(2.61)
|
||||
|
||||
AM_INIT_AUTOMAKE([1.9.6 dist-bzip2 std-options check-news])
|
||||
|
||||
dnl Additional macro definitions are in here
|
||||
m4_include([m4/ax_lib_postgresql_svr.m4])
|
||||
AC_CONFIG_MACRO_DIR([osm2pgsql/m4])
|
||||
|
||||
dnl Generate configuration header file
|
||||
AC_CONFIG_HEADER(nominatim/config.h)
|
||||
|
||||
|
||||
dnl Find C compiler
|
||||
AC_PROG_CC
|
||||
|
||||
dnl Find C++ compiler
|
||||
AC_PROG_CXX
|
||||
|
||||
dnl pthread
|
||||
AX_PTHREAD([], [AC_MSG_ERROR([pthread library required])])
|
||||
|
||||
dnl Check for Geos library
|
||||
AX_LIB_GEOS
|
||||
if test "x$GEOS_VERSION" = "x"
|
||||
then
|
||||
AC_MSG_ERROR([required library not found]);
|
||||
fi
|
||||
|
||||
dnl Check for Proj library
|
||||
AX_LIB_PROJ
|
||||
if test "$HAVE_PROJ" = "no"
|
||||
then
|
||||
AC_MSG_ERROR([required library not found]);
|
||||
fi
|
||||
|
||||
|
||||
dnl Check for PostgresSQL client library
|
||||
AX_LIB_POSTGRESQL(9.0)
|
||||
if test "x$POSTGRESQL_VERSION" = "x"
|
||||
then
|
||||
AC_MSG_ERROR([postgresql client library not found])
|
||||
fi
|
||||
AX_LIB_POSTGRESQL_SVR(9.0)
|
||||
if test ! -f "$POSTGRESQL_PGXS"
|
||||
then
|
||||
AC_MSG_ERROR([postgresql server development library not found])
|
||||
fi
|
||||
|
||||
dnl Check for bzip2 library
|
||||
AX_LIB_BZIP2
|
||||
if test "$HAVE_BZIP2" = "no"
|
||||
then
|
||||
AC_MSG_ERROR([required library not found]);
|
||||
fi
|
||||
|
||||
dnl Check for libxml2 library
|
||||
AM_PATH_XML2
|
||||
|
||||
AC_CONFIG_SUBDIRS([osm2pgsql])
|
||||
|
||||
AC_OUTPUT(Makefile nominatim/Makefile module/Makefile)
|
@ -1,36 +0,0 @@
|
||||
# This file includes a small subset of OpenLayers code, designed to be
|
||||
# integrated into another application. It includes only the Layer types
|
||||
# neccesary to create tiled or untiled WMS, and does not include any Controls.
|
||||
# This is the result of what was at the time called "Webmap.js" at the FOSS4G
|
||||
# Web Mapping BOF.
|
||||
|
||||
[first]
|
||||
|
||||
[last]
|
||||
|
||||
[include]
|
||||
OpenLayers/Map.js
|
||||
OpenLayers/Kinetic.js
|
||||
OpenLayers/Geometry/MultiLineString.js
|
||||
OpenLayers/Geometry/MultiPolygon.js
|
||||
OpenLayers/Format/WKT.js
|
||||
OpenLayers/Layer/OSM.js
|
||||
OpenLayers/Layer/Vector.js
|
||||
OpenLayers/Layer/SphericalMercator.js
|
||||
OpenLayers/Control/Attribution.js
|
||||
OpenLayers/Control/KeyboardDefaults.js
|
||||
OpenLayers/Control/Navigation.js
|
||||
OpenLayers/Control/MousePosition.js
|
||||
OpenLayers/Control/PanZoomBar.js
|
||||
OpenLayers/Control/Permalink.js
|
||||
OpenLayers/Control/TouchNavigation.js
|
||||
OpenLayers/Style.js
|
||||
OpenLayers/Protocol/HTTP.js
|
||||
OpenLayers/Projection.js
|
||||
OpenLayers/Renderer/SVG.js
|
||||
OpenLayers/Renderer/VML.js
|
||||
OpenLayers/Renderer/Canvas.js
|
||||
|
||||
[exclude]
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
@define('CONST_BasePath', dirname(dirname(__FILE__)));
|
||||
|
||||
require_once(CONST_BasePath.'/settings/settings.php');
|
||||
require_once('settings/settings.php');
|
||||
require_once(CONST_BasePath.'/lib/lib.php');
|
||||
require_once(CONST_BasePath.'/lib/leakybucket.php');
|
||||
require_once(CONST_BasePath.'/lib/db.php');
|
||||
|
@ -1,125 +0,0 @@
|
||||
# SYNOPSIS
|
||||
#
|
||||
# AX_LIB_POSTGRESQL_SVR([MINIMUM-VERSION])
|
||||
#
|
||||
# DESCRIPTION
|
||||
#
|
||||
# This macro provides tests of availability of PostgreSQL server library
|
||||
#
|
||||
# This macro calls:
|
||||
#
|
||||
# AC_SUBST(POSTGRESQL_PGXS)
|
||||
# AC_SUBST(POSTGRESQL_SERVER_CFLAGS)
|
||||
#
|
||||
# LICENSE
|
||||
#
|
||||
# Copyright (c) 2008 Mateusz Loskot <mateusz@loskot.net>
|
||||
# Copyright (c) 2015 Sarah Hoffmann <lonia@denofr.de>
|
||||
#
|
||||
# Copying and distribution of this file, with or without modification, are
|
||||
# permitted in any medium without royalty provided the copyright notice
|
||||
# and this notice are preserved.
|
||||
|
||||
AC_DEFUN([AX_LIB_POSTGRESQL_SVR],
|
||||
[
|
||||
AC_ARG_WITH([postgresql],
|
||||
AC_HELP_STRING([--with-postgresql-svr=@<:@ARG@:>@],
|
||||
[use PostgreSQL server library @<:@default=yes@:>@, optionally specify path to pg_config]
|
||||
),
|
||||
[
|
||||
if test "$withval" = "no"; then
|
||||
want_postgresql="no"
|
||||
elif test "$withval" = "yes"; then
|
||||
want_postgresql="yes"
|
||||
else
|
||||
want_postgresql="yes"
|
||||
PG_CONFIG="$withval"
|
||||
fi
|
||||
],
|
||||
[want_postgresql="yes"]
|
||||
)
|
||||
|
||||
dnl
|
||||
dnl Check PostgreSQL server libraries
|
||||
dnl
|
||||
|
||||
if test "$want_postgresql" = "yes"; then
|
||||
|
||||
if test -z "$PG_CONFIG" -o test; then
|
||||
AC_PATH_PROG([PG_CONFIG], [pg_config], [])
|
||||
fi
|
||||
|
||||
if test ! -x "$PG_CONFIG"; then
|
||||
AC_MSG_ERROR([$PG_CONFIG does not exist or it is not an exectuable file])
|
||||
PG_CONFIG="no"
|
||||
found_postgresql="no"
|
||||
fi
|
||||
|
||||
if test "$PG_CONFIG" != "no"; then
|
||||
AC_MSG_CHECKING([for PostgreSQL server libraries])
|
||||
|
||||
POSTGRESQL_SERVER_CFLAGS="-I`$PG_CONFIG --includedir-server`"
|
||||
|
||||
POSTGRESQL_VERSION=`$PG_CONFIG --version | sed -e 's#PostgreSQL ##'`
|
||||
|
||||
POSTGRESQL_PGXS=`$PG_CONFIG --pgxs`
|
||||
if test -f "$POSTGRESQL_PGXS"
|
||||
then
|
||||
found_postgresql="yes"
|
||||
AC_MSG_RESULT([yes])
|
||||
fi
|
||||
else
|
||||
found_postgresql="no"
|
||||
AC_MSG_RESULT([no])
|
||||
fi
|
||||
fi
|
||||
|
||||
dnl
|
||||
dnl Check if required version of PostgreSQL is available
|
||||
dnl
|
||||
|
||||
|
||||
postgresql_version_req=ifelse([$1], [], [], [$1])
|
||||
|
||||
if test "$found_postgresql" = "yes" -a -n "$postgresql_version_req"; then
|
||||
|
||||
AC_MSG_CHECKING([if PostgreSQL version is >= $postgresql_version_req])
|
||||
|
||||
dnl Decompose required version string of PostgreSQL
|
||||
dnl and calculate its number representation
|
||||
postgresql_version_req_major=`expr $postgresql_version_req : '\([[0-9]]*\)'`
|
||||
postgresql_version_req_minor=`expr $postgresql_version_req : '[[0-9]]*\.\([[0-9]]*\)'`
|
||||
postgresql_version_req_micro=`expr $postgresql_version_req : '[[0-9]]*\.[[0-9]]*\.\([[0-9]]*\)'`
|
||||
if test "x$postgresql_version_req_micro" = "x"; then
|
||||
postgresql_version_req_micro="0"
|
||||
fi
|
||||
|
||||
postgresql_version_req_number=`expr $postgresql_version_req_major \* 1000000 \
|
||||
\+ $postgresql_version_req_minor \* 1000 \
|
||||
\+ $postgresql_version_req_micro`
|
||||
|
||||
dnl Decompose version string of installed PostgreSQL
|
||||
dnl and calculate its number representation
|
||||
postgresql_version_major=`expr $POSTGRESQL_VERSION : '\([[0-9]]*\)'`
|
||||
postgresql_version_minor=`expr $POSTGRESQL_VERSION : '[[0-9]]*\.\([[0-9]]*\)'`
|
||||
postgresql_version_micro=`expr $POSTGRESQL_VERSION : '[[0-9]]*\.[[0-9]]*\.\([[0-9]]*\)'`
|
||||
if test "x$postgresql_version_micro" = "x"; then
|
||||
postgresql_version_micro="0"
|
||||
fi
|
||||
|
||||
postgresql_version_number=`expr $postgresql_version_major \* 1000000 \
|
||||
\+ $postgresql_version_minor \* 1000 \
|
||||
\+ $postgresql_version_micro`
|
||||
|
||||
postgresql_version_check=`expr $postgresql_version_number \>\= $postgresql_version_req_number`
|
||||
if test "$postgresql_version_check" = "1"; then
|
||||
AC_MSG_RESULT([yes])
|
||||
else
|
||||
AC_MSG_RESULT([no])
|
||||
fi
|
||||
fi
|
||||
|
||||
AC_SUBST([POSTGRESQL_PGXS])
|
||||
AC_SUBST([POSTGRESQL_SERVER_CFLAGS])
|
||||
])
|
||||
|
@ -1,150 +0,0 @@
|
||||
# SYNOPSIS
|
||||
#
|
||||
# AX_LIB_XML2([MINIMUM-VERSION])
|
||||
#
|
||||
# DESCRIPTION
|
||||
#
|
||||
# This macro provides tests of availability of xml2 'libxml2' library
|
||||
# of particular version or newer.
|
||||
#
|
||||
# AX_LIB_LIBXML2 macro takes only one argument which is optional. If
|
||||
# there is no required version passed, then macro does not run version
|
||||
# test.
|
||||
#
|
||||
# The --with-libxml2 option takes one of three possible values:
|
||||
#
|
||||
# no - do not check for xml2 library
|
||||
#
|
||||
# yes - do check for xml2 library in standard locations (xml2-config
|
||||
# should be in the PATH)
|
||||
#
|
||||
# path - complete path to xml2-config utility, use this option if xml2-config
|
||||
# can't be found in the PATH
|
||||
#
|
||||
# This macro calls:
|
||||
#
|
||||
# AC_SUBST(XML2_CFLAGS)
|
||||
# AC_SUBST(XML2_LDFLAGS)
|
||||
# AC_SUBST(XML2_VERSION)
|
||||
#
|
||||
# And sets:
|
||||
#
|
||||
# HAVE_XML2
|
||||
#
|
||||
# LICENSE
|
||||
#
|
||||
# Copyright (c) 2009 Hartmut Holzgraefe <hartmut@php.net>
|
||||
#
|
||||
# Copying and distribution of this file, with or without modification, are
|
||||
# permitted in any medium without royalty provided the copyright notice
|
||||
# and this notice are preserved.
|
||||
|
||||
AC_DEFUN([AX_LIB_XML2],
|
||||
[
|
||||
AC_ARG_WITH([libxml2],
|
||||
AC_HELP_STRING([--with-libxml2=@<:@ARG@:>@],
|
||||
[use libxml2 library @<:@default=yes@:>@, optionally specify path to xml2-config]
|
||||
),
|
||||
[
|
||||
if test "$withval" = "no"; then
|
||||
want_libxml2="no"
|
||||
elif test "$withval" = "yes"; then
|
||||
want_libxml2="yes"
|
||||
else
|
||||
want_libxml2="yes"
|
||||
XML2_CONFIG="$withval"
|
||||
fi
|
||||
],
|
||||
[want_libxml2="yes"]
|
||||
)
|
||||
|
||||
XML2_CFLAGS=""
|
||||
XML2_LDFLAGS=""
|
||||
XML2_VERSION=""
|
||||
|
||||
dnl
|
||||
dnl Check xml2 libraries (libxml2)
|
||||
dnl
|
||||
|
||||
if test "$want_libxml2" = "yes"; then
|
||||
|
||||
if test -z "$XML2_CONFIG" -o test; then
|
||||
AC_PATH_PROG([XML2_CONFIG], [xml2-config], [])
|
||||
fi
|
||||
|
||||
if test ! -x "$XML2_CONFIG"; then
|
||||
AC_MSG_ERROR([$XML2_CONFIG does not exist or it is not an exectuable file])
|
||||
XML2_CONFIG="no"
|
||||
found_libxml2="no"
|
||||
fi
|
||||
|
||||
if test "$XML2_CONFIG" != "no"; then
|
||||
AC_MSG_CHECKING([for xml2 libraries])
|
||||
|
||||
XML2_CFLAGS="`$XML2_CONFIG --cflags`"
|
||||
XML2_LDFLAGS="`$XML2_CONFIG --libs`"
|
||||
|
||||
XML2_VERSION=`$XML2_CONFIG --version`
|
||||
|
||||
AC_DEFINE([HAVE_XML2], [1],
|
||||
[Define to 1 if xml2 libraries are available])
|
||||
|
||||
found_libxml2="yes"
|
||||
AC_MSG_RESULT([yes])
|
||||
else
|
||||
found_libxml2="no"
|
||||
AC_MSG_RESULT([no])
|
||||
fi
|
||||
fi
|
||||
|
||||
dnl
|
||||
dnl Check if required version of xml2 is available
|
||||
dnl
|
||||
|
||||
|
||||
libxml2_version_req=ifelse([$1], [], [], [$1])
|
||||
|
||||
|
||||
if test "$found_libxml2" = "yes" -a -n "$libxml2_version_req"; then
|
||||
|
||||
AC_MSG_CHECKING([if libxml2 version is >= $libxml2_version_req])
|
||||
|
||||
dnl Decompose required version string of libxml2
|
||||
dnl and calculate its number representation
|
||||
libxml2_version_req_major=`expr $libxml2_version_req : '\([[0-9]]*\)'`
|
||||
libxml2_version_req_minor=`expr $libxml2_version_req : '[[0-9]]*\.\([[0-9]]*\)'`
|
||||
libxml2_version_req_micro=`expr $libxml2_version_req : '[[0-9]]*\.[[0-9]]*\.\([[0-9]]*\)'`
|
||||
if test "x$libxml2_version_req_micro" = "x"; then
|
||||
libxml2_version_req_micro="0"
|
||||
fi
|
||||
|
||||
libxml2_version_req_number=`expr $libxml2_version_req_major \* 1000000 \
|
||||
\+ $libxml2_version_req_minor \* 1000 \
|
||||
\+ $libxml2_version_req_micro`
|
||||
|
||||
dnl Decompose version string of installed PostgreSQL
|
||||
dnl and calculate its number representation
|
||||
libxml2_version_major=`expr $XML2_VERSION : '\([[0-9]]*\)'`
|
||||
libxml2_version_minor=`expr $XML2_VERSION : '[[0-9]]*\.\([[0-9]]*\)'`
|
||||
libxml2_version_micro=`expr $XML2_VERSION : '[[0-9]]*\.[[0-9]]*\.\([[0-9]]*\)'`
|
||||
if test "x$libxml2_version_micro" = "x"; then
|
||||
libxml2_version_micro="0"
|
||||
fi
|
||||
|
||||
libxml2_version_number=`expr $libxml2_version_major \* 1000000 \
|
||||
\+ $libxml2_version_minor \* 1000 \
|
||||
\+ $libxml2_version_micro`
|
||||
|
||||
libxml2_version_check=`expr $libxml2_version_number \>\= $libxml2_version_req_number`
|
||||
if test "$libxml2_version_check" = "1"; then
|
||||
AC_MSG_RESULT([yes])
|
||||
else
|
||||
AC_MSG_RESULT([no])
|
||||
fi
|
||||
fi
|
||||
|
||||
AC_SUBST([XML2_VERSION])
|
||||
AC_SUBST([XML2_CFLAGS])
|
||||
AC_SUBST([XML2_LDFLAGS])
|
||||
])
|
||||
|
10
module/CMakeLists.txt
Normal file
10
module/CMakeLists.txt
Normal file
@ -0,0 +1,10 @@
|
||||
# just use the pgxs makefile
|
||||
ADD_CUSTOM_COMMAND( OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/dummy
|
||||
COMMAND PGXS=${PGXS} PG_CONFIG=${PG_CONFIG} make -f ${CMAKE_CURRENT_SOURCE_DIR}/Makefile
|
||||
COMMENT "Running external makefile ${PGXS}"
|
||||
)
|
||||
|
||||
ADD_CUSTOM_TARGET( nominatim_lib ALL
|
||||
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/dummy
|
||||
)
|
||||
|
@ -1,6 +1,4 @@
|
||||
MODULES = nominatim
|
||||
PGXS := @POSTGRESQL_PGXS@
|
||||
PG_CONFIG := @PG_CONFIG@
|
||||
include $(PGXS)
|
||||
|
||||
all:
|
4
nominatim/CMakeLists.txt
Normal file
4
nominatim/CMakeLists.txt
Normal file
@ -0,0 +1,4 @@
|
||||
add_executable(nominatim export.c geometry.cpp import.c index.c input.c nominatim.c postgresql.c sprompt.c)
|
||||
|
||||
target_link_libraries(nominatim ${LIBXML2_LIBRARIES} ${ZLIB_LIBRARIES} ${BZIP2_LIBRARIES} ${PostgreSQL_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT})
|
||||
|
@ -1,9 +0,0 @@
|
||||
bin_PROGRAMS = nominatim
|
||||
|
||||
nominatim_SOURCES = export.c geometry.cpp import.c index.c input.c nominatim.c postgresql.c sprompt.c
|
||||
|
||||
AM_CFLAGS = @PTHREAD_CFLAGS@ @POSTGRESQL_CPPFLAGS@ @XML_CPPFLAGS@ @BZIP2_CFLAGS@ @GEOS_CFLAGS@ @PROJ_CFLAGS@ -DVERSION='"@PACKAGE_VERSION@"'
|
||||
AM_CPPFLAGS = @PTHREAD_CFLAGS@ @POSTGRESQL_CPPFLAGS@ @XML_CPPFLAGS@ @BZIP2_CFLAGS@ @GEOS_CFLAGS@ @PROJ_CFLAGS@
|
||||
|
||||
nominatim_LDADD = @PTHREAD_CFLAGS@ @POSTGRESQL_LDFLAGS@ @POSTGRESQL_LIBS@ @XML_LIBS@ @BZIP2_LDFLAGS@ @BZIP2_LIBS@ @GEOS_LDFLAGS@ @GEOS_LIBS@ @PROJ_LDFLAGS@ @PROJ_LIBS@ -lz
|
||||
|
@ -115,7 +115,7 @@ int main(int argc, char *argv[])
|
||||
|
||||
PGconn *conn;
|
||||
|
||||
fprintf(stderr, "nominatim version %s\n\n", VERSION);
|
||||
fprintf(stderr, "nominatim version %s\n\n", NOMINATIM_VERSION);
|
||||
|
||||
while (1)
|
||||
{
|
||||
|
@ -1 +1 @@
|
||||
Subproject commit 8179cdb67e70d7fb5605ab6ddedfd0bd3347db47
|
||||
Subproject commit fa6a8102e7ee98d011be12fa7549eb3e9e9248c0
|
@ -1,5 +1,6 @@
|
||||
<?php
|
||||
if (file_exists(CONST_BasePath.'/settings/local.php')) require_once(CONST_BasePath.'/settings/local.php');
|
||||
@define('CONST_InstallPath', dirname(dirname(__FILE__)));
|
||||
if (file_exists(CONST_InstallPath.'/settings/local.php')) require_once(CONST_InstallPath.'/settings/local.php');
|
||||
if (isset($_GET['debug']) && $_GET['debug']) @define('CONST_Debug', true);
|
||||
|
||||
// General settings
|
||||
@ -23,7 +24,7 @@
|
||||
// Paths
|
||||
@define('CONST_Path_Postgresql_Contrib', '/usr/share/postgresql/'.CONST_Postgresql_Version.'/contrib');
|
||||
@define('CONST_Path_Postgresql_Postgis', CONST_Path_Postgresql_Contrib.'/postgis-'.CONST_Postgis_Version);
|
||||
@define('CONST_Osm2pgsql_Binary', CONST_BasePath.'/osm2pgsql/osm2pgsql');
|
||||
@define('CONST_Osm2pgsql_Binary', CONST_InstallPath.'/osm2pgsql/osm2pgsql');
|
||||
@define('CONST_Osmosis_Binary', '/usr/bin/osmosis');
|
||||
@define('CONST_Tiger_Data_Path', CONST_BasePath.'/data/tiger');
|
||||
|
||||
|
@ -11,7 +11,6 @@ import psycopg2
|
||||
import psycopg2.extensions
|
||||
import psycopg2.extras
|
||||
import os
|
||||
import subprocess
|
||||
import random
|
||||
import json
|
||||
import re
|
||||
|
@ -266,7 +266,8 @@ def query_cmd(step, query, with_dups):
|
||||
'--search', query]
|
||||
if with_dups is not None:
|
||||
cmd.append('--nodedupe')
|
||||
proc = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
|
||||
proc = subprocess.Popen(cmd, cwd=world.config.source_dir,
|
||||
stdout=subprocess.PIPE, stderr=subprocess.PIPE)
|
||||
(outp, err) = proc.communicate()
|
||||
assert (proc.returncode == 0), "query.php failed with message: %s" % err
|
||||
world.page = outp
|
||||
|
@ -155,7 +155,8 @@ def osm2pgsql_load_place(step):
|
||||
|
||||
cmd = [os.path.join(world.config.source_dir, 'utils', 'setup.php')]
|
||||
cmd.extend(['--osm-file', fname, '--import-data','--osm2pgsql-cache', '300'])
|
||||
proc = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
|
||||
proc = subprocess.Popen(cmd, cwd=world.config.source_dir,
|
||||
stdout=subprocess.PIPE, stderr=subprocess.PIPE)
|
||||
(outp, outerr) = proc.communicate()
|
||||
assert (proc.returncode == 0), "OSM data import failed:\n%s\n%s\n" % (outp, outerr)
|
||||
|
||||
@ -204,7 +205,8 @@ def osm2pgsql_update_place(step):
|
||||
|
||||
cmd = [os.path.join(world.config.source_dir, 'utils', 'update.php')]
|
||||
cmd.extend(['--import-diff', fname])
|
||||
proc = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
|
||||
proc = subprocess.Popen(cmd, cwd=world.config.source_dir,
|
||||
stdout=subprocess.PIPE, stderr=subprocess.PIPE)
|
||||
(outp, outerr) = proc.communicate()
|
||||
assert (proc.returncode == 0), "OSM data update failed:\n%s\n%s\n" % (outp, outerr)
|
||||
|
||||
|
@ -23,7 +23,7 @@ class NominatimConfig:
|
||||
logging.basicConfig(level=loglevel)
|
||||
# Nominatim test setup
|
||||
self.base_url = os.environ.get('NOMINATIM_SERVER', 'http://localhost/nominatim')
|
||||
self.source_dir = os.path.abspath(os.environ.get('NOMINATIM_DIR', '..'))
|
||||
self.source_dir = os.path.abspath(os.environ.get('NOMINATIM_DIR', '../build'))
|
||||
self.template_db = os.environ.get('TEMPLATE_DB', 'test_template_nominatim')
|
||||
self.test_db = os.environ.get('TEST_DB', 'test_nominatim')
|
||||
self.local_settings_file = os.environ.get('NOMINATIM_SETTINGS', '/tmp/nominatim_settings.php')
|
||||
@ -52,7 +52,8 @@ def write_nominatim_config(dbname):
|
||||
def run_nominatim_script(script, *args):
|
||||
cmd = [os.path.join(world.config.source_dir, 'utils', '%s.php' % script)]
|
||||
cmd.extend(['--%s' % x for x in args])
|
||||
proc = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
|
||||
proc = subprocess.Popen(cmd, cwd=world.config.source_dir,
|
||||
stdout=subprocess.PIPE, stderr=subprocess.PIPE)
|
||||
(outp, outerr) = proc.communicate()
|
||||
assert (proc.returncode == 0), "Script '%s' failed:\n%s\n%s\n" % (script, outp, outerr)
|
||||
|
||||
@ -176,8 +177,9 @@ def db_template_setup():
|
||||
conn.close()
|
||||
# execute osm2pgsql on an empty file to get the right tables
|
||||
osm2pgsql = os.path.join(world.config.source_dir, 'osm2pgsql', 'osm2pgsql')
|
||||
proc = subprocess.Popen([osm2pgsql, '-lsc', '-O', 'gazetteer', '-d', world.config.template_db, '-'],
|
||||
stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
|
||||
proc = subprocess.Popen([osm2pgsql, '-lsc', '-r', 'xml', '-O', 'gazetteer', '-d', world.config.template_db, '-'],
|
||||
cwd=world.config.source_dir, stdin=subprocess.PIPE,
|
||||
stdout=subprocess.PIPE, stderr=subprocess.PIPE)
|
||||
[outstr, errstr] = proc.communicate(input='<osm version="0.6"></osm>')
|
||||
world.run_nominatim_script('setup', 'create-functions', 'create-tables', 'create-partition-tables', 'create-partition-functions', 'load-data', 'create-search-indices')
|
||||
|
||||
|
@ -13,7 +13,7 @@
|
||||
);
|
||||
getCmdOpt($_SERVER['argv'], $aCMDOptions, $aCMDResult, true, true);
|
||||
|
||||
include(CONST_BasePath.'/settings/phrase_settings.php');
|
||||
include(CONST_InstallPath.'/settings/phrase_settings.php');
|
||||
|
||||
if (true)
|
||||
{
|
||||
|
@ -219,9 +219,9 @@
|
||||
{
|
||||
echo "Functions\n";
|
||||
$bDidSomething = true;
|
||||
if (!file_exists(CONST_BasePath.'/module/nominatim.so')) fail("nominatim module not built");
|
||||
if (!file_exists(CONST_InstallPath.'/module/nominatim.so')) fail("nominatim module not built");
|
||||
$sTemplate = file_get_contents(CONST_BasePath.'/sql/functions.sql');
|
||||
$sTemplate = str_replace('{modulepath}', CONST_BasePath.'/module', $sTemplate);
|
||||
$sTemplate = str_replace('{modulepath}', CONST_InstallPath.'/module', $sTemplate);
|
||||
if ($aCMDResult['enable-diff-updates']) $sTemplate = str_replace('RETURN NEW; -- @DIFFUPDATES@', '--', $sTemplate);
|
||||
if ($aCMDResult['enable-debug-statements']) $sTemplate = str_replace('--DEBUG:', '', $sTemplate);
|
||||
if (CONST_Limit_Reindexing) $sTemplate = str_replace('--LIMIT INDEXING:', '', $sTemplate);
|
||||
@ -292,7 +292,7 @@
|
||||
echo "Functions\n";
|
||||
$sTemplate = file_get_contents(CONST_BasePath.'/sql/functions.sql');
|
||||
$sTemplate = str_replace('{modulepath}',
|
||||
CONST_BasePath.'/module', $sTemplate);
|
||||
CONST_InstallPath.'/module', $sTemplate);
|
||||
pgsqlRunScript($sTemplate);
|
||||
}
|
||||
|
||||
@ -573,16 +573,16 @@
|
||||
}
|
||||
else
|
||||
{
|
||||
if (file_exists(CONST_BasePath.'/settings/configuration.txt'))
|
||||
if (file_exists(CONST_InstallPath.'/settings/configuration.txt'))
|
||||
{
|
||||
echo "settings/configuration.txt already exists\n";
|
||||
}
|
||||
else
|
||||
{
|
||||
passthru(CONST_Osmosis_Binary.' --read-replication-interval-init '.CONST_BasePath.'/settings');
|
||||
passthru(CONST_Osmosis_Binary.' --read-replication-interval-init '.CONST_InstallPath.'/settings');
|
||||
// update osmosis configuration.txt with our settings
|
||||
passthru("sed -i 's!baseUrl=.*!baseUrl=".CONST_Replication_Url."!' ".CONST_BasePath.'/settings/configuration.txt');
|
||||
passthru("sed -i 's:maxInterval = .*:maxInterval = ".CONST_Replication_MaxInterval.":' ".CONST_BasePath.'/settings/configuration.txt');
|
||||
passthru("sed -i 's!baseUrl=.*!baseUrl=".CONST_Replication_Url."!' ".CONST_InstallPath.'/settings/configuration.txt');
|
||||
passthru("sed -i 's:maxInterval = .*:maxInterval = ".CONST_Replication_MaxInterval.":' ".CONST_InstallPath.'/settings/configuration.txt');
|
||||
}
|
||||
|
||||
// Find the last node in the DB
|
||||
@ -636,7 +636,7 @@
|
||||
echo "Getting state file: $sRepURL\n";
|
||||
$sStateFile = file_get_contents($sRepURL);
|
||||
if (!$sStateFile || strlen($sStateFile) > 1000) fail("unable to obtain state file");
|
||||
file_put_contents(CONST_BasePath.'/settings/state.txt', $sStateFile);
|
||||
file_put_contents(CONST_InstallPath.'/settings/state.txt', $sStateFile);
|
||||
echo "Updating DB status\n";
|
||||
pg_query($oDB->connection, 'TRUNCATE import_status');
|
||||
$sSQL = "INSERT INTO import_status VALUES('".$aRepMatch[2]."')";
|
||||
@ -657,7 +657,7 @@
|
||||
$bDidSomething = true;
|
||||
$sOutputFile = '';
|
||||
if (isset($aCMDResult['index-output'])) $sOutputFile = ' -F '.$aCMDResult['index-output'];
|
||||
$sBaseCmd = CONST_BasePath.'/nominatim/nominatim -i -d '.$aDSNInfo['database'].' -P '.$aDSNInfo['port'].' -t '.$iInstances.$sOutputFile;
|
||||
$sBaseCmd = CONST_InstallPath.'/nominatim/nominatim -i -d '.$aDSNInfo['database'].' -P '.$aDSNInfo['port'].' -t '.$iInstances.$sOutputFile;
|
||||
passthruCheckReturn($sBaseCmd.' -R 4');
|
||||
if (!$aCMDResult['index-noanalyse']) pgsqlRunScript('ANALYSE');
|
||||
passthruCheckReturn($sBaseCmd.' -r 5 -R 25');
|
||||
|
@ -15,7 +15,7 @@
|
||||
);
|
||||
getCmdOpt($_SERVER['argv'], $aCMDOptions, $aCMDResult, true, true);
|
||||
|
||||
include(CONST_BasePath.'/settings/phrase_settings.php');
|
||||
include(CONST_InstallPath.'/settings/phrase_settings.php');
|
||||
|
||||
|
||||
if ($aCMDResult['countries']) {
|
||||
|
@ -64,9 +64,6 @@
|
||||
}
|
||||
*/
|
||||
|
||||
// Assume osm2pgsql is in the folder above
|
||||
$sBasePath = dirname(dirname(__FILE__));
|
||||
|
||||
date_default_timezone_set('Etc/UTC');
|
||||
|
||||
$oDB =& getDB();
|
||||
@ -349,7 +346,7 @@
|
||||
|
||||
if ($aResult['index'])
|
||||
{
|
||||
passthru(CONST_BasePath.'/nominatim/nominatim -i -d '.$aDSNInfo['database'].' -P '.$aDSNInfo['port'].' -t '.$aResult['index-instances'].' -r '.$aResult['index-rank']);
|
||||
passthru(CONST_InstallPath.'/nominatim/nominatim -i -d '.$aDSNInfo['database'].' -P '.$aDSNInfo['port'].' -t '.$aResult['index-instances'].' -r '.$aResult['index-rank']);
|
||||
}
|
||||
|
||||
if ($aResult['import-osmosis'] || $aResult['import-osmosis-all'])
|
||||
@ -361,11 +358,11 @@
|
||||
|
||||
$sImportFile = CONST_BasePath.'/data/osmosischange.osc';
|
||||
$sOsmosisCMD = CONST_Osmosis_Binary;
|
||||
$sOsmosisConfigDirectory = CONST_BasePath.'/settings';
|
||||
$sOsmosisConfigDirectory = CONST_InstallPath.'/settings';
|
||||
$sCMDDownload = $sOsmosisCMD.' --read-replication-interval workingDirectory='.$sOsmosisConfigDirectory.' --simplify-change --write-xml-change '.$sImportFile;
|
||||
$sCMDCheckReplicationLag = $sOsmosisCMD.' -q --read-replication-lag workingDirectory='.$sOsmosisConfigDirectory;
|
||||
$sCMDImport = $sOsm2pgsqlCmd.' '.$sImportFile;
|
||||
$sCMDIndex = $sBasePath.'/nominatim/nominatim -i -d '.$aDSNInfo['database'].' -P '.$aDSNInfo['port'].' -t '.$aResult['index-instances'];
|
||||
$sCMDIndex = $sInstallPath.'/nominatim/nominatim -i -d '.$aDSNInfo['database'].' -P '.$aDSNInfo['port'].' -t '.$aResult['index-instances'];
|
||||
if (!$aResult['no-npi']) {
|
||||
$sCMDIndex .= '-F ';
|
||||
}
|
||||
@ -542,8 +539,8 @@
|
||||
var_dump($iNPIID);
|
||||
exit(1);
|
||||
}
|
||||
$sConfigDirectory = CONST_BasePath.'/settings';
|
||||
$sCMDImportTemplate = $sBasePath.'/nominatim/nominatim -d gazetteer -P 5433 -I -T '.$sBasePath.'/nominatim/partitionedtags.def -F ';
|
||||
$sConfigDirectory = CONST_InstallPath.'/settings';
|
||||
$sCMDImportTemplate = $sBasePath.'/nominatim/nominatim -d gazetteer -P 5433 -I -T '.CONST_BasePath.'/nominatim/partitionedtags.def -F ';
|
||||
while(true)
|
||||
{
|
||||
$fStartTime = time();
|
||||
|
@ -15,7 +15,7 @@ yum update -y
|
||||
yum install -y epel-release
|
||||
|
||||
yum install -y postgresql-server postgresql-contrib postgresql-devel postgis postgis-utils \
|
||||
make automake gcc gcc-c++ libtool policycoreutils-python \
|
||||
make cmake gcc gcc-c++ libtool policycoreutils-python \
|
||||
php-pgsql php php-pear php-pear-DB libpqxx-devel proj-epsg \
|
||||
bzip2-devel proj-devel geos-devel libxml2-devel boost-devel \
|
||||
expat-devel zlib-devel
|
||||
@ -70,13 +70,14 @@ cd /home/$USERNAME
|
||||
# If the Nominatim source is not being shared with the host, check out source.
|
||||
if [ ! -d "Nominatim" ]; then
|
||||
yum install -y git
|
||||
sudo -u $USERNAME git clone --recursive https://github.com/twain47/Nominatim.git
|
||||
sudo -H -u $USERNAME git clone --recursive https://github.com/twain47/Nominatim.git
|
||||
fi
|
||||
|
||||
# Configure and compile the source.
|
||||
cd Nominatim
|
||||
sudo -u $USERNAME ./autogen.sh
|
||||
sudo -u $USERNAME ./configure
|
||||
sudu -u $USERNAME mkdir build-vagrant
|
||||
cd build-vagrant
|
||||
sudo -u $USERNAME cmake ..
|
||||
sudo -u $USERNAME make
|
||||
|
||||
# Make sure that postgres has access to the nominatim library.
|
||||
|
@ -36,7 +36,7 @@ USERNAME=vagrant
|
||||
sudo apt-get update -qq
|
||||
sudo apt-get upgrade -y
|
||||
sudo apt-get install -y build-essential libgeos-dev libpq-dev libbz2-dev \
|
||||
libtool automake libproj-dev libboost-dev libboost-system-dev \
|
||||
libtool cmake libproj-dev libboost-dev libboost-system-dev \
|
||||
libboost-filesystem-dev libboost-thread-dev libexpat-dev
|
||||
sudo apt-get autoremove -y
|
||||
|
||||
@ -89,13 +89,13 @@ cd /home/$USERNAME
|
||||
# If the Nominatim source is not being shared with the host, check out source.
|
||||
if [ ! -d "Nominatim" ]; then
|
||||
sudo apt-get install -y git
|
||||
sudo -u $USERNAME git clone --recursive https://github.com/twain47/Nominatim.git
|
||||
sudo -H -u $USERNAME git clone --recursive https://github.com/twain47/Nominatim.git
|
||||
fi
|
||||
|
||||
cd Nominatim
|
||||
|
||||
sudo -u $USERNAME ./autogen.sh
|
||||
sudo -u $USERNAME ./configure
|
||||
sudo -u $USERNAME mkdir build-vagrant
|
||||
cd build-vagrant
|
||||
sudo -u $USERNAME cmake ..
|
||||
sudo -u $USERNAME make
|
||||
chmod +x ./
|
||||
chmod +x ./module
|
||||
|
Loading…
Reference in New Issue
Block a user