#!/bin/bash
#
# gcc-pthreads.bldconf - file containing information necessary to build a
#                        specific program of the PARSEC benchmark suite with
#                        gcc and pthreads
#
# Copyright (C) 2007-2008 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="glib libxml2 zlib"

# Environment to use for configure script and Makefile
build_env="CXXFLAGS=\"-I${PARSECDIR}/pkgs/libs/glib/inst/${PARSECPLAT}/include -I${PARSECDIR}/pkgs/libs/zlib/inst/${PARSECPLAT}/include ${CXXFLAGS} -fexceptions\" LDFLAGS=\"-L${PARSECDIR}/pkgs/libs/glib/inst/${PARSECPLAT}/lib -L${PARSECDIR}/pkgs/libs/zlib/inst/${PARSECPLAT}/lib ${LDFLAGS}\" PKG_CONFIG_PATH=\"${PARSECDIR}/pkgs/libs/glib/inst/${PARSECPLAT}/lib/pkgconfig:${PARSECDIR}/pkgs/libs/libxml2/inst/${PARSECPLAT}/lib/pkgconfig:${PKG_CONFIG_PATH}\" LIBS=\"${LIBS} -lstdc++\""

# 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
vips_basic_conf="--disable-shared --disable-cxx --without-fftw3 --without-magick --without-liboil --without-lcms --without-OpenEXR --without-matio --without-pangoft2 --without-tiff --without-jpeg --without-zip --without-png --without-libexif --without-python --without-x --without-perl --without-v4l --without-cimg"
build_conf="${vips_basic_conf} --enable-threads --build=${GNU_HOST_NAME} --host=${GNU_TARGET_NAME}"
