configure.ac 3.96 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 30 31 32 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

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

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.)
)

68
# get ROSS flags
69 70 71 72 73 74 75
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])
76
    if test "${ROSS_CONFIG}" = "NOT_FOUND" ; then
77 78
        AC_MSG_ERROR(ROSS not found at: $with_ross)
    fi
79

80 81 82 83 84 85 86 87
    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)
88 89 90 91
else
    AC_MSG_ERROR([Could not find usable ROSS installation, try --with-ross=DIR])
fi

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

107 108 109 110 111
# check for Recorder
AM_CONDITIONAL(USE_RECORDER, true)
RECORDER_CPPFLAGS="-DUSE_RECORDER=1"
AC_SUBST(RECORDER_CPPFLAGS)

112 113 114 115 116 117 118 119 120 121 122 123 124
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])
])

125

126
dnl AC_CONFIG_FILES([src/iokernellang/codesparser.y])
127 128 129

AC_CONFIG_FILES([Makefile])

130
AC_OUTPUT([maint/codes-base.pc])
131