ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/OpenMD/branches/development/ac-tools/configure.in
Revision: 1395
Committed: Fri Dec 4 17:38:47 2009 UTC (15 years, 7 months ago) by gezelter
Original Path: trunk/ac-tools/configure.in
File size: 7802 byte(s)
Log Message:
fixing make install process

File Contents

# Content
1 dnl **** Process this file with autoconf to produce a configure script.
2 AC_PREREQ(2.59)
3 AC_INIT(OpenMD, 1.0, gezelter@nd.edu, openmd)
4 AC_CONFIG_AUX_DIR(ac-tools)
5 AC_CONFIG_SRCDIR([src/applications/openmd/openmd.cpp])
6 AC_CONFIG_HEADER([src/config.h])
7
8 builtin(include, ac-tools/OpenMD.m4)
9 builtin(include, ac-tools/AC_CXX_HAVE_STL.m4)
10 builtin(include, ac-tools/AC_CXX_NAMESPACES.m4)
11 builtin(include, ac-tools/AC_CXX_STD.m4)
12 builtin(include, ac-tools/ax_mpi.m4)
13
14 # who am i
15 AC_CANONICAL_HOST
16
17 AC_PREFIX_DEFAULT("/usr/local")
18
19 # set program name
20 PROGNAME="openmd"
21 AC_SUBST(PROGNAME)
22
23 AC_EXEEXT
24 AC_OBJEXT
25 OBJEXT=".$OBJEXT"
26
27 OPENMD=openmd
28
29 dnl **** define home dir of OpenMD
30 if test "x${prefix}" = "xNONE"
31 then
32 OPENMD_HOME=${ac_default_prefix}/openmd
33 else
34 OPENMD_HOME=${prefix}/openmd
35 fi
36 AC_ARG_ENABLE(openmd-home,
37 [ --enable-openmd-home=DIR define OpenMD home dir [PREFIX/openmd]],
38 [OPENMD_HOME="${enableval}"])
39
40 # there are two ways to do debugging. One with the --enable-debug flag
41 # and one using the DEBUG environment variable
42
43 debug=0
44 AC_ARG_ENABLE(debug, AC_HELP_STRING([--enable-debug], [Compile OpenMD in debug mode]), [debug=1])
45 if test "${DEBUG}"; then
46 AC_DEFINE(debug, 1, [Code compiled in debug mode])
47 msg="$msg, debug mode"
48 fi
49 AC_SUBST(debug)
50
51 AC_ARG_ENABLE(single, [AC_HELP_STRING([--enable-single],[compile OpenMD in single precision])], ok=$enableval, ok=no)
52 AC_ARG_ENABLE(float, [AC_HELP_STRING([--enable-float],[synonym for --enable-single])], ok=$enableval)
53 if test "$ok" = "yes"; then
54 AC_DEFINE(SINGLE_PRECISION,1,[Define to compile in single precision.])
55 USE_SINGLE_PRECISION=yes
56 AC_SUBST(USE_SINGLE_PRECISION)
57 fi
58
59 if test x"$CC" != x; then
60 AC_CHECK_PROGS(ac_cc_set,[$CC],[no])
61 AS_IF([test AS_VAR_GET([ac_cc_set]) != no],[
62 AC_PATH_PROG(ac_cc_path,[$ac_cc_set],[no])],[
63 AC_ERROR([Specified C compiler $CC doesn't seem to exist!])])
64
65 AS_IF([test AS_VAR_GET([ac_cc_path]) != no],[
66 AC_MSG_NOTICE([Will attempt to use $CC as C compiler])
67 MPICC=$CC
68 ],[
69 AC_ERROR([Can't find path to user-specified C compiler $CC])])
70 fi
71
72 if test x"$CXX" != x; then
73 AC_CHECK_PROGS(ac_cxx_set,[$CXX],[no])
74 AS_IF([test AS_VAR_GET([ac_cxx_set]) != no],[
75 AC_PATH_PROG(ac_cxx_path,[$ac_cxx_set],[no])],[
76 AC_ERROR([Specified C++ compiler $CXX doesn't seem to exist!])])
77
78 AS_IF([test AS_VAR_GET([ac_cxx_path]) != no],[
79 AC_MSG_NOTICE([Will attempt to use $CXX as C++ compiler])
80 MPICXX=$CXX
81 ],[
82 AC_ERROR([Can't find path to user-specified C++ compiler $CXX])])
83 fi
84
85 if test x"$FC" != x; then
86 AC_CHECK_PROGS(ac_fc_set,[$FC],[no])
87 AS_IF([test AS_VAR_GET([ac_fc_set]) != no],[
88 AC_PATH_PROG(ac_fc_path,[$ac_fc_set],[no])],[
89 AC_ERROR([Specified Fortran compiler $FC doesn't seem to exist!])])
90
91 AS_IF([test AS_VAR_GET([ac_fc_path]) != no],[
92 AC_MSG_NOTICE([Will attempt to use $FC as Fortran compiler])
93 MPIFC=$FC
94 ],[
95 AC_ERROR([Can't find path to user-specified Fortran compiler $FC])])
96 fi
97
98
99 dnl do MPI checks
100 save_LIBS_CHECK_CXX_LIB="$LIBS"
101
102 AC_LANG([C++])
103 AX_MPI([USE_MPI="yes"],
104 [USE_MPI="no"
105 AC_MSG_WARN([No suitable C++ MPI implementation found. openmd_MPI will not be built.])])
106 AS_IF([test AS_VAR_GET([USE_MPI]) != no],[
107 AC_LANG([C])
108 AX_MPI([USE_MPI="yes"],
109 [USE_MPI="no"
110 AC_MSG_WARN([No suitable C MPI implementation found. openmd_MPI will not be built.])])
111 ])
112 AS_IF([test AS_VAR_GET([USE_MPI]) != no],[
113 AC_LANG([Fortran])
114 AX_MPI([USE_MPI="yes"],
115 [USE_MPI="no"
116 AC_MSG_WARN([No suitable Fortran MPI implementation found. openmd_MPI will not be built.])])
117 ])
118 AS_IF([test AS_VAR_GET([USE_MPI]) != no],[
119 CXX=$MPICXX
120 CC=$MPICC
121 FC=$MPIFC
122 ])
123 AC_SUBST(USE_MPI)
124
125 # Checks for programs.
126 AC_PROG_CXX([$CXX icpc pathCC pgCC c++ xlc++ xlC g++ CC])
127 AC_PROG_CC([$CC icc pathcc pgcc cc xlc gcc])
128 AC_PROG_FC([$FC ifort ifc pathf95 pgf95 xlf95 lf95 epcf90 pathf90 xlf90 f95 f90 gfortran g95 fort], 95)
129 AC_PROG_CPP
130 AC_PROG_EGREP
131 AC_PROG_LN_S
132 AC_PROG_MAKE_SET
133 AC_PROG_RANLIB
134 AX_SYS_PERLSHARPBANG
135 AC_PROG_INSTALL
136 case "x$INSTALL" in
137 x/*) ;;
138 *) INSTALL=`pwd`/ac-tools/"shtool install -c" ;
139 esac
140 MKINSTALLDIRS=`pwd`/ac-tools/"shtool mkdir -p -f -m 755"
141 AC_CHECK_PROG(AR, ar, ar, NONE)
142 if test "$AR" = "NONE"; then
143 AC_CACHE_SAVE
144 exit 1
145 fi
146 AC_PATH_PROG(PS, ps)
147 AC_CACHE_CHECK([for POSIX or BSD ps syntax], ac_cv_prog_ps_syntax, [
148 if $PS ax -o rss > /dev/null 2>&1; then
149 ac_cv_prog_ps_ax=yes
150 else
151 ac_cv_prog_ps_ax=no
152 fi
153 if $PS -ef -o rss > /dev/null 2>&1; then
154 ac_cv_prog_ps_ef=yes
155 else
156 ac_cv_prog_ps_ef=no
157 fi
158 if test "$ac_cv_prog_ps_ax" = yes; then
159 ac_cv_prog_ps_syntax=BSD
160 else
161 if test "$ac_cv_prog_ps_ef" = yes; then
162 ac_cv_prog_ps_syntax=POSIX
163 else
164 AC_MSG_ERROR(Could not determine ps syntax)
165 fi
166 fi
167 ])
168 AC_DEFINE_UNQUOTED(PSCOMMAND, $PS, [Path to ps program])
169 if test "$ac_cv_prog_ps_syntax" = BSD; then
170 AC_DEFINE(PSTYPE_IS_BSD, 1, [ps uses BSD-style arguments])
171 else
172 if test "$ac_cv_prog_ps_syntax" = POSIX; then
173 AC_DEFINE(PSTYPE_IS_POSIX, 1, [ps uses POSIX-style arguments])
174 else
175 AC_MSG_ERROR(Unknown ps syntax type!)
176 fi
177 fi
178
179 AC_LANG_PUSH(Fortran)
180 AC_FC_SRCEXT(F90)
181 dnl Check the flag for Fortran90 preprocessing
182 ACX_PROG_F90_PREPFLAG
183 dnl Check to see if a flag is required for preprocessing defines
184 ACX_PROG_F90_PREPDEFFLAG
185 AC_FC_WRAPPERS
186 AC_SUBST(FC_FUNC)
187 AC_SUBST(FC_FUNC_)
188 AC_FC_LIBRARY_LDFLAGS
189 dnl Fortran 90 module suffix
190 AC_CHECK_MODSUFFIX
191 dnl Fortran 90 module path specifier
192 AC_CHECK_MODDIRFLAG
193 AC_F90_MODULE_NAMES
194 pat=`echo $ac_cv_f90_module_names | sed 's/.*\(%.*%\).*/\1/'`
195 F90_MODULE_NAMES=empty
196 case $pat in
197 %MODULE%)
198 F90_MODULE_NAMES=UPPER ;;
199 %Module%)
200 F90_MODULE_NAMES=Mixed ;;
201 %module%)
202 F90_MODULE_NAMES=lower ;;
203 *)
204 F90_MODULE_NAMES=unknown ;;
205 esac
206 AC_SUBST(F90_MODULE_NAMES)
207 AC_LANG_POP
208
209 AC_LANG_C
210
211 dnl Checks for libraries.
212 AC_CHECK_LIB(m, asin, , exit)
213 ACX_CHECK_ZLIB
214 ACX_CHECK_FFTW
215 ACX_CHECK_QHULL
216 ACX_CHECK_OPENBABEL
217
218 # Checks for header files.
219 AC_HEADER_STDC
220 AC_CHECK_HEADERS([libintl.h limits.h machine/hal_sysinfo.h stdlib.h string.h strings.h sys/param.h sys/pstat.h sys/sysctl.h sys/sysinfo.h sys/sysmp.h sys/systemcfg.h sys/table.h sys/time.h unistd.h])
221
222 # Checks for typedefs, structures, and compiler characteristics.
223 AC_HEADER_STDBOOL
224 AC_C_CONST
225 AC_C_INLINE
226 AC_TYPE_SIZE_T
227 AC_HEADER_TIME
228
229 # Checks for library functions.
230 AC_FUNC_MALLOC
231 AC_FUNC_REALLOC
232 AC_FUNC_SELECT_ARGTYPES
233 AC_FUNC_STRTOD
234 AC_CHECK_FUNCS([floor getpagesize gettimeofday memset pow pstat_getdynamic pstat_getstatic select sqrt strcasecmp strchr strdup stricmp strncasecmp strnicmp strstr strtol sysmp getsysinfo sysctl table])
235
236 # special check for _system_configuration because AIX <4.3.2 do not
237 # contain the `physmem' member.
238 AC_MSG_CHECKING([for external symbol _system_configuration])
239 AC_TRY_COMPILE([#include <sys/systemcfg.h>],
240 [double x = _system_configuration.physmem;],
241 [AC_MSG_RESULT([yes])
242 AC_DEFINE(HAVE__SYSTEM_CONFIGURATION, 1,
243 [Define if you have the _system_configuration variable.])],
244 [AC_MSG_RESULT([no])])
245
246 dnl check for strong optimization options
247
248 case $debug in
249 1)
250 ;;
251 *)
252 ACX_PROG_FC_MAXOPT
253 ACX_PROG_CC_MAXOPT
254 ACX_PROG_CXX_MAXOPT
255 ;;
256 esac
257
258 BB_ENABLE_DOXYGEN
259
260 AC_SUBST(EXEEXT)
261 AC_SUBST(OBJEXT)
262 AC_SUBST(BATEXT)
263 AC_SUBST(MKINSTALLDIRS)
264 AC_SUBST(OPENMD)
265 AC_SUBST(OPENMD_HOME)
266 AC_SUBST(SUBDIRS)
267 AC_SUBST(CFLAGS)
268 AC_SUBST(CXXFLAGS)
269 AC_SUBST(CPPFLAGS)
270 AC_SUBST(FCFLAGS)
271 AC_SUBST(LDFLAGS)
272 AC_SUBST(PREPDEFFLAG)
273 AC_SUBST(F90_MODULE_NAMES)
274 AC_CONFIG_FILES([make/Makefile src/utils/Makefile src/math/Makefile src/integrators/Makefile src/applications/atom2md/Makefile scripts/filepp], [chmod 0755 scripts/*])
275
276 AC_OUTPUT