#!/bin/bash
#
# gcc.bldconf - file containing information necessary to build a specific
#               program of the PARSEC benchmark suite with gcc
#
# Copyright (C) 2009 Princeton University
# Written by Christian Bienia

# Compilation and linking options.
# This is the configuration we'll use to build the program. Each package of the
# benchmark suite has such a file with information that will be added to the
# global configuration. All variables set in the global configuration files can
# be referenced here.


# Package dependencies
build_deps=""

# Environment to use for configure script and Makefile
# NOTE: We must remove `-lhooks' from the library list to avoid a circular dependency
build_env="LIBS=\"\""

# Whether the build system supports only in-place compilation.
# If TRUE, then all sources will be copied to the build directory before we
# start building the package. Required for older build systems which don't
# support VPATH.
build_inplace="FALSE"

# Arguments to pass to the configure script, if it exists
build_conf="--build=${GNU_HOST_NAME} --host=${GNU_TARGET_NAME}"

