7if [ -z $JPP_DIR ]; then
 
    8    echo "Variable JPP_DIR undefined."
 
   12source $JPP_DIR/setenv.sh $JPP_DIR
 
   18for DIR in $(find $JPP_DIR/{software,examples}/* -maxdepth 0 -type d); do
 
   20    MAINS=($({grep -l "int *main" $DIR/*.cc} 2>/dev/null))
 
   22    if [[ -f $DIR/CMakeLists.txt ]] && (( ${#MAINS} != 0 )); then
 
   30        a0+=($(awk '/^foreach\([a-zA-Z_ ]*$/,/\) *$/' CMakeLists.txt | sed 's/foreach(.*$//' | sed 's/)//'))
 
   31        a0+=($(sed -n 's/^jpp_add_executable( *\([^$][^ ]*\).*/\1/p' CMakeLists.txt))
 
   32        b0+=($(grep -l "int *main" *.cc | sed 's/.cc//'))
 
   39        if (( ${#A1} != ${#A2} )); then
 
   43        for (( i = 1; $i <= ${#A1} && $i <= ${#A2}; i += 1 )); do
 
   44            if [[ ${(P)A1[i]} != ${(P)A2[i]} ]]; then
 
   49        if (( $ERRORS != 0 )); then
 
   58for DIR in $(find $JPP_DIR/software/* -maxdepth 0 -type d); do
 
   60    INCLUDES=$({ls $DIR/*.hh} 2>/dev/null)
 
   62    if [[ -f $DIR/CMakeLists.txt ]] && (( ${#INCLUDES} != 0 )); then
 
   70        a0+=($(awk '/^ *PUBLIC_HEADER/,/\)/'                    CMakeLists.txt | sed 's/PUBLIC_HEADER//'   | sed 's/\(OUTPUT_NAME.*\|)\)//'                  | sed 's/.*\///'))
 
   71        #a0+=($(awk '/^ *ROOT_DICTIONARY/,/(PUBLIC_HEADER|\))/'  CMakeLists.txt | sed 's/ROOT_DICTIONARY//' | sed 's/\(OUTPUT_NAME.*\|PUBLIC_HEADER.*\|)\)//' | sed 's/.*\///'))
 
   72        b0+=($(ls *.hh | grep -v LinkDef.hh))
 
   74        A1=($(echo $a0[*] | tr ' ' '\n' | grep "\.hh" | sort -u))  # sort & unique
 
   75        A2=($(echo $b0[*] | tr ' ' '\n' | grep "\.hh" | sort -u))  # sort & unique
 
   79        if (( ${#A1} != ${#A2} )); then
 
   83        for (( i = 1; $i <= ${#A1} && $i <= ${#A2}; i += 1 )); do
 
   84            if [[ ${(P)A1[i]} != ${(P)A2[i]} ]]; then
 
   89        if (( $ERRORS != 0 )); then