aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--infrastructure/bin/compilecache.sh84
1 files changed, 43 insertions, 41 deletions
diff --git a/infrastructure/bin/compilecache.sh b/infrastructure/bin/compilecache.sh
index a2b6220..6e42a50 100644
--- a/infrastructure/bin/compilecache.sh
+++ b/infrastructure/bin/compilecache.sh
@@ -16,49 +16,51 @@
CP_CMD="cp -R -u"
if [ `uname` == "Darwin" ]; then
- CP_CMD="/bin/cp -R -n"
+ CP_CMD="/bin/cp -R -n"
+elif [ `uname` == "SunOS" ]; then
+ CP_CMD="cp -R" #Solaris cp does not have '-u'
fi
function cacheonfiles {
- NAME=$1; FILES=$2; FUNC=$3; NOCOPY=1;
- if [ -z "$4" ]; then
- NOCOPY=0
- fi
- REBUILD=0
- BPATH=buildcache/$NAME
- FILETEST=$BPATH/t
- if [ ! -f $FILETEST ]; then
- REBUILD=1
- else
- for a in $FILES; do
- if [ $FILETEST -ot $a ]; then
- echo $a has changed, rebuilding $NAME
+ NAME=$1; FILES=$2; FUNC=$3; NOCOPY=1;
+ if [ -z "$4" ]; then
+ NOCOPY=0
+ fi
+ REBUILD=0
+ BPATH=buildcache/$NAME
+ FILETEST=$BPATH/t
+ if [ ! -f $FILETEST ]; then
REBUILD=1
- fi
- done
- fi
- if [ $REBUILD -eq 1 ]; then
- if [ -d $BPATH ]; then
- rm -rf $BPATH
+ else
+ for a in $FILES; do
+ if [ $FILETEST -ot $a ]; then
+ echo $a has changed, rebuilding $NAME
+ REBUILD=1
+ fi
+ done
+ fi
+ if [ $REBUILD -eq 1 ]; then
+ if [ -d $BPATH ]; then
+ rm -rf $BPATH
+ fi
+ mkdir -p $BPATH
+ $FUNC $BPATH
+ pushd $BPATH >> /dev/null
+ touch t
+ popd >> /dev/null
+ else
+ echo using cached $NAME...
+ fi
+ if [ $NOCOPY -ne 1 ]; then
+ for a in $BPATH/*; do
+ if [ -d $a ]; then
+ $CP_CMD $a build/
+ elif [ -f $a ]; then
+ cp $a build/
+ else
+ echo unknown file type $a
+ exit 1
+ fi
+ done
fi
- mkdir -p $BPATH
- $FUNC $BPATH
- pushd $BPATH >> /dev/null
- touch t
- popd >> /dev/null
- else
- echo using cached $NAME...
- fi
- if [ $NOCOPY -ne 1 ]; then
- for a in $BPATH/*; do
- if [ -d $a ]; then
- $CP_CMD $a build/
- elif [ -f $a ]; then
- cp $a build/
- else
- echo unknown file type $a
- exit 1
- fi
- done
- fi
-}
+}