configure.in 6.2 KB
Newer Older
1
dnl **************************************************************
2
dnl DARSHAN AUTOCONF SCRIPT
3
4
5
6
7
8
9
10
11
12
13
14
15
dnl
dnl Process this file with autoconf to produce a configure script.
dnl You may need to use autoheader as well if changing any DEFINEs

dnl sanity checks, output header, location of scripts used here
AC_INIT(darshan.h)
AC_CONFIG_AUX_DIR(maint/config)
AC_CONFIG_HEADER(darshan-config.h)

AC_PROG_INSTALL

CHECK_ZLIB

16
17
18
dnl Check byte ordering
AC_C_BIGENDIAN

19
20
21
22
23
24
25
26
27
28
AC_ARG_WITH(mpi,
[  --with-mpi=<dir>        Location of the MPI installation],
    if test x$withval = xyes; then
        AC_MSG_ERROR(--with-mpi must be given a pathname)
    else
        MPICC="${withval}/bin/mpicc"
        HAVE_MPICC="yes"
    fi
)

29
if test x$HAVE_MPICC != xyes; then
30
31
32
33
    AC_CHECK_PROG(HAVE_MPICC, mpicc, yes, no)
    if test x$HAVE_MPICC = xyes; then
        MPICC=mpicc
    fi
34
35
36
37
38
39
40
41
42
43
44
45
46
fi
AC_SUBST(MPICC)

AC_ARG_WITH(mem-align,
[  --with-mem-align=<num>  Memory alignment in bytes],
    if test x$withval = xyes; then
        AC_MSG_ERROR(--with-mem-align must be given a number in bytes)
    else
        AC_DEFINE_UNQUOTED(__CP_MEM_ALIGNMENT, ${withval}, Memory alignment in bytes)
        GOT_ALIGNMENT=1
    fi
)

47
48
49
50
51
AC_ARG_WITH(zlib-for-mpi,
[  --with-zlib-for-mpi=<dir>  base dir for zlib to use on mpi processes],
    if test x$withval = xyes; then
        AC_MSG_ERROR(--with-zlib-for-mpi must be given a path argument)
    else
52
        __CP_ZLIB_LINK_FLAGS="-L${withval}/lib"
53
54
55
56
        __CP_ZLIB_INCLUDE_FLAGS="-I ${withval}/include"
    fi
)

57
58
59
60
61
62
63
64
65
66
67
AC_ARG_WITH(log-path,
[  --with-log-path=<path>  Location to store log files at run time],
    if test x$withval = xyes; then
        AC_MSG_ERROR(--with-log-path must be given a pathname)
    else
        AC_DEFINE_UNQUOTED(__CP_LOG_PATH, "${withval}", Location to store log files at run time)
        __CP_LOG_PATH="${withval}"
        GOT_LOG_PATH=1
    fi
)

68
AC_ARG_WITH(jobid-env,
69
70
71
[  --with-jobid-env=<name> Name of environment variable that stores the jobid
    (specify "NONE" if no appropriate environment variable is available: 
    Darshan will use rank 0's pid instead)],
72
73
74
75
76
77
78
79
    if test x$withval = xyes; then
        AC_MSG_ERROR(--with-jobid-env must be given a name)
    else
        AC_DEFINE_UNQUOTED(CP_JOBID, "${withval}", Name of the environment variable that stores the jobid)
        CP_JOBID="${withval}"
        GOT_JOBID=1
    fi
)
80
81
82
83

saveCC="$CC"
CC="$MPICC"

84
85
if test x$HAVE_MPICC != "xyes"; then
    AC_MSG_ERROR(must provide --with-mpi=<path> argument to configure if mpicc is not in path.)
86
87
88
89
90
91
92
fi
if test x$GOT_ALIGNMENT != x1; then
    AC_MSG_ERROR(must provide --with-mem-align=<num> argument to configure.)
fi
if test x$GOT_LOG_PATH != x1; then
    AC_MSG_ERROR(must provide --with-log-path=<path> argument to configure.)
fi
93
94
95
if test x$GOT_JOBID != x1; then
    AC_MSG_ERROR(must provide --with-jobid-env=<name> argument to configure.)
fi
96
97
98
99
100
101
102
103

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

104
dnl temporarily set large file flags just for this test; we don't want
105
dnl it to propagate to the makefile because of zlib bugs
106
107
old_cflags="$CFLAGS"
CFLAGS="$CFLAGS -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE"
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
AC_MSG_CHECKING(for off64_t)
AC_TRY_COMPILE(
    [
    #include <stdio.h>
    #include <unistd.h>
    #include <sys/types.h>
    #include <sys/stat.h>
    #include <fcntl.h>
    #include <stdarg.h>
    #include <string.h>
    #include <time.h>
    #include <stdlib.h>
    #include <errno.h>
    #include <sys/uio.h>
    #include <pthread.h>
    #include <sys/mman.h>
    #include <search.h>
    #include <assert.h>
    ],
    [ off64_t off; ],
    AC_MSG_RESULT(yes)
    AC_DEFINE(HAVE_OFF64_T, 1, Define if off64_t type is defined),
    AC_MSG_RESULT(no)
)
132
CFLAGS="$old_cflags"
133

134
AC_CHECK_HEADERS(mntent.h sys/mount.h)
135

136
# libc functions wrapped by darshan
137
CP_WRAPPERS="-Wl,-u,MPI_Wtime,-wrap,write,-wrap,open,-wrap,creat,-wrap,creat64,-wrap,open64,-wrap,close,-wrap,read,-wrap,lseek,-wrap,lseek64,-wrap,pread,-wrap,pwrite,-wrap,readv,-wrap,writev,-wrap,__xstat,-wrap,__lxstat,-wrap,__fxstat,-wrap,__xstat64,-wrap,__lxstat64,-wrap,__fxstat64,-wrap,mmap,-wrap,mmap64,-wrap,fopen,-wrap,fclose,-wrap,fread,-wrap,fwrite,-wrap,fseek,-wrap,fopen64,-wrap,pread64,-wrap,pwrite64,-wrap,fsync,-wrap,fdatasync,-wrap,ncmpi_create,-wrap,ncmpi_open,-wrap,ncmpi_close,-wrap,H5Fcreate,-wrap,H5Fopen,-wrap,H5Fclose"
138
139

# ,-u,__wrap___fxstat64,-u,pthread_mutex_lock,-u,pthread_mutex_unlock
140
141
142

if test "x$prefix" = xNONE; then
    darshan_lib_path=$ac_default_prefix/lib
143
    darshan_bin_path=$ac_default_prefix/bin
144
145
else
    darshan_lib_path=$prefix/lib
146
    darshan_bin_path=$prefix/bin
147
148
fi
AC_SUBST(darshan_lib_path)
149
AC_SUBST(darshan_bin_path)
150
AC_SUBST(__CP_LOG_PATH)
151
152
AC_SUBST(__CP_ZLIB_LINK_FLAGS)
AC_SUBST(__CP_ZLIB_INCLUDE_FLAGS)
153
154
155
AC_SUBST(CP_WRAPPERS)
AC_CHECK_SIZEOF([long int])
AC_OUTPUT(Makefile
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
compilers/mpixlc_r-trace-bgp-V1R4
compilers/mpixlcxx_r-trace-bgp-V1R4
compilers/mpixlf2003_r-trace-bgp-V1R4
compilers/mpixlf77_r-trace-bgp-V1R4
compilers/mpixlf90_r-trace-bgp-V1R4
compilers/mpixlf95_r-trace-bgp-V1R4
compilers/mpixlc-trace-bgp-V1R4
compilers/mpixlf77-trace-bgp-V1R4
compilers/mpixlf90-trace-bgp-V1R4
compilers/mpixlf95-trace-bgp-V1R4
compilers/mpixlcxx-trace-bgp-V1R4
compilers/mpixlf2003-trace-bgp-V1R4
compilers/mpicc-trace-bgp-V1R4
compilers/mpicxx-trace-bgp-V1R4
compilers/mpif77-trace-bgp-V1R4
compilers/mpif90-trace-bgp-V1R4
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
compilers/fast/mpixlc_r-trace-bgp-V1R4
compilers/fast/mpixlcxx_r-trace-bgp-V1R4
compilers/fast/mpixlf2003_r-trace-bgp-V1R4
compilers/fast/mpixlf77_r-trace-bgp-V1R4
compilers/fast/mpixlf90_r-trace-bgp-V1R4
compilers/fast/mpixlf95_r-trace-bgp-V1R4
compilers/fast/mpixlc-trace-bgp-V1R4
compilers/fast/mpixlf77-trace-bgp-V1R4
compilers/fast/mpixlf90-trace-bgp-V1R4
compilers/fast/mpixlf95-trace-bgp-V1R4
compilers/fast/mpixlcxx-trace-bgp-V1R4
compilers/fast/mpixlf2003-trace-bgp-V1R4
compilers/fast/mpicc-trace-bgp-V1R4
compilers/fast/mpicxx-trace-bgp-V1R4
compilers/fast/mpif77-trace-bgp-V1R4
compilers/fast/mpif90-trace-bgp-V1R4
188
189
190
191
compilers/mpicc-trace-pcarns
compilers/mpicxx-trace-pcarns
compilers/mpif77-trace-pcarns
darshan-mk-log-dirs.pl
192
darshan-gen-cc.pl
Philip Carns's avatar
Philip Carns committed
193
darshan-gen-cxx.pl
194
darshan-gen-fortran.pl
195
)