#!/bin/sh

#
# This script computes the various flags needed to run GNU C++ testsuites
# (compiler specific as well as library specific). 
#
# Written by Benjamin Kosnik <bkoz@redhat.com>
#            Gabriel Dos Reis <gdr@codesourcery.com>
#

# Print a message saying how this script is intended to be invoked
print_usage() {
    cat <<EOF
Usage: 
    testsuite_flags --install-includes
		    --build-includes
		    --build-cxx
		    --build-cc
		    --install-cxx
		    --cxxflags
		    --cxxldflags
		    --cxxpchflags
		    --cxxvtvflags

EOF
}

# Establish configure-generated directory structure.
BUILD_DIR=/gcc-daa6516a4b0f301756ec3adbd762e11e/gcc.build.lnx/i486-slackware-linux/libstdc++-v3
SRC_DIR=/gcc-daa6516a4b0f301756ec3adbd762e11e/gcc-5.1.0/libstdc++-v3
PREFIX_DIR=/usr
query=$1

case ${query} in
    --install-includes)
      INCLUDES="-I${SRC_DIR}/testsuite/util"
      echo ${INCLUDES}
      ;;
    --build-includes)
      INCLUDES="-nostdinc++ -I/gcc-daa6516a4b0f301756ec3adbd762e11e/gcc.build.lnx/i486-slackware-linux/libstdc++-v3/include/i486-slackware-linux -I/gcc-daa6516a4b0f301756ec3adbd762e11e/gcc.build.lnx/i486-slackware-linux/libstdc++-v3/include -I/gcc-daa6516a4b0f301756ec3adbd762e11e/gcc-5.1.0/libstdc++-v3/libsupc++ 
                -I${SRC_DIR}/include/backward -I${SRC_DIR}/testsuite/util"
      echo ${INCLUDES}
      ;;
    --install-cxx)
      CXX=${PREFIX_DIR}/bin/g++
      echo ${CXX}
      ;;
    --build-cxx)
      CXX_build=" /gcc-daa6516a4b0f301756ec3adbd762e11e/gcc.build.lnx/./gcc/xgcc -shared-libgcc -B/gcc-daa6516a4b0f301756ec3adbd762e11e/gcc.build.lnx/./gcc -nostdinc++ -L/gcc-daa6516a4b0f301756ec3adbd762e11e/gcc.build.lnx/i486-slackware-linux/libstdc++-v3/src -L/gcc-daa6516a4b0f301756ec3adbd762e11e/gcc.build.lnx/i486-slackware-linux/libstdc++-v3/src/.libs -L/gcc-daa6516a4b0f301756ec3adbd762e11e/gcc.build.lnx/i486-slackware-linux/libstdc++-v3/libsupc++/.libs -B/usr/i486-slackware-linux/bin/ -B/usr/i486-slackware-linux/lib/ -isystem /usr/i486-slackware-linux/include -isystem /usr/i486-slackware-linux/sys-include   "
      CXX=`echo "$CXX_build" | sed 's,gcc/xgcc ,gcc/xg++ ,'`
      echo ${CXX}
      ;;
    --build-cc)
      CC_build="/gcc-daa6516a4b0f301756ec3adbd762e11e/gcc.build.lnx/./gcc/xgcc -B/gcc-daa6516a4b0f301756ec3adbd762e11e/gcc.build.lnx/./gcc/ -B/usr/i486-slackware-linux/bin/ -B/usr/i486-slackware-linux/lib/ -isystem /usr/i486-slackware-linux/include -isystem /usr/i486-slackware-linux/sys-include   "
      CC="$CC_build"
      echo ${CC}
      ;;
    --cxxflags)
      CXXFLAGS_default="-D_GLIBCXX_ASSERT -fmessage-length=0"
      CXXFLAGS_config="-ffunction-sections -fdata-sections "
      echo ${CXXFLAGS_default} ${CXXFLAGS_config} 
      ;;
    --cxxvtvflags)
      CXXFLAGS_vtv=""
      LDFLAGS_vtv=""
      echo ${CXXFLAGS_vtv} ${LDFLAGS_vtv}
      ;;
    --cxxparallelflags)
      CXXFLAGS_parallel="-D_GLIBCXX_PARALLEL -fopenmp
			 -B${BUILD_DIR}/../libgomp 
                         -I${BUILD_DIR}/../libgomp 
			 -L${BUILD_DIR}/../libgomp/.libs -lgomp"
      echo ${CXXFLAGS_parallel}
      ;;
    --cxxpchflags)
      PCHFLAGS="-include bits/stdc++.h"
      echo ${PCHFLAGS}
      ;;
    --cxxldflags)
      SECTIONLDFLAGS="-Wl,--gc-sections  "
      echo ${SECTIONLDFLAGS}
      ;;
    *)
      print_usage
      ;;
esac

exit 0
