MacOS 10.5 building report and problems

View: New views
1 Messages — Rating Filter:   Alert me  

MacOS 10.5 building report and problems

by Tom-342 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi all,

while I have successfully compiled and installed svn release 2512
on Leopard, I had to work around some problems.

Since I am not an cmake expert I'd like to report below what
I did, and hope somebody can use this to update the configuration files
and readmes.

cheers
Tom


Environment
===========
MacOS 10.5.8 / Darwin Kernel Version 9.8.0
Xcode / developer package updated to 3.1.4 as required for some of the macports
macports
gpsdrive from svn, release, 2512

Dependencies
============
There are a few more than listed in the Readme/Install files. Since I had
macports already installed for other purposes, this is only what I had to add:

- [CMake](http://www.cmake.org/) >= 2.4.4.INSTALLED 2.6.4 from macports
- [GTK2](http://www.gnome.org/) INSTALLED 2.16.6 from macports

- [Boost](http://www.boost.org/) >= 1.33.1   INSTALLED 1.40 macports
- [gdal](http://www.gdal.org/) INSTALLED 1.6.2 from macports


- [GTK2](http://www.gnome.org/)  INSTALLED 2.16.6 from macports
        libgda3 INSTALLED 3.0.4  from macports
        gpsd INSTALLED  from macports

- postgresql84
- postgresql84-server
- python26
- py26-mapnik +postgis +gdal +cairo +sqlite
- ImageMagick +perl+q16

Options used
============
DefineOptions.cmake
option(WITH_SCRIPTS "Install perl scripts and modules" ON)
option(WITH_MAPNIK "Build with mapnik support" ON)
option(WITH_POSTGIS "Build with PostGIS database support" ON)
option(WITH_GDAL "Build with experimental GDAL support" ON)
option(WITH_SPEECH "Build with support of speech output" OFF)

    (would the speech output work under MacOS? )

option(WITH_DBUS "Build with DBUS support" OFF)
option(WITH_BASEMAPS "Build with Basemaps pictures" ON)
option(MAEMO "Build gpsdrive for maemo/hildon platform" OFF)
option(WITH_FRIENDSD "Build friendsd" ON)
option(WITH_KISMET "Build with kismet support" ON)
option(DEBUG "Build with debug -D support" OFF)
option(WITH_NAVIGATION "Build with routing support" ON)


Problems with CMake: mostly to find some of the macports
====================

- crypt library missing
   Workaround:  in /opt/local/lib,
       ln -s libgcrypt.a libcrypt.a

Problem to find GTK2:
    - cmake/Modules/FindGTK2.cmake   does not look for /opt/local/
      workaround: :s  /gnome/local/  with  /opt/local/  in all lines

Problem to find GetText
    -   cmake/Modules/FindGettext.cmake   does not look for /opt/local/
      workaround: hardcoding
              check_include_files(/opt/local/include/libintl.h HAVE_LIBINTL_H)
                  add
              /opt/local/lib

Problem to find PostgreSQL
    - cmake/Modules/FindPostgreSQL.cmake  does not look for /opt/local
        -> added
                /opt/local/include/postgresql84
                /opt/local/lib/postgresql84


Problem with a missing directory:
mkdir ../scripts/osm/perl_lib


Problems with linker, reporting missing symbols
====================

With my limited knowledge about the make process,
the only way I could help myself was to fix the files dynamically generated in the
build directory:


Linking C executable friendsd
Undefined symbols:
   "_libintl_textdomain", referenced from:
[...]

Workaround: add library to build/src/CMakeFiles/friendsd.dir/link.txt
       /opt/local/lib/libintl.dylib

Linking C executable gpsdrive
Undefined symbols:
   "_gdk_pixbuf_save", referenced from:
[...many more...]

Workaround: add libraries to build/src/CMakeFiles/gpsdrive.dir/link.txt
       /opt/local/lib/libgdk_pixbuf-2.0.dylib
       /opt/local/lib/libpango-1.0.dylib
       /opt/local/lib/libgobject-2.0.dylib
       /opt/local/lib/libboost_thread-mt.dylib
       /opt/local/lib/libboost_system-mt.dylib
       /opt/local/lib/libgmodule-2.0.dylib


Linking C executable gmapview
Undefined symbols:
   "_g_type_check_instance_cast", referenced from:

Workaround: add library to build/src/util/CMakeFiles/gmapview.dir/link.txt
       /opt/local/lib/libgobject-2.0.dylib


Linking C shared module libnav_dummy.so
Undefined symbols:
   "_g_strlcpy", referenced from:
[...]
Workaround: add to  build/src/CMakeFiles/nav_dummy.dir/link.txt
       /opt/local/lib/libintl.dylib
       /opt/local/lib/libglib-2.0.dylib

Finally there was a symbol _mydebug defined in t src/mod_nav_dummy.c,
where I could not find what library provided this, so I removed those debug lines.

BEFORE_RUNNING
==============
~/.gpsdrive/gpsdriverc
change:
mapnik_font_path =  /usr/share/fonts/truetype/ttf-dejavu/   ---> /opt/local/lib/mapnik/fonts/


Setting up Mapnik
=================
a few more things than in README.Mapnik_and_OpenStreetMaps


- mapnik was hard to find in macports since it is listed under 'p':
  py26-mapnik

- see hints for Postgresql84 setup
http://shifteleven.com/articles/2008/03/21/installing-postgresql-on-leopard-using-macports

MacOS needs postgresql installed:

# port install postgresql84-server
# launchctl load -w /Library/LaunchDaemons/org.macports.postgresql84-server.plist
# mkdir -p /opt/local/var/db/postgresql84/defaultdb
# chown postgres:postgres /opt/local/var/db/postgresql84/defaultdb

needs UTF8 set here already:
# su postgres -c '/opt/local/lib/postgresql84/bin/initdb -D /opt/local/var/db/postgresql84/defaultdb -E UTF8'

You can now start the database server using:
#    /opt/local/lib/postgresql84/bin/postgres -D /opt/local/var/db/postgresql84/defaultdb

There seem to be different places for the unix socket file .s.PGSQL.5432, either /var/run/postgreql or /tmp :
#  cd /var/run; ln -s /tmp/ postgresql


# /opt/local/etc/LaunchDaemons/org.macports.postgresql84-server/postgresql84-server.wrapper start

su - postgres

/opt/local/lib/postgresql84/bin/createuser  mapnikuser
/opt/local/lib/postgresql84/bin/createdb -E UTF8 -O mapnikuser gis
/opt/local/lib/postgresql84/bin/createlang plpgsql gis
/opt/local/bin/psql84 -d gis -f /opt/local/share/postgresql84/contrib/postgis.sql

echo "ALTER TABLE geometry_columns OWNER TO mapnikuser; ALTER TABLE spatial_ref_sys OWNER TO mapnikuser; " | /opt/local/bin/psql84 -d gis

getting data
============
obtain world boundaires:
wget http://tile.openstreetmap.org/world_boundaries-spherical.tgz
              processed_p.tar.bz2
              shoreline_300.tar.bz2
--> /usr/local/share/mapnik/world_boundaries

Planet extracts:
http://wiki.openstreetmap.org/wiki/Planet.osm#Extracts

Map icons:
svn co http://svn.openstreetmap.org/applications/share/map-icons


as normal user ( I keep myself apart from mapnikuser in SQL, the latter only for writing data)
==============
(get osm2pgsql and install )
(add /opt/local/lib/postgresql84/bin/pg_config before making)
svn co http://svn.openstreetmap.org/applications/utils/export/osm2pgsql/

(check http://wiki.openstreetmap.org/index.php/Mapnik#Tuning_the_database)

/opt/local/bin/psql84 -d gis -f 900913.sql -U mapnikuser
osm2pgsql -s -m -d gis -U mapnikuser ireland.osm.bz2



_______________________________________________
GPSdrive mailing list
GPSdrive@...
http://lists.gpsdrivers.org/mailman/listinfo/gpsdrive