configure.ac 4 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
#                                               -*- Autoconf -*-
# Process this file with autoconf to produce a configure script.

AC_PREREQ([2.67])
AC_INIT([codes-base], [0.2], [http://trac.mcs.anl.gov/projects/codes/newticket],[],[http://trac.mcs.anl.gov/projects/codes/wiki])

AC_CANONICAL_TARGET
AC_CANONICAL_SYSTEM
AC_CANONICAL_HOST

AM_INIT_AUTOMAKE([foreign subdir-objects -Wall])

m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])

AC_CONFIG_SRCDIR([README.txt])
16
AC_CONFIG_HEADERS([codes_base_config.h])
17 18 19 20 21 22 23 24 25 26 27 28 29

AX_PROG_BISON([],[AC_MSG_WARN([Could not find bison])])
AX_PROG_FLEX([],[AC_MSG_WARN([Could not find flex])])
AC_SUBST([BISON])
AC_SUBST([FLEX])

# Checks for programs.
AC_PROG_CC
AM_PROG_CC_C_O
AC_PROG_CXX
AC_PROG_CXXCPP
AC_PROG_RANLIB

Jonathan Jenkins's avatar
Jonathan Jenkins committed
30 31 32
# Check for C99
AC_PROG_CC_C99

33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
AC_REQUIRE_CPP

# Checks for header files.
AC_HEADER_STDC
AC_CHECK_HEADERS([stdlib.h string.h unistd.h execinfo.h pthread.h malloc.h])

# Checks for typedefs, structures, and compiler characteristics.
AC_C_CONST
AC_C_INLINE
AC_TYPE_INT8_T
AC_TYPE_INT16_T
AC_TYPE_INT32_T
AC_TYPE_INT64_T
AC_TYPE_UINT8_T
AC_TYPE_UINT16_T
AC_TYPE_UINT32_T
AC_TYPE_UINT64_T
AC_TYPE_SIZE_T
AC_TYPE_SSIZE_T

# Checks for library functions.
AC_CHECK_FUNCS([memset])
AC_CHECK_LIB([pthread],[pthread_create],,[AC_MSG_ERROR([Could not find pthread_create!])])
AC_CHECK_LIB([m],[sqrt],,[AC_MSG_ERROR([Could not find sqrt!])])


AX_PROG_BISON_CLFEATURES([],[AC_MSG_WARN([Could not find bison])],
[bison_ok="yes"], [bison_ok="no"])
AC_SUBST([bison_ok])

dnl Check to see if CC is an MPI compiler
AC_MSG_CHECKING(whether the mpicc compiler works)
AC_TRY_COMPILE([#include <mpi.h>], [int ret = MPI_Init(0, (void*)0)],
    AC_MSG_RESULT(yes),
    AC_MSG_RESULT(no)
    AC_MSG_ERROR(CC doesn't appear to be a valid MPI compiler.  See INSTALL document or try adding CC=mpicc to your configure command line.)
)

71
# get ROSS flags
72 73 74 75 76 77 78
AC_ARG_WITH([ross],[AS_HELP_STRING([--with-ross@<:@=DIR@:>@],
                        [location of ROSS installation])])
if test "x${with_ross}" != "x" ; then

    checkpath="${with_ross}/bin"
    ROSS_CONFIG=""
    AC_CHECK_PROGS(ROSS_CONFIG, [ross-config], [NOT_FOUND], [$checkpath])
79
    if test "${ROSS_CONFIG}" = "NOT_FOUND" ; then
80 81
        AC_MSG_ERROR(ROSS not found at: $with_ross)
    fi
82

83 84 85 86 87 88 89 90
    ROSS_LDFLAGS=`${with_ross}/bin/ross-config --ldflags`
    ROSS_CFLAGS=`${with_ross}/bin/ross-config --cflags`
    ROSS_CPPFLAGS=`${with_ross}/bin/ross-config --cflags`
    ROSS_LIBS=`${with_ross}/bin/ross-config --libs`
    AC_SUBST(ROSS_LDFLAGS)
    AC_SUBST(ROSS_CFLAGS)
    AC_SUBST(ROSS_CPPFLAGS)
    AC_SUBST(ROSS_LIBS)
91 92 93 94
else
    AC_MSG_ERROR([Could not find usable ROSS installation, try --with-ross=DIR])
fi

95 96 97 98
# check for Darshan
AC_ARG_WITH([darshan],[AS_HELP_STRING([--with-darshan@<:@=DIR@:>@],
                        [location of Darshan installation])])
if test "x${with_darshan}" != "x" ; then
99
    AC_CHECK_FILE([${with_darshan}/lib/pkgconfig/darshan-util.pc],
100
                  AM_CONDITIONAL(USE_DARSHAN, true),
101
                  AC_MSG_ERROR(Could not find darshan-util.pc))
102
    DARSHAN_LIBS+=`PKG_CONFIG_PATH=${with_darshan}/lib/pkgconfig pkg-config darshan-util --static --libs`
103
    DARSHAN_CFLAGS=`PKG_CONFIG_PATH=${with_darshan}/lib/pkgconfig pkg-config darshan-util --cflags`
104
    AC_SUBST(DARSHAN_LIBS)
105
    AC_SUBST(DARSHAN_CFLAGS) 
106 107 108 109
else
    AM_CONDITIONAL(USE_DARSHAN, false)
fi

110 111 112 113 114
# check for Recorder
AM_CONDITIONAL(USE_RECORDER, true)
RECORDER_CPPFLAGS="-DUSE_RECORDER=1"
AC_SUBST(RECORDER_CPPFLAGS)

Philip Carns's avatar
Philip Carns committed
115 116 117 118 119 120 121 122 123 124 125 126 127
dnl ======================================================================
dnl  Try harder to be valgrind safe
dnl ======================================================================
AC_ARG_ENABLE(valgrind-clean,
        [AS_HELP_STRING(
                [--enable-valgrind-clean],
                [Try harder to avoid valgrind warnings])
        ])

AS_IF([test "x$enable_valgrind_clean" = "xyes"], [
      AC_DEFINE([VALGRIND], [1], [If enabling valgrind-clean build])
])

128

129
dnl AC_CONFIG_FILES([src/iokernellang/codesparser.y])
130 131 132

AC_CONFIG_FILES([Makefile])

133
AC_OUTPUT([maint/codes-base.pc])
134