#!/bin/sh

#
# values substituted from configure
#
host=i586-alt-linux-gnu
prefix=/usr/lib/petsc-complex
exec_prefix=/usr
libdir=/usr/lib
includedir=/usr/include
legacyinclude=no
builddir=/usr/src/RPM/BUILD/libmesh-complex-1.0.0
has_been_installed=yes

#
# Define the usage() function
#
usage ()
{
  echo "usage: $0 --cppflags --cxxflags --include --libs"
  echo "       $0 --cxx"
  echo "       $0 --cc"
  echo "       $0 --fc"
  echo "       $0 --fflags"
  echo "       $0 --version"
  echo "       $0 --host"
  echo "       $0 --ldflags"
  exit
}

#
# Need at least one command-line argument
#
if [ "$#" = "0" ] ; then
    usage $0
fi

#
# Need a valid METHOD 
#
if (test "x$METHOD" = x); then
    #echo "No METHOD specified - defaulting to opt"
    METHOD=opt
fi

case "$METHOD" in
    optimized|opt)
	CXXFLAGS=" -std=gnu++11 -O2 -felide-constructors -funroll-loops -fstrict-aliasing -Wdisabled-optimization    -fopenmp"
	CPPFLAGS="-DNDEBUG "
	CFLAGS="-O2 -funroll-loops -fstrict-aliasing    -fopenmp"
	libext="_opt"
	;;
    debug|dbg)
	CXXFLAGS=" -std=gnu++11 -O0 -felide-constructors -g -pedantic -W -Wall -Wextra -Wno-long-long -Wunused -Wpointer-arith -Wformat -Wparentheses -Woverloaded-virtual    -fopenmp"
	CPPFLAGS="-DDEBUG -D_GLIBCXX_DEBUG -D_GLIBCXX_DEBUG_PEDANTIC "
	CFLAGS="-g -Wimplicit    -fopenmp"
	libext="_dbg"
	;;
    devel)
	CXXFLAGS=" -std=gnu++11 -O2 -felide-constructors -g -pedantic -W -Wall -Wextra -Wno-long-long -Wunused -Wpointer-arith -Wformat -Wparentheses -Wuninitialized -funroll-loops -fstrict-aliasing -Woverloaded-virtual -Wdisabled-optimization    -fopenmp"
	CPPFLAGS=" "
	CFLAGS="-O2 -g -Wimplicit -funroll-loops -fstrict-aliasing    -fopenmp"
	libext="_devel"
	;;
    profiling|pro|prof)
	CXXFLAGS=" -std=gnu++11 -O2 -felide-constructors -funroll-loops -fstrict-aliasing -Wdisabled-optimization   -pg  -fopenmp"
	CPPFLAGS="-DNDEBUG "
	CFLAGS="-O2 -funroll-loops -fstrict-aliasing   -pg  -fopenmp"
	libext="_prof"
	;;
    oprofile|oprof)
	CXXFLAGS=" -std=gnu++11 -O2 -felide-constructors -funroll-loops -fstrict-aliasing -Wdisabled-optimization   -g -fno-omit-frame-pointer  -fopenmp"
	CPPFLAGS="-DNDEBUG "
	CFLAGS="-O2 -funroll-loops -fstrict-aliasing   -g -fno-omit-frame-pointer  -fopenmp"
	libext="_oprof"
	;;
    *)
	echo "ERROR: Unknown \$METHOD: $METHOD"
	echo "  should be one of: <opt,dbg,devel,prof,oprof>"
	exit 1
	;;
esac

#
# Process the command-line arguments, build up
# return_val
#
return_val=""

while [ "x$1" != "x" ]; do
    case "$1" in
	"--cxx")
	    return_val="mpicxx $return_val"
	    ;;

	"--cc")
	    return_val="mpicc $return_val"
	    ;;

	"--f77")
	    return_val="mpif77 $return_val"
	    ;;

	"--fc")
	    return_val="i586-alt-linux-gfortran $return_val"
	    ;;

	"--cppflags")
	    return_val="${CPPFLAGS} $return_val"
	    ;;
	
	"--cxxflags")
	    return_val="${CXXFLAGS} $return_val"
	    ;;
	
	"--cflags")
	    return_val="${CFLAGS} $return_val"
	    ;;
	
	"--fflags")
	    return_val="-pipe -Wall -g -O2 -march=i586 -mtune=generic -DOMPI_IGNORE_CXX_SEEK -DHAVE_NOX -I/usr/include/exodusii -I/usr/lib/openmpi/include/netcdf -fpermissive -I/usr/include/eigen3 -fopenmp $return_val"
	    ;;
	
	"--include")
	    # handle legacy include paths when needed.
	    if (test "x$legacyinclude" = "xyes"); then
		return_val="-I${includedir}/libmesh $return_val"
	    fi
	    return_val="-I${includedir}
 	                -I/usr/include/glpk36 -I/usr/include/vtk-5.10 -I/usr/include -I/usr/lib/petsc-complex/include -I/usr/include/superlu_dist -I/usr/include/suitesparse -I/usr/lib/openmpi/include/metis -I/usr/include/triangle -I/usr/include/fftw3-mpi -I/usr/lib/openmpi/include
                        $return_val"
	    ;;
	
	"--libs")
	    return_val="-L/lib -lhdf5 -Wl,-rpath,/lib -L/usr/lib -lglpk -lvtkIO -lvtkCommon -lvtkFiltering -lvtkImaging -lz -ltbb -ltbbmalloc -L/usr/lib/petsc-complex/lib -lslepc -lparpack_MPI-LINUX -lprimme -Wl,-rpath,/usr/lib/petsc-complex/lib -lsuperlu_dist_2.4 -ltmglib -lsuperlu_4.0 -lumfpack -lklu -lcholmod -lbtf -lccolamd -lcolamd -lcamd -lamd -lsuitesparseconfig -lxerbla -llapack -lopenblas -lparmetis -ltriangle -lX11 -lfftw3_mpi -lchaco2 -L/usr -L/usr/lib/oski -L/usr/lib/openmpi/lib -L/usr/lib/gcc/i586-alt-linux/4.9 -lgfortran -lquadmath -lm -lmpi_cxx -lstdc++ -Wl,-rpath,/usr -Wl,-rpath,/usr/lib/oski -Wl,-rpath,/usr/lib/gcc/i586-alt-linux/4.9 -Wl,-rpath,/usr/lib/openmpi/lib -lmpi_f90 -lmpi_f77 -lmpi -lrt -lnsl -lutil -lgcc_s -lpthread -ldl -llmpe -lmpe -Wl,-rpath,/usr/lib -lscalapack -larpack_LINUX -lblacs -lpetsc 
                        -Wl,-rpath,${libdir} -L${libdir} -lmesh${libext} 
                        $return_val"
	    ;;

	"--ldflags")
	    return_val=" $return_val"
	    ;;

	"--version")
	    return_val="1.0.0-pre"
	    ;;

	"--host")
	    return_val="$host"
	    ;;
	
	*)
	    echo "Unknown argument: $1"
	    usage $0
    esac
    shift
done

echo $return_val

# Local Variables:
# mode: shell-script
# End:
