rendered paste body# Haiku Jamrules# Main directories used by the build.HAIKU_OUTPUT_DIR ?= [ FDirName $(HAIKU_TOP) generated ] ;HAIKU_BUILD_OUTPUT_DIR = [ FDirName $(HAIKU_OUTPUT_DIR) build ] ;HAIKU_BUILD_DIR = [ FDirName $(HAIKU_TOP) build ] ;HAIKU_BUILD_RULES_DIR = [ FDirName $(HAIKU_BUILD_DIR) jam ] ;HAIKU_OBJECT_DIR = [ FDirName $(HAIKU_OUTPUT_DIR) objects ] ;HAIKU_COMMON_PLATFORM_OBJECT_DIR = [ FDirName $(HAIKU_OBJECT_DIR) common ] ;HAIKU_DOWNLOAD_DIR = [ FDirName $(HAIKU_OUTPUT_DIR) download ] ;HAIKU_OPTIONAL_BUILD_PACKAGES_DIR = [ FDirName $(HAIKU_OUTPUT_DIR) build_packages ] ;# Cache files for header scanning and jamfile cachingHCACHEFILE = header_cache ;JCACHEFILE = jamfile_cache ;LOCATE on $(HCACHEFILE) $(JCACHEFILE) = $(HAIKU_BUILD_OUTPUT_DIR) ;# include BuildConfiglocal buildConfig = [ GLOB $(HAIKU_BUILD_OUTPUT_DIR) : BuildConfig ] ;if ! $(buildConfig) { ECHO "No `BuildConfig' found in $(HAIKU_BUILD_OUTPUT_DIR)!" ; EXIT "Run ./configure in the source tree's root directory first!" ;}LOCATE on BuildConfig = $(HAIKU_BUILD_OUTPUT_DIR) ;include BuildConfig ;# The build setup and rules are neatly organized in several files. Include# them now. Start with the side-effect-less rules, since they are the most# likely to be used in the top level context (i.e. not only in rules).# At the end include BuildSetup that sets up global variables etc. The# optional user-defined UserBuildConfig is included thereafter.include [ FDirName $(HAIKU_BUILD_RULES_DIR) HelperRules ] ;include [ FDirName $(HAIKU_BUILD_RULES_DIR) MathRules ] ;include [ FDirName $(HAIKU_BUILD_RULES_DIR) BeOSRules ] ;include [ FDirName $(HAIKU_BUILD_RULES_DIR) CommandLineArguments ] ;include [ FDirName $(HAIKU_BUILD_RULES_DIR) ConfigRules ] ;include [ FDirName $(HAIKU_BUILD_RULES_DIR) DocumentationRules ] ;include [ FDirName $(HAIKU_BUILD_RULES_DIR) FileRules ] ;include [ FDirName $(HAIKU_BUILD_RULES_DIR) FreetypeRules ] ;include [ FDirName $(HAIKU_BUILD_RULES_DIR) HeadersRules ] ;include [ FDirName $(HAIKU_BUILD_RULES_DIR) KernelRules ] ;include [ FDirName $(HAIKU_BUILD_RULES_DIR) ImageRules ] ;include [ FDirName $(HAIKU_BUILD_RULES_DIR) CDRules ] ;include [ FDirName $(HAIKU_BUILD_RULES_DIR) MainBuildRules ] ;include [ FDirName $(HAIKU_BUILD_RULES_DIR) MiscRules ] ;include [ FDirName $(HAIKU_BUILD_RULES_DIR) OverriddenJamRules ] ;include [ FDirName $(HAIKU_BUILD_RULES_DIR) PackageRules ] ;include [ FDirName $(HAIKU_BUILD_RULES_DIR) TestsRules ] ;include [ FDirName $(HAIKU_BUILD_RULES_DIR) BuildSetup ] ;# Declare no-op user-overridable build rules.rule UserBuildConfigRulePostBuildTargets { }rule UserBuildConfigRulePreImage { }rule UserBuildConfigRulePostImage { }# Include UserBuildConfig.if ! $(HAIKU_IGNORE_USER_BUILD_CONFIG) { local userBuildConfig = [ GLOB $(HAIKU_BUILD_RULES_DIR) : UserBuildConfig ] ; if $(userBuildConfig) { include $(userBuildConfig) ; } # allow for a separate UserBuildConfig per output directory local userBuildConfig = [ GLOB $(HAIKU_OUTPUT_DIR) : UserBuildConfig ] ; if $(userBuildConfig) { include $(userBuildConfig) ; }}include [ FDirName $(HAIKU_BUILD_RULES_DIR) ReleaseBuildProfiles ] ;# If a build profile was specified on the command line, now is the time to# check whether it is unknown or one of the default profiles.if $(HAIKU_BUILD_PROFILE) && ! $(HAIKU_BUILD_PROFILE_DEFINED) { # define the obvious default profiles if $(HAIKU_BUILD_PROFILE) in image vmware-image install { DefineBuildProfile $(HAIKU_BUILD_PROFILE) : $(HAIKU_BUILD_PROFILE) ; } else { Exit "Build profile" $(HAIKU_BUILD_PROFILE) "not defined." ; }}# Include embedded board-specific file.# UserBuildConfig can override HAIKU_BOOT_BOARD.if $(HAIKU_BOOT_BOARD) { include [ FDirName $(HAIKU_BUILD_RULES_DIR) board $(HAIKU_BOOT_BOARD) BoardSetup ] ;}PrepareConfigVariables ;