# configure.ac -- autoconf script for the car plugin
# Copyright (C) 2013 Galois, Inc.
#
# This program is free software: you can redistribute it and/or modify it under
# the terms of the GNU General Public License as published by the Free Software
# Foundation, either version 3 of the License, or (at your option) any later
# version.
#
# This program is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
# details.
#
# You should have received a copy of the GNU General Public License along with
# this program. If not, see .
#
# To contact Galois, complete the Web form at
# or write to Galois, Inc., 421 Southwest 6th Avenue, Suite 300, Portland,
# Oregon, 97204-1622.
# Fire up Autoconf.
AC_PREREQ([2.69])
AC_INIT([libv_repExtAutomobile], [1.0.0], [bbarenblat@galois.com])
AC_CANONICAL_TARGET
# This package will build but not function on OS X, so fail fast if we're on
# Darwin.
case "$target_os" in
darwin*)
AC_MSG_ERROR([this plugin will not function on OS X])
;;
esac
# Fire up Automake.
AM_INIT_AUTOMAKE([-Wall -Wno-gnu -Wno-override -Werror foreign no-dist-gzip dist-bzip2])
AC_CONFIG_MACRO_DIR([m4])
# Build quietly.
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
# Build a C++ library.
AC_CONFIG_SRCDIR([config.h.in])
AC_CONFIG_HEADERS([config.h])
AC_PROG_CXX
AX_CXX_COMPILE_STDCXX_11([noext],[mandatory])
# Automake 1.12 seems to require this, but automake 1.11 doesn't recognize it.
m4_ifdef([AM_PROG_AR], [AM_PROG_AR])
LT_INIT
AC_PROG_LN_S
# Dependencies
AC_ARG_VAR([VREP], [path to V-REP installation])
if test -z "$VREP"; then
AC_MSG_ERROR([empty VREP environment variable; please set it to the path to the V-REP installation directory])
fi
VREP_CXXFLAGS=-I$VREP/programming/include
AC_SUBST([VREP])
AC_SUBST([VREP_CXXFLAGS])
BOOST_REQUIRE
BOOST_FILESYSTEM
BOOST_OPTIONAL([1.34])
# C++11 initializer list syntax is nice! Sadly, it is not universally
# supported. Notably, Clang <3.1 lacks support for initializer lists, and a
# number of systems--e.g., Debian Wheezy machines--have pre-3.1 Clang.
# TODO: Once Clang 3.0 and earlier disappear from the ecosystem, get rid of
# HAVE_CXX11_INITIALIZER_LISTS and make this check fatal on error.
AC_LANG_PUSH([C++])
AC_MSG_CHECKING([for initializer list support])
# Double brackets go around the argument to AC_LANG_SOURCE, lest m4 replace the
# square brackets in the C++ code.
AC_COMPILE_IFELSE(
[AC_LANG_SOURCE([[#include
int main(int argc, char *argv[]) {
std::vector test {1, 2, 3};
return 0;
}]])],
[AC_DEFINE(
[HAVE_CXX11_INITIALIZER_LISTS],
[1],
[Define to 1 if your compiler supports C++11 initializer lists.])
AC_MSG_RESULT([yes])],
[AC_MSG_RESULT([no])])
AC_LANG_POP([C++])
# Same for lambda expressions.
AC_LANG_PUSH([C++])
AC_MSG_CHECKING([for C++11 closure support])
AC_COMPILE_IFELSE(
[AC_LANG_SOURCE([[int main(int argc, char *argv[]) {
auto test = [](int &n){ n++; };
return 0;
}]])],
[AC_DEFINE(
[HAVE_CXX11_CLOSURES],
[1],
[Define to 1 if your compiler supports C++11 closure syntax.])
AC_MSG_RESULT([yes])],
[AC_MSG_RESULT([no])])
AC_LANG_POP([C++])
# Generate Makefiles.
AC_CONFIG_FILES([
Makefile
src/Makefile])
# All done.
AC_OUTPUT