Home | History | Annotate | Line # | Download | only in scripts
      1      1.1  mrg #!/usr/bin/env bash
      2      1.1  mrg 
      3  1.1.1.2  mrg # Script to do compilation-only testing.
      4      1.1  mrg 
      5      1.1  mrg # Invocation 
      6  1.1.1.2  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.1.1.2  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