configure.ac 3.19 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.)
)

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

Philip Carns's avatar
Philip Carns committed
92
93
94
95
96
97
98
99
100
101
102
103
104
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])
])

105

106
dnl AC_CONFIG_FILES([src/iokernellang/codesparser.y])
107
108
109

AC_CONFIG_FILES([Makefile])

110
AC_OUTPUT([maint/codes-base.pc])
111