I am on OS X 10.9.2, aka as Mavericks and I am using Macports
a) What I installed following the list of prerequisites (package @Version):
boost @1.55.0 # there are no other boost packages, no boost-program-options, no libboost-test
zlib @1.2.8
bzip2 @1.0.6
gdal # There is a Macport package of gdal, but as a serious GIS worker, I have gdal from trunk, of course ;-)
expat @2.1.0
geos @3.4.2
sparsehash @2.0.2
protobuf-cpp @2.5.0
Doxygen # who wants to read documentation ?
libboost-test # see boost
OSMPBF from github
b) Macports install into /opt/local, so I had to point to /opt/local/lib and /opt/local/include in various places
c) For some reason which I read months ago and now forgot: one has to add the suffix "-mt" in 2 places:
examples/Makefile: LIB_PRGOPT := -lboost_program_options-mt
test/run_tests.sh: PARAMS= ... -lboost_unit_test_framework-mt"
d) To make it really work I also have to remove a suffix: -lprotobuf instead of -lprotobuf-lite
examples/Makefile: LIB_PBF := -pthread -lz -lprotobuf -losmpbf
Outcome #1:
[libosmium]> make test
(cd test && ./run_tests.sh)
Checking t/area/test_node_ref_segment.cpp ...
c++ -I../include -I. -g -std=c++11 -stdlib=libc++ -Wall -Wextra -Wredundant-decls -Wdisabled-optimization -pedantic -Wctor-dtor-privacy -Wnon-virtual-dtor -Woverloaded-virtual -Wsign-promo -o tests -L/Users/peifer/local/lib -L/opt/local/lib test_main.cpp test_utils.cpp t/area/test_node_ref_segment.cpp -DBOOST_TEST_DYN_LINK -lboost_unit_test_framework-mt
Running 5 test cases...
No errors detected
Then more tests and more of "No errors detected"
Outcome #2: some warnings which don't seem to harm
[examples]> CPLUS_INCLUDE_PATH=/opt/local/include make
clang++ -O3 -std=c++11 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I../include -stdlib=libc++ -Wall -Wextra -pedantic -Wredundant-decls -Wdisabled-optimization -Wctor-dtor-privacy -Wnon-virtual-dtor -Woverloaded-virtual -Wsign-promo -Wold-style-cast -o osmium_convert osmium_convert.cpp -L/opt/local/lib -L/Users/peifer/local/lib -stdlib=libc++ -lexpat -pthread -lz -lprotobuf -losmpbf -lz -lbz2
clang++ -O3 -std=c++11 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I../include -stdlib=libc++ -Wall -Wextra -pedantic -Wredundant-decls -Wdisabled-optimization -Wctor-dtor-privacy -Wnon-virtual-dtor -Woverloaded-virtual -Wsign-promo -Wold-style-cast -o osmium_debug osmium_debug.cpp -L/opt/local/lib -L/Users/peifer/local/lib -stdlib=libc++ -lexpat -pthread -lz -lprotobuf -losmpbf -lz -lbz2
clang++ -O3 -std=c++11 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I../include -stdlib=libc++ -Wall -Wextra -pedantic -Wredundant-decls -Wdisabled-optimization -Wctor-dtor-privacy -Wnon-virtual-dtor -Woverloaded-virtual -Wsign-promo -Wold-style-cast -o osmium_index osmium_index.cpp -L/opt/local/lib -L/Users/peifer/local/lib -stdlib=libc++ -lboost_program_options-mt
clang++ -O3 -std=c++11 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I../include -stdlib=libc++ -Wall -Wextra -pedantic -Wredundant-decls -Wdisabled-optimization -Wctor-dtor-privacy -Wnon-virtual-dtor -Woverloaded-virtual -Wsign-promo -Wold-style-cast -o osmium_mpdump osmium_mpdump.cpp -L/opt/local/lib -L/Users/peifer/local/lib -stdlib=libc++ -lexpat -pthread -lz -lprotobuf -losmpbf -lz -lbz2
In file included from osmium_mpdump.cpp:17:
In file included from ../include/osmium/area/collector.hpp:44:
../include/osmium/relations/collector.hpp:163:57: warning: comparison of integers of different signs: 'int' and 'size_t' (aka 'unsigned long')
[-Wsign-compare]
assert(member_meta.member_pos() < m_collector.get_relation(relation_meta).members().size());
~~~~~~~~~~~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/assert.h:93:25: note: expanded from macro 'assert'
(builtin_expect(!(e), 0) ? __assert_rtn(__func, FILE, LINE, #e) : (void)0)
^
../include/osmium/relations/collector.hpp:198:31: note: in instantiation of member function
'osmium::relations::Collectorosmium::area::Collector<osmium::area::Assembler, false, true, false>::HandlerPass2::find_and_add_object'
requested here
if (! find_and_add_object(node)) {
^
../include/osmium/visitor.hpp:111:33: note: in instantiation of member function
'osmium::relations::Collectorosmium::area::Collector<osmium::area::Assembler, false, true, false>::HandlerPass2::node' requested here
visitor.node(static_cast<MaybeConst<TItem, osmium::Node>&>(item));
^
../include/osmium/visitor.hpp:172:17: note: in instantiation of function template specialization
'osmium::visitor::detail::switch_on_typeosmium::relations::Collector<osmium::area::Collector<osmium::area::Assembler, false, true,
false>::HandlerPass2, osmium::memory::Item>' requested here
switch_on_type(visitor, item, std::is_base_of<osmium::handler::Handler, TVisitor>());
^
../include/osmium/visitor.hpp:178:17: note: in instantiation of function template specialization
'osmium::visitor::detail::apply_item_recurseosmium::relations::Collector<osmium::area::Collector<osmium::area::Assembler, false, true,
false>::HandlerPass2, osmium::memory::Item>' requested here
apply_item_recurse(item, more...);
^
../include/osmium/visitor.hpp:261:38: note: in instantiation of function template specialization
'osmium::visitor::detail::apply_item_recurse<osmium::handler::NodeLocationsForWays<osmium::index::map::SparseTable<unsigned long long,
osmium::Location>, osmium::index::map::Dummy<unsigned long long, osmium::Location> >, osmium::memory::Item,
osmium::relations::Collectorosmium::area::Collector<osmium::area::Assembler, false, true, false>::HandlerPass2>' requested here
osmium::visitor::detail::apply_item_recurse(_it, visitors...);
^
../include/osmium/visitor.hpp:268:9: note: in instantiation of function template specialization
'osmium::apply<osmium::io::InputIterator<osmium::io::Reader, osmium::memory::Item>,
osmium::handler::NodeLocationsForWays<osmium::index::map::SparseTable<unsigned long long, osmium::Location>,
osmium::index::map::Dummy<unsigned long long, osmium::Location> >,
osmium::relations::Collectorosmium::area::Collector<osmium::area::Assembler, false, true, false>::HandlerPass2>' requested here
apply(osmium::io::InputIterator {source},
^
osmium_mpdump.cpp:70:13: note: in instantiation of function template specialization 'osmium::apply<osmium::io::Reader,
osmium::handler::NodeLocationsForWays<osmium::index::map::SparseTable<unsigned long long, osmium::Location>,
osmium::index::map::Dummy<unsigned long long, osmium::Location> >,
osmium::relations::Collectorosmium::area::Collector<osmium::area::Assembler, false, true, false>::HandlerPass2>' requested here
osmium::apply(reader2, location_handler, collector.handler());
^
1 warning generated.
clang++ -O3 -std=c++11 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I../include -stdlib=libc++ -Wall -Wextra -pedantic -Wredundant-decls -Wdisabled-optimization -Wctor-dtor-privacy -Wnon-virtual-dtor -Woverloaded-virtual -Wsign-promo -Wold-style-cast -o osmium_read osmium_read.cpp -L/opt/local/lib -L/Users/peifer/local/lib -stdlib=libc++ -lexpat -pthread -lz -lprotobuf -losmpbf -lz -lbz2
clang++ -O3 -std=c++11 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I../include -stdlib=libc++ -Wall -Wextra -pedantic -Wredundant-decls -Wdisabled-optimization -Wctor-dtor-privacy -Wnon-virtual-dtor -Woverloaded-virtual -Wsign-promo -Wold-style-cast -o osmium_serdump osmium_serdump.cpp -L/opt/local/lib -L/Users/peifer/local/lib -stdlib=libc++ -lexpat -pthread -lz -lprotobuf -losmpbf -lz -lbz2
clang++ -O3 -std=c++11 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I../include -stdlib=libc++ -Wall -Wextra -pedantic -Wredundant-decls -Wdisabled-optimization -Wctor-dtor-privacy -Wnon-virtual-dtor -Woverloaded-virtual -Wsign-promo -Wold-style-cast -I/Users/peifer/local/include -o osmium_toogr osmium_toogr.cpp -L/opt/local/lib -L/Users/peifer/local/lib -stdlib=libc++ -lexpat -pthread -lz -lprotobuf -losmpbf -lz -lbz2 -L/Users/peifer/local/lib -lgdal
clang++ -O3 -std=c++11 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I../include -stdlib=libc++ -Wall -Wextra -pedantic -Wredundant-decls -Wdisabled-optimization -Wctor-dtor-privacy -Wnon-virtual-dtor -Woverloaded-virtual -Wsign-promo -Wold-style-cast -I/Users/peifer/local/include -o osmium_toogr2 osmium_toogr2.cpp -L/opt/local/lib -L/Users/peifer/local/lib -stdlib=libc++ -lexpat -pthread -lz -lprotobuf -losmpbf -lz -lbz2 -L/Users/peifer/local/lib -lgdal
In file included from osmium_toogr2.cpp:31:
In file included from ../include/osmium/area/collector.hpp:44:
../include/osmium/relations/collector.hpp:163:57: warning: comparison of integers of different signs: 'int' and 'size_t' (aka 'unsigned long')
[-Wsign-compare]
assert(member_meta.member_pos() < m_collector.get_relation(relation_meta).members().size());
~~~~~~~~~~~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/assert.h:93:25: note: expanded from macro 'assert'
(builtin_expect(!(e), 0) ? __assert_rtn(__func, FILE, LINE, #e) : (void)0)
^
../include/osmium/relations/collector.hpp:198:31: note: in instantiation of member function
'osmium::relations::Collectorosmium::area::Collector<osmium::area::Assembler, false, true, false>::HandlerPass2::find_and_add_object'
requested here
if (! find_and_add_object(node)) {
^
../include/osmium/visitor.hpp:111:33: note: in instantiation of member function
'osmium::relations::Collectorosmium::area::Collector<osmium::area::Assembler, false, true, false>::HandlerPass2::node' requested here
visitor.node(static_cast<MaybeConst<TItem, osmium::Node>&>(item));
^
../include/osmium/visitor.hpp:172:17: note: in instantiation of function template specialization
'osmium::visitor::detail::switch_on_typeosmium::relations::Collector<osmium::area::Collector<osmium::area::Assembler, false, true,
false>::HandlerPass2, osmium::memory::Item>' requested here
switch_on_type(visitor, item, std::is_base_of<osmium::handler::Handler, TVisitor>());
^
../include/osmium/visitor.hpp:178:17: note: in instantiation of function template specialization
'osmium::visitor::detail::apply_item_recurseosmium::relations::Collector<osmium::area::Collector<osmium::area::Assembler, false, true,
false>::HandlerPass2, osmium::memory::Item>' requested here
apply_item_recurse(item, more...);
^
../include/osmium/visitor.hpp:178:17: note: in instantiation of function template specialization
'osmium::visitor::detail::apply_item_recurse<MyOGRHandler, osmium::memory::Item,
osmium::relations::Collector<osmium::area::Collectorosmium::area::Assembler, false, true, false>::HandlerPass2>' requested here
apply_item_recurse(item, more...);
^
../include/osmium/visitor.hpp:261:38: note: in instantiation of function template specialization
'osmium::visitor::detail::apply_item_recurse<osmium::handler::NodeLocationsForWays<osmium::index::map::SparseTable<unsigned long long,
osmium::Location>, osmium::index::map::Dummy<unsigned long long, osmium::Location> >, osmium::memory::Item, MyOGRHandler,
osmium::relations::Collectorosmium::area::Collector<osmium::area::Assembler, false, true, false>::HandlerPass2>' requested here
osmium::visitor::detail::apply_item_recurse(_it, visitors...);
^
../include/osmium/visitor.hpp:268:9: note: in instantiation of function template specialization
'osmium::apply<osmium::io::InputIterator<osmium::io::Reader, osmium::memory::Item>,
osmium::handler::NodeLocationsForWays<osmium::index::map::SparseTable<unsigned long long, osmium::Location>,
osmium::index::map::Dummy<unsigned long long, osmium::Location> >, MyOGRHandler,
osmium::relations::Collectorosmium::area::Collector<osmium::area::Assembler, false, true, false>::HandlerPass2>' requested here
apply(osmium::io::InputIterator {source},
^
osmium_toogr2.cpp:315:13: note: in instantiation of function template specialization 'osmium::apply<osmium::io::Reader,
osmium::handler::NodeLocationsForWays<osmium::index::map::SparseTable<unsigned long long, osmium::Location>,
osmium::index::map::Dummy<unsigned long long, osmium::Location> >, MyOGRHandler,
osmium::relations::Collectorosmium::area::Collector<osmium::area::Assembler, false, true, false>::HandlerPass2>' requested here
osmium::apply(reader2, location_handler, ogr_handler, collector.handler());
^
1 warning generated.