source: pcp/configure.ac@ d7b1bf

Last change on this file since d7b1bf was 02bc3c, checked in by Frederik Heber <heber@…>, 17 years ago

new aclocal macro with controles all the enable-debug/optimization/warning in a unified manner and still keeps packages independent of each other.

Note that Ralf suggested specifying optimizations in CFLAGS directly, due to the load of activateable warnings, i saw it rather fit to make such a configure option.

  • Property mode set to 100644
File size: 6.7 KB
Line 
1# -*- Autoconf -*-
2# Process this file with autoconf to produce a configure script.
3
4AC_PREREQ(2.59)
5AC_INIT([ElectronicStructurePACKage], 1.1, heber@ins.uni-bonn.de, ESPACK)
6AC_CONFIG_AUX_DIR([config])
7AC_CONFIG_SRCDIR([src/pcp.c])
8AC_CONFIG_HEADER([config.h])
9
10AM_INIT_AUTOMAKE(dist-bzip2)
11
12AC_CANONICAL_HOST
13
14if test x"$CFLAGS" = x; then
15 CFLAGS_empty=1
16else
17 CFLAGS_empty=0
18fi
19if test x"$CXXFLAGS" = x; then
20 CXXFLAGS_empty=1
21else
22 CXXFLAGS_empty=0
23fi
24
25# Checks for programs.
26AC_PROG_CC
27AC_PROG_CXX
28AC_PATH_PROG([PERL],[perl])
29AC_PATH_PROG([TAR],[tar])
30AM_MISSING_PROG([DOXYGEN], [doxygen])
31
32# Resetting C(XX)FLAGS again
33if test $CFLAGS_empty -eq 1; then
34 CFLAGS=""
35fi
36if test $CXXFLAGS_empty -eq 1; then
37 CXXFLAGS=""
38fi
39
40
41dnl Check for MPI-Routines
42AC_ARG_ENABLE([mpi],
43 AC_HELP_STRING([--enable-mpi],
44 [build MPI parallel version
45 (default is yes if MPI code can be compiled)]),
46 [enable_mpi=$enableval], [enable_mpi=maybe])
47disabled_msg="MPI version disabled."
48if test x"$enable_mpi" = xyes -o x"$enable_mpi" = xmaybe
49then
50 AC_MSG_NOTICE([checking for MPI features])
51 ACX_MPI([enable_mpi=yes],
52 [err_msg="cannot find out how to compile MPI code."
53 if test x"$enable_mpi" = xyes
54 then
55 AC_MSG_ERROR([$err_msg])
56 else
57 AC_MSG_WARN([$err_msg $disabled_msg])
58 enable_mpi=no
59 fi])
60 if test x"$enable_mpi" = xyes; then
61 AC_ARG_VAR([MPILIBS],[necessary libraries to link MPI C code])
62 AC_ARG_VAR([MPICC],[necessary comnpiler for MPI C code])
63 AC_ARG_VAR([MPICXX],[necessary comnpiler for MPI CPP code])
64 #AM_CONDITIONAL([MPIVER], [test x"$enable_mpi" = xyes])
65 AC_MSG_NOTICE(["MPICC: $MPICC, MPILIBS: $MPILIBS, MPIVER: $MPIVER, CC: $CC"])
66 # if CC not set, set to MPICC
67 if ! test x"$MPICC" = x; then
68 CC="$MPICC"
69 fi
70 if ! test x"$MPICXX" = x; then
71 CXX="$MPICXX"
72 else
73 CXX="$MPICC"
74 fi
75 if ! test x"$MPILIBS" = x; then
76 LDFLAGS="$LDFLAGS $MPILIBS"
77 #AC_CHECK_LIB(mpich, MPI_Allreduce, ,AC_MSG_ERROR([compatible mpich library not found]))
78 fi
79 fi
80else
81 AC_MSG_NOTICE([$disabled_msg])
82fi
83
84AC_ARG_ENABLE([debug],AS_HELP_STRING([--enable-debug],[debugging level of compiler. Argument is yes or debugging level. (default is no)]),
85 [enable_debugging=$enableval], [enable_debugging=no])
86AC_ARG_ENABLE([optimization],AS_HELP_STRING([--enable-optimization],[Optimization level of compiler. Argument is yes or optimization. (default is 2)]),
87 [enable_optimization=$enableval], [enable_optimization=2])
88AC_ARG_ENABLE([warnings], AS_HELP_STRING([--enable-warnings],[Output compiler warnings, argument is none, some or full (default is some).]),
89 [enable_warnings=$enableval], [enable_warnings=some])
90AC_SET_COMPILER_FLAGS([$enable_optimization], [$enable_debugging], [$enable_warnings])
91
92# Checks for typedefs, structures, and compiler characteristics.
93AC_TYPE_PID_T
94AC_TYPE_SIZE_T
95AC_TYPE_SIGNAL
96
97AC_C_CONST
98AC_C_INLINE
99AC_C_VOLATILE
100AC_C_RESTRICT
101
102# Checks for library functions.
103# use when adapted: AC_CHECK_FUNCS([floor ftruncate memmove memset mkdir modf pow realpath sqrt strchr strdup strerror strrchr strstr strtol statfs],[],[AC_MSG_WARN([Some functions not found. Compile may fail. Alternate methods may need to be implemented.])])
104AC_FUNC_MALLOC
105AC_FUNC_REALLOC
106AC_TYPE_SIGNAL
107
108# Checks for fftw libraries and find out version.
109AC_CHECK_LIB(m, sqrt, ,AC_MSG_ERROR([compatible libc math library not found]))
110AC_CHECK_FUNCS([alarm atexit floor pow sqrt strchr uname strstr strrchr])
111FFTW=notfound
112RFFTW=notfound
113AC_ARG_ENABLE([fftw],
114 AS_HELP_STRING([--enable-fftw],[build FFTW-2 version (default is yes if fftw2 code can be compiled)]),
115 [enable_fftw=$enableval], [enable_fftw=maybe])
116AC_ARG_ENABLE([dfftw],
117 AS_HELP_STRING([--enable-dfftw],[build double fftw2 version (default is fftw2)]),
118 [enable_dfftw=$enableval], [enable_dfftw=maybe])
119AC_ARG_ENABLE([fftw3],
120 AS_HELP_STRING([--enable-fftw3],[build FFTW-3 version (default is fftw2)]),
121 [enable_fftw3=$enableval], [enable_fftw3=maybe])
122
123# Checks for header files.
124AC_HEADER_STDC
125AC_CHECK_HEADERS([sys/time.h unistd.h float.h stddef.h])
126AC_HEADER_STDBOOL
127
128# check for fftw headers and subsequently for libs
129# if FFTW=.. set on success condition, -l... is not appended
130# .._HEADER doesn't show up in configh.h, .._HEADERS does!
131FFTW=notfound
132if test x"$FFTW" = xnotfound -o x"$enable_fftw" = xyes; then
133 FFTW=FFTW
134 AC_CHECK_HEADERS(fftw.h,
135 [AC_CHECK_LIB(fftw, fftw_create_plan, , [FFTW=notfound], -lfftw)],
136 [FFTW=notfound]
137 )
138
139 AC_CHECK_HEADERS(rfftw.h,
140 [AC_CHECK_LIB(rfftw, rfftw_create_plan, , [FFTW=notfound],-lrfftw)],
141 [FFTW=notfound]
142 )
143fi
144if test x"$FFTW" = xnotfound -o x"$enable_dfftw" = xyes; then
145 FFTW=DFFTW
146 AC_CHECK_HEADERS(dfftw.h,
147 [AC_CHECK_LIB(dfftw, fftw_create_plan, , [FFTW=notfound],-ldfftw)],
148 [FFTW=notfound]
149 )
150
151 AC_CHECK_HEADERS(drfftw.h,
152 [AC_CHECK_LIB(drfftw, rfftw_create_plan, , [FFTW=notfound],-ldrfftw)],
153 [FFTW=notfound]
154 )
155fi
156if test x"$FFTW" = xnotfound -o x"$enable_fftw3" = xyes; then
157 FFTW=FFTW3
158 AC_CHECK_HEADERS(fftw3.h,
159 [AC_CHECK_LIB(fftw3, fftw_create_plan, , [FFTW=notfound],-lfftw3)],
160 [FFTW=notfound]
161 )
162fi
163# warn if not found
164if test x"$FFTW" = xnotfound; then
165 AC_MSG_WARN(["Missing lib(d)fftw(3) and/or lib(d)rfftw(3).\nIf exist but not in LD_.._PATH, use export LDFLAGS=-L.."])
166 AC_MSG_WARN(["Or missing header (d)fftw(3).h and/or (d)rfftw.h\nIf exist but not in PATH, use export CFLAGS=-I.."])
167fi
168# check for GNU Scientific Library
169#AC_CHECK_LIB(m,main)
170AC_CHECK_HEADERS([gsl/gsl_blas.h])
171AC_SEARCH_LIBS(cblas_sdot, blas cblas gslblas gslcblas)
172AC_CHECK_LIB(gsl, main)
173
174dnl Check for "extern inline", using a modified version
175dnl of the test for AC_C_INLINE from acspecific.mt
176dnl
177AC_CACHE_CHECK([for extern inline], ac_cv_c_extern_inline,
178[ac_cv_c_extern_inline=no
179AC_TRY_COMPILE([extern $ac_cv_c_inline double foo(double x);
180extern $ac_cv_c_inline double foo(double x) { return x+1.0; };
181double foo (double x) { return x + 1.0; };],
182[ foo(1.0) ],
183[ac_cv_c_extern_inline="yes"])
184])
185
186if test "$ac_cv_c_inline" != no ; then
187 AC_DEFINE(HAVE_INLINE,1, ["May use inline routines"])
188 AC_SUBST(HAVE_INLINE)
189fi
190
191AC_MSG_NOTICE(["CFLAGS: $CFLAGS, CXXFLAGS: $CXXFLAGS, LDFLAGS: $LDFLAGS, CC: $CC, CXX:, $CXX, MPICC: $MPICC, MPILIBS: $MPILIBS, LIBS: $LIBS"])
192
193# test suite
194AC_CONFIG_TESTDIR(tests)
195AC_CONFIG_FILES([tests/atlocal tests/Makefile])
196AC_CONFIG_FILES([tests/pcp], [chmod +x tests/pcp])
197
198AC_CONFIG_FILES([Makefile src/Makefile doc/Makefile])
199AC_OUTPUT
Note: See TracBrowser for help on using the repository browser.