Home | History | Annotate | Line # | Download | only in scripts
      1  1.1  mrg #!/usr/bin/env bash
      2  1.1  mrg 
      3  1.8  mrg # Script to do compilation-only testing.
      4  1.1  mrg 
      5  1.1  mrg # Invocation 
      6  1.8  mrg # check_compile SRC_DIR BUILD_DIR
      7  1.1  mrg 
      8  1.1  mrg # 1: variables
      9  1.1  mrg #
     10  1.1  mrg SRC_DIR=$1
     11  1.1  mrg BUILD_DIR=$2
     12  1.1  mrg 
     13  1.1  mrg # Now that we've successfully translated the numerical option into
     14  1.1  mrg # a symbolic one, we can safely ignore it.
     15  1.1  mrg shift
     16  1.1  mrg 
     17  1.1  mrg # This has been true all along.  Found out about it the hard way...
     18  1.1  mrg case $BASH_VERSION in
     19  1.1  mrg     1*)  
     20  1.8  mrg 	echo 'You need bash 2.x to run check_compile.  Exiting.';
     21  1.1  mrg 	exit 1 ;;
     22  1.1  mrg     *)   ;;  
     23  1.1  mrg esac
     24  1.1  mrg 
     25  1.1  mrg flags_script=$BUILD_DIR/scripts/testsuite_flags
     26  1.1  mrg INCLUDES=`$flags_script --build-includes`
     27  1.1  mrg PCH_FLAGS=`$flags_script --cxxpchflags`
     28  1.1  mrg FLAGS=`$flags_script --cxxflags`
     29  1.1  mrg TEST_FLAGS="-S"
     30  1.1  mrg COMPILER=`$flags_script --build-cxx`
     31  1.1  mrg CXX="$COMPILER $INCLUDES $PCH_FLAGS $FLAGS -Wfatal-errors $TEST_FLAGS"
     32  1.1  mrg 
     33  1.1  mrg echo "compile line is:"
     34  1.1  mrg echo $CXX
     35  1.1  mrg echo ""
     36  1.1  mrg 
     37  1.1  mrg TESTS_FILE="testsuite_files"
     38  1.1  mrg 
     39  1.1  mrg #mkdir binaries
     40  1.1  mrg UNIQUE_ID=0
     41  1.1  mrg 
     42  1.1  mrg for NAME in `cat $TESTS_FILE`
     43  1.1  mrg do
     44  1.1  mrg   if $RUN; then
     45  1.1  mrg     echo $NAME
     46  1.1  mrg     OUTPUT_NAME=$UNIQUE_ID
     47  1.1  mrg     $CXX $SRC_DIR/testsuite/$NAME -o $OUTPUT_NAME
     48  1.1  mrg     if [ -f $OUTPUT_NAME ]; then
     49  1.1  mrg #	mv $OUTPUT_NAME binaries
     50  1.1  mrg 	rm $OUTPUT_NAME
     51  1.1  mrg     fi
     52  1.1  mrg     let UNIQUE_ID+=1 
     53  1.1  mrg   fi
     54  1.1  mrg done
     55  1.1  mrg 
     56  1.1  mrg exit 0
     57