diff --git a/SConstruct b/SConstruct index 94248e1cd..c7d6bfd69 100644 --- a/SConstruct +++ b/SConstruct @@ -92,26 +92,38 @@ if not conf.CheckHeader('omp.h'): print "Continuing because we are on Mac. This might be fatal." else: Exit(-1) +if not conf.CheckLibWithHeader('bz2', 'bzlib.h', 'CXX'): + print "bz2 library not found. Exiting" + Exit(-1) +if not conf.CheckLibWithHeader('libzip', 'zip.h', 'CXX'): + print "Zip library not found. Exiting" + Exit(-1) +if not conf.CheckLibWithHeader('protobuf', 'google/protobuf/descriptor.h', 'CXX'): + print "Google Protobuffer library not found. Exiting" + Exit(-1) +#check for protobuf 2.3.0 +if not (conf.CheckProtobuf('2.3.0')): + print 'libprotobuf version >= 2.3.0 needed' + Exit(-1); +if not (env.Detect('protoc')): + print 'protobuffer compiler not found' + Exit(-1); +if not conf.CheckLibWithHeader('stxxl', 'stxxl.h', 'CXX'): + print "stxxl library not found. Exiting" + Exit(-1) if not conf.CheckLibWithHeader('xml2', 'libxml/xmlreader.h', 'CXX'): print "libxml2 library or header not found. Exiting" Exit(-1) if not conf.CheckLibWithHeader('z', 'zlib.h', 'CXX'): print "zlib library or header not found. Exiting" Exit(-1) -if not conf.CheckCXXHeader('stxxl.h'): - print "Could not locate stxxl header. Exiting" - Exit(-1) -if not conf.CheckCXXHeader('boost/foreach.hpp'): - print "boost/foreach.hpp not found. Exiting" - Exit(-1) -if not conf.CheckCXXHeader('boost/property_tree/ptree.hpp'): - print "boost/property_tree/ptree.hpp not found. Exiting" - Exit(-1) -if not conf.CheckCXXHeader('boost/property_tree/ini_parser.hpp'): - print "boost/property_tree/ini_parser.hpp not found. Exiting" - Exit(-1) -if not conf.CheckLibWithHeader('bz2', 'bzlib.h', 'CXX'): - print "bz2 library not found. Exiting" +#Check BOOST installation +if not (conf.CheckBoost('1.41')): + print 'Boost version >= 1.41 needed' + Exit(-1); + +if not conf.CheckLib('boost_system', language="C++"): + print "boost_system library not found. Exiting" Exit(-1) if not conf.CheckLibWithHeader('boost_thread', 'boost/thread.hpp', 'CXX'): if not conf.CheckLibWithHeader('boost_thread-mt', 'boost/thread.hpp', 'CXX'): @@ -121,45 +133,33 @@ if not conf.CheckLibWithHeader('boost_thread', 'boost/thread.hpp', 'CXX'): print "using boost -mt" env.Append(CCFLAGS = ' -lboost_thread-mt') env.Append(LINKFLAGS = ' -lboost_thread-mt') -if not conf.CheckCXXHeader('boost/thread.hpp'): - print "boost thread header not found. Exiting" - Exit(-1) -if not conf.CheckLib('boost_system', language="C++"): - print "boost_system library not found. Exiting" +if not conf.CheckLibWithHeader('boost_regex', 'boost/regex.hpp', 'CXX'): + print "boost/regex.hpp not found. Exiting" Exit(-1) if not conf.CheckCXXHeader('boost/bind.hpp'): print "boost/bind.hpp not found. Exiting" Exit(-1) -if not conf.CheckCXXHeader('boost/thread.hpp'): - print "boost/thread.hpp not found. Exiting" +if not conf.CheckCXXHeader('boost/foreach.hpp'): + print "boost/foreach.hpp not found. Exiting" Exit(-1) if not conf.CheckCXXHeader('boost/noncopyable.hpp'): print "boost/noncopyable.hpp not found. Exiting" Exit(-1) +if not conf.CheckCXXHeader('boost/property_tree/ptree.hpp'): + print "boost/property_tree/ptree.hpp not found. Exiting" + Exit(-1) if not conf.CheckCXXHeader('boost/shared_ptr.hpp'): print "boost/shared_ptr.hpp not found. Exiting" Exit(-1) -if not conf.CheckLibWithHeader('stxxl', 'stxxl.h', 'CXX'): - print "stxxl library not found. Exiting" +if not conf.CheckCXXHeader('boost/property_tree/ini_parser.hpp'): + print "boost/property_tree/ini_parser.hpp not found. Exiting" Exit(-1) -if not conf.CheckLibWithHeader('protobuf', 'google/protobuf/descriptor.h', 'CXX'): - print "Google Protobuffer library not found. Exiting" +if not conf.CheckCXXHeader('boost/thread.hpp'): + print "boost thread header not found. Exiting" Exit(-1) -if not conf.CheckLibWithHeader('libzip', 'zip.h', 'CXX'): - print "Zip library not found. Exiting" +if not conf.CheckCXXHeader('boost/thread.hpp'): + print "boost/thread.hpp not found. Exiting" Exit(-1) -#if os.sysconf('SC_NPROCESSORS_ONLN') > 1: -# env.Append(CCFLAGS = ' -D_GLIBCXX_PARALLEL'); -if not (conf.CheckBoost('1.41')): - print 'Boost version >= 1.41 needed' - Exit(-1); -#check for protobuf 2.3.0, else rebuild proto files -if not (conf.CheckProtobuf('2.3.0')): - print 'libprotobuf version >= 2.3.0 needed' - Exit(-1); -if not (env.Detect('protoc')): - print 'protobuffer compiler not found' - Exit(-1); protobld = Builder(action = 'protoc -I=DataStructures/pbf-proto --cpp_out=DataStructures/pbf-proto $SOURCE') env.Append(BUILDERS = {'Protobuf' : protobld}) @@ -168,7 +168,7 @@ env.Protobuf('DataStructures/pbf-proto/osmformat.proto') env.Append(CCFLAGS = ['-fopenmp']) env.Append(LINKFLAGS = ['-fopenmp']) -env.Program(target = 'osrm-extract', source = ["extractor.cpp", 'DataStructures/pbf-proto/fileformat.pb.cc', 'DataStructures/pbf-proto/osmformat.pb.cc']) +env.Program(target = 'osrm-extract', source = ["extractor.cpp", Glob('DataStructures/pbf-proto/*.pb.cc'), Glob('Util/*.cpp')]) env.Program(target = 'osrm-prepare', source = ["createHierarchy.cpp", 'Contractor/EdgeBasedGraphFactory.cpp', Glob('Util/SRTMLookup/*.cpp')]) env.Append(CCFLAGS = ['-lboost_regex', '-lboost_iostreams', '-lbz2', '-lz', '-lprotobuf']) env.Append(LINKFLAGS = ['-lboost_system'])