14fee23f9Smrg#!/usr/bin/env bash 24fee23f9Smrg 3*181254a7Smrg# Script to do compilation-only testing. 44fee23f9Smrg 54fee23f9Smrg# Invocation 6*181254a7Smrg# check_compile SRC_DIR BUILD_DIR 74fee23f9Smrg 84fee23f9Smrg# 1: variables 94fee23f9Smrg# 104fee23f9SmrgSRC_DIR=$1 114fee23f9SmrgBUILD_DIR=$2 124fee23f9Smrg 134fee23f9Smrg# Now that we've successfully translated the numerical option into 144fee23f9Smrg# a symbolic one, we can safely ignore it. 154fee23f9Smrgshift 164fee23f9Smrg 174fee23f9Smrg# This has been true all along. Found out about it the hard way... 184fee23f9Smrgcase $BASH_VERSION in 194fee23f9Smrg 1*) 20*181254a7Smrg echo 'You need bash 2.x to run check_compile. Exiting.'; 214fee23f9Smrg exit 1 ;; 224fee23f9Smrg *) ;; 234fee23f9Smrgesac 244fee23f9Smrg 254fee23f9Smrgflags_script=$BUILD_DIR/scripts/testsuite_flags 264fee23f9SmrgINCLUDES=`$flags_script --build-includes` 274fee23f9SmrgPCH_FLAGS=`$flags_script --cxxpchflags` 284fee23f9SmrgFLAGS=`$flags_script --cxxflags` 294fee23f9SmrgTEST_FLAGS="-S" 304fee23f9SmrgCOMPILER=`$flags_script --build-cxx` 314fee23f9SmrgCXX="$COMPILER $INCLUDES $PCH_FLAGS $FLAGS -Wfatal-errors $TEST_FLAGS" 324fee23f9Smrg 334fee23f9Smrgecho "compile line is:" 344fee23f9Smrgecho $CXX 354fee23f9Smrgecho "" 364fee23f9Smrg 374fee23f9SmrgTESTS_FILE="testsuite_files" 384fee23f9Smrg 394fee23f9Smrg#mkdir binaries 404fee23f9SmrgUNIQUE_ID=0 414fee23f9Smrg 424fee23f9Smrgfor NAME in `cat $TESTS_FILE` 434fee23f9Smrgdo 444fee23f9Smrg if $RUN; then 454fee23f9Smrg echo $NAME 464fee23f9Smrg OUTPUT_NAME=$UNIQUE_ID 474fee23f9Smrg $CXX $SRC_DIR/testsuite/$NAME -o $OUTPUT_NAME 484fee23f9Smrg if [ -f $OUTPUT_NAME ]; then 494fee23f9Smrg# mv $OUTPUT_NAME binaries 504fee23f9Smrg rm $OUTPUT_NAME 514fee23f9Smrg fi 524fee23f9Smrg let UNIQUE_ID+=1 534fee23f9Smrg fi 544fee23f9Smrgdone 554fee23f9Smrg 564fee23f9Smrgexit 0 57