X-Git-Url: https://feistymeow.org/gitweb/?a=blobdiff_plain;f=scripts%2Fgenerator%2Fbuild_variables.sh;h=2a30e2dce56e4b02b55d43e4d16a048b0eea0125;hb=e6c1c511f0aaccffd2792a8b1a62d7ffd091f524;hp=a4a2f4e64bebd2a2e897143baecda1c1d4fc97e0;hpb=551aa3a190bf230728a94a4f056cffd9f21121d7;p=feisty_meow.git diff --git a/scripts/generator/build_variables.sh b/scripts/generator/build_variables.sh index a4a2f4e6..2a30e2dc 100644 --- a/scripts/generator/build_variables.sh +++ b/scripts/generator/build_variables.sh @@ -50,6 +50,9 @@ source $FEISTY_MEOW_SCRIPTS/core/functions.sh ############## +# outer check on whether this already was run or not. +if [ -z "$BUILD_VARS_LOADED" ]; then + # perform some calculations to get the right paths from our parameters. if [ ! -z "$PARM_1" ]; then # use the first real parameter since this is probably the 'source' version. @@ -68,13 +71,6 @@ export CLAM_DIR="$(cd $BUILD_SCRIPTS_DIR/../clam ; \pwd)" # synonym to make other builds happy. export BUILDER_DIR="$BUILDING_HIERARCHY" -# guess the current platform. -IS_UNIX=$(uname | grep -i linux) -if [ -z "$IS_UNIX" ]; then IS_UNIX=$(uname | grep -i unix); fi -if [ -z "$IS_UNIX" ]; then IS_UNIX=$(uname | grep -i darwin); fi -IS_DOS=$(uname | grep -i ming) -if [ -z "$IS_DOS" ]; then IS_DOS=$(uname | grep -i cygwin); fi - # set some clam parameters for compilation. if the script can't guess the # right configuration, then you will need to set them in the last 'else' # below. @@ -89,40 +85,57 @@ if [ ! -z "$SHELL_DEBUG" ]; then fi if [ ! -z "$SHELL_DEBUG" ]; then - echo "[FEISTY_MEOW_DIR is $FEISTY_MEOW_DIR]" + echo "[FEISTY_MEOW_APEX is $FEISTY_MEOW_APEX]" fi +#if [ "$OPERATING_SYSTEM" == "WIN32" ]; then +# # harsh on the paths and make them use backwards slashes. +# export SERIOUS_SLASH_TREATMENT=true +#fi + # new BUILD_TOP variable points at the utter top-most level of any files # in the building hierarchy. -export BUILD_TOP="$FEISTY_MEOW_DIR" +export BUILD_TOP="$FEISTY_MEOW_APEX" -# this variable points at a folder where we store most of the generated products -# of the build. these tend to be the things that will be used for packaging into -# different types of products. +# the production directory is the location for all the scripts and setup +# code needed to produce the executables for feisty meow. export PRODUCTION_DIR="$BUILD_TOP/production" +## set up the top-level for all build creations and logs and such. +#export GENERATED_DIR="$TMP/generated-feisty_meow" +#if [ ! -d "$GENERATED_DIR" ]; then +# mkdir -p "$GENERATED_DIR" +#fi +## set up our effluent outsourcing valves. +#export TEMPORARIES_DIR="$GENERATED_DIR/temporaries" +#if [ ! -d "$TEMPORARIES_DIR" ]; then +# mkdir -p "$TEMPORARIES_DIR" +#fi + +# this variable points at a folder where we store the generated products of +# the build, such as the binaries and installer packages. +export RUNTIME_DIR="$GENERATED_DIR/runtime" +if [ ! -d "$RUNTIME_DIR" ]; then + mkdir -p "$RUNTIME_DIR" +fi + # we define a log file storage area that can be relied on by the build. -export LOGS_DIR="$PRODUCTION_DIR/logs" +export LOGS_DIR="$GENERATED_DIR/logs" if [ ! -d "$LOGS_DIR" ]; then mkdir -p "$LOGS_DIR" fi -# hook clam into the compilation system. -function make() -{ - /usr/bin/make -I "$CLAM_DIR" $* -} - ############## # debugging area where we say what we think we know. -#echo scripts: $BUILD_SCRIPTS_DIR -#echo build tools hier: $BUILDING_HIERARCHY -#echo this tool: $THIS_TOOL_NAME -#echo repository: $FEISTY_MEOW_DIR -#echo clam: $CLAM_DIR -#echo makeflags: $MAKEFLAGS +if [ ! -z "$SHELL_DEBUG" ]; then + echo scripts: $BUILD_SCRIPTS_DIR + echo build tools hier: $BUILDING_HIERARCHY + echo this tool: $THIS_TOOL_NAME + echo repository: $FEISTY_MEOW_APEX + echo clam: $CLAM_DIR +fi ############## @@ -151,7 +164,7 @@ fi # now compute some more paths with a bit of "heuristics" for where we can # find the source code. -export TOOL_SOURCES="$FEISTY_MEOW_DIR/nucleus/tools" +export TOOL_SOURCES="$FEISTY_MEOW_APEX/nucleus/tools" if [ -z "$got_bad" -a ! -d "$TOOL_SOURCES/dependency_tool" -o ! -d "$TOOL_SOURCES/clam_tools" ]; then echo "This script cannot locate the tool source code folder. This is where the" echo "dependency_tool and clam_tools folders are expected to be." @@ -165,23 +178,15 @@ fi if [ -z "$got_bad" ]; then # where we store the binaries used for building the rest of the code base. - export BINARY_DIR="$PRODUCTION_DIR/clam_bin" + export CLAM_BINARY_DIR="$RUNTIME_DIR/clam_bin" # the final destination for the new binaries which provide the hoople # build with all the apps it needs to get going. - export TARGETS_DIR="$PRODUCTION_DIR/binaries" + export TARGETS_DIR="$RUNTIME_DIR/binaries" # targets directory is meaningful to clam, which will use it for output. export INTERMEDIATE_EXE_DIR="$TARGETS_DIR" # where we are building the apps before they get promoted. - export WASTE_DIR="$PRODUCTION_DIR/waste" - if [ ! -d "$WASTE_DIR" ]; then - mkdir -p "$WASTE_DIR" - fi - export TEMPORARIES_DIR="$WASTE_DIR/temporaries" - if [ ! -d "$TEMPORARIES_DIR" ]; then - mkdir -p "$TEMPORARIES_DIR" - fi - +#hmmm: could allow override on this if already set. # calculate which build ini file to use. export BUILD_PARAMETER_FILE="$PRODUCTION_DIR/feisty_meow_config.ini" if [ ! -f "$BUILD_PARAMETER_FILE" ]; then @@ -197,7 +202,7 @@ if [ -z "$got_bad" ]; then # we should have established our internal variables now, so let's try # using them. - export PATH=$BINARY_DIR:$PATH + export PATH=$(dos_to_unix_path $CLAM_BINARY_DIR):$PATH # load up the helper variables for visual studio on winders. if [ "$OPERATING_SYSTEM" == "WIN32" ]; then @@ -219,5 +224,20 @@ if [ -z "$got_bad" ]; then bash fi + # sentinel that tells us this script was pulled in. + export BUILD_VARS_LOADED=true + fi +fi # outer wrapper for already ran build vars check. + +############## + +# hook clam into the compilation system. +# this always needs to be defined since functions aren't exported. +function make() +{ + /usr/bin/make -I "$CLAM_DIR" $* +} + +