1#! /bin/sh 2# 3# This script runs a CMake "make" in the (build dir of the) directory/ies given on the command line. 4 5# Assumptions: 6# - The source tree is either $HOME/vxl or $HOME/vxl-svn 7# - The build tree is $HOME/cygwin-i386 8# Modify the following three lines if this is not the case: 9sourcetree=$HOME/vxl 10altsourcetree=$HOME/vxl-svn 11buildtree=$HOME/cygwin-i386 12 13oldpwd=`pwd|sed -e s!^$altsourcetree!.! -e s!^$sourcetree!.! -e s!^$buildtree!.! -e 's!^/.*!!'` 14# at this point, $oldpwd is either the relative path (from the build dir) from where to interpret the command line arguments, or it's empty 15test "$oldpwd" = '' && echo 'Warning: your current directory is not within the source tree nor the build tree -- results could be unpredictible' >&2 16oldpwd=`echo $oldpwd|sed -e 's!^\./!!'` 17test "$oldpwd" && oldpwd="$oldpwd/" 18cd $buildtree 19for dir in "$@" 20do 21 dir=`echo $dir|sed -e 's/\/\/*/\//g' -e 's/\/*$//'` 22 absdir=`echo $dir|sed -e 's/^\(.\).*/\1/'` 23 test "$absdir" = '/' && dir=`echo $dir|sed -e s!^$altsourcetree!.! -e s!^$sourcetree!.! -e s!^$buildtree!.!` 24 test "$absdir" = '/' || dir="$oldpwd$dir" # relative build directory, as seen from $sourcetree 25 dir=`echo $dir|sed -e 's!/\./!\/!g' -e 's!^\./!!' -e 's!/\.$!!'` 26 test $dir = '.' && continue 27 test -d "$dir" || dir=`echo $dir | sed -e 's/\/[^\/][^\/]*\.[a-z][a-z]*$//'` # "dirname" 28 test -d "$dir/CMakeFiles" && echo "Making in $dir ..." 29 for build in `echo "$dir"/CMakeFiles/*.dir` 30 do 31 test -d "$build" && make -k -f "$build"/build.make "$build"/build 32 done 33done 34