ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/OpenMD/branches/development/ac-tools/OpenMD.m4
Revision: 1465
Committed: Fri Jul 9 23:08:25 2010 UTC (14 years, 11 months ago) by chuckv
File size: 45689 byte(s)
Log Message:
Creating busticated version of OpenMD

File Contents

# Content
1 dnl We need a function similar to AC_CHECK_LIB to check for C++ libraries.
2 dnl AC_CHECK_CXX_LIB provides a similar interface like AC_CHECK_LIB
3 dnl and uses AC_TRY_LINK.
4 dnl
5 dnl $1 library name (without "-l")
6 dnl $2 object name to check for
7 dnl $3 neccessary include directive(s)
8 dnl $4 command to create object $2
9 dnl $5 yes-action
10 dnl $6 no-action
11 dnl $7 include dir for $3 (with -I)
12 dnl $8 additional libraries to link with
13
14 AC_DEFUN(AC_CHECK_CXX_LIB, AC_MSG_CHECKING([for $2 in -l$1])
15 save_CXXFLAGS_CHECK_CXX_LIB="$CXXFLAGS"
16 CXXFLAGS="$CXXFLAGS $7"
17 save_LIBS_CHECK_CXX_LIB="$LIBS"
18 LIBS="-l$1 $8 $LIBS"
19 [AC_TRY_LINK([$3], [$4], [AC_MSG_RESULT([yes])
20 $5], [AC_MSG_RESULT([no])
21 $6])]
22 CXXFLAGS="$save_CXXFLAGS_CHECK_CXX_LIB"
23 LIBS="$save_LIBS_CHECK_CXX_LIB")dnl
24
25 dnl
26 dnl AC_CHECK_MODSUFFIX
27 dnl
28 AC_DEFUN([AC_CHECK_MODSUFFIX],[
29
30 AC_MSG_CHECKING(for module suffix)
31 rm -f conftest*
32 # Intel ifc compiler generates files by the name of work.pc and work.pcl (!)
33 rm -f work*
34 cat >conftest.$ac_ext <<EOF
35 module conftest
36 integer n
37 parameter (n=1)
38 end module conftest
39 EOF
40 # SGI and absoft compilers generates module name in upper case!
41 testname="conftest"
42 modcase="lower"
43 if (eval $ac_compile) 2>/dev/null ; then
44 MOD=`ls conftest* | grep -v conftest.$ac_ext | grep -v conftest.o`
45 MOD=`echo "$MOD" | sed -e 's/conftest\.//g'`
46 if test -z "$MOD" ; then
47 MOD=`ls CONFTEST* 2>/dev/null \
48 | grep -v CONFTEST.$ac_ext | grep -v CONFTEST.o`
49 MOD=`echo "$MOD" | sed -e 's/CONFTEST\.//g'`
50 if test -n "$MOD" ; then
51 testname="CONFTEST"
52 modcase="upper"
53 fi
54 fi
55 if test -z "$MOD" ; then
56 AC_MSG_RESULT(unknown)
57 # Use mod if we can't figure it out
58 MOD="mod"
59 else
60 AC_MSG_RESULT($MOD)
61 fi
62 if test -s work.pcl ; then
63 AC_MSG_WARN([Compiler generates auxillery files!])
64 fi
65 else
66 AC_MSG_RESULT(unknown)
67 fi
68 AC_SUBST(MOD)
69
70 ])
71
72
73 dnl
74 dnl AC_CHECK_MODDIRFLAG
75 dnl
76 AC_DEFUN([AC_CHECK_MODDIRFLAG],[
77
78 # Check for module include path (some use -I, some (Solaris) use -M, some
79 # (absoft) use -p).
80 # Intel compilers use a wierd system: -cl,filename.pcl . If no file is
81 # specified, work.pcl and work.pc are created. However, if you specify
82 # a file, it must contain a the name of a file ending in .pc . Ugh!
83 # Use the module made above
84 AC_MSG_CHECKING(for module directory path flag)
85 rm -f conftest*
86 # Intel ifc compiler generates files by the name of work.pc and work.pcl (!)
87 rm -f work*
88 cat >conftest.$ac_ext <<EOF
89 module conftest
90 integer n
91 parameter (n=1)
92 end module conftest
93 EOF
94 # SGI and absoft compilers generates module name in upper case!
95 testname="conftest"
96 if (eval $ac_compile) 2>/dev/null ; then
97 mod=`ls CONFTEST* 2>/dev/null | grep -v CONFTEST.$ac_ext | grep -v CONFTEST.o`
98 mod=`echo "$mod" | sed -e 's/CONFTEST\.//g'`
99 if test -n "$mod" ; then
100 testname="CONFTEST"
101 fi
102 madedir=0
103 if test ! -d conf ; then mkdir conf ; madedir=1; fi
104 cp $testname.$MOD conf
105 rm -f conftest* CONFTEST*
106 cat >conftest1.$ac_ext <<EOF
107 program main
108 use conftest
109 print *, n
110 end
111 EOF
112 F90_WORK_FILES_ARG=""
113 F90MODINCSPEC=""
114 if $FC -c -Iconf $FCFLAGS $FCFLAGS_SRCEXT conftest1.$ac_ext > conftest.out 2>&1 ; then
115 MODDIRFLAG="-I"
116 F90MODINCSPEC="-I<dir>"
117 AC_MSG_RESULT(-I)
118 elif $FC -c -Mconf $FCFLAGS $FCFLAGS_SRCEXT conftest1.$ac_ext >> conftest.out 2>&1 ; then
119 MODDIRFLAG="-M"
120 F90MODINCSPEC="-M<dir>"
121 AC_MSG_RESULT(-M)
122 elif $FC -c -pconf $FCFLAGS $FCFLAGS_SRCEXT conftest1.$ac_ext >> conftest.out 2>&1 ; then
123 MODDIRFLAG="-p"
124 F90MODINCSPEC="-p<dir>"
125 AC_MSG_RESULT(-p)
126 elif test -s work.pc ; then
127 cp work.pc conf/mpimod.pc
128 echo "mpimod.pc" > conf/mpimod.pcl
129 echo "`pwd`/conf/mpimod.pc" >> conf/mpimod.pcl
130 if $FC -c -cl,conf/mpimod.pcl $FCFLAGS $FCFLAGS_SRCEXT conftest1.$ac_ext >>conftest.out 2>&1 ; then
131 MODDIRFLAG='-cl,mpimod.pcl'
132 AC_MSG_RESULT([-cl,filename where filename contains a list of files and directories])
133 F90_WORK_FILES_ARG="-cl,mpimod.pcl"
134 F90MODINCSPEC="-cl,<dir>/<file>mod.pcl"
135 AC_SUBST(F90_WORK_FILES_ARG)
136 else
137 # The version of the Intel compiler that I have refuses to let
138 # you put the "work catalog" list anywhere but the current
139 # directory. For example, you cannot in
140 :
141 fi
142 fi
143 if test -z "MODDIRFLAG" ; then
144 AC_MSG_RESULT(unknown)
145 fi
146 AC_SUBST(MODDIRFLAG)
147 AC_SUBST(F90MODINCSPEC)
148 rm -f conftest* conf/conftest* conf/CONFTEST* CONFTEST* conf/mpimod*
149 if test $madedir = 1 ; then rmdir conf ; fi
150 fi
151
152 ])
153
154 AC_DEFUN(ACX_CHECK_CC_FLAGS,
155 [
156 AC_REQUIRE([AC_PROG_CC])
157 AC_CACHE_CHECK(whether ${CC} accepts $1, ac_cv_$2,
158 [echo 'void f(){}' > conftest.c
159 if test -z "`${CC} $1 -c conftest.c 2>&1`"; then
160 ac_cv_$2=yes
161 else
162 ac_cv_$2=no
163 fi
164 rm -f conftest*
165 ])
166 if test "$ac_cv_$2" = yes; then
167 :
168 $3
169 else
170 :
171 $4
172 fi
173 ])
174
175 AC_DEFUN(ACX_CHECK_CXX_FLAGS,
176 [
177 AC_REQUIRE([AC_PROG_CXX])
178 AC_CACHE_CHECK(whether ${CXX} accepts $1, ac_cv_$2,
179 [echo 'void f(){}' > conftest.cpp
180 if test -z "`${CXX} $1 -c conftest.cpp 2>&1`"; then
181 ac_cv_$2=yes
182 else
183 ac_cv_$2=no
184 fi
185 rm -f conftest*
186 ])
187 if test "$ac_cv_$2" = yes; then
188 :
189 $3
190 else
191 :
192 $4
193 fi
194 ])
195
196 dnl -------------------------------------------------------------------------
197 dnl ACX_CHECK_FC_FLAGS()
198 dnl
199 dnl Check for optimizer flags the Fortran compiler can use.
200 dnl
201 AC_DEFUN(ACX_CHECK_FC_FLAGS,
202 [
203 AC_CACHE_CHECK(whether ${FC} accepts $1, ac_cv_$2,
204 [
205 AC_LANG_SAVE
206 AC_LANG(Fortran)
207 echo 'program main' > conftest.$ac_ext
208 echo 'end program main' >> conftest.$ac_ext
209 ac_compile='${FC} -c $1 $FCFLAGS $FCFLAGS_SRCEXT conftest.$ac_ext 1>&AC_FD_CC'
210 if AC_TRY_EVAL(ac_compile); then
211 ac_cv_$2=yes
212 else
213 ac_cv_$2=no
214 fi
215 rm -f conftest*
216 AC_LANG_RESTORE()
217 ])
218 if test "$ac_cv_$2" = yes; then
219 :
220 $3
221 else
222 :
223 $4
224 fi
225 ])
226
227 AC_DEFUN(ACX_PROG_GCC_VERSION,
228 [
229 AC_REQUIRE([AC_PROG_CC])
230 AC_CACHE_CHECK(whether we are using gcc $1.$2 or later, ac_cv_prog_gcc_$1_$2,
231 [
232 dnl The semicolon after "yes" below is to pacify NeXT's syntax-checking cpp.
233 cat > conftest.c <<EOF
234 #ifdef __GNUC__ && !defined (__INTEL_COMPILER)
235 # if (__GNUC__ > $1) || (__GNUC__ == $1 && __GNUC_MINOR__ >= $2)
236 yes;
237 # endif
238 #endif
239 EOF
240 if AC_TRY_COMMAND(${CC-cc} -E conftest.c) | egrep yes >/dev/null 2>&1; then
241 ac_cv_prog_gcc_$1_$2=yes
242 else
243 ac_cv_prog_gcc_$1_$2=no
244 fi
245 ])
246 if test "$ac_cv_prog_gcc_$1_$2" = yes; then
247 :
248 $3
249 else
250 :
251 $4
252 fi
253 ])
254
255 AC_DEFUN(ACX_PROG_GXX_VERSION,
256 [
257 AC_REQUIRE([AC_PROG_CXX])
258 AC_CACHE_CHECK(whether we are using g++ $1.$2 or later, ac_cv_prog_gxx_$1_$2,
259 [
260 dnl The semicolon after "yes" below is to pacify NeXT's syntax-checking cpp.
261 cat > conftest.cpp <<EOF
262 #ifdef __GNUC__ && !defined (__INTEL_COMPILER)
263 # if (__GNUC__ > $1) || (__GNUC__ == $1 && __GNUC_MINOR__ >= $2)
264 yes;
265 # endif
266 #endif
267 EOF
268 if AC_TRY_COMMAND(${CXX-c++} -E conftest.cpp) | egrep yes >/dev/null 2>&1; then
269 ac_cv_prog_gxx_$1_$2=yes
270 else
271 ac_cv_prog_gxx_$1_$2=no
272 fi
273 ])
274 if test "$ac_cv_prog_gxx_$1_$2" = yes; then
275 :
276 $3
277 else
278 :
279 $4
280 fi
281 ])
282
283 AC_DEFUN(ACX_PROG_REALLY_GCC,
284 [
285 AC_REQUIRE([AC_PROG_CC])
286 AC_CACHE_CHECK(whether we are *really* using GNU cc, ac_cv_prog_really_gcc,
287 [
288 dnl The semicolon after "yes" below is to pacify NeXT's syntax-checking cpp.
289 cat > conftest.c <<EOF
290 #ifdef __GNUC__
291 #if defined(__INTEL_COMPILER) || defined(__PATHCC__)
292 no;
293 #else
294 yes;
295 #endif
296 #endif
297 EOF
298 if AC_TRY_COMMAND(${CC-cc} -E conftest.c) | egrep yes >/dev/null 2>&1; then
299 ac_cv_prog_really_gcc=yes
300 else
301 ac_cv_prog_really_gcc=no
302 fi
303 ])
304 if test "$ac_cv_prog_really_gcc" = yes; then
305 :
306 $1
307 else
308 :
309 $2
310 fi
311 ])
312
313 AC_DEFUN(ACX_PROG_REALLY_GXX,
314 [
315 AC_REQUIRE([AC_PROG_CXX])
316 AC_CACHE_CHECK(whether we are *really* using GNU c++, ac_cv_prog_really_gxx,
317 [
318 dnl The semicolon after "yes" below is to pacify NeXT's syntax-checking cpp.
319 cat > conftest.cpp <<EOF
320 #ifdef __GNUC__
321 #if defined(__INTEL_COMPILER) || defined(__PATHCC__)
322 no;
323 #else
324 yes;
325 #endif
326 #endif
327 EOF
328 if AC_TRY_COMMAND(${CXX-c++} -E conftest.cpp) | egrep yes >/dev/null 2>&1; then
329 ac_cv_prog_really_gxx=yes
330 else
331 ac_cv_prog_really_gxx=no
332 fi
333 ])
334 if test "$ac_cv_prog_really_gxx" = yes; then
335 :
336 $1
337 else
338 :
339 $2
340 fi
341 ])
342
343
344 AC_DEFUN(ACX_PROG_CC_MAXOPT,
345 [
346 AC_REQUIRE([AC_PROG_CC])
347 AC_REQUIRE([AC_CANONICAL_HOST])
348
349 ACX_PROG_REALLY_GCC
350
351 # Try to determine "good" native compiler flags if none specified on command
352 # line
353 if test "$ac_test_CFLAGS" != "set"; then
354 CFLAGS=""
355 case "${host_cpu}-${host_os}" in
356
357 *linux*) if test "$CC" = icc; then
358 CFLAGS="-O2"
359 fi;;
360 sparc-solaris2*) if test "$CC" = cc; then
361 CFLAGS="-O -dalign"
362 fi;;
363
364 alpha*-osf*) if test "$CC" = cc; then
365 CFLAGS="-newc -w0 -O5 -ansi_alias -ansi_args -fp_reorder -tune host -arch host -std1"
366 fi;;
367
368 hppa*-hpux*) if test "$CC" = cc; then
369 CFLAGS="-Ae +O3 +Oall"
370 fi;;
371
372 rs6000*-aix*) if test "$CC" = cc -o "$CC" = xlc; then
373 CFLAGS="-O3 -qtune=auto -qansialias -w"
374 fi;;
375 powerpc*-aix*)
376 if test "$CC" = cc -o "$CC" = xlc; then
377 CFLAGS="-O3 -qtune=auto -qansialias -w"
378 echo "*******************************************************"
379 echo "* You have AIX on an unknown powerpc system. It is *"
380 echo "* recommended that you use *"
381 echo "* *"
382 echo "* CFLAGS=-O3 -qarch=ppc -qtune=xxx -qansialias -w *"
383 echo "* ^^^ *"
384 echo "* where xxx is 601, 603, 604, or whatever kind of *"
385 echo "* PowerPC CPU you have. For more info, man cc. *"
386 echo "*******************************************************"
387 fi;;
388 *darwin*)
389 if test "$CC" = xlc; then
390 CFLAGS="-qthreaded -O -qtune=auto -qarch=auto -qunroll=auto -qaltivec"
391 fi
392 if test "$CC" = icc; then
393 CFLAGS="-O2"
394 fi
395 if test $ac_cv_prog_really_gcc = yes; then
396 CFLAGS="-Os"
397 fi;;
398 esac
399
400 # use default flags for gcc on all systems
401 if test $ac_cv_prog_really_gcc = yes -a -z "$CFLAGS"; then
402 CFLAGS="-O2"
403 fi
404
405 if test -z "$CFLAGS"; then
406 echo ""
407 echo "********************************************************"
408 echo "* WARNING: Don't know the best CFLAGS for this system *"
409 echo "* Use make CFLAGS=..., or edit the top level Makefile *"
410 echo "* (otherwise, a default of CFLAGS=-O will be used) *"
411 echo "********************************************************"
412 echo ""
413 CFLAGS="-O"
414 fi
415
416 ACX_CHECK_CC_FLAGS(${CFLAGS}, ac_cv_guessed_cflags, , [
417 echo ""
418 echo "********************************************************"
419 echo "* WARNING: The guessed CFLAGS don't seem to work with *"
420 echo "* your compiler. *"
421 echo "* Use make CFLAGS=..., or edit the top level Makefile *"
422 echo "********************************************************"
423 echo ""
424 CFLAGS=""
425 ])
426
427 fi
428 ])
429
430 AC_DEFUN(ACX_PROG_CXX_MAXOPT,
431 [
432 AC_REQUIRE([AC_PROG_CXX])
433 AC_REQUIRE([AC_CANONICAL_HOST])
434
435 ACX_PROG_REALLY_GXX
436
437 # Try to determine "good" native compiler flags if none specified on command
438 # line
439 if test "$ac_test_CXXFLAGS" != "set"; then
440 CXXFLAGS=""
441 case "${host_cpu}-${host_os}" in
442
443 *linux*) if test "$CXX" = icc -o "$CXX" = icpc; then
444 CXXFLAGS="-O2"
445 fi;;
446 sparc-solaris2*) if test "$CXX" = CC; then
447 CXXFLAGS="-features=extensions -O -dalign"
448 fi;;
449 rs6000*-aix*) if test "$CXX" = xlC; then
450 CXXFLAGS="-O3 -qarch=pwrx -qtune=pwrx -qansialias -w"
451 fi;;
452 powerpc*-aix*)
453 if test "$CXX" = xlC; then
454 CXXFLAGS="-O3 -qarch=ppc -qansialias -w"
455 echo "*******************************************************"
456 echo "* You have AIX on an unknown powerpc system. It is *"
457 echo "* recommended that you use *"
458 echo "* *"
459 echo "* CXXFLAGS=-O3 -qarch=ppc -qtune=xxx -qansialias -w *"
460 echo "* ^^^ *"
461 echo "* where xxx is 601, 603, 604, or whatever kind of *"
462 echo "* PowerPC CPU you have. For more info, man cc. *"
463 echo "*******************************************************"
464 fi;;
465 *darwin*)
466 if test "$CXX" = xlc++ -o "$CXX" = xlC ; then
467 CXXFLAGS="-qthreaded -O -qtune=auto -qarch=auto -qunroll=auto -qaltivec"
468 fi
469 if test "$CXX" = icpc; then
470 CXXFLAGS="-O2"
471 fi
472 if test $ac_cv_prog_really_gxx = yes; then
473 CXXFLAGS="-Os"
474 fi;;
475 esac
476
477 # use default flags for gcc on all systems
478 if test $ac_cv_prog_really_gxx = yes -a -z "$CXXFLAGS"; then
479 CXXFLAGS="-O2"
480 fi
481
482 if test -z "$CXXFLAGS"; then
483 echo ""
484 echo "**********************************************************"
485 echo "* WARNING: Don't know the best CXXFLAGS for this system *"
486 echo "* Use make CXXFLAGS=..., or edit the top level Makefile *"
487 echo "* (otherwise, a default of CXXFLAGS=-O will be used) *"
488 echo "**********************************************************"
489 echo ""
490 CXXFLAGS="-O"
491 fi
492
493 ACX_CHECK_CXX_FLAGS(${CXXFLAGS}, ac_cv_guessed_cxxflags, , [
494 echo ""
495 echo "**********************************************************"
496 echo "* WARNING: The guessed CXXFLAGS don't seem to work with *"
497 echo "* your compiler. *"
498 echo "* Use make CXXFLAGS=..., or edit the top level Makefile *"
499 echo "**********************************************************"
500 echo ""
501 CXXFLAGS=""
502 ])
503
504 fi
505 ])
506
507 AC_DEFUN(ACX_PROG_FC_MAXOPT,
508 [
509 AC_REQUIRE([AC_PROG_FC])
510 AC_REQUIRE([AC_CANONICAL_HOST])
511
512
513 # Try to determine "good" native compiler flags if none specified on command
514 # line
515
516 if test "$ac_test_FFLAGS" != "set"; then
517 FCFLAGS=""
518 case "${host_cpu}-${host_os}" in
519
520 *linux*) if test "$FC" = ifc -o "$FC" = ifort; then
521 FCFLAGS="-O2"
522 fi;;
523 rs6000*-aix*) if test "$FC" = xlf90 -o "$FC" = f90 -o "$FC" = xlf95; then
524 FCFLAGS="-O3 -qarch=pwrx -qtune=pwrx -qansialias -w"
525 fi;;
526 powerpc*-aix*)
527 if test "$FC" = f90 -o "$FC" = xlf90 -o "$FC" = xlf95; then
528 FCFLAGS="-O3 -qarch=ppc -qansialias -w"
529 echo "*******************************************************"
530 echo "* You have AIX on an unknown powerpc system. It is *"
531 echo "* recommended that you use *"
532 echo "* *"
533 echo "* FCFLAGS=-O3 -qarch=ppc -qtune=xxx -qansialias -w *"
534 echo "* ^^^ *"
535 echo "* where xxx is 601, 603, 604, or whatever kind of *"
536 echo "* PowerPC CPU you have. For more info, man xlf. *"
537 echo "*******************************************************"
538 fi;;
539 *darwin*)
540 if test "$FC" = f90 -o "$FC" = xlf90 -o "$FC" = xlf95; then
541 FCFLAGS="-qthreaded -O -qtune=auto -qarch=auto -qunroll=auto"
542 fi
543 if test "$FC" = ifort; then
544 FCFLAGS="-O2"
545 fi
546 if test "$FC" = gfortran; then
547 FCFLAGS="-Os"
548 fi;;
549 esac
550
551 if test -z "$FCFLAGS"; then
552 echo ""
553 echo "*********************************************************"
554 echo "* WARNING: Don't know the best FCFLAGS for this system *"
555 echo "* Use make FCFLAGS=..., or edit the top level Makefile *"
556 echo "* (otherwise, a default of FCFLAGS=-O will be used) *"
557 echo "*********************************************************"
558 echo ""
559 FCFLAGS="-O"
560 fi
561
562 ACX_CHECK_FC_FLAGS(${FCFLAGS}, ac_cv_guessed_f90flags, , [
563 echo ""
564 echo "**********************************************************"
565 echo "* WARNING: The guessed FCFLAGS don't seem to work with *"
566 echo "* your compiler. *"
567 echo "* Use make FCFLAGS=..., or edit the top level Makefile *"
568 echo "*********************************************************"
569 echo ""
570 FCFLAGS=""
571 ])
572
573 fi
574 ])
575
576 AC_DEFUN(ACX_PROG_F90_PREPFLAG,
577 [
578 AC_REQUIRE([AC_PROG_FC])
579 AC_REQUIRE([AC_CANONICAL_HOST])
580
581 # Try to determine native compiler flags that allow us to use F90 suffix
582 # for preprocessed f90 source.
583
584 if test "$ac_test_PREPFLAG" != "set"; then
585 PREPFLAG=""
586 case "${host_cpu}-${host_os}" in
587
588 *linux*) if test "$FC" = ifc -o "$FC" = ifort; then
589 PREPFLAG="-fpp1 "
590 fi;;
591 *aix*) if test "$FC" = xlf90 -o "$FC" = f90 -o "$FC" = xlf95; then
592 PREPFLAG="-qsuffix=cpp=F90 "
593 fi;;
594 *darwin*)
595 if test "$FC" = f90 -o "$FC" = xlf90 -o "$FC" = xlf95; then
596 PREPFLAG="-qsuffix=cpp=F90 "
597 fi;;
598 esac
599
600 if test -z "$PREPFLAG"; then
601 AC_MSG_WARN("Using empty PREPFLAG")
602 PREPFLAG=""
603 fi
604
605 AC_MSG_CHECKING(to make sure F90 preprocessor flag works)
606 AC_LANG_SAVE()
607 AC_LANG(Fortran)
608 ac_save_ext=$ac_ext
609 ac_ext=F90
610 ac_save_FCFLAGS_SRCEXT=$FCFLAGS_SRCEXT
611
612 AS_IF([test "$PREPFLAG"], [FCFLAGS_SRCEXT="${PREPFLAG}"])
613 _AC_COMPILE_IFELSE([
614 AC_LANG_SOURCE([
615 program conftest
616 integer :: i
617 i = 1
618 end program conftest
619 ])], [prepflagworks=1], [prepflagworks=0])
620
621 FCFLAGS_SRCEXT=$ac_save_FCFLAGS_SRCEXT
622 ac_ext=$ac_save_ext
623 AC_LANG_RESTORE()
624
625 if test "$prepflagworks" = 1; then
626 AC_MSG_RESULT(yes)
627 FCFLAGS_SRCEXT="${PREPFLAG}"
628 AC_SUBST(FCFLAGS_SRCEXT)
629 else
630 AC_MSG_RESULT(no)
631 AC_MSG_ERROR([Can't figure out working Fortran90 preprocessor flag])
632 fi
633 fi
634 ])
635
636
637 AC_DEFUN(ACX_PROG_F90_PREPDEFFLAG,
638 [
639 AC_REQUIRE([AC_PROG_FC])
640 AC_REQUIRE([AC_CANONICAL_HOST])
641
642 # Try to determine native compiler flags that allow us to use F90 suffix
643 # for preprocessed f90 source with -D type defines
644
645 if test "$ac_test_PREPDEFFLAG" != "set"; then
646 PREPDEFFLAG=""
647 case "${host_cpu}-${host_os}" in
648
649 *linux*) if test "$FC" = ifc -o "$FC" = ifort; then
650 PREPDEFFLAG=" "
651 fi;;
652 *aix*) if test "$FC" = xlf90 -o "$FC" = f90 -o "$FC" = xlf95; then
653 PREPDEFFLAG="-WF,"
654 fi;;
655 *darwin*)
656 if test "$FC" = f90 -o "$FC" = xlf90 -o "$FC" = xlf95; then
657 PREPDEFFLAG="-WF,"
658 fi;;
659 esac
660
661 if test -z "$PREPDEFFLAG"; then
662 AC_MSG_WARN("Using empty PREPDEFFLAG")
663 PREPDEFFLAG=" "
664 fi
665
666 AC_MSG_CHECKING(to make sure F90 preprocessor define flag works)
667 AC_LANG_SAVE()
668 AC_LANG(Fortran)
669 ac_save_ext=$ac_ext
670 ac_ext=F90
671 ac_save_FCFLAGS=$FCFLAGS
672
673 AS_IF([test "$PREPDEFFLAG"], [FCFLAGS="${FCFLAGS} ${PREPDEFFLAG}-DTEST"])
674 _AC_COMPILE_IFELSE([
675 AC_LANG_SOURCE([
676 program conftest
677 integer :: i
678 #ifdef TEST
679 i = 1
680 #else
681 choke me
682 #endif
683 end program conftest
684 ])], [prepdefflagworks=1], [prepdefflagworks=0])
685
686 FCFLAGS=$ac_save_FCFLAGS
687 ac_ext=$ac_save_ext
688 AC_LANG_RESTORE()
689
690 if test "$prepdefflagworks" = 1; then
691 AC_MSG_RESULT(yes)
692 AC_SUBST(PREPDEFFLAG)
693 else
694 AC_MSG_RESULT(no)
695 AC_MSG_ERROR([Can't figure out working Fortran90 preprocessor define flag])
696 fi
697 fi
698 ])
699
700
701
702
703 AC_DEFUN([adl_FUNC_GETOPT_LONG],
704 [AC_PREREQ(2.49)dnl
705 # clean out junk possibly left behind by a previous configuration
706 rm -f src/getopt.h
707 # Check for getopt_long support
708 AC_CHECK_HEADERS([getopt.h])
709 AC_CHECK_FUNCS([getopt_long],,
710 [# FreeBSD has a gnugetopt library for this
711 AC_CHECK_LIB([gnugetopt],[getopt_long],[AC_DEFINE([HAVE_GETOPT_LONG])],
712 [# use the GNU replacement
713 AC_LIBOBJ(getopt)
714 AC_LIBOBJ(getopt1)
715 AC_CONFIG_LINKS([src/getopt.h:src/utils/gnugetopt.h])])])])
716
717
718 AC_DEFUN([ACX_CONFIG_HOME], [
719 myDir=${0%/*}
720 if [ "$myDir" = "$0" ]; then
721 # Ran from local directory
722 myDir=$PWD
723 fi
724 # Resolve symlinks.
725 myProgram="$0"
726 while [ -L "$myProgram" ]; do
727 ls=`/bin/ls -ld "$myProgram"`
728 link=`/usr/bin/expr "$ls" : '.*-> \(.*\)$'`
729 if /usr/bin/expr "$link" : '.*/.*' > /dev/null; then
730 myProgram="$link"
731 else
732 myProgram="`AS_DIRNAME([$myProgram])`/$link"
733 fi
734 done
735 myDir=`AS_DIRNAME([$myProgram])`
736 fi
737 CONFIG_HOME=$myDir
738 ])
739
740 AC_DEFUN(BB_ENABLE_DOXYGEN,
741 [
742 AC_ARG_ENABLE(doxygen, [ --enable-doxygen enable documentation generation with doxygen (auto)])
743 AC_ARG_ENABLE(dot, [ --enable-dot use 'dot' to generate graphs in doxygen (auto)])
744 AC_ARG_ENABLE(html-docs, [ --enable-html-docs enable HTML generation with doxygen (yes)], [], [ enable_html_docs=yes])
745 AC_ARG_ENABLE(latex-docs, [ --enable-latex-docs enable LaTeX documentation generation with doxygen (no)], [], [ enable_latex_docs=no])
746 if test "x$enable_doxygen" = xno; then
747 enable_doc=no
748 else
749 AC_PATH_PROG(DOXYGEN, doxygen, , $PATH)
750 if test "x$DOXYGEN" = x; then
751 if test "x$enable_doxygen" = xyes; then
752 AC_MSG_ERROR([could not find doxygen])
753 fi
754 enable_doc=no
755 else
756 enable_doc=yes
757 AC_PATH_PROG(DOT, dot, , $PATH)
758 fi
759 fi
760
761 if test "x$enable_doc" = xyes; then
762 DOC=1
763 else
764 DOC=0
765 fi
766 AC_SUBST(DOC)
767
768 if test x$DOT = x; then
769 if test "x$enable_dot" = xyes; then
770 AC_MSG_ERROR([could not find dot])
771 fi
772 enable_dot=no
773 else
774 enable_dot=yes
775 fi
776 AC_SUBST(enable_dot)
777 AC_SUBST(enable_html_docs)
778 AC_SUBST(enable_latex_docs)
779 ])
780 #
781 #
782 #
783 AC_DEFUN([AX_SYS_PERLSHARPBANG],[dnl
784
785 AC_PATH_PROG(PERLINTERP,perl,perl)
786 ac_cv_path_perlinterp="$PERLINTERP"
787 _sHpB='#!'
788
789 AC_ARG_WITH(perl-shebang,
790 AC_HELP_STRING([--with-perl-shebang],
791 [override what perl thinks is the way for the kernel to start it (seldom needed)]dnl
792 ),
793 [opt_perl_shebang="$withval"]dnl
794 ,dnl
795 [opt_perl_shebang="not_set"]dnl
796 )dnl
797
798 AC_CACHE_CHECK([whether explicit instead of detected sharpbang is to be used],
799 ax_cv_opt_perl_shebang,
800 [ case "$opt_perl_shebang" in
801 not_set ) ax_cv_opt_perl_shebang=''
802 ;;
803 * )
804 ax_cv_opt_perl_shebang=`echo "$opt_perl_shebang" | sed -e's|^#!\s*\(.*\)$|\1|'`
805 esac
806 ]dnl
807 )dnl
808
809 if test "A$ax_cv_opt_perl_shebang" != "A"
810 then
811 ac_cv_sys_kernshrpbang_perl="$ax_cv_opt_perl_shebang"
812 PERL_SHEBANG="$ac_cv_sys_kernshrpbang_perl"
813 AC_SUBST(PERL_SHEBANG)dnl
814 AC_MSG_NOTICE([OK - PERL_SHEBANG is $_sHpB$PERL_SHEBANG.])
815
816 # Automatic detection of sharpbang formula starts here
817 else dnl
818
819 _somian_shbangperl=`$PERLINTERP -V:startperl`
820 negclass="[[^']]"; dnl
821 # must leave this comment: m4 will remove the outer brackets for us, heheh
822 AC_CACHE_CHECK([for kernel sharpbang invocation to start perl],
823 ac_cv_sys_kernshrpbang_perl,
824 [_somian_kspb_perl=`echo "$_somian_shbangperl" | sed -ne"s|.*='\($negclass*\)';$|\1|p"`
825 if test "x$_somian_kspb_perl" == x
826 then _somian_ksbp_warn_empty='durnit'
827 else
828 case "A$_somian_kspb_perl" in
829 A#!*perl* )
830 ac_cv_sys_kernshrpbang_perl=`echo "$_somian_kspb_perl" | sed -e's|#!\(.*\)$|\1|'`
831 ;;
832 A* ) _somian_ksbp_warn_defau='trouble'
833 ac_cv_sys_kernshrpbang_perl="$PERLINTERP"
834 esac
835 fi
836 ])dnl Done with testing sharpbang
837
838 # The above prints Checking ... result message to user.
839 PERL_SHEBANG="$ac_cv_sys_kernshrpbang_perl"
840 AC_SUBST(PERL_SHEBANG)
841 if test A${_somian_ksbp_warn_empty+set} == Aset
842 then AC_MSG_WARN([dnl
843 In last check, doing $PERLINTERP -V:startperl yielded empty result! That should not happen.])
844 fi
845 # Inform user after printing result value
846 if test A${_somian_ksbp_warn_defau+set} == Aset
847 then AC_MSG_NOTICE([Maybe Not good -])
848 AC_MSG_WARN([dnl
849 In last check perl's Config query did not work so we bunted: $_sHpB$PERLINTERP])
850 else AC_MSG_NOTICE([OK Good result - ])
851 AC_MSG_NOTICE([dnl
852 In last check we got a proper-looking answer from perl's Config: $_somian_shbangperl])
853 dnl Done with user info messages
854 fi
855 dnl Outer loop checked for user override term here
856 fi dnl
857
858 ])dnl EOMACRO DEF
859
860 AC_DEFUN([ACX_CHECK_ZLIB],
861 #
862 # Handle user hints
863 #
864 [AC_ARG_WITH(zlib,
865 AC_HELP_STRING([--with-zlib=DIR],
866 [root directory path of zlib installation (defaults to /usr/local or /usr if not found in /usr/local)]dnl
867 ),
868 [zlib_dir="$withval"]dnl
869 ,dnl
870 [zlib_dir="not_set"]dnl
871 )dnl
872
873 if test "$zlib_dir" != "no"; then
874
875 if test "$zlib_dir" != "not_set" ; then
876 if test -d "$zlib_dir"
877 then
878 ZLIB_HOME="$zlib_dir"
879 else
880 AC_MSG_WARN([Sorry, $zlib_dir does not exist, checking usual places])
881 ZLIB_HOME=/usr/local
882 if test ! -f "${ZLIB_HOME}/include/zlib.h"
883 then
884 ZLIB_HOME=/usr
885 fi
886 fi
887 fi
888 #
889 # Locate zlib, if wanted
890 #
891 if test -n "${ZLIB_HOME}"
892 then
893 ZLIB_OLD_LDFLAGS=$LDFLAGS
894 ZLIB_OLD_CFLAGS=$CFLAGS
895 LDFLAGS="$LDFLAGS -L${ZLIB_HOME}/lib"
896 CFLAGS="$CFLAGS -I${ZLIB_HOME}/include"
897 AC_LANG_SAVE
898 AC_LANG_C
899 AC_CHECK_LIB(z, inflateEnd, [zlib_cv_libz=yes], [zlib_cv_libz=no])
900 AC_CHECK_HEADER(zlib.h, [zlib_cv_zlib_h=yes], [zlib_cv_zlib_h=no])
901 AC_LANG_RESTORE
902
903 if test "$zlib_cv_libz" = "yes" -a "$zlib_cv_zlib_h" = "yes"; then
904 AC_DEFINE(HAVE_ZLIB_H, 1, [have zlib.h])
905 AC_DEFINE(HAVE_LIBZ, 1, [have libz.a])
906 ZLIB_INC_DIR="${ZLIB_HOME}/include"
907 ZLIB_LIB_DIR="${ZLIB_HOME}/lib"
908 ZLIB="-lz"
909 else
910 AC_MSG_CHECKING(zlib in ${ZLIB_HOME})
911 ZLIB_INC_DIR=
912 ZLIB_LIB_DIR=
913 ZLIB=
914 LDFLAGS="$ZLIB_OLD_LDFLAGS"
915 CFLAGS="$ZLIB_OLD_CFLAGS"
916 AC_MSG_RESULT(failed)
917 echo ""
918 echo "*********************************************************"
919 echo "* WARNING: Could not find a working zlib installation *"
920 echo "* If you need OpenMD to be able to deal with compressed *"
921 echo "* trajectory dump files be sure to specify a valid zlib *"
922 echo "* installation with --with-zlib=DIR *"
923 echo "* *"
924 echo "* OpenMD will still work without zlib installed. *"
925 echo "*********************************************************"
926 echo ""
927 fi
928 AC_SUBST(ZLIB_INC_DIR)
929 AC_SUBST(ZLIB_LIB_DIR)
930 AC_SUBST(ZLIB)
931 fi
932 fi
933 ])
934
935 AC_DEFUN([ACX_CHECK_QHULL],
936 #
937 # Handle user hints
938 #
939 [AC_ARG_WITH(qhull,
940 AC_HELP_STRING([--with-qhull=DIR],
941 [root directory path of qhull installation (defaults to /usr/local or /usr if not found in /usr/local)]dnl
942 ),
943 [qhull_dir="$withval"],
944 [qhull_dir="not_set"]dnl
945 )dnl
946
947 QHULL_INC_DIR=
948 QHULL_LIB_DIR=
949 QHULL=
950 USE_QHULL=no
951
952 if test "$qhull_dir" != "no"; then
953 if test "$qhull_dir" != "not_set" ; then
954 if test -d "$qhull_dir"; then
955 QHULL_HOME="$qhull_dir"
956 else
957 AC_MSG_WARN([Sorry, $qhull_dir does not exist, checking usual places])
958 QHULL_HOME=/usr/local
959 if test ! -f "${QHULL_HOME}/include/qhull/qhull.h"; then
960 QHULL_HOME=/usr
961 fi
962 fi
963 fi
964 #
965 # Locate qhull, if wanted
966 #
967 if test -n "${QHULL_HOME}"; then
968 AC_MSG_NOTICE([Checking for qhull in ${QHULL_HOME}])
969 AC_LANG_SAVE
970 AC_LANG_C
971 QHULL_OLD_LDFLAGS=$LDFLAGS
972 QHULL_OLD_CFLAGS=$CFLAGS
973 QHULL_OLD_CPPFLAGS=$CPPFLAGS
974 LDFLAGS="$LDFLAGS -L${QHULL_HOME}/lib"
975 CFLAGS="$CFLAGS -I${QHULL_HOME}/include"
976 CPPFLAGS="$CPPFLAGS -I${QHULL_HOME}/include"
977 AC_CHECK_HEADER(qhull/qhull.h, [qhull_cv_qhull_h=yes], [qhull_cv_qhull_h=no])
978 AC_CHECK_LIB(qhull, qh_qhull, [qhull_cv_libqhull=yes], [qhull_cv_libqhull=no])
979 LDFLAGS="$QHULL_OLD_LDFLAGS"
980 CFLAGS="$QHULL_OLD_CFLAGS"
981 CPPFLAGS="$QHULL_OLD_CPPFLAGS"
982 AC_LANG_RESTORE
983
984 if test "$qhull_cv_libqhull" = "yes" -a "$qhull_cv_qhull_h" = "yes"; then
985 AC_DEFINE(HAVE_QHULL_H, 1, [have qhull.h])
986 AC_DEFINE(HAVE_QHULL, 1, [have libqhull.a])
987 USE_QHULL=yes
988 QHULL_INC_DIR="${QHULL_HOME}/include"
989 QHULL_LIB_DIR="${QHULL_HOME}/lib"
990 QHULL="-lqhull"
991 AC_MSG_RESULT([Working qhull found, will proceed.])
992 else
993 AC_MSG_WARN([])
994 AC_MSG_WARN([Could not find a working qhull installation])
995 AC_MSG_WARN([If you need OpenMD to be able to deal with convex ])
996 AC_MSG_WARN([hulls be sure to specify a valid qhull installation ])
997 AC_MSG_WARN([with --with-qhull=DIR ])
998 AC_MSG_WARN([])
999 AC_MSG_WARN([OpenMD will still work without qhull installed. ])
1000 AC_MSG_WARN([])
1001 fi
1002 fi
1003 fi
1004 AC_SUBST(QHULL_INC_DIR)
1005 AC_SUBST(QHULL_LIB_DIR)
1006 AC_SUBST(QHULL)
1007 AC_SUBST(USE_QHULL)
1008 ])
1009
1010 AC_DEFUN([ACX_CHECK_OPENBABEL],
1011 #
1012 # Handle user hints
1013 #
1014 [AC_ARG_WITH(openbabel,
1015 AC_HELP_STRING([--with-openbabel=DIR],
1016 [root directory path of openbabel-2.x installation (defaults to /usr/local or /usr if not found in /usr/local)]dnl
1017 ),
1018 [openbabel_dir="$withval"]dnl
1019 ,dnl
1020 [openbabel_dir="not_set"]dnl
1021 )dnl
1022
1023 if test "$openbabel_dir" != "no"; then
1024
1025 if test "$openbabel_dir" != "not_set" ; then
1026 if test -d "$openbabel_dir"
1027 then
1028 OPENBABEL_HOME="$openbabel_dir"
1029 else
1030 AC_MSG_WARN([Sorry, $openbabel_dir does not exist, checking usual places])
1031 OPENBABEL_HOME=/usr/local
1032 if test ! -f "${OPENBABEL_HOME}/include/openbabel-2.0/openbabel/babelconfig.h" -a -f "${OPENBABEL_HOME}/include/openbabel-2.0/openbabel/obconversion.h"
1033 then
1034 OPENBABEL_HOME=/usr
1035 fi
1036 fi
1037 fi
1038 #
1039 # Locate openbabel, if wanted
1040 #
1041 if test -n "${OPENBABEL_HOME}"
1042 then
1043 AC_LANG_SAVE
1044 AC_LANG_CPLUSPLUS
1045 OPENBABEL_OLD_LDFLAGS=$LDFLAGS
1046 OPENBABEL_OLD_CPPFLAGS=$CPPFLAGS
1047 LDFLAGS="$LDFLAGS -L${OPENBABEL_HOME}/lib -lopenbabel"
1048 CPPFLAGS="$CPPFLAGS -I${OPENBABEL_HOME}/include/openbabel-2.0"
1049 AC_CHECK_HEADER(openbabel/babelconfig.h, [openbabel_cv_openbabel_h=yes], [openbabel_cv_openbabel_h=no])
1050 AC_CHECK_HEADER(openbabel/obconversion.h, [openbabel_cv_obconversion_h=yes], [openbabel_cv_obconversion_h=no])
1051 AC_LINK_IFELSE([
1052 AC_LANG_PROGRAM(
1053 [[
1054 @%:@include <openbabel/babelconfig.h>
1055 @%:@include <openbabel/obconversion.h>
1056 using namespace std;
1057 using namespace OpenBabel;
1058 ]],
1059 [[
1060 OBConversion Conv(&cin, &cout);
1061 ]]
1062 )],
1063 [
1064 openbabel_lib_found="yes"
1065 AC_MSG_RESULT([found])
1066 ],
1067 [
1068 openbabel_lib_found="no"
1069 AC_MSG_RESULT([not found])
1070 ]
1071 )
1072 AC_LANG_RESTORE
1073 LDFLAGS="$OPENBABEL_OLD_LDFLAGS"
1074 CPPFLAGS="$OPENBABEL_OLD_CPPFLAGS"
1075
1076 if test "$openbabel_lib_found" = "yes" -a "$openbabel_cv_openbabel_h" = "yes" -a "$openbabel_cv_obconversion_h" = "yes"; then
1077 USE_OPENBABEL=yes
1078 OPENBABEL_INC_DIR="${OPENBABEL_HOME}/include/openbabel-2.0"
1079 OPENBABEL_LIB_DIR="${OPENBABEL_HOME}/lib"
1080 OPENBABEL_LIB="-lopenbabel"
1081 else
1082 AC_MSG_CHECKING(openbabel in ${OPENBABEL_HOME})
1083 OPENBABEL_INC_DIR=
1084 OPENBABEL_LIB_DIR=
1085 OPENBABEL_LIB=
1086 USE_OPENBABEL=no
1087 AC_MSG_RESULT(failed)
1088 echo ""
1089 echo "*********************************************************"
1090 echo "* WARNING: Could not find a working openbabel-2.x *"
1091 echo "* installation If you need OpenMD to be able to convert *"
1092 echo "* xyz or pdb files you need to specify a valid *"
1093 echo "* openbabel-2.x installation with --with-openbabel=DIR *"
1094 echo "* *"
1095 echo "* OpenMD will still work without openbabel installed. *"
1096 echo "*********************************************************"
1097 echo ""
1098 fi
1099 AC_SUBST(OPENBABEL_INC_DIR)
1100 AC_SUBST(OPENBABEL_LIB_DIR)
1101 AC_SUBST(OPENBABEL_LIB)
1102 AC_SUBST(USE_OPENBABEL)
1103 fi
1104 fi
1105 ])
1106
1107
1108 AC_DEFUN([ACX_CHECK_FFTW],
1109 #
1110 # Handle user hints
1111 #
1112 [AC_ARG_WITH(fftw,
1113 AC_HELP_STRING([--with-fftw=DIR],
1114 [root directory path of fftw installation (defaults to /usr/local or /usr if not found in /usr/local)]dnl
1115 ),
1116 [fftw_dir="$withval"]dnl
1117 ,dnl
1118 [fftw_dir="not_set"]dnl
1119 )dnl
1120
1121 if test "$fftw_dir" != "no"; then
1122 if test "$fftw_dir" != "not_set" ; then
1123 if test -d "$fftw_dir"; then
1124 FFTW_HOME="$fftw_dir"
1125 else
1126 AC_MSG_WARN([Sorry, $fftw_dir does not exist, checking usual places])
1127 FFTW_HOME=/usr/local
1128 if test ! -f "${FFTW_HOME}/include/fftw3.h" -o -f "${FFTW_HOME}/include/fftw.h" -o -f "${FFTW_HOME}/include/dfftw.h"; then
1129 FFTW_HOME=/usr
1130 fi
1131 fi
1132 #
1133 # Locate fftw, if wanted
1134 #
1135 if test -n "${FFTW_HOME}"; then
1136 FFTW_OLD_LDFLAGS=$LDFLAGS
1137 FFTW_OLD_CFLAGS=$CFLAGS
1138 LDFLAGS="$LDFLAGS -L${FFTW_HOME}/lib"
1139 CFLAGS="$CFLAGS -I${FFTW_HOME}/include"
1140 AC_LANG_SAVE
1141 AC_LANG_C
1142 AC_CHECK_LIB(fftw3, fftw_execute, [fftw_cv_libfftw3=yes], [fftw_cv_libfftw3=no])
1143 AC_CHECK_HEADER(fftw3.h, [fftw_cv_fftw3_h=yes], [fftw_cv_fftw3_h=no])
1144 if test "$fftw_cv_libfftw3" = "no" -o "$fftw_cv_fftw3_h" = "no"; then
1145 AC_CHECK_LIB(fftw, fftwnd_one, [fftw_cv_libfftw=yes], [fftw_cv_libfftw=no])
1146 AC_CHECK_HEADER(fftw.h, [fftw_cv_fftw_h=yes], [fftw_cv_fftw_h=no])
1147 if test "$fftw_cv_libfftw" = "no" -o "$fftw_cv_fftw_h" = "no"; then
1148 AC_CHECK_LIB(dfftw, fftwnd_one, [fftw_cv_libdfftw=yes], [fftw_cv_libdfftw=no])
1149 AC_CHECK_HEADER(dfftw.h, [fftw_cv_dfftw_h=yes], [fftw_cv_dfftw_h=no])
1150 fi
1151 fi
1152 AC_LANG_RESTORE
1153 if test "$fftw_cv_libfftw3" = "yes" -a "$fftw_cv_fftw3_h" = "yes"; then
1154 AC_DEFINE(HAVE_FFTW3_H, 1, [have fftw3.h])
1155 FFTW_INC_DIR="${FFTW_HOME}/include"
1156 FFTW_LIB_DIR="${FFTW_HOME}/lib"
1157 FFTW_LIBS="-lfftw3"
1158 else
1159 if test "$fftw_cv_libfftw" = "yes" -a "$fftw_cv_fftw_h" = "yes"; then
1160 AC_DEFINE(HAVE_FFTW_H, 1, [have fftw.h])
1161 FFTW_INC_DIR="${FFTW_HOME}/include"
1162 FFTW_LIB_DIR="${FFTW_HOME}/lib"
1163 FFTW_LIBS="-lfftw"
1164 else
1165 if test "$fftw_cv_libdfftw" = "yes" -a "$fftw_cv_dfftw_h" = "yes"; then
1166 AC_DEFINE(HAVE_DFFTW_H, 1, [have dfftw.h])
1167 FFTW_INC_DIR="${FFTW_HOME}/include"
1168 FFTW_LIB_DIR="${FFTW_HOME}/lib"
1169 FFTW_LIBS="-ldfftw"
1170 else
1171 AC_MSG_CHECKING(fftw in ${FFTW_HOME})
1172 FFTW_INC_DIR=
1173 FFTW_LIB_DIR=
1174 FFTW_LIBS=
1175 LDFLAGS="$FFTW_OLD_LDFLAGS"
1176 CFLAGS="$FFTW_OLD_CFLAGS"
1177 AC_MSG_RESULT(failed)
1178 echo ""
1179 echo "*********************************************************"
1180 echo "* WARNING: Could not find a working FFTW installation *"
1181 echo "* If you need the staticProps program to be able to *"
1182 echo "* compute undulation spectra, be sure to specify a *"
1183 echo "* valid fftw installation with --with-fftw=DIR *"
1184 echo "* *"
1185 echo "* OpenMD will still work without fftw installed. *"
1186 echo "*********************************************************"
1187 echo ""
1188 fi
1189 fi
1190 fi
1191 AC_SUBST(FFTW_INC_DIR)
1192 AC_SUBST(FFTW_LIB_DIR)
1193 AC_SUBST(FFTW_LIBS)
1194 fi
1195 fi
1196 fi
1197 ])
1198
1199 # AC_F90_MODULE_NAMES
1200 # -------------------
1201 #
1202 # Figure out how the Fortran 90 compiler constructs module file names
1203 #
1204 AC_DEFUN([AC_F90_MODULE_NAMES],
1205 [AC_REQUIRE([AC_PROG_FC])dnl
1206 AC_CACHE_CHECK([for Fortran 90 module file names],
1207 ac_cv_f90_module_names,
1208 [AC_LANG_PUSH(Fortran)
1209 # carry out the test in a new directory, so that we don't miss anything
1210 mkdir conftest
1211 cd conftest
1212 AC_COMPILE_IFELSE(
1213 [MODULE Bar
1214 END MODULE Bar],
1215 ac_cv_f90_module_names=
1216 [ac_file_list=*
1217 for ac_file in $ac_file_list; do
1218 case $ac_file in
1219 # don't care for original source and object files
1220 conftest.$ac_ext | conftest.$ac_objext | conftest.err )
1221 :
1222 ;;
1223 # look for new files derived from the file name
1224 *conftest*)
1225 ac_pat=`echo $ac_file | sed s/conftest/%FILE%/`
1226 _AC_LIST_MEMBER_IF($ac_pat, $ac_cv_f90_module_names,,
1227 ac_cv_f90_module_names="$ac_cv_f90_module_names $ac_pat")
1228 ;;
1229 # look for new files derived from the module name,
1230 # with different case translation schemes
1231 *Bar*)
1232 ac_pat=`echo $ac_file | sed s/Bar/%Module%/`
1233 _AC_LIST_MEMBER_IF($ac_pat, $ac_cv_f90_module_names,,
1234 ac_cv_f90_module_names="$ac_cv_f90_module_names $ac_pat")
1235 ;;
1236 *bar*)
1237 ac_pat=`echo $ac_file | sed s/bar/%module%/`
1238 _AC_LIST_MEMBER_IF($ac_pat, $ac_cv_f90_module_names,,
1239 ac_cv_f90_module_names="$ac_cv_f90_module_names $ac_pat")
1240 ;;
1241 *BAR*)
1242 ac_pat=`echo $ac_file | sed s/BAR/%MODULE%/`
1243 _AC_LIST_MEMBER_IF($ac_pat, $ac_cv_f90_module_names,,
1244 ac_cv_f90_module_names="$ac_cv_f90_module_names $ac_pat")
1245 ;;
1246 # Other files - we have no idea how they are generated
1247 *)
1248 AC_MSG_WARN([Bogus file found: $ac_file])
1249 ;;
1250 esac
1251 done
1252 if test "x$ac_cv_f90_module_names" = "x"; then
1253 AC_MSG_WARN([Couldn't determine module file names])
1254 fi
1255 ],
1256 [ac_cv_f90_module_names=
1257 AC_MSG_WARN([Couldn't determine module file names])])
1258 cd ..
1259 # cleanup
1260 rm -rf conftest
1261 AC_LANG_POP()dnl
1262 ]) # AC_CACHE_CHECK
1263
1264 # We now generate a shell script that will help us to figure out the correct
1265 # module file names, using the value of ac_cv_f90_module_names
1266
1267 echo "Generating shell script modnam"
1268
1269 cat > scripts/modnam << EOF
1270 #! /bin/sh
1271 # This script is auto-generated by configure
1272 #
1273 usage="\\
1274 Usage: \$[0] [[FILES]]
1275
1276 [[FILES]] are Fortran 90 source files.
1277 The output is a list of module file names that the Fortran 90 compiler
1278 generates when compiling [[FILES]]."
1279
1280 list=
1281 empty=
1282
1283 if test \$[@%:@] -eq 0; then
1284 echo "\$usage"; exit 0
1285 fi
1286
1287 while test \$[@%:@] != 0; do
1288
1289 file=\$[1]
1290 shift
1291
1292 # strip suffix
1293 base=\`echo \$file | sed 's/[[.]][[^.]]*$//'\`
1294
1295 test ! -f \$file && continue
1296
1297 # Look for module definitions and transform them to upper / lower case
1298 mods=\`cat \$file | sed '/^ *[[mM][oO][dD][uU][lL][eE]]/!d;s/^ *[[mM][oO][dD][uU][lL][eE]] *\([[A-Za-z_][A-Za-z0-9_]]*\).*\$/\1/'\`
1299 upper=\`echo \$mods | tr a-z A-Z\`
1300 lower=\`echo \$mods | tr A-Z a-z\`
1301
1302 # Here, the patterns for generating module file names were inserted by configure
1303 for trans in $ac_cv_f90_module_names; do
1304
1305 pat=\`echo \$trans | sed 's/.*\(%.*%\).*/\1/'\`
1306 var=empty
1307 case \$pat in
1308 %MODULE%)
1309 var=upper ;;
1310 %Module%)
1311 var=mods ;;
1312 %module%)
1313 var=lower ;;
1314 %FILE%)
1315 test -n "\$mods" && var=base ;;
1316 esac
1317 new=\`eval '(for i in \$'\$var '; do echo \$trans | sed s/\$pat/\$i/; done)'\`
1318 list="\$list \$new"
1319 done
1320 done
1321
1322 echo \$list
1323 # end of configure-generated script
1324 EOF
1325 chmod 755 scripts/modnam
1326 ]) # AC_F90_MODULE_NAMES
1327
1328 dnl
1329 dnl These functions were taken from the GRASS GIS toolkit:
1330 dnl
1331 dnl autoconf undefines "eval", so use "builtin([eval], ...)"
1332 dnl
1333
1334 AC_DEFUN(LOC_CHECK_USE,[
1335 AC_MSG_CHECKING(whether to use $2)
1336 AC_MSG_RESULT("$with_$1")
1337 case "$with_$1" in
1338 "no") $3= ;;
1339 "yes") $3="1" ;;
1340 *) AC_MSG_ERROR([*** You must answer yes or no.]) ;;
1341 esac
1342
1343 ])
1344
1345 AC_DEFUN(LOC_CHECK_INC_PATH,[
1346 AC_MSG_CHECKING(for location of $2 includes)
1347 case "$with_$1_includes" in
1348 y | ye | yes | n | no)
1349 AC_MSG_ERROR([*** You must supply a directory to --with-$1-includes.])
1350 ;;
1351 esac
1352 AC_MSG_RESULT($with_$1_includes)
1353
1354 if test -n "$with_$1_includes" ; then
1355 for dir in $with_$1_includes; do
1356 if test -d "$dir"; then
1357 $3="$$3 -I$dir"
1358 else
1359 AC_MSG_ERROR([*** $2 includes directory $dir does not exist.])
1360 fi
1361 done
1362 fi
1363 ])
1364
1365 AC_DEFUN(LOC_CHECK_LIB_PATH,[
1366 AC_MSG_CHECKING(for location of $2 library)
1367 case "$with_$1_libs" in
1368 y | ye | yes | n | no)
1369 AC_MSG_ERROR([*** You must supply a directory to --with-$1-libs.])
1370 ;;
1371 esac
1372 AC_MSG_RESULT($with_$1_libs)
1373
1374 if test -n "$with_$1_libs"; then
1375 for dir in $with_$1_libs; do
1376 if test -d "$dir"; then
1377 $3="$$3 -L$dir"
1378 else
1379 AC_MSG_ERROR([*** $2 library directory $dir does not exist.])
1380 fi
1381 done
1382 fi
1383 ])
1384
1385 AC_DEFUN(LOC_CHECK_SHARE_PATH,[
1386 AC_MSG_CHECKING(for location of $2 data files)
1387 case "$with_$1_share" in
1388 y | ye | yes | n | no)
1389 AC_MSG_ERROR([*** You must supply a directory to --with-$1-share.])
1390 ;;
1391 esac
1392 AC_MSG_RESULT($with_$1_share)
1393
1394 if test -n "$with_$1_share" ; then
1395 if test -d "$with_$1_share"; then
1396 $3="$with_$1_share"
1397 else
1398 AC_MSG_ERROR([*** $2 data directory $dir does not exist.])
1399 fi
1400 fi
1401 ])
1402
1403 AC_DEFUN(LOC_CHECK_INCLUDES,[
1404 ac_save_cppflags="$CPPFLAGS"
1405 CPPFLAGS="$3 $CPPFLAGS"
1406 AC_CHECK_HEADERS($1, [], ifelse($4,[],[
1407 AC_MSG_ERROR([*** Unable to locate $2 includes.])
1408 ], $4))
1409 CPPFLAGS=$ac_save_cppflags
1410 ])
1411
1412 dnl autoconf undefines "shift", so use "builtin([shift], ...)"
1413
1414 define(LOC_SHIFT1,[builtin([shift],$*)])
1415 define(LOC_SHIFT2,[LOC_SHIFT1(LOC_SHIFT1($*))])
1416 define(LOC_SHIFT4,[LOC_SHIFT2(LOC_SHIFT2($*))])
1417 define(LOC_SHIFT8,[LOC_SHIFT4(LOC_SHIFT4($*))])
1418 define(LOC_SHIFT9,[LOC_SHIFT1(LOC_SHIFT8($*))])
1419
1420 dnl $1 = library
1421 dnl $2 = function
1422 dnl $3 = descriptive name
1423 dnl $4 = LDFLAGS initialiser
1424 dnl $5 = result variable
1425 dnl $6 = mandatory dependencies (not added to $5)
1426 dnl $7 = mandatory dependencies (added to $5)
1427 dnl $8 = ACTION-IF-NOT-FOUND
1428 dnl $9+ = optional dependencies
1429
1430 define(LOC_CHECK_LIBS_0,[
1431 AC_CHECK_LIB($1, $2, $5="$$5 -l$1 $7",[
1432 [$8]
1433 ],$6 $7)
1434 ])
1435
1436 define(LOC_CHECK_LIBS_1,[
1437 ifelse($9,[],
1438 LOC_CHECK_LIBS_0($1,$2,,,$5,$6,$7,$8),
1439 [
1440 LOC_CHECK_LIBS_1($1,$2,,,$5,$6,$7,
1441 LOC_CHECK_LIBS_1($1,$2,,,$5,$6,$7 $9,$8,LOC_SHIFT9($*)),
1442 LOC_SHIFT9($*))
1443 ]
1444 )
1445 ])
1446
1447 define(LOC_CHECK_LIBS,[
1448 ac_save_ldflags="$LDFLAGS"
1449 LDFLAGS="$4 $LDFLAGS"
1450 LOC_CHECK_LIBS_1($1,$2,,,$5,$6,$7,
1451 LDFLAGS=${ac_save_ldflags}
1452 ifelse($8,[],[
1453 AC_MSG_ERROR([*** Unable to locate $3 library.])
1454 ],$8),LOC_SHIFT8($*))
1455 LDFLAGS=${ac_save_ldflags}
1456 ])
1457
1458 AC_DEFUN(LOC_CHECK_VERSION_STRING,[
1459 AC_MSG_CHECKING($3 version)
1460 ac_save_cppflags="$CPPFLAGS"
1461 CPPFLAGS="$5 $CPPFLAGS"
1462 AC_TRY_RUN([
1463 #include <stdio.h>
1464 #include <$1>
1465 int main(void) {
1466 FILE *fp = fopen("conftestdata","w");
1467 fputs($2, fp);
1468 return 0;
1469 }
1470 ],
1471 [ $4=`cat conftestdata`
1472 AC_MSG_RESULT($$4)],
1473 [ AC_MSG_ERROR([*** Could not determine $3 version.]) ],
1474 [ $4=$6
1475 AC_MSG_RESULT([unknown (cross-compiling)]) ])
1476 CPPFLAGS=$ac_save_cppflags
1477 ])
1478
1479 AC_DEFUN(LOC_CHECK_SHARE,[
1480 AC_CHECK_FILE($3/$1, [], ifelse($4,[],[
1481 AC_MSG_ERROR([*** Unable to locate $2 data files.])
1482 ], $4))
1483 ])
1484
1485 AC_DEFUN(LOC_CHECK_VERSION_INT,[
1486 AC_MSG_CHECKING($3 version)
1487 ac_save_cppflags="$CPPFLAGS"
1488 CPPFLAGS="$5 $CPPFLAGS"
1489 AC_TRY_RUN([
1490 #include <stdio.h>
1491 #include <$1>
1492 int main(void) {
1493 FILE *fp = fopen("conftestdata","w");
1494 fprintf(fp, "%d", $2);
1495 return 0;
1496 }
1497 ],
1498 [ $4=`cat conftestdata`
1499 AC_MSG_RESULT($$4)],
1500 [ AC_MSG_ERROR([*** Could not determine $3 version.]) ],
1501 [ $4=$6
1502 AC_MSG_RESULT([unknown (cross-compiling)]) ])
1503 CPPFLAGS=$ac_save_cppflags
1504 ])
1505
1506 dnl autoconf undefines "eval", so use "builtin([eval], ...)"
1507
1508 AC_DEFUN(LOC_PAD,[$1[]ifelse(builtin([eval],len($1) > 23),1,[
1509 ],substr([ ],len($1)))])
1510
1511 AC_DEFUN(LOC_ARG_WITH,[
1512 AC_ARG_WITH($1,
1513 LOC_PAD([ --with-$1])[support $2 functionality (default: ]ifelse([$3],,yes,[$3])[)],,
1514 [with_$1=]ifelse([$3],,yes,[$3]))
1515 ])
1516
1517 AC_DEFUN(LOC_ARG_WITH_INC,[
1518 AC_ARG_WITH($1-includes,
1519 LOC_PAD([ --with-$1-includes=DIRS])[$2 include files are in DIRS])
1520 ])
1521
1522 AC_DEFUN(LOC_ARG_WITH_LIB,[
1523 AC_ARG_WITH($1-libs,
1524 LOC_PAD([ --with-$1-libs=DIRS])[$2 library files are in DIRS])
1525 ])
1526
1527 AC_DEFUN(LOC_ARG_WITH_SHARE,[
1528 AC_ARG_WITH($1-share,
1529 LOC_PAD([ --with-$1-share=DIR])[$2 data files are in DIR])
1530 ])
1531
1532 AC_DEFUN(LOC_OPTIONAL,[
1533 AC_MSG_CHECKING(whether to build $1)
1534 if test -n "$USE_$2" ; then
1535 AC_MSG_RESULT(yes)
1536 BUILD_$3="$4"
1537 else
1538 AC_MSG_RESULT(no)
1539 BUILD_$3=
1540 fi
1541 AC_SUBST(BUILD_$3)
1542 ])
1543
1544 AC_DEFUN(LOC_MSG,[
1545 echo "$1"
1546 ])
1547
1548 AC_DEFUN(LOC_PAD_26,[substr([ ],len($1))])
1549
1550 AC_DEFUN(LOC_YES_NO,[if test -n "${$1}" ; then echo yes ; else echo no ; fi])
1551
1552 AC_DEFUN(LOC_MSG_USE,[
1553 [echo " $1:]LOC_PAD_26($1)`LOC_YES_NO($2)`"])