xref: /netbsd-src/external/gpl3/gcc/dist/libstdc++-v3/scripts/check_compile (revision 181254a7b1bdde6873432bffef2d2decc4b5c22f)
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