# # CWM. # # There are a number of modifications made to Jam which you can either # accept or reject as you wish. # # # To turn on one of these features, either alter the default below or # set it on the Jam command line, like: # jam -sHeaderCache=1 # DynamicCommandSize default = True ; ImprovedWarnings default = True ; SerialOutput default = "" ; SlashModifiers default = True ; HeaderCache default = "" ; OptionalHeaders default = "" ; GraphDebugDump default = True ; LargeBuildOutput default = "" ; TimeStamps default = "" ; DebugOutputMods default = True ; NocareNodes default = True ; NTBatchFileFix default = True ; # ---------------------------------------------------------------------- # A rule that checks a variable, if its set, it adds the define to the # list of defines OPT_DEFINES = ; rule config { if $($(<)) { OPT_DEFINES += $(2) ; ECHO "Config:" $(<) is on ; } else { ECHO "Config:" $(<) is off ; } } # ---------------------------------------------------------------------- # A note on the names of the defines. # # An optional part of Jam is initially an extension, following the OpenGL # model. If an extension is accepted into to the mainline, its define # is changed to drop the extension. For example, if the header cache # code is accepted into the mainline but as a continuing option to the build, # the define would be OPT_HEADER_CACHE, not OPT_HEADER_CACHE_EXT. # # Or something like that. # When creating the actions command buffer, dynamically grow the buffer # to as large as needed. Even though some shells are not able to accept # very large buffers - some OSs support amazingly large commands. Multi # mega-byte commands are ok on Solaris, HPUX, Linux, etc config DynamicCommandSize : OPT_DYNAMIC_COMMAND_SIZE_EXT ; # Try to associate a filename and line number with errors and warnings config ImprovedWarnings : OPT_IMPROVED_WARNINGS_EXT ; # Actions write their output into temporary files. When an action # completes, the files contents are displayed along with the associated # jam action line. This serializes the output from Jam - however it # introduces a latency in that you don't see what Jam is doing as it # works on an action, you only see the results afterwards config SerialOutput : OPT_SERIAL_OUTPUT_EXT ; # Add support for the variable expansion modifiers: # $(foo:/) - which converts all \ characters to /, and # $(foo:\) - which converts all / characters to \ # These are useful mainly on NT to get the pathname syntax you want config SlashModifiers : OPT_SLASH_MODIFIERS_EXT ; # The header cache is used to cache the results from the scan of each # file to find headers. Pretty much as it sounds. # # When Jam is started, the header cache is read into a hash table. Then # as each file is about to be scanned for headers, it is looked up in # the cache, and if its there and the files timestamp agrees with the # cache then the cache's results are used. This is really useful for large # builds. config HeaderCache : OPT_HEADER_CACHE_EXT ; # This option allows you to ignore header dependencies when building with # Jam. If you are working with a large system, and you have modified a # low level header, you may want to delay the full build Jam would do # when it sees the dependencies that are out of date. By building with # this option, you can specify a command line argument to have include # file dependencies ignored for a build. config OptionalHeaders : OPT_HEADER_OPTION_EXT ; # This option enables a new debugging level, which outputs a more # readable form of the dependency graph, debug level 10. This may be # useful for people trying to understand a problem with the dependency # graph config GraphDebugDump : OPT_GRAPH_DEBUG_EXT ; # This option controls a variety of minor mods to the output of Jam which # I found more suitable when working with large systems. YMMV. config LargeBuildOutput : OPT_LARGE_BUILD_EXT ; # This option places time stamps on various output messages in jam. I # found this useful to guage the performance of long builds, to find # where most of the time was spent. config TimeStamps : OPT_TIME_STAMP_OUTPUT_EXT ; # Various minor mods to the output config DebugOutputMods : OPT_OUTPUT_MOD_EXT ; # This option allows you to mark an intermediate node as being # NOCARE. If an action related to the building of this node fails, # any dependencies on this NOCARE node continue anyway. This is useful # when partial results from the build are useful. config NocareNodes : OPT_NOCARE_NODES_EXT ; # This option fixes a problem with the naming of batch files on NT. # If more than one instance of Jam was run, there was a naming conflict # and the files would clobber each other config NTBatchFileFix : OPT_FIX_NT_BATCH_EXT ; # ---------------------------------------------------------------------- # Propogate the defines into the compiler flags if $(UNIX) { CCFLAGS += -D$(OPT_DEFINES) ; } else if $(NT) { CCFLAGS += /D$(OPT_DEFINES) ; } else { ECHO The build options are not supported on this platform. ; }