diff options
-rw-r--r-- | Jamroot | 15 | ||||
-rw-r--r-- | jam-files/sanity.jam | 12 |
2 files changed, 20 insertions, 7 deletions
@@ -1,10 +1,21 @@ +#cdec compilation with bjam +# +#--with-boost=/usr/include +#--with-google-hash=/usr/include so that $with-google-hash/google/dense_hash_map exists +# +#-a forces the build to run from scratch +#-jN parallelizes just like make +# +#Respects CXXFLAGS, CFLAGS, and LDFLAGS environment variables. + path-constant TOP : . ; include $(TOP)/jam-files/sanity.jam ; boost 104400 ; external-lib z ; -if [ test_header google/dense_hash_map ] { - requirements += <define>HAVE_SPARSEHASH ; +with-google-hash = [ option.get "with-google-hash" ] ; +if [ test_header google/dense_hash_map ] || $(with-google-hash) { + requirements += <define>HAVE_SPARSEHASH <include>$(with-google-hash) ; } if [ test_header boost/serialization/map.hpp ] && [ test_library boost_serialization ] { diff --git a/jam-files/sanity.jam b/jam-files/sanity.jam index eeb59f6e..9c75c247 100644 --- a/jam-files/sanity.jam +++ b/jam-files/sanity.jam @@ -13,9 +13,15 @@ rule _shell ( cmd : extras * ) { return [ trim-nl [ SHELL $(cmd) : $(extras) ] ] ; } +cxxflags = [ os.environ "CXXFLAGS" ] ; +cflags = [ os.environ "CFLAGS" ] ; +ldflags = [ os.environ "LDFLAGS" ] ; + #Run g++ with empty main and these arguments to see if it passes. rule test_flags ( flags * ) { - local cmd = "bash -c \"g++ "$(flags:J=" ")" -x c++ - <<<'int main() {}' -o /dev/null >/dev/null 2>/dev/null\"" ; + local add = $(CXXFLAGS) $(LDFLAGS) ; + add ?= "" ; + local cmd = "bash -c \"g++ $(add) "$(flags:J=" ")" -x c++ - <<<'int main() {}' -o /dev/null >/dev/null 2>/dev/null\"" ; local ret = [ SHELL $(cmd) : exit-status ] ; if --debug-configuration in [ modules.peek : ARGV ] { echo $(cmd) ; @@ -144,10 +150,6 @@ rule external-lib ( name : search-path * ) { requirements = ; { - local cxxflags = [ os.environ "CXXFLAGS" ] ; - local cflags = [ os.environ "CFLAGS" ] ; - local ldflags = [ os.environ "LDFLAGS" ] ; - #Boost jam's static clang is buggy. requirements += <cxxflags>$(cxxflags) <cflags>$(cflags) <linkflags>$(ldflags) <toolset>clang:<link>shared ; |