
# The directories used by the build.
BUILD_DIR			= [ FDirName $(TOP) build ] ;
GENERATED_DIR		= [ FDirName $(TOP) generated ] ;
DISTRO_DIR			= [ FDirName $(TOP) generated distro ] ;

# First find out which gcc version the platform uses.
IS_GCC_4_PLATFORM = ;
if $(OS) = HAIKU {
	# Only Haiku might use gcc 4. We use the existence of a libstdc++.r4.so in
	# /boot/develop/lib/x86 to judge whether this is a BeOS compatible and thus
	# gcc 2 platform. This is not entirely correct, but should be good enough
	# for the time being.
	local hasLibStdC++.R4 = [ Glob /boot/develop/lib/x86 : libstdc++.r4.so ] ;
	if ! $(hasLibStdC++.R4) {
		IS_GCC_4_PLATFORM = 1 ;
	}
}

include [ FDirName $(BUILD_DIR) HelperRules ] ;
include [ FDirName $(BUILD_DIR) ConfigRules ] ;
include [ FDirName $(BUILD_DIR) OverriddenJamRules ] ;
include [ FDirName $(BUILD_DIR) MainBuildRules ] ;
include [ FDirName $(BUILD_DIR) BuildSettings ] ;

# Include UserBuildConfig.
{
	local userBuildConfig = [ GLOB $(BUILD_DIR) : UserBuildConfig ] ;
	if $(userBuildConfig)
	{
		LOCATE on UserBuildConfig = $(BUILD_DIR) ;
		include UserBuildConfig ;
	}
}

# default to strip generated apps if not specified otherwise:
STRIP_APPS ?= 1 ;

# Cache files for header scanning and jamfile caching.
HCACHEFILE = header_cache ;
JCACHEFILE = jamfile_cache ;
LOCATE on $(HCACHEFILE) $(JCACHEFILE) = $(GENERATED_DIR) ;


rule MakeDistro
{
	# MakeDistro <target> 

	local target = $1 ;

	NotFile $(target) ;
	Always $(target) ;
}

actions MakeDistro
{
	echo "making distro $(DISTRO_DIR)" ;
	rm -rf $(DISTRO_DIR)/Documentation ;
	mkdir $(DISTRO_DIR)/Documentation ;
	cp -a $(TOP)/doc/*.html $(DISTRO_DIR)/Documentation/ ;
	mkdir $(DISTRO_DIR)/Documentation/gifs ;
	cp -a $(TOP)/doc/gifs/*.gif $(DISTRO_DIR)/Documentation/gifs/ ;
	ln -sf Documentation/index.html $(DISTRO_DIR)/Documentation.html ;
	ln -sfn $(COMMON_FOLDER)/bin $(DISTRO_DIR)/\(drag\ lpe\ here\ to\ install\) ;
	cp -a $(COMMON_FOLDER)/lib/libpcre*.so $(DISTRO_DIR)/lib/ ;
}

