more info about custom scripts.
[feisty_meow.git] / scripts / generator / build_variables.sh
index 308fe88ee3603a4f5d33cd12deadce2d67efc027..d9b6a96628b180397db4da8912f7903ce889d8a4 100644 (file)
@@ -84,13 +84,16 @@ if [ ! -z "$PARM_1" ]; then
   # use the first real parameter since this is probably the 'source' version.
   export BUILD_SCRIPTS_DIR="$(dirname "$PARM_1")"
   THIS_TOOL_NAME="$(basename "$PARM_1")"
+echo sourced version buildscriptsdir is $BUILD_SCRIPTS_DIR
 else
   # use the zeroth parameter, since we know nothing more about our name.
   export BUILD_SCRIPTS_DIR="$(dirname "$PARM_0")"
   THIS_TOOL_NAME="$(basename "$PARM_0")"
+echo bashed version buildscriptsdir is $BUILD_SCRIPTS_DIR
 fi
 BUILD_SCRIPTS_DIR="$(echo $BUILD_SCRIPTS_DIR | tr '\\\\' '/' )"
-echo buildsc is $BUILD_SCRIPTS_DIR
+echo post tr buildscriptsdir is $BUILD_SCRIPTS_DIR
+
 # figure out the other paths based on where we found this script.
 export BUILDING_HIERARCHY="$(echo "$BUILD_SCRIPTS_DIR" | sed -e 's/\(.*\)\/[^\/]*/\1/')"
 export CLAM_DIR="$BUILD_SCRIPTS_DIR/../clam"
@@ -117,28 +120,15 @@ if [ ! -z "$SHELL_DEBUG" ]; then
   echo "[OS is \"$OPERATING_SYSTEM\"]"
 fi
 
-# the impact of always redoing the repository directory below means that we
-# will always expect the build scripts to be located within the build they're
-# building.  that's fundamentally broken for some usages.
-# but just using the existing repository directory is fundamentally broken
-# too, since then the build variables will never re-adapt to the repository
-# you want.
-# maybe just documentation; if you are changing your repository and the build
-# scripts are in the right place, then you should unset REPOSITORY_DIR.
-# we at least check that the folder still exists now too, but that's not exact
-# knowledge that it's still the right directory.
-
-if [ -z "$REPOSITORY_DIR" -o ! -d "$REPOSITORY_DIR" ]; then
-  # we create the variable repository dir, but we keep the idiotic dos form of
-  # the path, because otherwise lots of bad things happens when passing the
-  # folders around to visual studio commands that don't allow a space after them.
-  if [ -d "$BUILDING_HIERARCHY/source" ]; then
-    # old style repository is same height as building hierarchy.
-    export REPOSITORY_DIR="$BUILDING_HIERARCHY"
-  else
-    # new style repository is a level above the build hierarchy.
-    export REPOSITORY_DIR="$(echo "$BUILDING_HIERARCHY" | sed -e 's/\(.*\)\/[^\/]*/\1/')"
-  fi
+# we create the variable REPOSITORY_DIR, but we keep the dos form of
+# the path, because otherwise lots of bad things happens when passing the
+# folders around to visual studio commands that don't allow a space after them.
+if [ -d "$BUILDING_HIERARCHY/source" ]; then
+  # old style repository is same height as building hierarchy.
+  export REPOSITORY_DIR="$BUILDING_HIERARCHY"
+else
+  # new style repository is a level above the build hierarchy.
+  export REPOSITORY_DIR="$(echo "$BUILDING_HIERARCHY" | sed -e 's/\(.*\)\/[^\/]*/\1/')"
 fi
 
 if [ "$OPERATING_SYSTEM" = "WIN32" ]; then
@@ -152,12 +142,7 @@ fi
 
 # new BUILD_TOP variable points at the utter top-most level of any files
 # in the building hierarchy.
-if [ -d "$REPOSITORY_DIR/../../build" ]; then
-  export BUILD_TOP="$REPOSITORY_DIR/../.."
-else
-  # this is actually just a guess.
-  export BUILD_TOP="$REPOSITORY_DIR"
-fi
+export BUILD_TOP="$REPOSITORY_DIR"
 
 # 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
@@ -194,10 +179,10 @@ pushd / &>/dev/null # jump to the root so relative paths are caught.
 
 # first the scripts directory; do we find this script there?
 if [ ! -f "$BUILD_SCRIPTS_DIR/$THIS_TOOL_NAME" ]; then
-  echo "This script must be run using its full pathname.  This enables the script to"
-  echo "locate the proper build folders.  Please try again with the full path, e.g.:"
-  echo "    bash /home/fred/codeplex/scripts/generator/$THIS_TOOL_NAME"
-#  exit 1
+  echo "This script cannot locate the proper build folders.  The crucial path"
+  echo "variable seems to be '$BUILD_SCRIPTS_DIR', which"
+  echo "does not seem to contain '$THIS_TOOL_NAME' (this"
+  echo "script's apparent name)."
 fi
 
 # next the clam directory; is the main variables file present there?
@@ -205,7 +190,6 @@ if [ ! -f "$CLAM_DIR/variables.def" ]; then
   echo "The clam directory could not be located under our build tools hierarchy."
   echo "Please examine the configuration and make sure that this script is in a"
   echo "directory that resides at the same height as the 'clam' directory."
-#  exit 1
 fi
 
 # now compute some more paths with a bit of "heuristics" for where we can
@@ -215,7 +199,6 @@ if [ ! -d "$TOOL_SOURCES/dependency_tool" -o ! -d "$TOOL_SOURCES/clam_tools" ];
   if [ ! -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."
-#    exit 1
   fi
 fi
 
@@ -241,7 +224,6 @@ fi
 export BUILD_PARAMETER_FILE="$PRODUCTION_DIR/feisty_meow_config.ini"
 if [ ! -f "$BUILD_PARAMETER_FILE" ]; then
   echo "Cannot find a useful build configuration file."
-#  exit 1
 fi
 
 # pick the executable's file ending based on the platform.
@@ -249,9 +231,12 @@ if [ "$OPERATING_SYSTEM" == "UNIX" ]; then export EXE_ENDING=;
 elif [ "$OPERATING_SYSTEM" == "WIN32" ]; then export EXE_ENDING=.exe;
 else
   echo "The OPERATING_SYSTEM variable is unset or unknown.  Bailing out."
-#  exit 1
 fi
 
+# we should have established our internal variables now, so let's try
+# using them.
+export PATH=$BINARY_DIR:$PATH
+
 # load up the helper variables for visual studio on winders.
 if [ "$OPERATING_SYSTEM" == "WIN32" ]; then
   source "$BUILD_SCRIPTS_DIR/vis_stu_vars.sh"