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