diff --git a/Jamrules b/Jamrules index 56251f0f63..377f2b8411 100644 --- a/Jamrules +++ b/Jamrules @@ -146,23 +146,21 @@ OBOS_FLOPPY = floppy.$(OBOS_ARCH) ; rule SetupIncludes { # XXX add "mail" and "opengl" later - OS_INCLUDES ?= . add-ons add-ons/file_system add-ons/graphics add-ons/input_server add-ons/screen_saver add-ons/tracker app device drivers game interface kernel media midi midi2 net storage support translation ; + local os_includes = add-ons add-ons/file_system add-ons/graphics add-ons/input_server add-ons/screen_saver add-ons/tracker app device drivers game interface kernel media midi midi2 net storage support translation ; - # include the local directory - UseHeaders . ; + # Overwrite any exiting content when changing HDRS. This rule may be invoked multiple times. # Use headers directory, to allow to do things like include - SubDirHdrs [ FDirName $(OBOS_TOP) headers ] ; + HDRS = [ FDirName $(OBOS_TOP) headers ] ; # Use posix headers directory - SubDirHdrs [ FDirName $(OBOS_TOP) headers posix ] ; + HDRS += [ FDirName $(OBOS_TOP) headers posix ] ; # Use public OS header directories - UseHeaders [ PublicHeaders $(OS_INCLUDES) ] ; + HDRS += [ PublicHeaders $(os_includes) ] ; # Used as a fallback, the R5 header directories (we should remove this as soon as possible) - UseHeaders /boot/develop/headers/posix ; - UseHeaders /boot/develop/headers/cpp ; + HDRS += /boot/develop/headers/posix /boot/develop/headers/cpp ; } #------------------------------------------------------------------------------- @@ -295,6 +293,8 @@ rule TestLib local headerDirs = $(5) ; local objects = [ FGristFiles $(sources:S=$(SUFOBJ)) ] ; + SetupIncludes ; + # Our Main replacement. MainFromObjects $(target) : $(objects) ; TestObjects $(sources) : $(headerDirs) ; @@ -322,6 +322,8 @@ rule R5TestLib local libraries = $(4) ; local objects = [ R5ObjectNames $(sources) ] ; + SetupIncludes ; + # Our Main replacement. MainFromObjects $(target) : $(objects) ; TestObjects $(sources) : : true ; @@ -370,6 +372,8 @@ rule UnitTest local headerDirs = $(5) ; local objects = [ FGristFiles $(sources:S=$(SUFOBJ)) ] ; + SetupIncludes ; + # Our Main replacement. MainFromObjects $(target) : $(objects) ; TestObjects $(sources) : $(headerDirs) ; @@ -396,6 +400,8 @@ rule R5UnitTest local libraries = $(4) ; local objects = [ R5ObjectNames $(sources) ] ; + SetupIncludes ; + # Our Main replacement. MainFromObjects $(target) : $(objects) ; TestObjects $(sources) : : true ; @@ -453,6 +459,7 @@ rule TestObjects OPTIM = ; } + SetupIncludes ; SetupObjectsDir ; # compile @@ -777,7 +784,6 @@ rule UseHeaders rule UseCppUnitHeaders { - SetupIncludes ; #serious hack SubDirHdrs [ FDirName $(OBOS_TOP) headers tools cppunit ] ; } @@ -1085,17 +1091,12 @@ rule SetupKernel local _objs = $(1:S=$(SUFOBJ)) ; - # XXX add "mail" and "opengl" later - OS_INCLUDES ?= . add-ons add-ons/file_system add-ons/graphics add-ons/input_server add-ons/screen_saver add-ons/tracker app device drivers game interface kernel media midi midi2 net storage support translation ; - - # include current directory - UseHeaders . ; - + #Setup Kernel header directories + local kernel_includes = add-ons/file_system add-ons/graphics device drivers kernel storage support ; # Use posix headers directory - SubDirHdrs [ FDirName $(OBOS_TOP) headers posix ] ; - + HDRS = [ FDirName $(OBOS_TOP) headers posix ] ; # Use public OS header directories - UseHeaders [ PublicHeaders $(OS_INCLUDES) ] ; + HDRS += [ PublicHeaders $(kernel_includes) ] ; UsePrivateHeaders kernel ; UseArchHeaders $(OBOS_ARCH) ; @@ -1349,8 +1350,6 @@ FT2_LIB = freetype ; rule UseFreeTypeHeaders { SubDirHdrs $(FT2_INCLUDE) ; - - SetupIncludes ; } rule UseFreeTypeObjectHeaders @@ -1383,6 +1382,7 @@ rule FT2_Library local library = lib$(1).so ; local sources = $(2) ; + SetupIncludes ; SetupObjectsDir ; MakeLocateObjects $(sources) ; Objects $(sources) ;