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