Index: libs/predef/test/build.jam =================================================================== --- libs/predef/test/build.jam (revision 85888) +++ libs/predef/test/build.jam (working copy) @@ -4,19 +4,34 @@ # (See accompanying file LICENSE_1_0.txt or copy at # http://www.boost.org/LICENSE_1_0.txt) +local predef-include-root ; +local predef-dependency ; + +# When using modular layout, header files are not present in $root/boost +# unlink links are created, therefore instead of direct dependency on +# a header, we need to use dependency on metatarget. if $(BOOST_PREDEF_ROOT) { - path-constant BOOST_PREDEF_INCLUDE_ROOT : $(BOOST_PREDEF_ROOT)/include ; + predef-include-root = $(BOOST_PREDEF_ROOT)/include ; + predef-dependency = $(predef-include-root)/boost/predef.h ; } +else if $(BOOST_MODULARLAYOUT) +{ + predef-include-root = $(BOOST_ROOT)/include ; + predef-dependency = /boost//predef-headers ; +} else { - path-constant BOOST_PREDEF_INCLUDE_ROOT : $(BOOST_ROOT) ; + predef-include-root = $(BOOST_ROOT) ; + predef-dependency = $(predef-include-root)/boost/predef.h ; } project test : requirements - $(BOOST_PREDEF_INCLUDE_ROOT) - $(BOOST_PREDEF_INCLUDE_ROOT)/boost/predef.h + $(predef-include-root) + # Add explicit dependency since we don't have header scanner for + # .m and .mm files. + $(predef-dependency) ; using testing ; Index: Jamroot =================================================================== --- Jamroot (revision 85889) +++ Jamroot (working copy) @@ -143,6 +143,7 @@ for dir in $(all-headers) { link-directory $(dir)-headers : libs/$(dir)/include/boost : . ; + explicit $(dir)-headers ; } local numeric-headers = @@ -151,9 +152,13 @@ for dir in $(numeric-headers) { link-directory numeric-$(dir)-headers : libs/numeric/$(dir)/include/boost : . ; + explicit numeric-$(dir)-headers ; } -BOOST_MODULARLAYOUT = $(all-headers) $(numeric-headers) ; +if $(all-headers) +{ + constant BOOST_MODULARLAYOUT : $(all-headers) $(numeric-headers) ; +} if $(BOOST_MODULARLAYOUT) { echo modularized layout build ;