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