7311c1540cfbae056c5e0854ff6379bec9d643c7
[charm.git] / src / scripts / configure
1 #! /bin/sh
2 # Guess values for system-dependent variables and create Makefiles.
3 # Generated by GNU Autoconf 2.65.
4 #
5 #
6 # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
7 # 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
8 # Inc.
9 #
10 #
11 # This configure script is free software; the Free Software Foundation
12 # gives unlimited permission to copy, distribute and modify it.
13 ## -------------------- ##
14 ## M4sh Initialization. ##
15 ## -------------------- ##
16
17 # Be more Bourne compatible
18 DUALCASE=1; export DUALCASE # for MKS sh
19 if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
20   emulate sh
21   NULLCMD=:
22   # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
23   # is contrary to our usage.  Disable this feature.
24   alias -g '${1+"$@"}'='"$@"'
25   setopt NO_GLOB_SUBST
26 else
27   case `(set -o) 2>/dev/null` in #(
28   *posix*) :
29     set -o posix ;; #(
30   *) :
31      ;;
32 esac
33 fi
34
35
36 as_nl='
37 '
38 export as_nl
39 # Printing a long string crashes Solaris 7 /usr/bin/printf.
40 as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
41 as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
42 as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
43 # Prefer a ksh shell builtin over an external printf program on Solaris,
44 # but without wasting forks for bash or zsh.
45 if test -z "$BASH_VERSION$ZSH_VERSION" \
46     && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
47   as_echo='print -r --'
48   as_echo_n='print -rn --'
49 elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
50   as_echo='printf %s\n'
51   as_echo_n='printf %s'
52 else
53   if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
54     as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
55     as_echo_n='/usr/ucb/echo -n'
56   else
57     as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
58     as_echo_n_body='eval
59       arg=$1;
60       case $arg in #(
61       *"$as_nl"*)
62         expr "X$arg" : "X\\(.*\\)$as_nl";
63         arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
64       esac;
65       expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
66     '
67     export as_echo_n_body
68     as_echo_n='sh -c $as_echo_n_body as_echo'
69   fi
70   export as_echo_body
71   as_echo='sh -c $as_echo_body as_echo'
72 fi
73
74 # The user is always right.
75 if test "${PATH_SEPARATOR+set}" != set; then
76   PATH_SEPARATOR=:
77   (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
78     (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
79       PATH_SEPARATOR=';'
80   }
81 fi
82
83
84 # IFS
85 # We need space, tab and new line, in precisely that order.  Quoting is
86 # there to prevent editors from complaining about space-tab.
87 # (If _AS_PATH_WALK were called with IFS unset, it would disable word
88 # splitting by setting IFS to empty value.)
89 IFS=" ""        $as_nl"
90
91 # Find who we are.  Look in the path if we contain no directory separator.
92 case $0 in #((
93   *[\\/]* ) as_myself=$0 ;;
94   *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
95 for as_dir in $PATH
96 do
97   IFS=$as_save_IFS
98   test -z "$as_dir" && as_dir=.
99     test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
100   done
101 IFS=$as_save_IFS
102
103      ;;
104 esac
105 # We did not find ourselves, most probably we were run as `sh COMMAND'
106 # in which case we are not to be found in the path.
107 if test "x$as_myself" = x; then
108   as_myself=$0
109 fi
110 if test ! -f "$as_myself"; then
111   $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
112   exit 1
113 fi
114
115 # Unset variables that we do not need and which cause bugs (e.g. in
116 # pre-3.0 UWIN ksh).  But do not cause bugs in bash 2.01; the "|| exit 1"
117 # suppresses any "Segmentation fault" message there.  '((' could
118 # trigger a bug in pdksh 5.2.14.
119 for as_var in BASH_ENV ENV MAIL MAILPATH
120 do eval test x\${$as_var+set} = xset \
121   && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
122 done
123 PS1='$ '
124 PS2='> '
125 PS4='+ '
126
127 # NLS nuisances.
128 LC_ALL=C
129 export LC_ALL
130 LANGUAGE=C
131 export LANGUAGE
132
133 # CDPATH.
134 (unset CDPATH) >/dev/null 2>&1 && unset CDPATH
135
136 if test "x$CONFIG_SHELL" = x; then
137   as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
138   emulate sh
139   NULLCMD=:
140   # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which
141   # is contrary to our usage.  Disable this feature.
142   alias -g '\${1+\"\$@\"}'='\"\$@\"'
143   setopt NO_GLOB_SUBST
144 else
145   case \`(set -o) 2>/dev/null\` in #(
146   *posix*) :
147     set -o posix ;; #(
148   *) :
149      ;;
150 esac
151 fi
152 "
153   as_required="as_fn_return () { (exit \$1); }
154 as_fn_success () { as_fn_return 0; }
155 as_fn_failure () { as_fn_return 1; }
156 as_fn_ret_success () { return 0; }
157 as_fn_ret_failure () { return 1; }
158
159 exitcode=0
160 as_fn_success || { exitcode=1; echo as_fn_success failed.; }
161 as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }
162 as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }
163 as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }
164 if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :
165
166 else
167   exitcode=1; echo positional parameters were not saved.
168 fi
169 test x\$exitcode = x0 || exit 1"
170   as_suggested="  as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
171   as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
172   eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
173   test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1"
174   if (eval "$as_required") 2>/dev/null; then :
175   as_have_required=yes
176 else
177   as_have_required=no
178 fi
179   if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then :
180
181 else
182   as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
183 as_found=false
184 for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
185 do
186   IFS=$as_save_IFS
187   test -z "$as_dir" && as_dir=.
188   as_found=:
189   case $as_dir in #(
190          /*)
191            for as_base in sh bash ksh sh5; do
192              # Try only shells that exist, to save several forks.
193              as_shell=$as_dir/$as_base
194              if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
195                     { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then :
196   CONFIG_SHELL=$as_shell as_have_required=yes
197                    if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then :
198   break 2
199 fi
200 fi
201            done;;
202        esac
203   as_found=false
204 done
205 $as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
206               { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then :
207   CONFIG_SHELL=$SHELL as_have_required=yes
208 fi; }
209 IFS=$as_save_IFS
210
211
212       if test "x$CONFIG_SHELL" != x; then :
213   # We cannot yet assume a decent shell, so we have to provide a
214         # neutralization value for shells without unset; and this also
215         # works around shells that cannot unset nonexistent variables.
216         BASH_ENV=/dev/null
217         ENV=/dev/null
218         (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
219         export CONFIG_SHELL
220         exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"}
221 fi
222
223     if test x$as_have_required = xno; then :
224   $as_echo "$0: This script requires a shell more modern than all"
225   $as_echo "$0: the shells that I found on your system."
226   if test x${ZSH_VERSION+set} = xset ; then
227     $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should"
228     $as_echo "$0: be upgraded to zsh 4.3.4 or later."
229   else
230     $as_echo "$0: Please tell bug-autoconf@gnu.org about your system,
231 $0: including any error possibly output before this
232 $0: message. Then install a modern shell, or manually run
233 $0: the script under such a shell if you do have one."
234   fi
235   exit 1
236 fi
237 fi
238 fi
239 SHELL=${CONFIG_SHELL-/bin/sh}
240 export SHELL
241 # Unset more variables known to interfere with behavior of common tools.
242 CLICOLOR_FORCE= GREP_OPTIONS=
243 unset CLICOLOR_FORCE GREP_OPTIONS
244
245 ## --------------------- ##
246 ## M4sh Shell Functions. ##
247 ## --------------------- ##
248 # as_fn_unset VAR
249 # ---------------
250 # Portably unset VAR.
251 as_fn_unset ()
252 {
253   { eval $1=; unset $1;}
254 }
255 as_unset=as_fn_unset
256
257 # as_fn_set_status STATUS
258 # -----------------------
259 # Set $? to STATUS, without forking.
260 as_fn_set_status ()
261 {
262   return $1
263 } # as_fn_set_status
264
265 # as_fn_exit STATUS
266 # -----------------
267 # Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
268 as_fn_exit ()
269 {
270   set +e
271   as_fn_set_status $1
272   exit $1
273 } # as_fn_exit
274
275 # as_fn_mkdir_p
276 # -------------
277 # Create "$as_dir" as a directory, including parents if necessary.
278 as_fn_mkdir_p ()
279 {
280
281   case $as_dir in #(
282   -*) as_dir=./$as_dir;;
283   esac
284   test -d "$as_dir" || eval $as_mkdir_p || {
285     as_dirs=
286     while :; do
287       case $as_dir in #(
288       *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
289       *) as_qdir=$as_dir;;
290       esac
291       as_dirs="'$as_qdir' $as_dirs"
292       as_dir=`$as_dirname -- "$as_dir" ||
293 $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
294          X"$as_dir" : 'X\(//\)[^/]' \| \
295          X"$as_dir" : 'X\(//\)$' \| \
296          X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
297 $as_echo X"$as_dir" |
298     sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
299             s//\1/
300             q
301           }
302           /^X\(\/\/\)[^/].*/{
303             s//\1/
304             q
305           }
306           /^X\(\/\/\)$/{
307             s//\1/
308             q
309           }
310           /^X\(\/\).*/{
311             s//\1/
312             q
313           }
314           s/.*/./; q'`
315       test -d "$as_dir" && break
316     done
317     test -z "$as_dirs" || eval "mkdir $as_dirs"
318   } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir"
319
320
321 } # as_fn_mkdir_p
322 # as_fn_append VAR VALUE
323 # ----------------------
324 # Append the text in VALUE to the end of the definition contained in VAR. Take
325 # advantage of any shell optimizations that allow amortized linear growth over
326 # repeated appends, instead of the typical quadratic growth present in naive
327 # implementations.
328 if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
329   eval 'as_fn_append ()
330   {
331     eval $1+=\$2
332   }'
333 else
334   as_fn_append ()
335   {
336     eval $1=\$$1\$2
337   }
338 fi # as_fn_append
339
340 # as_fn_arith ARG...
341 # ------------------
342 # Perform arithmetic evaluation on the ARGs, and store the result in the
343 # global $as_val. Take advantage of shells that can avoid forks. The arguments
344 # must be portable across $(()) and expr.
345 if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
346   eval 'as_fn_arith ()
347   {
348     as_val=$(( $* ))
349   }'
350 else
351   as_fn_arith ()
352   {
353     as_val=`expr "$@" || test $? -eq 1`
354   }
355 fi # as_fn_arith
356
357
358 # as_fn_error ERROR [LINENO LOG_FD]
359 # ---------------------------------
360 # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
361 # provided, also output the error to LOG_FD, referencing LINENO. Then exit the
362 # script with status $?, using 1 if that was 0.
363 as_fn_error ()
364 {
365   as_status=$?; test $as_status -eq 0 && as_status=1
366   if test "$3"; then
367     as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
368     $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3
369   fi
370   $as_echo "$as_me: error: $1" >&2
371   as_fn_exit $as_status
372 } # as_fn_error
373
374 if expr a : '\(a\)' >/dev/null 2>&1 &&
375    test "X`expr 00001 : '.*\(...\)'`" = X001; then
376   as_expr=expr
377 else
378   as_expr=false
379 fi
380
381 if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
382   as_basename=basename
383 else
384   as_basename=false
385 fi
386
387 if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
388   as_dirname=dirname
389 else
390   as_dirname=false
391 fi
392
393 as_me=`$as_basename -- "$0" ||
394 $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
395          X"$0" : 'X\(//\)$' \| \
396          X"$0" : 'X\(/\)' \| . 2>/dev/null ||
397 $as_echo X/"$0" |
398     sed '/^.*\/\([^/][^/]*\)\/*$/{
399             s//\1/
400             q
401           }
402           /^X\/\(\/\/\)$/{
403             s//\1/
404             q
405           }
406           /^X\/\(\/\).*/{
407             s//\1/
408             q
409           }
410           s/.*/./; q'`
411
412 # Avoid depending upon Character Ranges.
413 as_cr_letters='abcdefghijklmnopqrstuvwxyz'
414 as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
415 as_cr_Letters=$as_cr_letters$as_cr_LETTERS
416 as_cr_digits='0123456789'
417 as_cr_alnum=$as_cr_Letters$as_cr_digits
418
419
420   as_lineno_1=$LINENO as_lineno_1a=$LINENO
421   as_lineno_2=$LINENO as_lineno_2a=$LINENO
422   eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" &&
423   test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || {
424   # Blame Lee E. McMahon (1931-1989) for sed's syntax.  :-)
425   sed -n '
426     p
427     /[$]LINENO/=
428   ' <$as_myself |
429     sed '
430       s/[$]LINENO.*/&-/
431       t lineno
432       b
433       :lineno
434       N
435       :loop
436       s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
437       t loop
438       s/-\n.*//
439     ' >$as_me.lineno &&
440   chmod +x "$as_me.lineno" ||
441     { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
442
443   # Don't try to exec as it changes $[0], causing all sort of problems
444   # (the dirname of $[0] is not the place where we might find the
445   # original and so on.  Autoconf is especially sensitive to this).
446   . "./$as_me.lineno"
447   # Exit status is that of the last command.
448   exit
449 }
450
451 ECHO_C= ECHO_N= ECHO_T=
452 case `echo -n x` in #(((((
453 -n*)
454   case `echo 'xy\c'` in
455   *c*) ECHO_T=' ';;     # ECHO_T is single tab character.
456   xy)  ECHO_C='\c';;
457   *)   echo `echo ksh88 bug on AIX 6.1` > /dev/null
458        ECHO_T=' ';;
459   esac;;
460 *)
461   ECHO_N='-n';;
462 esac
463
464 rm -f conf$$ conf$$.exe conf$$.file
465 if test -d conf$$.dir; then
466   rm -f conf$$.dir/conf$$.file
467 else
468   rm -f conf$$.dir
469   mkdir conf$$.dir 2>/dev/null
470 fi
471 if (echo >conf$$.file) 2>/dev/null; then
472   if ln -s conf$$.file conf$$ 2>/dev/null; then
473     as_ln_s='ln -s'
474     # ... but there are two gotchas:
475     # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
476     # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
477     # In both cases, we have to default to `cp -p'.
478     ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
479       as_ln_s='cp -p'
480   elif ln conf$$.file conf$$ 2>/dev/null; then
481     as_ln_s=ln
482   else
483     as_ln_s='cp -p'
484   fi
485 else
486   as_ln_s='cp -p'
487 fi
488 rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
489 rmdir conf$$.dir 2>/dev/null
490
491 if mkdir -p . 2>/dev/null; then
492   as_mkdir_p='mkdir -p "$as_dir"'
493 else
494   test -d ./-p && rmdir ./-p
495   as_mkdir_p=false
496 fi
497
498 if test -x / >/dev/null 2>&1; then
499   as_test_x='test -x'
500 else
501   if ls -dL / >/dev/null 2>&1; then
502     as_ls_L_option=L
503   else
504     as_ls_L_option=
505   fi
506   as_test_x='
507     eval sh -c '\''
508       if test -d "$1"; then
509         test -d "$1/.";
510       else
511         case $1 in #(
512         -*)set "./$1";;
513         esac;
514         case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #((
515         ???[sx]*):;;*)false;;esac;fi
516     '\'' sh
517   '
518 fi
519 as_executable_p=$as_test_x
520
521 # Sed expression to map a string onto a valid CPP name.
522 as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
523
524 # Sed expression to map a string onto a valid variable name.
525 as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
526
527
528 test -n "$DJDIR" || exec 7<&0 </dev/null
529 exec 6>&1
530
531 # Name of the host.
532 # hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
533 # so uname gets run too.
534 ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
535
536 #
537 # Initializations.
538 #
539 ac_default_prefix=/usr/local
540 ac_clean_files=
541 ac_config_libobj_dir=.
542 LIBOBJS=
543 cross_compiling=no
544 subdirs=
545 MFLAGS=
546 MAKEFLAGS=
547
548 # Identity of this package.
549 PACKAGE_NAME=
550 PACKAGE_TARNAME=
551 PACKAGE_VERSION=
552 PACKAGE_STRING=
553 PACKAGE_BUGREPORT=
554 PACKAGE_URL=
555
556 ac_unique_file="./Makefile"
557 ac_subst_vars='LTLIBOBJS
558 LIBOBJS
559 SYNC
560 base_version
561 target_alias
562 host_alias
563 build_alias
564 LIBS
565 ECHO_T
566 ECHO_N
567 ECHO_C
568 DEFS
569 mandir
570 localedir
571 libdir
572 psdir
573 pdfdir
574 dvidir
575 htmldir
576 infodir
577 docdir
578 oldincludedir
579 includedir
580 localstatedir
581 sharedstatedir
582 sysconfdir
583 datadir
584 datarootdir
585 libexecdir
586 sbindir
587 bindir
588 program_transform_name
589 prefix
590 exec_prefix
591 PACKAGE_URL
592 PACKAGE_BUGREPORT
593 PACKAGE_STRING
594 PACKAGE_VERSION
595 PACKAGE_TARNAME
596 PACKAGE_NAME
597 PATH_SEPARATOR
598 SHELL'
599 ac_subst_files=''
600 ac_user_opts='
601 enable_option_checking
602 enable_error_checking
603 enable_stats
604 enable_tracing
605 enable_tracing_commthread
606 enable_charmdebug
607 enable_replay
608 enable_ccs
609 enable_controlpoint
610 with_numa
611 with_lbtime_type
612 with_refnum_type
613 with_metis
614 '
615       ac_precious_vars='build_alias
616 host_alias
617 target_alias'
618
619
620 # Initialize some variables set by options.
621 ac_init_help=
622 ac_init_version=false
623 ac_unrecognized_opts=
624 ac_unrecognized_sep=
625 # The variables have the same names as the options, with
626 # dashes changed to underlines.
627 cache_file=/dev/null
628 exec_prefix=NONE
629 no_create=
630 no_recursion=
631 prefix=NONE
632 program_prefix=NONE
633 program_suffix=NONE
634 program_transform_name=s,x,x,
635 silent=
636 site=
637 srcdir=
638 verbose=
639 x_includes=NONE
640 x_libraries=NONE
641
642 # Installation directory options.
643 # These are left unexpanded so users can "make install exec_prefix=/foo"
644 # and all the variables that are supposed to be based on exec_prefix
645 # by default will actually change.
646 # Use braces instead of parens because sh, perl, etc. also accept them.
647 # (The list follows the same order as the GNU Coding Standards.)
648 bindir='${exec_prefix}/bin'
649 sbindir='${exec_prefix}/sbin'
650 libexecdir='${exec_prefix}/libexec'
651 datarootdir='${prefix}/share'
652 datadir='${datarootdir}'
653 sysconfdir='${prefix}/etc'
654 sharedstatedir='${prefix}/com'
655 localstatedir='${prefix}/var'
656 includedir='${prefix}/include'
657 oldincludedir='/usr/include'
658 docdir='${datarootdir}/doc/${PACKAGE}'
659 infodir='${datarootdir}/info'
660 htmldir='${docdir}'
661 dvidir='${docdir}'
662 pdfdir='${docdir}'
663 psdir='${docdir}'
664 libdir='${exec_prefix}/lib'
665 localedir='${datarootdir}/locale'
666 mandir='${datarootdir}/man'
667
668 ac_prev=
669 ac_dashdash=
670 for ac_option
671 do
672   # If the previous option needs an argument, assign it.
673   if test -n "$ac_prev"; then
674     eval $ac_prev=\$ac_option
675     ac_prev=
676     continue
677   fi
678
679   case $ac_option in
680   *=*)  ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
681   *)    ac_optarg=yes ;;
682   esac
683
684   # Accept the important Cygnus configure options, so we can diagnose typos.
685
686   case $ac_dashdash$ac_option in
687   --)
688     ac_dashdash=yes ;;
689
690   -bindir | --bindir | --bindi | --bind | --bin | --bi)
691     ac_prev=bindir ;;
692   -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
693     bindir=$ac_optarg ;;
694
695   -build | --build | --buil | --bui | --bu)
696     ac_prev=build_alias ;;
697   -build=* | --build=* | --buil=* | --bui=* | --bu=*)
698     build_alias=$ac_optarg ;;
699
700   -cache-file | --cache-file | --cache-fil | --cache-fi \
701   | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
702     ac_prev=cache_file ;;
703   -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
704   | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
705     cache_file=$ac_optarg ;;
706
707   --config-cache | -C)
708     cache_file=config.cache ;;
709
710   -datadir | --datadir | --datadi | --datad)
711     ac_prev=datadir ;;
712   -datadir=* | --datadir=* | --datadi=* | --datad=*)
713     datadir=$ac_optarg ;;
714
715   -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \
716   | --dataroo | --dataro | --datar)
717     ac_prev=datarootdir ;;
718   -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \
719   | --dataroot=* | --dataroo=* | --dataro=* | --datar=*)
720     datarootdir=$ac_optarg ;;
721
722   -disable-* | --disable-*)
723     ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
724     # Reject names that are not valid shell variable names.
725     expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
726       as_fn_error "invalid feature name: $ac_useropt"
727     ac_useropt_orig=$ac_useropt
728     ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
729     case $ac_user_opts in
730       *"
731 "enable_$ac_useropt"
732 "*) ;;
733       *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig"
734          ac_unrecognized_sep=', ';;
735     esac
736     eval enable_$ac_useropt=no ;;
737
738   -docdir | --docdir | --docdi | --doc | --do)
739     ac_prev=docdir ;;
740   -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*)
741     docdir=$ac_optarg ;;
742
743   -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv)
744     ac_prev=dvidir ;;
745   -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*)
746     dvidir=$ac_optarg ;;
747
748   -enable-* | --enable-*)
749     ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
750     # Reject names that are not valid shell variable names.
751     expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
752       as_fn_error "invalid feature name: $ac_useropt"
753     ac_useropt_orig=$ac_useropt
754     ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
755     case $ac_user_opts in
756       *"
757 "enable_$ac_useropt"
758 "*) ;;
759       *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig"
760          ac_unrecognized_sep=', ';;
761     esac
762     eval enable_$ac_useropt=\$ac_optarg ;;
763
764   -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
765   | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
766   | --exec | --exe | --ex)
767     ac_prev=exec_prefix ;;
768   -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
769   | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
770   | --exec=* | --exe=* | --ex=*)
771     exec_prefix=$ac_optarg ;;
772
773   -gas | --gas | --ga | --g)
774     # Obsolete; use --with-gas.
775     with_gas=yes ;;
776
777   -help | --help | --hel | --he | -h)
778     ac_init_help=long ;;
779   -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
780     ac_init_help=recursive ;;
781   -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
782     ac_init_help=short ;;
783
784   -host | --host | --hos | --ho)
785     ac_prev=host_alias ;;
786   -host=* | --host=* | --hos=* | --ho=*)
787     host_alias=$ac_optarg ;;
788
789   -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht)
790     ac_prev=htmldir ;;
791   -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \
792   | --ht=*)
793     htmldir=$ac_optarg ;;
794
795   -includedir | --includedir | --includedi | --included | --include \
796   | --includ | --inclu | --incl | --inc)
797     ac_prev=includedir ;;
798   -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
799   | --includ=* | --inclu=* | --incl=* | --inc=*)
800     includedir=$ac_optarg ;;
801
802   -infodir | --infodir | --infodi | --infod | --info | --inf)
803     ac_prev=infodir ;;
804   -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
805     infodir=$ac_optarg ;;
806
807   -libdir | --libdir | --libdi | --libd)
808     ac_prev=libdir ;;
809   -libdir=* | --libdir=* | --libdi=* | --libd=*)
810     libdir=$ac_optarg ;;
811
812   -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
813   | --libexe | --libex | --libe)
814     ac_prev=libexecdir ;;
815   -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
816   | --libexe=* | --libex=* | --libe=*)
817     libexecdir=$ac_optarg ;;
818
819   -localedir | --localedir | --localedi | --localed | --locale)
820     ac_prev=localedir ;;
821   -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*)
822     localedir=$ac_optarg ;;
823
824   -localstatedir | --localstatedir | --localstatedi | --localstated \
825   | --localstate | --localstat | --localsta | --localst | --locals)
826     ac_prev=localstatedir ;;
827   -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
828   | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*)
829     localstatedir=$ac_optarg ;;
830
831   -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
832     ac_prev=mandir ;;
833   -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
834     mandir=$ac_optarg ;;
835
836   -nfp | --nfp | --nf)
837     # Obsolete; use --without-fp.
838     with_fp=no ;;
839
840   -no-create | --no-create | --no-creat | --no-crea | --no-cre \
841   | --no-cr | --no-c | -n)
842     no_create=yes ;;
843
844   -no-recursion | --no-recursion | --no-recursio | --no-recursi \
845   | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
846     no_recursion=yes ;;
847
848   -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
849   | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
850   | --oldin | --oldi | --old | --ol | --o)
851     ac_prev=oldincludedir ;;
852   -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
853   | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
854   | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
855     oldincludedir=$ac_optarg ;;
856
857   -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
858     ac_prev=prefix ;;
859   -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
860     prefix=$ac_optarg ;;
861
862   -program-prefix | --program-prefix | --program-prefi | --program-pref \
863   | --program-pre | --program-pr | --program-p)
864     ac_prev=program_prefix ;;
865   -program-prefix=* | --program-prefix=* | --program-prefi=* \
866   | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
867     program_prefix=$ac_optarg ;;
868
869   -program-suffix | --program-suffix | --program-suffi | --program-suff \
870   | --program-suf | --program-su | --program-s)
871     ac_prev=program_suffix ;;
872   -program-suffix=* | --program-suffix=* | --program-suffi=* \
873   | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
874     program_suffix=$ac_optarg ;;
875
876   -program-transform-name | --program-transform-name \
877   | --program-transform-nam | --program-transform-na \
878   | --program-transform-n | --program-transform- \
879   | --program-transform | --program-transfor \
880   | --program-transfo | --program-transf \
881   | --program-trans | --program-tran \
882   | --progr-tra | --program-tr | --program-t)
883     ac_prev=program_transform_name ;;
884   -program-transform-name=* | --program-transform-name=* \
885   | --program-transform-nam=* | --program-transform-na=* \
886   | --program-transform-n=* | --program-transform-=* \
887   | --program-transform=* | --program-transfor=* \
888   | --program-transfo=* | --program-transf=* \
889   | --program-trans=* | --program-tran=* \
890   | --progr-tra=* | --program-tr=* | --program-t=*)
891     program_transform_name=$ac_optarg ;;
892
893   -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd)
894     ac_prev=pdfdir ;;
895   -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*)
896     pdfdir=$ac_optarg ;;
897
898   -psdir | --psdir | --psdi | --psd | --ps)
899     ac_prev=psdir ;;
900   -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*)
901     psdir=$ac_optarg ;;
902
903   -q | -quiet | --quiet | --quie | --qui | --qu | --q \
904   | -silent | --silent | --silen | --sile | --sil)
905     silent=yes ;;
906
907   -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
908     ac_prev=sbindir ;;
909   -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
910   | --sbi=* | --sb=*)
911     sbindir=$ac_optarg ;;
912
913   -sharedstatedir | --sharedstatedir | --sharedstatedi \
914   | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
915   | --sharedst | --shareds | --shared | --share | --shar \
916   | --sha | --sh)
917     ac_prev=sharedstatedir ;;
918   -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
919   | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
920   | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
921   | --sha=* | --sh=*)
922     sharedstatedir=$ac_optarg ;;
923
924   -site | --site | --sit)
925     ac_prev=site ;;
926   -site=* | --site=* | --sit=*)
927     site=$ac_optarg ;;
928
929   -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
930     ac_prev=srcdir ;;
931   -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
932     srcdir=$ac_optarg ;;
933
934   -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
935   | --syscon | --sysco | --sysc | --sys | --sy)
936     ac_prev=sysconfdir ;;
937   -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
938   | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
939     sysconfdir=$ac_optarg ;;
940
941   -target | --target | --targe | --targ | --tar | --ta | --t)
942     ac_prev=target_alias ;;
943   -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
944     target_alias=$ac_optarg ;;
945
946   -v | -verbose | --verbose | --verbos | --verbo | --verb)
947     verbose=yes ;;
948
949   -version | --version | --versio | --versi | --vers | -V)
950     ac_init_version=: ;;
951
952   -with-* | --with-*)
953     ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
954     # Reject names that are not valid shell variable names.
955     expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
956       as_fn_error "invalid package name: $ac_useropt"
957     ac_useropt_orig=$ac_useropt
958     ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
959     case $ac_user_opts in
960       *"
961 "with_$ac_useropt"
962 "*) ;;
963       *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig"
964          ac_unrecognized_sep=', ';;
965     esac
966     eval with_$ac_useropt=\$ac_optarg ;;
967
968   -without-* | --without-*)
969     ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
970     # Reject names that are not valid shell variable names.
971     expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
972       as_fn_error "invalid package name: $ac_useropt"
973     ac_useropt_orig=$ac_useropt
974     ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
975     case $ac_user_opts in
976       *"
977 "with_$ac_useropt"
978 "*) ;;
979       *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig"
980          ac_unrecognized_sep=', ';;
981     esac
982     eval with_$ac_useropt=no ;;
983
984   --x)
985     # Obsolete; use --with-x.
986     with_x=yes ;;
987
988   -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
989   | --x-incl | --x-inc | --x-in | --x-i)
990     ac_prev=x_includes ;;
991   -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
992   | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
993     x_includes=$ac_optarg ;;
994
995   -x-libraries | --x-libraries | --x-librarie | --x-librari \
996   | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
997     ac_prev=x_libraries ;;
998   -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
999   | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
1000     x_libraries=$ac_optarg ;;
1001
1002   -*) as_fn_error "unrecognized option: \`$ac_option'
1003 Try \`$0 --help' for more information."
1004     ;;
1005
1006   *=*)
1007     ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
1008     # Reject names that are not valid shell variable names.
1009     case $ac_envvar in #(
1010       '' | [0-9]* | *[!_$as_cr_alnum]* )
1011       as_fn_error "invalid variable name: \`$ac_envvar'" ;;
1012     esac
1013     eval $ac_envvar=\$ac_optarg
1014     export $ac_envvar ;;
1015
1016   *)
1017     # FIXME: should be removed in autoconf 3.0.
1018     $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2
1019     expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
1020       $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2
1021     : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
1022     ;;
1023
1024   esac
1025 done
1026
1027 if test -n "$ac_prev"; then
1028   ac_option=--`echo $ac_prev | sed 's/_/-/g'`
1029   as_fn_error "missing argument to $ac_option"
1030 fi
1031
1032 if test -n "$ac_unrecognized_opts"; then
1033   case $enable_option_checking in
1034     no) ;;
1035     fatal) as_fn_error "unrecognized options: $ac_unrecognized_opts" ;;
1036     *)     $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
1037   esac
1038 fi
1039
1040 # Check all directory arguments for consistency.
1041 for ac_var in   exec_prefix prefix bindir sbindir libexecdir datarootdir \
1042                 datadir sysconfdir sharedstatedir localstatedir includedir \
1043                 oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
1044                 libdir localedir mandir
1045 do
1046   eval ac_val=\$$ac_var
1047   # Remove trailing slashes.
1048   case $ac_val in
1049     */ )
1050       ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'`
1051       eval $ac_var=\$ac_val;;
1052   esac
1053   # Be sure to have absolute directory names.
1054   case $ac_val in
1055     [\\/$]* | ?:[\\/]* )  continue;;
1056     NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
1057   esac
1058   as_fn_error "expected an absolute directory name for --$ac_var: $ac_val"
1059 done
1060
1061 # There might be people who depend on the old broken behavior: `$host'
1062 # used to hold the argument of --host etc.
1063 # FIXME: To remove some day.
1064 build=$build_alias
1065 host=$host_alias
1066 target=$target_alias
1067
1068 # FIXME: To remove some day.
1069 if test "x$host_alias" != x; then
1070   if test "x$build_alias" = x; then
1071     cross_compiling=maybe
1072     $as_echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host.
1073     If a cross compiler is detected then cross compile mode will be used." >&2
1074   elif test "x$build_alias" != "x$host_alias"; then
1075     cross_compiling=yes
1076   fi
1077 fi
1078
1079 ac_tool_prefix=
1080 test -n "$host_alias" && ac_tool_prefix=$host_alias-
1081
1082 test "$silent" = yes && exec 6>/dev/null
1083
1084
1085 ac_pwd=`pwd` && test -n "$ac_pwd" &&
1086 ac_ls_di=`ls -di .` &&
1087 ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
1088   as_fn_error "working directory cannot be determined"
1089 test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
1090   as_fn_error "pwd does not report name of working directory"
1091
1092
1093 # Find the source files, if location was not specified.
1094 if test -z "$srcdir"; then
1095   ac_srcdir_defaulted=yes
1096   # Try the directory containing this script, then the parent directory.
1097   ac_confdir=`$as_dirname -- "$as_myself" ||
1098 $as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
1099          X"$as_myself" : 'X\(//\)[^/]' \| \
1100          X"$as_myself" : 'X\(//\)$' \| \
1101          X"$as_myself" : 'X\(/\)' \| . 2>/dev/null ||
1102 $as_echo X"$as_myself" |
1103     sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
1104             s//\1/
1105             q
1106           }
1107           /^X\(\/\/\)[^/].*/{
1108             s//\1/
1109             q
1110           }
1111           /^X\(\/\/\)$/{
1112             s//\1/
1113             q
1114           }
1115           /^X\(\/\).*/{
1116             s//\1/
1117             q
1118           }
1119           s/.*/./; q'`
1120   srcdir=$ac_confdir
1121   if test ! -r "$srcdir/$ac_unique_file"; then
1122     srcdir=..
1123   fi
1124 else
1125   ac_srcdir_defaulted=no
1126 fi
1127 if test ! -r "$srcdir/$ac_unique_file"; then
1128   test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
1129   as_fn_error "cannot find sources ($ac_unique_file) in $srcdir"
1130 fi
1131 ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
1132 ac_abs_confdir=`(
1133         cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error "$ac_msg"
1134         pwd)`
1135 # When building in place, set srcdir=.
1136 if test "$ac_abs_confdir" = "$ac_pwd"; then
1137   srcdir=.
1138 fi
1139 # Remove unnecessary trailing slashes from srcdir.
1140 # Double slashes in file names in object file debugging info
1141 # mess up M-x gdb in Emacs.
1142 case $srcdir in
1143 */) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;;
1144 esac
1145 for ac_var in $ac_precious_vars; do
1146   eval ac_env_${ac_var}_set=\${${ac_var}+set}
1147   eval ac_env_${ac_var}_value=\$${ac_var}
1148   eval ac_cv_env_${ac_var}_set=\${${ac_var}+set}
1149   eval ac_cv_env_${ac_var}_value=\$${ac_var}
1150 done
1151
1152 #
1153 # Report the --help message.
1154 #
1155 if test "$ac_init_help" = "long"; then
1156   # Omit some internal or obsolete options to make the list less imposing.
1157   # This message is too long to be a string in the A/UX 3.1 sh.
1158   cat <<_ACEOF
1159 \`configure' configures this package to adapt to many kinds of systems.
1160
1161 Usage: $0 [OPTION]... [VAR=VALUE]...
1162
1163 To assign environment variables (e.g., CC, CFLAGS...), specify them as
1164 VAR=VALUE.  See below for descriptions of some of the useful variables.
1165
1166 Defaults for the options are specified in brackets.
1167
1168 Configuration:
1169   -h, --help              display this help and exit
1170       --help=short        display options specific to this package
1171       --help=recursive    display the short help of all the included packages
1172   -V, --version           display version information and exit
1173   -q, --quiet, --silent   do not print \`checking...' messages
1174       --cache-file=FILE   cache test results in FILE [disabled]
1175   -C, --config-cache      alias for \`--cache-file=config.cache'
1176   -n, --no-create         do not create output files
1177       --srcdir=DIR        find the sources in DIR [configure dir or \`..']
1178
1179 Installation directories:
1180   --prefix=PREFIX         install architecture-independent files in PREFIX
1181                           [$ac_default_prefix]
1182   --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
1183                           [PREFIX]
1184
1185 By default, \`make install' will install all the files in
1186 \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc.  You can specify
1187 an installation prefix other than \`$ac_default_prefix' using \`--prefix',
1188 for instance \`--prefix=\$HOME'.
1189
1190 For better control, use the options below.
1191
1192 Fine tuning of the installation directories:
1193   --bindir=DIR            user executables [EPREFIX/bin]
1194   --sbindir=DIR           system admin executables [EPREFIX/sbin]
1195   --libexecdir=DIR        program executables [EPREFIX/libexec]
1196   --sysconfdir=DIR        read-only single-machine data [PREFIX/etc]
1197   --sharedstatedir=DIR    modifiable architecture-independent data [PREFIX/com]
1198   --localstatedir=DIR     modifiable single-machine data [PREFIX/var]
1199   --libdir=DIR            object code libraries [EPREFIX/lib]
1200   --includedir=DIR        C header files [PREFIX/include]
1201   --oldincludedir=DIR     C header files for non-gcc [/usr/include]
1202   --datarootdir=DIR       read-only arch.-independent data root [PREFIX/share]
1203   --datadir=DIR           read-only architecture-independent data [DATAROOTDIR]
1204   --infodir=DIR           info documentation [DATAROOTDIR/info]
1205   --localedir=DIR         locale-dependent data [DATAROOTDIR/locale]
1206   --mandir=DIR            man documentation [DATAROOTDIR/man]
1207   --docdir=DIR            documentation root [DATAROOTDIR/doc/PACKAGE]
1208   --htmldir=DIR           html documentation [DOCDIR]
1209   --dvidir=DIR            dvi documentation [DOCDIR]
1210   --pdfdir=DIR            pdf documentation [DOCDIR]
1211   --psdir=DIR             ps documentation [DOCDIR]
1212 _ACEOF
1213
1214   cat <<\_ACEOF
1215 _ACEOF
1216 fi
1217
1218 if test -n "$ac_init_help"; then
1219
1220   cat <<\_ACEOF
1221
1222 Optional Features:
1223   --disable-option-checking  ignore unrecognized --enable/--with options
1224   --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
1225   --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
1226   --enable-error-checking enable error checking
1227   --enable-stats          enable statistics collection
1228   --enable-tracing        enable tracing modules
1229   --enable-tracing-commthread
1230                           enable tracing communication thread
1231   --enable-charmdebug     enable charmDebug
1232   --enable-replay         enable record/replay
1233   --enable-ccs            enable CCS
1234   --enable-controlpoint   enable control point
1235
1236 Optional Packages:
1237   --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
1238   --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
1239   --with-numa             support memory affinity with NUMA
1240   --with-lbtime-type=type load balancing timer type
1241   --with-refnum-type=type size of the envelope refnum field
1242   --with-metis            support the METIS graph partitioner and associated
1243                           load balancer
1244
1245 Report bugs to the package provider.
1246 _ACEOF
1247 ac_status=$?
1248 fi
1249
1250 if test "$ac_init_help" = "recursive"; then
1251   # If there are subdirs, report their specific --help.
1252   for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
1253     test -d "$ac_dir" ||
1254       { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } ||
1255       continue
1256     ac_builddir=.
1257
1258 case "$ac_dir" in
1259 .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
1260 *)
1261   ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
1262   # A ".." for each directory in $ac_dir_suffix.
1263   ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
1264   case $ac_top_builddir_sub in
1265   "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
1266   *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;
1267   esac ;;
1268 esac
1269 ac_abs_top_builddir=$ac_pwd
1270 ac_abs_builddir=$ac_pwd$ac_dir_suffix
1271 # for backward compatibility:
1272 ac_top_builddir=$ac_top_build_prefix
1273
1274 case $srcdir in
1275   .)  # We are building in place.
1276     ac_srcdir=.
1277     ac_top_srcdir=$ac_top_builddir_sub
1278     ac_abs_top_srcdir=$ac_pwd ;;
1279   [\\/]* | ?:[\\/]* )  # Absolute name.
1280     ac_srcdir=$srcdir$ac_dir_suffix;
1281     ac_top_srcdir=$srcdir
1282     ac_abs_top_srcdir=$srcdir ;;
1283   *) # Relative name.
1284     ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
1285     ac_top_srcdir=$ac_top_build_prefix$srcdir
1286     ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
1287 esac
1288 ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
1289
1290     cd "$ac_dir" || { ac_status=$?; continue; }
1291     # Check for guested configure.
1292     if test -f "$ac_srcdir/configure.gnu"; then
1293       echo &&
1294       $SHELL "$ac_srcdir/configure.gnu" --help=recursive
1295     elif test -f "$ac_srcdir/configure"; then
1296       echo &&
1297       $SHELL "$ac_srcdir/configure" --help=recursive
1298     else
1299       $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
1300     fi || ac_status=$?
1301     cd "$ac_pwd" || { ac_status=$?; break; }
1302   done
1303 fi
1304
1305 test -n "$ac_init_help" && exit $ac_status
1306 if $ac_init_version; then
1307   cat <<\_ACEOF
1308 configure
1309 generated by GNU Autoconf 2.65
1310
1311 Copyright (C) 2009 Free Software Foundation, Inc.
1312 This configure script is free software; the Free Software Foundation
1313 gives unlimited permission to copy, distribute and modify it.
1314 _ACEOF
1315   exit
1316 fi
1317
1318 ## ------------------------ ##
1319 ## Autoconf initialization. ##
1320 ## ------------------------ ##
1321 cat >config.log <<_ACEOF
1322 This file contains any messages produced by compilers while
1323 running configure, to aid debugging if configure makes a mistake.
1324
1325 It was created by $as_me, which was
1326 generated by GNU Autoconf 2.65.  Invocation command line was
1327
1328   $ $0 $@
1329
1330 _ACEOF
1331 exec 5>>config.log
1332 {
1333 cat <<_ASUNAME
1334 ## --------- ##
1335 ## Platform. ##
1336 ## --------- ##
1337
1338 hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
1339 uname -m = `(uname -m) 2>/dev/null || echo unknown`
1340 uname -r = `(uname -r) 2>/dev/null || echo unknown`
1341 uname -s = `(uname -s) 2>/dev/null || echo unknown`
1342 uname -v = `(uname -v) 2>/dev/null || echo unknown`
1343
1344 /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
1345 /bin/uname -X     = `(/bin/uname -X) 2>/dev/null     || echo unknown`
1346
1347 /bin/arch              = `(/bin/arch) 2>/dev/null              || echo unknown`
1348 /usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null       || echo unknown`
1349 /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
1350 /usr/bin/hostinfo      = `(/usr/bin/hostinfo) 2>/dev/null      || echo unknown`
1351 /bin/machine           = `(/bin/machine) 2>/dev/null           || echo unknown`
1352 /usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null       || echo unknown`
1353 /bin/universe          = `(/bin/universe) 2>/dev/null          || echo unknown`
1354
1355 _ASUNAME
1356
1357 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
1358 for as_dir in $PATH
1359 do
1360   IFS=$as_save_IFS
1361   test -z "$as_dir" && as_dir=.
1362     $as_echo "PATH: $as_dir"
1363   done
1364 IFS=$as_save_IFS
1365
1366 } >&5
1367
1368 cat >&5 <<_ACEOF
1369
1370
1371 ## ----------- ##
1372 ## Core tests. ##
1373 ## ----------- ##
1374
1375 _ACEOF
1376
1377
1378 # Keep a trace of the command line.
1379 # Strip out --no-create and --no-recursion so they do not pile up.
1380 # Strip out --silent because we don't want to record it for future runs.
1381 # Also quote any args containing shell meta-characters.
1382 # Make two passes to allow for proper duplicate-argument suppression.
1383 ac_configure_args=
1384 ac_configure_args0=
1385 ac_configure_args1=
1386 ac_must_keep_next=false
1387 for ac_pass in 1 2
1388 do
1389   for ac_arg
1390   do
1391     case $ac_arg in
1392     -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
1393     -q | -quiet | --quiet | --quie | --qui | --qu | --q \
1394     | -silent | --silent | --silen | --sile | --sil)
1395       continue ;;
1396     *\'*)
1397       ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
1398     esac
1399     case $ac_pass in
1400     1) as_fn_append ac_configure_args0 " '$ac_arg'" ;;
1401     2)
1402       as_fn_append ac_configure_args1 " '$ac_arg'"
1403       if test $ac_must_keep_next = true; then
1404         ac_must_keep_next=false # Got value, back to normal.
1405       else
1406         case $ac_arg in
1407           *=* | --config-cache | -C | -disable-* | --disable-* \
1408           | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
1409           | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
1410           | -with-* | --with-* | -without-* | --without-* | --x)
1411             case "$ac_configure_args0 " in
1412               "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
1413             esac
1414             ;;
1415           -* ) ac_must_keep_next=true ;;
1416         esac
1417       fi
1418       as_fn_append ac_configure_args " '$ac_arg'"
1419       ;;
1420     esac
1421   done
1422 done
1423 { ac_configure_args0=; unset ac_configure_args0;}
1424 { ac_configure_args1=; unset ac_configure_args1;}
1425
1426 # When interrupted or exit'd, cleanup temporary files, and complete
1427 # config.log.  We remove comments because anyway the quotes in there
1428 # would cause problems or look ugly.
1429 # WARNING: Use '\'' to represent an apostrophe within the trap.
1430 # WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.
1431 trap 'exit_status=$?
1432   # Save into config.log some information that might help in debugging.
1433   {
1434     echo
1435
1436     cat <<\_ASBOX
1437 ## ---------------- ##
1438 ## Cache variables. ##
1439 ## ---------------- ##
1440 _ASBOX
1441     echo
1442     # The following way of writing the cache mishandles newlines in values,
1443 (
1444   for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do
1445     eval ac_val=\$$ac_var
1446     case $ac_val in #(
1447     *${as_nl}*)
1448       case $ac_var in #(
1449       *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
1450 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
1451       esac
1452       case $ac_var in #(
1453       _ | IFS | as_nl) ;; #(
1454       BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
1455       *) { eval $ac_var=; unset $ac_var;} ;;
1456       esac ;;
1457     esac
1458   done
1459   (set) 2>&1 |
1460     case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #(
1461     *${as_nl}ac_space=\ *)
1462       sed -n \
1463         "s/'\''/'\''\\\\'\'''\''/g;
1464           s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p"
1465       ;; #(
1466     *)
1467       sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
1468       ;;
1469     esac |
1470     sort
1471 )
1472     echo
1473
1474     cat <<\_ASBOX
1475 ## ----------------- ##
1476 ## Output variables. ##
1477 ## ----------------- ##
1478 _ASBOX
1479     echo
1480     for ac_var in $ac_subst_vars
1481     do
1482       eval ac_val=\$$ac_var
1483       case $ac_val in
1484       *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
1485       esac
1486       $as_echo "$ac_var='\''$ac_val'\''"
1487     done | sort
1488     echo
1489
1490     if test -n "$ac_subst_files"; then
1491       cat <<\_ASBOX
1492 ## ------------------- ##
1493 ## File substitutions. ##
1494 ## ------------------- ##
1495 _ASBOX
1496       echo
1497       for ac_var in $ac_subst_files
1498       do
1499         eval ac_val=\$$ac_var
1500         case $ac_val in
1501         *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
1502         esac
1503         $as_echo "$ac_var='\''$ac_val'\''"
1504       done | sort
1505       echo
1506     fi
1507
1508     if test -s confdefs.h; then
1509       cat <<\_ASBOX
1510 ## ----------- ##
1511 ## confdefs.h. ##
1512 ## ----------- ##
1513 _ASBOX
1514       echo
1515       cat confdefs.h
1516       echo
1517     fi
1518     test "$ac_signal" != 0 &&
1519       $as_echo "$as_me: caught signal $ac_signal"
1520     $as_echo "$as_me: exit $exit_status"
1521   } >&5
1522   rm -f core *.core core.conftest.* &&
1523     rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&
1524     exit $exit_status
1525 ' 0
1526 for ac_signal in 1 2 13 15; do
1527   trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal
1528 done
1529 ac_signal=0
1530
1531 # confdefs.h avoids OS command line length limits that DEFS can exceed.
1532 rm -f -r conftest* confdefs.h
1533
1534 $as_echo "/* confdefs.h */" > confdefs.h
1535
1536 # Predefined preprocessor variables.
1537
1538 cat >>confdefs.h <<_ACEOF
1539 #define PACKAGE_NAME "$PACKAGE_NAME"
1540 _ACEOF
1541
1542 cat >>confdefs.h <<_ACEOF
1543 #define PACKAGE_TARNAME "$PACKAGE_TARNAME"
1544 _ACEOF
1545
1546 cat >>confdefs.h <<_ACEOF
1547 #define PACKAGE_VERSION "$PACKAGE_VERSION"
1548 _ACEOF
1549
1550 cat >>confdefs.h <<_ACEOF
1551 #define PACKAGE_STRING "$PACKAGE_STRING"
1552 _ACEOF
1553
1554 cat >>confdefs.h <<_ACEOF
1555 #define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
1556 _ACEOF
1557
1558 cat >>confdefs.h <<_ACEOF
1559 #define PACKAGE_URL "$PACKAGE_URL"
1560 _ACEOF
1561
1562
1563 # Let the site file select an alternate cache file if it wants to.
1564 # Prefer an explicitly selected file to automatically selected ones.
1565 ac_site_file1=NONE
1566 ac_site_file2=NONE
1567 if test -n "$CONFIG_SITE"; then
1568   ac_site_file1=$CONFIG_SITE
1569 elif test "x$prefix" != xNONE; then
1570   ac_site_file1=$prefix/share/config.site
1571   ac_site_file2=$prefix/etc/config.site
1572 else
1573   ac_site_file1=$ac_default_prefix/share/config.site
1574   ac_site_file2=$ac_default_prefix/etc/config.site
1575 fi
1576 for ac_site_file in "$ac_site_file1" "$ac_site_file2"
1577 do
1578   test "x$ac_site_file" = xNONE && continue
1579   if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then
1580     { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
1581 $as_echo "$as_me: loading site script $ac_site_file" >&6;}
1582     sed 's/^/| /' "$ac_site_file" >&5
1583     . "$ac_site_file"
1584   fi
1585 done
1586
1587 if test -r "$cache_file"; then
1588   # Some versions of bash will fail to source /dev/null (special files
1589   # actually), so we avoid doing that.  DJGPP emulates it as a regular file.
1590   if test /dev/null != "$cache_file" && test -f "$cache_file"; then
1591     { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5
1592 $as_echo "$as_me: loading cache $cache_file" >&6;}
1593     case $cache_file in
1594       [\\/]* | ?:[\\/]* ) . "$cache_file";;
1595       *)                      . "./$cache_file";;
1596     esac
1597   fi
1598 else
1599   { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5
1600 $as_echo "$as_me: creating cache $cache_file" >&6;}
1601   >$cache_file
1602 fi
1603
1604 # Check that the precious variables saved in the cache have kept the same
1605 # value.
1606 ac_cache_corrupted=false
1607 for ac_var in $ac_precious_vars; do
1608   eval ac_old_set=\$ac_cv_env_${ac_var}_set
1609   eval ac_new_set=\$ac_env_${ac_var}_set
1610   eval ac_old_val=\$ac_cv_env_${ac_var}_value
1611   eval ac_new_val=\$ac_env_${ac_var}_value
1612   case $ac_old_set,$ac_new_set in
1613     set,)
1614       { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
1615 $as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
1616       ac_cache_corrupted=: ;;
1617     ,set)
1618       { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5
1619 $as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
1620       ac_cache_corrupted=: ;;
1621     ,);;
1622     *)
1623       if test "x$ac_old_val" != "x$ac_new_val"; then
1624         # differences in whitespace do not lead to failure.
1625         ac_old_val_w=`echo x $ac_old_val`
1626         ac_new_val_w=`echo x $ac_new_val`
1627         if test "$ac_old_val_w" != "$ac_new_val_w"; then
1628           { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5
1629 $as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
1630           ac_cache_corrupted=:
1631         else
1632           { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
1633 $as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}
1634           eval $ac_var=\$ac_old_val
1635         fi
1636         { $as_echo "$as_me:${as_lineno-$LINENO}:   former value:  \`$ac_old_val'" >&5
1637 $as_echo "$as_me:   former value:  \`$ac_old_val'" >&2;}
1638         { $as_echo "$as_me:${as_lineno-$LINENO}:   current value: \`$ac_new_val'" >&5
1639 $as_echo "$as_me:   current value: \`$ac_new_val'" >&2;}
1640       fi;;
1641   esac
1642   # Pass precious variables to config.status.
1643   if test "$ac_new_set" = set; then
1644     case $ac_new_val in
1645     *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
1646     *) ac_arg=$ac_var=$ac_new_val ;;
1647     esac
1648     case " $ac_configure_args " in
1649       *" '$ac_arg' "*) ;; # Avoid dups.  Use of quotes ensures accuracy.
1650       *) as_fn_append ac_configure_args " '$ac_arg'" ;;
1651     esac
1652   fi
1653 done
1654 if $ac_cache_corrupted; then
1655   { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
1656 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
1657   { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
1658 $as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
1659   as_fn_error "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
1660 fi
1661 ## -------------------- ##
1662 ## Main body of script. ##
1663 ## -------------------- ##
1664
1665 ac_ext=c
1666 ac_cpp='$CPP $CPPFLAGS'
1667 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
1668 ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
1669 ac_compiler_gnu=$ac_cv_c_compiler_gnu
1670
1671
1672
1673 ac_config_headers="$ac_config_headers conv-autoconfig.h"
1674
1675
1676 CHARMINC="."
1677 test -r ./conv-config.sh && . ./conv-config.sh
1678
1679 # Decimal representation of Charm++ release line and API revision
1680 # Increment the last 2 digits when making an API change
1681 # Increase the first three after branching for a release
1682 VERSION=60401
1683 echo $VERSION > ../include/VERSION
1684
1685 cat >>confdefs.h <<_ACEOF
1686 #define CHARM_VERSION $VERSION
1687 _ACEOF
1688
1689
1690 charmout="charmconfig.out"
1691 /bin/rm -rf $charmout
1692 MAKEFILE_EXT=Make.extlib
1693
1694 Echo() {
1695         echo $*
1696         echo $* >> $charmout
1697 }
1698
1699 # add into conv-mach-opt.sh
1700 # add_flag $1 $2
1701 # $2 is description
1702 add_flag() {
1703         key=`echo $1 | cut -d'=' -f1`
1704         last=`grep "$key=" ../include/conv-mach-opt.sh 2>/dev/null | tail -1 | sed -e 's/ *#.*$//'`
1705         skip=0
1706         if test -n "$last" -a  "$last" = "$1"
1707         then
1708           skip=1
1709         fi
1710         if test $skip = 0
1711         then
1712           cat >> ../include/conv-mach-opt.sh << EOT
1713
1714 $1   # Option added by configure script's $2 section
1715 EOT
1716         fi
1717 }
1718
1719 # remove_flag $1
1720 remove_flag() {
1721      sed -e '/^'"$1"'=/d' ../include/conv-mach-opt.sh > tmp.$$
1722      cp tmp.$$ ../include/conv-mach-opt.sh
1723      /bin/rm -f tmp.$$
1724 }
1725
1726
1727 # enable/disable error checking
1728 # Check whether --enable-error-checking was given.
1729 if test "${enable_error_checking+set}" = set; then :
1730   enableval=$enable_error_checking;
1731 else
1732   enable_error_checking=yes
1733 fi
1734
1735
1736 if test "$enable_error_checking" = "no"
1737 then
1738   Echo "Error checking is disabled"
1739
1740 cat >>confdefs.h <<_ACEOF
1741 #define CMK_ERROR_CHECKING 0
1742 _ACEOF
1743
1744 else
1745   Echo "Error checking is enabled"
1746
1747 cat >>confdefs.h <<_ACEOF
1748 #define CMK_ERROR_CHECKING 1
1749 _ACEOF
1750
1751 fi
1752
1753 # enable/disable statistics collection
1754 # Check whether --enable-stats was given.
1755 if test "${enable_stats+set}" = set; then :
1756   enableval=$enable_stats;
1757 else
1758   enable_stats=yes
1759 fi
1760
1761
1762 if test "$enable_stats" = "no"
1763 then
1764   Echo "Statistics collection is disabled"
1765
1766 cat >>confdefs.h <<_ACEOF
1767 #define CMK_WITH_STATS 0
1768 _ACEOF
1769
1770 else
1771   Echo "Statistics collection is enabled"
1772
1773 cat >>confdefs.h <<_ACEOF
1774 #define CMK_WITH_STATS 1
1775 _ACEOF
1776
1777 fi
1778
1779 # check enable/disable
1780 # Check whether --enable-tracing was given.
1781 if test "${enable_tracing+set}" = set; then :
1782   enableval=$enable_tracing;
1783 else
1784   enable_tracing=yes
1785 fi
1786
1787
1788 if test "$enable_tracing" = "no"
1789 then
1790   Echo "Charm tracing is disabled"
1791
1792 cat >>confdefs.h <<_ACEOF
1793 #define CMK_TRACE_ENABLED 0
1794 _ACEOF
1795
1796   add_flag CMK_TRACE_ENABLED=0
1797 else
1798   Echo "Charm tracing is enabled"
1799
1800 cat >>confdefs.h <<_ACEOF
1801 #define CMK_TRACE_ENABLED 1
1802 _ACEOF
1803
1804   add_flag CMK_TRACE_ENABLED=1
1805 fi
1806
1807 # Check whether --enable-tracing-commthread was given.
1808 if test "${enable_tracing_commthread+set}" = set; then :
1809   enableval=$enable_tracing_commthread;
1810 else
1811   enable_tracing_commthread=yes
1812 fi
1813
1814
1815 if test "$enable_tracing_commthread" = "yes"
1816 then
1817   Echo "Charm tracing communication thread is enabled"
1818
1819 cat >>confdefs.h <<_ACEOF
1820 #define CMK_SMP_TRACE_COMMTHREAD 1
1821 _ACEOF
1822
1823 else
1824   Echo "Charm tracing communication thread is disabled"
1825
1826 cat >>confdefs.h <<_ACEOF
1827 #define CMK_SMP_TRACE_COMMTHREAD 0
1828 _ACEOF
1829
1830 fi
1831
1832
1833 # Check whether --enable-charmdebug was given.
1834 if test "${enable_charmdebug+set}" = set; then :
1835   enableval=$enable_charmdebug;
1836 else
1837   enable_charmdebug=yes
1838 fi
1839
1840
1841 if test "$enable_charmdebug" = "no"
1842 then
1843   Echo "CharmDebug is disabled"
1844
1845 cat >>confdefs.h <<_ACEOF
1846 #define CMK_CHARMDEBUG 0
1847 _ACEOF
1848
1849   add_flag CMK_CHARMDEBUG=0
1850 else
1851   Echo "CharmDebug is enabled"
1852
1853 cat >>confdefs.h <<_ACEOF
1854 #define CMK_CHARMDEBUG 1
1855 _ACEOF
1856
1857   add_flag CMK_CHARMDEBUG=1
1858 fi
1859
1860 # Check whether --enable-replay was given.
1861 if test "${enable_replay+set}" = set; then :
1862   enableval=$enable_replay; enable_replay=$enableval
1863 else
1864   enable_replay=yes
1865 fi
1866
1867
1868 if test "$enable_replay" = "no"
1869 then
1870   Echo "Charm record/replay is disabled"
1871
1872 cat >>confdefs.h <<_ACEOF
1873 #define CMK_REPLAYSYSTEM 0
1874 _ACEOF
1875
1876 else
1877   Echo "Charm record/replay is enabled"
1878 fi
1879
1880 # Check whether --enable-ccs was given.
1881 if test "${enable_ccs+set}" = set; then :
1882   enableval=$enable_ccs;
1883 else
1884   enable_ccs=yes
1885 fi
1886
1887
1888 if test "$enable_ccs" = "no"
1889 then
1890   Echo "CCS is disabled"
1891
1892 cat >>confdefs.h <<_ACEOF
1893 #define CMK_CCS_AVAILABLE 0
1894 _ACEOF
1895
1896 else
1897   Echo "CCS is enabled"
1898
1899 cat >>confdefs.h <<_ACEOF
1900 #define CMK_CCS_AVAILABLE 1
1901 _ACEOF
1902
1903 fi
1904
1905 # Check whether --enable-controlpoint was given.
1906 if test "${enable_controlpoint+set}" = set; then :
1907   enableval=$enable_controlpoint; enable_controlpoint=$enableval
1908 else
1909   enable_controlpoint=yes
1910 fi
1911
1912
1913 if test "$enable_controlpoint" = "yes"
1914 then
1915   Echo "Charm control point is enabled"
1916
1917 cat >>confdefs.h <<_ACEOF
1918 #define CMK_WITH_CONTROLPOINT 1
1919 _ACEOF
1920
1921 else
1922   Echo "Charm control point is disabled"
1923
1924 cat >>confdefs.h <<_ACEOF
1925 #define CMK_WITH_CONTROLPOINT 0
1926 _ACEOF
1927
1928 fi
1929
1930
1931 # Check whether --with-numa was given.
1932 if test "${with_numa+set}" = set; then :
1933   withval=$with_numa;
1934 else
1935   with_numa=no
1936 fi
1937
1938
1939 WITH_NUMA=no
1940 if test "$with_numa" = "yes"
1941 then
1942   Echo "Charm NUMA support is builtin"
1943   WITH_NUMA=yes
1944 fi
1945
1946
1947 # Check whether --with-lbtime-type was given.
1948 if test "${with_lbtime_type+set}" = set; then :
1949   withval=$with_lbtime_type;
1950 else
1951   with_lbtime_type=double
1952 fi
1953
1954
1955 if test "$with_lbtime_type" = "float" -o "$with_lbtime_type" = "double"
1956 then
1957   Echo "Setting load balancing timer type as '$with_lbtime_type'"
1958
1959 cat >>confdefs.h <<_ACEOF
1960 #define CMK_LBTIME_TYPE $with_lbtime_type
1961 _ACEOF
1962
1963 else
1964   Echo "Invalid type specified for load balancing timer type"
1965   test_finish 1
1966 fi
1967
1968 #clean up conv-mach-opt.sh
1969 sed -e '/Option added by configure/d' ../include/conv-mach-opt.sh  | sed -e '/^$/d' > conv-mach-opt.sh.clean
1970 cp -f conv-mach-opt.sh.clean   ../include/conv-mach-opt.sh
1971 rm -f conv-mach-opt.sh.clean
1972
1973
1974 #
1975 { $as_echo "$as_me:${as_lineno-$LINENO}: checking machine name" >&5
1976 $as_echo_n "checking machine name... " >&6; }
1977 version=`pwd | awk -F/ '{print $(NF-1)}'`
1978 base_version=`cat .vdir`
1979
1980 cat >>confdefs.h <<_ACEOF
1981 #define CMK_MACHINE_NAME "$version"
1982 _ACEOF
1983
1984 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $version" >&5
1985 $as_echo "$version" >&6; }
1986
1987
1988 t="test.cpp"
1989 tc="test.c"
1990
1991 # test result passed in $1
1992 # If the test suceeded, print $3 and set "pass"/clear "fail"
1993 # If the test failed, print $2 and clear "pass"/set "fail"
1994 test_result() {
1995         if test $1 -eq 0
1996         then
1997                 { $as_echo "$as_me:${as_lineno-$LINENO}: result: \"$3\"" >&5
1998 $as_echo "\"$3\"" >&6; }
1999                 pass="1"
2000                 fail="0"
2001         else
2002                 { $as_echo "$as_me:${as_lineno-$LINENO}: result: \"$4\"" >&5
2003 $as_echo "\"$4\"" >&6; }
2004                 pass="0"
2005                 fail="1"
2006 # For debugging the configure script, just "export autoconf_debug=1"
2007 #  to get this verbose data on any failed tests:
2008                 if test ! -z "$autoconf_debug"
2009                 then
2010                         echo "------- test script for $2 failed:"
2011                         cat out
2012                         echo "------- the test program was:"
2013                         cat $t
2014                         echo "-------"
2015                 fi
2016         fi
2017 }
2018
2019 # Test: tries to compile C file $t (described by $1).
2020 #  If successful, prints $2 and sets $pass/clears $fail
2021 #  If failure, prints $3 and sets $pass/clears $fail
2022 #  additional arguments to c++ compiler are passed as $4
2023 test_cc() {
2024         { $as_echo "$as_me:${as_lineno-$LINENO}: checking \"$1\"" >&5
2025 $as_echo_n "checking \"$1\"... " >&6; }
2026         echo "### $1" >> $charmout
2027         cat $tc >> $charmout
2028         echo $CMK_CC -I../include -I. $CMK_LIBDIR $CMK_INCDIR $OPTS_CC $OPTS_LD -c $tc -o test.o $4 >> $charmout
2029         $CMK_CC -I../include -I. $CMK_LIBDIR $CMK_INCDIR $OPTS_CC $OPTS_LD -c $tc -o test.o $4 > out 2>&1
2030         test_result $? "$1" "$2" "$3"
2031         strictpass=$pass
2032         strictfail=$fail
2033         if test $pass -eq 1
2034         then
2035           if cat out | grep -i "warn" > /dev/null 2>&1
2036           then
2037             strictpass="0" && strictfail="1"
2038           fi
2039         fi
2040         cat out >> $charmout
2041         /bin/rm -f out
2042 }
2043
2044 # Test: tries to compile C++ file $t (described by $1).
2045 #  If successful, prints $2 and sets $pass/clears $fail
2046 #  If failure, prints $3 and sets $pass/clears $fail
2047 #  additional arguments to c++ compiler are passed as $4
2048 test_cxx() {
2049         { $as_echo "$as_me:${as_lineno-$LINENO}: checking \"$1\"" >&5
2050 $as_echo_n "checking \"$1\"... " >&6; }
2051         echo "### $1" >> $charmout
2052         cat $t >> $charmout
2053         echo $CMK_CXX -I../include -I. $CMK_LIBDIR $CMK_INCDIR $OPTS_CXX $OPTS_LD -c $t -o test.o $4 >> $charmout
2054         $CMK_CXX -I../include -I. $CMK_LIBDIR $CMK_INCDIR $OPTS_CXX $OPTS_LD -c $t -o test.o $4 > out 2>&1
2055         test_result $? "$1" "$2" "$3"
2056         strictpass=$pass
2057         strictfail=$fail
2058         if test $pass -eq 1
2059         then
2060           if cat out | grep -i "warn" > /dev/null 2>&1
2061           then
2062             strictpass="0" && strictfail="1"
2063           fi
2064         fi
2065         cat out >> $charmout
2066         /bin/rm -f out
2067 }
2068
2069 # Testlink: tries to compile and link a C++ file $t (described by $1).
2070 #  If successful, prints $2 and sets $pass/clears $fail
2071 #  If failure, prints $3 and sets $pass/clears $fail
2072 #  additional arguments to c++ compiler are passed as $4
2073 test_link() {
2074         { $as_echo "$as_me:${as_lineno-$LINENO}: checking \"$1\"" >&5
2075 $as_echo_n "checking \"$1\"... " >&6; }
2076         echo "### $1" >> $charmout
2077         cat $t >> $charmout
2078         echo $CMK_CXX -I../include -I. $CMK_INCDIR $OPTS_CXX -c $t -o test.o $4 >> $charmout
2079         $CMK_CXX -I../include -I. $CMK_INCDIR $OPTS_CXX -c $t -o test.o $4 > out 2>&1
2080         if test $? -ne 0
2081         then
2082           test_result 1 "$1" "$2" "$3"
2083         else
2084           echo $CMK_LDXX -o testlink test.o $CMK_LIBDIR $OPTS_LD $CMK_SYSLIBS $4 >> $charmout
2085           $CMK_LDXX -o testlink test.o $CMK_LIBDIR $OPTS_LD $CMK_SYSLIBS $4 >> out 2>&1
2086           ret=$?
2087           test ! -x testlink && ret=1
2088           test_result $ret "$1" "$2" "$3"
2089         fi
2090         strictpass=$pass
2091         strictfail=$fail
2092         if test $pass -eq 1
2093         then
2094           if cat out | grep -i "warn" > /dev/null 2>&1
2095           then
2096             strictpass="0" && strictfail="1"
2097           fi
2098         fi
2099         cat out >> $charmout
2100         /bin/rm -f out
2101 }
2102
2103 # Testlinkc: tries to compile and link a C file $t (described by $1).
2104 #  If successful, prints $2 and sets $pass/clears $fail
2105 #  If failure, prints $3 and sets $pass/clears $fail
2106 #  additional arguments to c++ compiler are passed as $4
2107 test_linkc() {
2108         { $as_echo "$as_me:${as_lineno-$LINENO}: checking \"$1\"" >&5
2109 $as_echo_n "checking \"$1\"... " >&6; }
2110         echo "### $1" >> $charmout
2111         cat $tc >> $charmout
2112         echo $CMK_CC -I../include -I. $CMK_INCDIR $OPTS_CC -c $tc -o test.o $4 >> $charmout
2113         $CMK_CC -I../include -I. $CMK_INCDIR $OPTS_CC -c $tc -o test.o $4 > out 2>&1
2114         if test $? -ne 0
2115         then
2116           test_result 1 "$1" "$2" "$3"
2117         else
2118           echo $CMK_LD -o testlink test.o $CMK_LIBDIR $OPTS_LD $CMK_SYSLIBS $4 >> $charmout
2119           $CMK_LD -o testlink test.o $CMK_LIBDIR $OPTS_LD $CMK_SYSLIBS $4 >> out 2>&1
2120           test_result $? "$1" "$2" "$3"
2121         fi
2122         strictpass=$pass
2123         strictfail=$fail
2124         if test $pass -eq 1
2125         then
2126           if cat out | grep -i "warn" > /dev/null 2>&1
2127           then
2128             strictpass="0" && strictfail="1"
2129           fi
2130         fi
2131         cat out >> $charmout
2132         /bin/rm -f out
2133 }
2134
2135 # test_linkso $1 $2 $3 $4, where
2136 # $1: debug msg
2137 # $2: yes msg
2138 # $3: no msg
2139 # $4: extra link option
2140 test_linkso() {
2141         { $as_echo "$as_me:${as_lineno-$LINENO}: checking \"$1\"" >&5
2142 $as_echo_n "checking \"$1\"... " >&6; }
2143         echo $1 >> $charmout
2144         cat $t >> $charmout
2145         echo $CMK_CXX -I../include -I. $CMK_INCDIR $OPTS_CXX $CMK_PIC -c $t -o test.o $4 >> $charmout
2146         $CMK_CXX -I../include -I. $CMK_INCDIR $OPTS_CXX -c $CMK_PIC $t -o test.o $4 > out 2>&1
2147         if test $? = 1
2148         then
2149           test_result 1 "$1" "$2" "$3"
2150         else
2151           echo $CMK_LD -I../include -I. $CMK_LIBDIR $OPTS_LD $CMK_LD_SHARED test.o -o testlink.$CMK_SHARED_SUF $4 >> $charmout
2152           $CMK_LD -I../include -I. $CMK_LIBDIR $OPTS_LD $CMK_LD_SHARED test.o -o testlink.$CMK_SHARED_SUF $4 > out 2>&1
2153           test_result $? "$1" "$2" "$3"
2154         fi
2155         cat out >> $charmout
2156         /bin/rm -f out testlink.$CMK_SHARED_SUF
2157 }
2158
2159 test_finish() {
2160         rm -f $t $tc testlink test.o    > /dev/null 2>&1
2161         /bin/rm -f out
2162         test $1 -eq 1 && echo "*** Please find detailed output in charmconfig.out ***"
2163         exit $1
2164 }
2165
2166 # detect certain architectures
2167 if cat /proc/cpuinfo 2>/dev/null | grep 'POWER7'  > /dev/null
2168 then
2169
2170 cat >>confdefs.h <<_ACEOF
2171 #define CMK_POWER7 1
2172 _ACEOF
2173
2174 fi
2175
2176 # detect OS
2177 OSNAME=`uname -s`
2178 if test $OSNAME = "Linux"
2179 then
2180
2181 cat >>confdefs.h <<_ACEOF
2182 #define CMK_OS_IS_LINUX 1
2183 _ACEOF
2184
2185 else
2186
2187 cat >>confdefs.h <<_ACEOF
2188 #define CMK_OS_IS_LINUX 0
2189 _ACEOF
2190
2191 fi
2192
2193 # test cp -p
2194 { $as_echo "$as_me:${as_lineno-$LINENO}: checking \"cp command as\"" >&5
2195 $as_echo_n "checking \"cp command as\"... " >&6; }
2196 CP="cp -p"
2197 touch test_file
2198 if ! $CP test_file test_file.cp 2>err
2199 then
2200   CP="cp"
2201 fi
2202 rm -f test_file test_file.cp
2203 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CP" >&5
2204 $as_echo "$CP" >&6; }
2205 add_flag CP=\""$CP"\" "cp command"
2206
2207
2208 # try to decide the version of glibc
2209 get_glibc_version() {
2210 t=test.c
2211 cat > $t <<EOT
2212 #include <stdio.h>
2213 #include <gnu/libc-version.h>
2214 int main (void) { puts (gnu_get_libc_version ()); return 0; }
2215 EOT
2216 gcc -o gver test.c
2217 GLIBCVERSION=`./gver`
2218 /bin/rm -f $t gver
2219 }
2220
2221 cat > $t <<EOT
2222 #include <stdio.h>
2223 void foo(void) {
2224         printf("Hello, world!\n");
2225 }
2226 EOT
2227 #echo "set C++ compiler as: $CMK_CXX $OPTS_CXX $OPTS"
2228 { $as_echo "$as_me:${as_lineno-$LINENO}: checking \"C++ compiler as\"" >&5
2229 $as_echo_n "checking \"C++ compiler as\"... " >&6; }
2230 { $as_echo "$as_me:${as_lineno-$LINENO}: result: \"$CMK_CXX $OPTS_CXX $OPTS\"" >&5
2231 $as_echo "\"$CMK_CXX $OPTS_CXX $OPTS\"" >&6; }
2232 test_cxx "whether C++ compiler works" "ok" "no" ""
2233 if test $fail -eq 1
2234 then
2235         echo "Cannot compile C++ programs with $CMK_CXX"
2236         echo " (check your charm++ version)"
2237         test_finish 1
2238 fi
2239
2240 cat > $t <<EOT
2241 #include <stdio.h>
2242 int main() {
2243         printf("Hello, world!\n");
2244         return 0;
2245 }
2246 EOT
2247 #echo "set C++ linker as: $CMK_LDXX $OPTS_LDXX"
2248 { $as_echo "$as_me:${as_lineno-$LINENO}: checking \"C++ linker as\"" >&5
2249 $as_echo_n "checking \"C++ linker as\"... " >&6; }
2250 { $as_echo "$as_me:${as_lineno-$LINENO}: result: \"$CMK_LDXX $OPTS_LDXX\"" >&5
2251 $as_echo "\"$CMK_LDXX $OPTS_LDXX\"" >&6; }
2252 test_link "whether linker works" "ok" "no" ""
2253 if test $fail -eq 1
2254 then
2255         echo "Cannot link C++ programs with $CMK_LDXX"
2256         echo " (check your charm++ version)"
2257         test_finish 1
2258 fi
2259
2260 { $as_echo "$as_me:${as_lineno-$LINENO}: checking \"Native C++ compiler as\"" >&5
2261 $as_echo_n "checking \"Native C++ compiler as\"... " >&6; }
2262 { $as_echo "$as_me:${as_lineno-$LINENO}: result: \"$CMK_NATIVE_CXX\"" >&5
2263 $as_echo "\"$CMK_NATIVE_CXX\"" >&6; }
2264 { $as_echo "$as_me:${as_lineno-$LINENO}: checking \"Sequential C++ compiler as\"" >&5
2265 $as_echo_n "checking \"Sequential C++ compiler as\"... " >&6; }
2266 { $as_echo "$as_me:${as_lineno-$LINENO}: result: \"$CMK_SEQ_CXX\"" >&5
2267 $as_echo "\"$CMK_SEQ_CXX\"" >&6; }
2268
2269 if test "$base_version" = "net-linux"
2270 then
2271   test_link "whether linker accept --allow-multiple-definition" "ok" "no" "-Wl,--allow-multiple-definition"
2272   if test $pass -eq 1
2273   then
2274         remove_flag CMK_LDXX
2275         add_flag CMK_LDXX='"$CMK_LDXX -Wl,--allow-multiple-definition"' "net-linux linker"
2276   fi
2277 fi
2278
2279 if echo "$base_version" | grep "linux" > /dev/null 2> /dev/null
2280 then
2281   test_link "whether compiler accept -fno-stack-protector" "ok" "no" "-fno-stack-protector"
2282   if test $strictpass -eq 1
2283   then
2284         add_flag OPTS_CC='"$OPTS_CC -fno-stack-protector"' "linux compiler"
2285         add_flag OPTS_CXX='"$OPTS_CXX -fno-stack-protector"' "linux compiler"
2286   fi
2287 fi
2288
2289 # Figure out if the user has asked to enable the latest language standards
2290 USER_ASKED_FOR_NEW_STD=`echo "$BUILDOPTS" | grep "-use-new-std" | wc -l`
2291
2292 # If the user has asked for the newer standards, check if the compilers know about them
2293 if test $USER_ASKED_FOR_NEW_STD -ge 1
2294 then
2295
2296 #### check if c compiler supports c11 compilation flags ####
2297 cat > $tc <<EOT
2298 #include <stdio.h>
2299
2300 int foo()
2301 {
2302   return 0;
2303 }
2304 EOT
2305 test_cc "whether c compiler knows of the c11 standard" "ok" "no" "$CMK_ENABLE_C11"
2306
2307 cat >>confdefs.h <<_ACEOF
2308 #define CMK_COMPILER_KNOWS_C11 $pass
2309 _ACEOF
2310
2311 if test $pass -eq 1
2312 then
2313         # Record results for charmc's future use
2314         add_flag 'CMK_COMPILER_KNOWS_C11="1"' "c11"
2315         # For the rest of configure, append this to compilation flags
2316         OPTS_CC="$CMK_ENABLE_C11 $OPTS"
2317 fi
2318
2319 #### check if C++ compiler supports cpp11 compilation flags ####
2320 cat > $t <<EOT
2321 #include <iostream>
2322
2323 int foo()
2324 {
2325   return 0;
2326 }
2327 EOT
2328 test_cxx "whether c++ compiler knows of the cpp11 standard" "ok" "no" "$CMK_ENABLE_CPP11"
2329
2330 cat >>confdefs.h <<_ACEOF
2331 #define CMK_COMPILER_KNOWS_CPP11 $pass
2332 _ACEOF
2333
2334 if test $pass -eq 1
2335 then
2336         # Record results for charmc's future use
2337         add_flag 'CMK_COMPILER_KNOWS_CPP11="1"' "cpp11"
2338         # For the rest of configure, append this to compilation flags
2339         OPTS_CXX="$CMK_ENABLE_CPP11 $OPTS"
2340 fi
2341
2342 fi # endif USER_ASKED_FOR_NEW_STD
2343
2344
2345 # Perform the tests
2346
2347
2348 # Check whether --with-refnum-type was given.
2349 if test "${with_refnum_type+set}" = set; then :
2350   withval=$with_refnum_type;
2351 else
2352   with_refnum_type=no
2353 fi
2354
2355
2356 if test "$with_refnum_type" = "no" -o "$with_refnum_type" = "short"
2357 then
2358   Echo "Setting charm++ envelop refnum field to unsigned short"
2359
2360 cat >>confdefs.h <<_ACEOF
2361 #define CMK_REFNUM_TYPE unsigned short
2362 _ACEOF
2363
2364 elif test "$with_refnum_type" = "int"
2365 then
2366   Echo "Setting charm++ envelop refnum field to unsigned int"
2367
2368 cat >>confdefs.h <<_ACEOF
2369 #define CMK_REFNUM_TYPE unsigned int
2370 _ACEOF
2371
2372 else
2373   Echo "Invalid size specified for refnum field"
2374   test_finish 1
2375 fi
2376
2377 #### Check if compiler if 64 bit ####
2378 cat > $t <<EOT
2379 #include <stdio.h>
2380
2381 int foo()
2382 {
2383 int x[(int)(sizeof(void *) - 7)]={0};
2384 return x[0];
2385 }
2386 EOT
2387 test_cxx "whether compiler generates code for 64-bit" "yes" "no" ""
2388
2389 cat >>confdefs.h <<_ACEOF
2390 #define CMK_SIZET_64BIT $strictpass
2391 _ACEOF
2392
2393 in64bit=$strictpass
2394
2395
2396 #### check strings.h ####
2397 cat > $t <<EOT
2398 #include <strings.h>
2399 int main() {
2400   char str[8];
2401   bzero(str, 8);
2402   return 0;
2403 }
2404 EOT
2405 test_cxx "whether has strings.h " "yes" "no" ""
2406
2407 cat >>confdefs.h <<_ACEOF
2408 #define CMK_HAS_STRINGS_H $pass
2409 _ACEOF
2410
2411
2412 #### test if has values.h ####
2413 cat > $t <<EOT
2414 #include <values.h>
2415 int main() {
2416   double d = MAXDOUBLE;
2417   return 0;
2418 }
2419 EOT
2420 test_cxx "whether has values.h " "yes" "no" ""
2421
2422 cat >>confdefs.h <<_ACEOF
2423 #define CMK_HAS_VALUES_H $pass
2424 _ACEOF
2425
2426
2427 #### test if has stdint.h ####
2428 cat > $t <<EOT
2429 #include <stdint.h>
2430 int main() {
2431   return 0;
2432 }
2433 EOT
2434 test_cxx "whether has stdint.h " "yes" "no" ""
2435
2436 cat >>confdefs.h <<_ACEOF
2437 #define CMK_HAS_STDINT_H $pass
2438 _ACEOF
2439
2440
2441 #### test if has malloc.h ####
2442 cat > $t <<EOT
2443 #include <malloc.h>
2444 int main() {
2445   return 0;
2446 }
2447 EOT
2448 test_cxx "whether has malloc.h " "yes" "no" ""
2449
2450 cat >>confdefs.h <<_ACEOF
2451 #define CMK_HAS_MALLOC_H $pass
2452 _ACEOF
2453
2454
2455 #### test if has alloca.h ####
2456 cat > $t <<EOT
2457 #include <alloca.h>
2458 int main() {
2459   double *s=(double *)alloca(sizeof(double));
2460   *s=1.0;
2461   return 0;
2462 }
2463 EOT
2464 test_cxx "whether has alloca.h " "yes" "no" ""
2465
2466 cat >>confdefs.h <<_ACEOF
2467 #define CMK_HAS_ALLOCA_H $pass
2468 _ACEOF
2469
2470
2471 #### test if has regex.h ####
2472 cat > $t <<EOT
2473 #include <regex.h>
2474 int main() {
2475   regex_t re;
2476   regcomp(&re, ".*MOD.*", REG_EXTENDED|REG_NOSUB);
2477   return 0;
2478 }
2479 EOT
2480 test_cxx "whether has regex.h " "yes" "no" ""
2481
2482 cat >>confdefs.h <<_ACEOF
2483 #define CMK_HAS_REGEX_H $pass
2484 _ACEOF
2485
2486
2487 #### Check bool ####
2488 cat > $t <<EOT
2489 #include <stdlib.h>
2490 bool foo(void) { return true; }
2491 EOT
2492 test_cxx "whether C++ bool works" "ok" "no" ""
2493
2494 cat >>confdefs.h <<_ACEOF
2495 #define CMK_BOOL_DEFINED $pass
2496 _ACEOF
2497
2498
2499 #### Check long long ####
2500 cat > $t <<EOT
2501 #include <stdlib.h>
2502 long long foo(void) { return 17; }
2503 EOT
2504 test_cxx "whether long long works" "yes" "no" ""
2505
2506 cat >>confdefs.h <<_ACEOF
2507 #define CMK_LONG_LONG_DEFINED $pass
2508 _ACEOF
2509
2510
2511 #### Check __int64 ####
2512 cat > $t <<EOT
2513 #include <stdlib.h>
2514 __int64 foo(void) { return 17; }
2515 EOT
2516 test_cxx "whether __int64 works" "yes" "no" ""
2517
2518 cat >>confdefs.h <<_ACEOF
2519 #define CMK___int64_DEFINED $pass
2520 _ACEOF
2521
2522
2523 #### Check __int128 ####
2524 cat > $t <<EOT
2525 #include <stdlib.h>
2526 int foo(void) {
2527   __int128   a;
2528   int x[(int)(sizeof(__int128) - 15)]={0};
2529   return x[0];
2530 }
2531 EOT
2532 test_cxx "whether __int128 (128-bit integer) works" "yes" "no" ""
2533
2534 cat >>confdefs.h <<_ACEOF
2535 #define CMK___int128_DEFINED $pass
2536 _ACEOF
2537
2538
2539 #### Check long double ####
2540 cat > $t <<EOT
2541 #include <stdlib.h>
2542 long double foo(void) { return 17.0; }
2543 EOT
2544 test_cxx "whether long double works" "yes" "no" ""
2545
2546 cat >>confdefs.h <<_ACEOF
2547 #define CMK_LONG_DOUBLE_DEFINED $strictpass
2548 _ACEOF
2549
2550
2551 #### Check ucontext and FPU pointer ####
2552 cat > $t <<EOT
2553 #include <ucontext.h>
2554 struct _libc_fpstate   fpstate;
2555 fpregset_t *fp;
2556 EOT
2557 test_cxx "whether ucontext has FPU pointer" "yes" "no" ""
2558
2559 cat >>confdefs.h <<_ACEOF
2560 #define CMK_CONTEXT_FPU_POINTER $pass
2561 _ACEOF
2562
2563
2564 if test $pass -eq 1
2565 then
2566 cat > $t <<EOT
2567 #include <ucontext.h>
2568
2569 int main()
2570 {
2571   ucontext_t context;
2572   context.uc_mcontext.uc_regs = 0;
2573 }
2574 EOT
2575 test_cxx "whether ucontext uses uc_regs" "yes" "no" ""
2576
2577 cat >>confdefs.h <<_ACEOF
2578 #define CMK_CONTEXT_FPU_POINTER_UCREGS $pass
2579 _ACEOF
2580
2581 fi
2582
2583 cat > $t <<EOT
2584 #include <ucontext.h>
2585 vrregset_t *v_regs;
2586 ucontext_t  uc;
2587
2588 void foo()
2589 {
2590   vrregset_t *ptr = uc.uc_mcontext.v_regs;
2591 }
2592 EOT
2593 test_cxx "whether ucontext has pointer (v_regs) of vector type" "yes" "no" ""
2594
2595 cat >>confdefs.h <<_ACEOF
2596 #define CMK_CONTEXT_V_REGS $pass
2597 _ACEOF
2598
2599
2600 #### Check ucontext and FPU pointer ####
2601 cat > $t <<EOT
2602 #include <infiniband/verbs.h>
2603 void test()
2604 {
2605     struct ibv_context    *context;
2606     int ibPort;
2607     struct ibv_port_attr attr;
2608     if (ibv_query_port(context, ibPort, &attr) != 0) return;
2609     if (attr.link_layer == IBV_LINK_LAYER_INFINIBAND)  return;
2610 }
2611 EOT
2612 test_cxx "whether ibverbs ibv_port_attr has link_layer field" "yes" "no" ""
2613
2614 cat >>confdefs.h <<_ACEOF
2615 #define CMK_IBV_PORT_ATTR_HAS_LINK_LAYER $pass
2616 _ACEOF
2617
2618
2619
2620 ###################### C++ Compiler Features #####################
2621
2622 #### check C inline ####
2623 cat > $tc <<EOT
2624 inline static int foo()
2625 {
2626   return 1;
2627 }
2628 EOT
2629 test_cc "whether inline works in C" "yes" "no" ""
2630
2631 cat >>confdefs.h <<_ACEOF
2632 #define CMK_C_INLINE $strictpass
2633 _ACEOF
2634
2635
2636 #### check explicit ####
2637 cat > $t <<EOT
2638 #include <stdlib.h>
2639 class er {
2640  protected:
2641    explicit er(unsigned int inType) {};
2642 };
2643 EOT
2644 test_cxx "whether C++ class explicit keyword works" "ok" "no" ""
2645
2646 cat >>confdefs.h <<_ACEOF
2647 #define CMK_EXPLICIT $pass
2648 _ACEOF
2649
2650
2651 #### check if signed char is same as char ####
2652 cat > $t <<EOT
2653 #include <stdlib.h>
2654 class er {
2655  protected:
2656    void operator()(char &v,const char *desc=NULL) {};
2657    void operator()(signed char &v,const char *desc=NULL) {};
2658 };
2659 EOT
2660 test_cxx "whether C++ signed char and char differ" "yes" "no" ""
2661
2662 cat >>confdefs.h <<_ACEOF
2663 #define CMK_SIGNEDCHAR_DIFF_CHAR $pass
2664 _ACEOF
2665
2666
2667 #### check if C++ casts work ####
2668 cat > $t <<EOT
2669 int foo(float *t) {return *reinterpret_cast<int *>(t);}
2670 EOT
2671 test_cxx "whether C++ *_casts<> work" "ok" "no" ""
2672
2673 cat >>confdefs.h <<_ACEOF
2674 #define CMK_CPP_CAST_LEGAL $pass
2675 _ACEOF
2676
2677
2678 cat >>confdefs.h <<_ACEOF
2679 #define CMK_CPP_CAST_ILLEGAL $fail
2680 _ACEOF
2681
2682
2683
2684 ### check if varsize array on stack ####
2685 cat > $t <<EOT
2686 #include <stdio.h>
2687 void foo()
2688 {
2689   int size=10;
2690   char arrsize;
2691 }
2692
2693 EOT
2694 test_cxx "whether C++ allows declaration of varsize array" "yes" "no" ""
2695
2696 cat >>confdefs.h <<_ACEOF
2697 #define CMK_DECLARE_VARSIZE_ARRAY $pass
2698 _ACEOF
2699
2700
2701 #### check if namespaces can be defined #####
2702 cat > $t <<EOT
2703 namespace foo {
2704         int x;
2705 }
2706 EOT
2707 test_cxx "whether namespaces work" "ok" "no" ""
2708
2709 cat >>confdefs.h <<_ACEOF
2710 #define CMK_NAMESPACES_BROKEN $fail
2711 _ACEOF
2712
2713
2714
2715 #### check if typeinfo exists and works #####
2716 cat > $t <<EOT
2717 #include <typeinfo>
2718 const char *foo(void) {
2719         int x;
2720         return typeid(x).name();
2721 }
2722 EOT
2723 test_cxx "whether typeinfo/typeid works" "ok" "no" ""
2724
2725 cat >>confdefs.h <<_ACEOF
2726 #define CMK_HAS_TYPEINFO $pass
2727 _ACEOF
2728
2729
2730 #### check if iterator_traits is defined #####
2731 cat > $t <<EOT
2732 #include <iterator>
2733
2734 template <typename T> // T models Input Iterator
2735 typename std::iterator_traits<T>::value_type accumulate(T first, T last)
2736 {
2737       typename std::iterator_traits<T>::value_type result = 0;
2738       while(first != last)
2739             result += *first++;
2740       return result;
2741 }
2742 EOT
2743 test_cxx "whether std::iterator_traits is defined" "ok" "no" ""
2744
2745 cat >>confdefs.h <<_ACEOF
2746 #define CMK_HAS_ITERATOR_TRAITS $pass
2747 _ACEOF
2748
2749
2750 #### check if std::distance is defined #####
2751 cat > $t <<EOT
2752 #include <vector>
2753 #include <iterator>
2754
2755 int foo()
2756 {
2757   std::vector<int> tree;
2758   return std::distance(tree.begin(), tree.end());
2759 }
2760 EOT
2761 test_cxx "whether std::distance is defined" "ok" "no" ""
2762
2763 cat >>confdefs.h <<_ACEOF
2764 #define CMK_HAS_STD_DISTANCE $pass
2765 _ACEOF
2766
2767
2768 #### check if std::inserter is defined #####
2769 cat > $t <<EOT
2770 #include <list>
2771 #include <iterator>
2772
2773 void foo()
2774 {
2775   using namespace std;
2776   list<int> L;
2777   inserter ( L, L.end ( ) ) = 500;
2778 }
2779 EOT
2780 test_cxx "whether std::inserter is defined" "ok" "no" ""
2781
2782 cat >>confdefs.h <<_ACEOF
2783 #define CMK_HAS_STD_INSERTER $pass
2784 _ACEOF
2785
2786
2787
2788 ####### Check support for features added by the new C11 and CPP11 standards ########
2789
2790 #### check if std::unordered_map is defined #####
2791 cat > $t <<EOT
2792 #include <unordered_map>
2793
2794 int foo()
2795 {
2796   std::unordered_map<int,int> myhashtbl;
2797   myhashtbl[0] = 42;
2798   myhashtbl[1234] = 0;
2799   return myhashtbl[1234];
2800 }
2801 EOT
2802 test_cxx "whether std::unordered_map is defined" "ok" "no" ""
2803
2804 cat >>confdefs.h <<_ACEOF
2805 #define CMK_HAS_STD_UNORDERED_MAP $pass
2806 _ACEOF
2807
2808
2809
2810 #### check if anon structs are permitted #####
2811 cat > $t <<EOT
2812 #include <iostream>
2813 using std::cout;
2814
2815 struct idx
2816 {
2817     const static int dims = 3;
2818     union
2819     {
2820         int data[dims];
2821         struct { int x, y, z; };
2822     };
2823
2824     idx(const int i=0, const int j=0, const int k=0): x(i), y(j), z(k) {}
2825 };
2826
2827 int main()
2828 {
2829     cout<<"Hello World!\n";
2830     idx myidx(1, 2, 3);
2831     cout<< "idx = ("
2832         << myidx.data[0] << ","
2833         << myidx.data[1] << ","
2834         << myidx.z << ")\n";
2835     return (myidx.data[0] == 1 && myidx.y == 2 && myidx.data[2] == 3);
2836 }
2837 EOT
2838 test_cxx "whether anon structs are permitted" "yes" "no" ""
2839
2840 cat >>confdefs.h <<_ACEOF
2841 #define CMK_HAS_ANON_STRUCTS $pass
2842 _ACEOF
2843
2844
2845
2846 #### test if we can have multiple delete like this ####
2847 cat > $t <<EOT
2848 class foo {
2849 public:
2850   void operator delete(void*p){};
2851   void operator delete(void*p,int*){};
2852 };
2853 EOT
2854 test_cxx "whether operator delete can be overloaded in same class" "ok" "no" ""
2855
2856 cat >>confdefs.h <<_ACEOF
2857 #define CMK_MULTIPLE_DELETE $strictpass
2858 _ACEOF
2859
2860
2861 #### test if offsetof exists ####
2862 cat > $t <<EOT
2863 #include <stddef.h>
2864
2865 struct FooType {
2866         int f1;
2867         int f2;
2868         double f3;
2869 };
2870
2871 void foo()
2872 {
2873   int off = offsetof(FooType, f2);
2874 }
2875 EOT
2876 test_cxx "whether offsetof is defined" "yes" "no" ""
2877
2878 cat >>confdefs.h <<_ACEOF
2879 #define CMK_HAS_OFFSETOF $pass
2880 _ACEOF
2881
2882
2883 #### test if we can use gcc x86 assembly like this ####
2884 cat > $t <<EOT
2885 double foo(void)
2886 {
2887   unsigned long long int v=0;
2888   int *lo=0+(int *)&v;
2889   int *hi=1+(int *)&v;
2890   __asm__ __volatile__(
2891       "rdtsc; movl %%edx,%0; movl %%eax,%1"
2892       : /* output  */ "=m" (*hi), "=m" (*lo)
2893       : /* input */
2894       : /* trashes */ "%edx", "%eax"
2895   );
2896   return v;
2897 }
2898 EOT
2899 test_cxx "whether GCC x86 assembly works" "yes" "no" ""
2900
2901 cat >>confdefs.h <<_ACEOF
2902 #define CMK_GCC_X86_ASM $strictpass
2903 _ACEOF
2904
2905
2906 #### test if we can use gcc x86 assembly like this ####
2907 if test $strictpass = 1
2908 then
2909 cat > $t <<EOT
2910 int foo(void)
2911 {
2912   int x;
2913   asm("lock incl %0" :: "m" (x));
2914   asm("lock decl %0" :: "m" (x));
2915   return x;
2916 }
2917 EOT
2918 test_cxx "whether GCC x86 assembly for atomic increment works" "yes" "no" ""
2919
2920 cat >>confdefs.h <<_ACEOF
2921 #define CMK_GCC_X86_ASM_ATOMICINCREMENT $strictpass
2922 _ACEOF
2923
2924 fi
2925
2926 #### test if we can use gcc IA64 assembly like this ####
2927 cat > $t <<EOT
2928 double foo(void)
2929 {
2930         unsigned long long int x;
2931         __asm__ __volatile__("mov %0=ar.itc" : "=r"(x) :: "memory");
2932         return x;
2933 }
2934 EOT
2935 test_cxx "whether GCC IA64 assembly works" "yes" "no" ""
2936
2937 cat >>confdefs.h <<_ACEOF
2938 #define CMK_GCC_IA64_ASM $strictpass
2939 _ACEOF
2940
2941
2942
2943 #### test if we can use PPC assembly like this ####
2944 cat > $t <<EOT
2945 double foo(void)
2946 {
2947         unsigned long long int x;
2948         asm volatile("eieio" ::: "memory");
2949         return x;
2950 }
2951 EOT
2952 test_cxx "whether PPC assembly works" "yes" "no" ""
2953
2954 cat >>confdefs.h <<_ACEOF
2955 #define CMK_PPC_ASM $strictpass
2956 _ACEOF
2957
2958
2959
2960
2961 #### test if we can use __thread ####
2962 cat > $t <<EOT
2963 __thread unsigned long long int x;
2964 static __thread  int y;
2965 void foo(void)
2966 {
2967         x = 1;
2968         y = 1;
2969 }
2970 EOT
2971 test_cxx "whether __thread (Thread Local Storage) is supported" "yes" "no" ""
2972
2973 cat >>confdefs.h <<_ACEOF
2974 #define CMK_HAS_TLS_VARIABLES $strictpass
2975 _ACEOF
2976
2977
2978 #### check __sync_add_and_fetch ####
2979 cat > $tc <<EOT
2980 #include <stdio.h>
2981 int main()
2982 {
2983   int t=1;
2984   __sync_add_and_fetch(&t, 1);
2985   return 1;
2986 }
2987 EOT
2988 test_linkc "whether synchronization primitives (__sync_add_and_fetch) works in C" "yes" "no" ""
2989
2990 cat >>confdefs.h <<_ACEOF
2991 #define CMK_C_SYNC_PRIMITIVES $pass
2992 _ACEOF
2993
2994
2995 ### test if switching TLS register ###
2996 if test $in64bit = 1
2997 then
2998 cat > $t <<EOT
2999 #include <elf.h>
3000 #include <stdlib.h>
3001 #include <malloc.h>
3002
3003 void switchTLS() {
3004   Elf64_Addr m1, m2;
3005   asm volatile ("movq %%fs:0x0, %0\n\t"
3006                 "movq %1, %%fs:0x0\n\t"
3007                 : "=r"(m1)
3008                 : "r"(m2));
3009 }
3010 EOT
3011 test_cxx "whether switching TLS register (64-bit) is supported" "yes" "no" ""
3012
3013 cat >>confdefs.h <<_ACEOF
3014 #define CMK_TLS_SWITCHING64 $strictpass
3015 _ACEOF
3016
3017 else
3018 cat > $t <<EOT
3019 #include <elf.h>
3020 #include <stdlib.h>
3021 #include <malloc.h>
3022
3023 void switchTLS() {
3024   Elf32_Addr m1, m2;
3025   asm volatile ("movl %%gs:0x0, %0\n\t"
3026                 "movl %1, %%gs:0x0\n\t"
3027                 : "=r"(m1)
3028                 : "r"(m2));
3029 }
3030 EOT
3031 test_cxx "whether switching TLS register (32-bit) is supported" "yes" "no" ""
3032
3033 cat >>confdefs.h <<_ACEOF
3034 #define CMK_TLS_SWITCHING32 $strictpass
3035 _ACEOF
3036
3037 fi
3038
3039 #### test if we can build MPI ####
3040 if test "$CMK_BUILD_MPI" = 1
3041 then
3042
3043 cat > $t <<EOT
3044 #include "mpi.h"
3045 int main(int argc, char **argv)
3046 {
3047   MPI_Init(&argc, &argv);
3048 }
3049 EOT
3050 mv -f ../include/mpi.h ../include/mpi.h.bak 2>/dev/null
3051 test_cxx "whether build on MPI" "yes" "no" ""
3052
3053 cat >>confdefs.h <<_ACEOF
3054 #define CMK_BUILD_ON_MPI $strictpass
3055 _ACEOF
3056
3057 BUILD_MPI=$strictpass
3058
3059 if test $BUILD_MPI -eq 0
3060 then
3061   echo "Error: Can not compile a MPI program"
3062   test_finish 1
3063 fi
3064
3065 if test $BUILD_MPI -eq 1 -a -z "$BGP_FLOOR"
3066 then
3067   test_link "whether need to specify MPI library" "no" "yes" ""
3068   if test $pass -ne 1
3069   then
3070     if test -z "$CMK_MPI_LIB"
3071     then
3072       test_link "whether -lmpich" "ok" "no" "-lmpich"
3073       if test $pass -eq 1
3074       then
3075         add_flag CMK_SYSLIBS='"$CMK_SYSLIBS -lmpich"' "mpi lib"
3076       else
3077         test_link "whether -lmpi" "ok" "no" "-lmpi"
3078         if test $pass -eq 1
3079         then
3080                 add_flag CMK_SYSLIBS='"$CMK_SYSLIBS -lmpi"' "mpi lib"
3081         else
3082                 echo "Error: can not find mpi library"
3083                 test_finish 1
3084         fi
3085       fi
3086     else
3087       add_flag CMK_SYSLIBS='"$CMK_SYSLIBS $CMK_MPI_LIB"' "mpi lib"
3088     fi
3089   fi
3090 fi
3091
3092 if test "$BUILD_MPI" = "1"
3093 then
3094 cat > $t <<EOT
3095 #include "mpi.h"
3096 int main(int argc, char **argv)
3097 {
3098   int thread_level, provided;
3099   thread_level = MPI_THREAD_FUNNELED;
3100   MPI_Init_thread(&argc, &argv, thread_level, &provided);
3101 }
3102 EOT
3103 test_cxx "whether MPI_Init_thread is supported" "yes" "no" ""
3104
3105 cat >>confdefs.h <<_ACEOF
3106 #define CMK_MPI_INIT_THREAD $strictpass
3107 _ACEOF
3108
3109 fi
3110 mv -f ../include/mpi.h.bak ../include/mpi.h 2>/dev/null
3111
3112 fi
3113
3114 ################### Syscalls and Libraries ###################
3115
3116 #### test for getrusage with RUSAGE_THREAD ###
3117 cat > $tc <<EOT
3118 #include <sys/time.h>
3119 #define __USE_GNU   1
3120 #include <sys/resource.h>
3121 int main() {
3122   struct rusage usage;
3123   getrusage(RUSAGE_THREAD, &usage);
3124   return 0;
3125 }
3126 EOT
3127 test_linkc "whether getrusage accepts RUSAGE_THREAD" "yes" "no" ""
3128
3129 cat >>confdefs.h <<_ACEOF
3130 #define CMK_HAS_RUSAGE_THREAD $pass
3131 _ACEOF
3132
3133
3134 #### test for asctime ###
3135
3136 cat > $tc <<EOT
3137 #include <time.h>
3138 int main() {
3139   struct tm *local;
3140   time_t t;
3141   t = time(NULL);
3142   local = localtime(&t);
3143   asctime(local);
3144   return 0;
3145 }
3146 EOT
3147 test_linkc "whether has asctime" "yes" "no" ""
3148
3149 cat >>confdefs.h <<_ACEOF
3150 #define CMK_HAS_ASCTIME $pass
3151 _ACEOF
3152
3153
3154 #### test for log2 ###
3155 cat > $t <<EOT
3156 #include <math.h>
3157 int main() {
3158   int i = log2(10);
3159   return 0;
3160 }
3161 EOT
3162 test_link "whether has log2" "yes" "no" ""
3163
3164 cat >>confdefs.h <<_ACEOF
3165 #define CMK_HAS_LOG2 $pass
3166 _ACEOF
3167
3168
3169 #### test for sqrtf ###
3170 cat > $t <<EOT
3171 #include <math.h>
3172 int main() {
3173   float i = sqrtf((float)10.0);
3174   return 0;
3175 }
3176 EOT
3177 test_link "whether has sqrtf" "yes" "no" ""
3178
3179 cat >>confdefs.h <<_ACEOF
3180 #define CMK_HAS_SQRTF $pass
3181 _ACEOF
3182
3183
3184 #### test for fabsf ###
3185 cat > $t <<EOT
3186 #include <math.h>
3187 int main() {
3188   float i = fabsf((float)10.0);
3189   return 0;
3190 }
3191 EOT
3192 test_link "whether has fabsf" "yes" "no" ""
3193
3194 cat >>confdefs.h <<_ACEOF
3195 #define CMK_HAS_FABSF $pass
3196 _ACEOF
3197
3198
3199 #### test for mkstemp ###
3200 cat > $t <<EOT
3201 #include <stdlib.h>
3202 #include <string.h>
3203 int main() {
3204   char fname[128];
3205   strcpy(fname, "/tmp/fdXXX.XXX");
3206   mkstemp(fname);
3207   return 0;
3208 }
3209 EOT
3210 test_link "whether has mkstemp" "yes" "no" ""
3211
3212 cat >>confdefs.h <<_ACEOF
3213 #define CMK_USE_MKSTEMP $pass
3214 _ACEOF
3215
3216
3217 #### test for system ###
3218 cat > $t <<EOT
3219 #include <stdlib.h>
3220 int main() {
3221   system("/bin/ls");
3222   return 0;
3223 }
3224 EOT
3225 test_link "whether has system" "yes" "no" ""
3226
3227 cat >>confdefs.h <<_ACEOF
3228 #define CMK_HAS_SYSTEM $pass
3229 _ACEOF
3230
3231
3232 #### test for sbrk ###
3233 cat > $t <<EOT
3234 #include <unistd.h>
3235 int main() {
3236   void *ptr  = sbrk(0);
3237 }
3238 EOT
3239 test_link "whether has sbrk" "yes" "no" ""
3240
3241 cat >>confdefs.h <<_ACEOF
3242 #define CMK_HAS_SBRK $pass
3243 _ACEOF
3244
3245
3246 #### test for _setjmp/_longjmp ###
3247 cat > $t <<EOT
3248 #include <setjmp.h>
3249 int main() {
3250   jmp_buf buf;
3251   _setjmp(buf);
3252   _longjmp(buf, 0);
3253 }
3254 EOT
3255 test_link "whether has _setjmp/_longjmp" "yes" "no" ""
3256
3257 cat >>confdefs.h <<_ACEOF
3258 #define CMK_HAS_UNDERSCORE_SETJMP $pass
3259 _ACEOF
3260
3261
3262 #### test for mstats ###
3263 cat > $t <<EOT
3264 #include <malloc.h>
3265 int main() {
3266   struct mstats ms = mstats();
3267 }
3268 EOT
3269 test_link "whether has mstats" "yes" "no" ""
3270
3271 cat >>confdefs.h <<_ACEOF
3272 #define CMK_HAS_MSTATS $pass
3273 _ACEOF
3274
3275
3276 #### test for mallinfo ###
3277 cat > $t <<EOT
3278 #include <malloc.h>
3279 int main() {
3280   struct mallinfo mi = mallinfo();
3281 }
3282 EOT
3283 test_link "whether has mallinfo" "yes" "no" ""
3284
3285 cat >>confdefs.h <<_ACEOF
3286 #define CMK_HAS_MALLINFO $pass
3287 _ACEOF
3288
3289
3290 #### test for popen ###
3291 cat > $t <<EOT
3292 #include <stdio.h>
3293 int main() {
3294   FILE *p = popen("/bin/ps", "r");
3295   pclose(p);
3296 }
3297 EOT
3298 test_link "whether has popen" "yes" "no" ""
3299
3300 cat >>confdefs.h <<_ACEOF
3301 #define CMK_HAS_POPEN $pass
3302 _ACEOF
3303
3304
3305 #### test for poll ###
3306 cat > $t <<EOT
3307 #include <poll.h>
3308 void foo(void) {
3309   struct pollfd pos[3];
3310   poll(pos, 1, 1);
3311 }
3312 EOT
3313 test_cxx "whether has poll" "yes" "no" ""
3314
3315 cat >>confdefs.h <<_ACEOF
3316 #define CMK_USE_POLL $pass
3317 _ACEOF
3318
3319
3320 #### check if getpagesize exists ####
3321 cat > $tc <<EOT
3322 #include <unistd.h>
3323
3324 int main(int argc, char **argv) {
3325     int s = getpagesize();
3326 }
3327 EOT
3328 test_linkc "whether has getpagesize" "yes" "no" ""
3329
3330 cat >>confdefs.h <<_ACEOF
3331 #define CMK_HAS_GETPAGESIZE $pass
3332 _ACEOF
3333
3334
3335 #### check if getpid exists ####
3336 cat > $tc <<EOT
3337 #include <sys/types.h>
3338 #include <unistd.h>
3339
3340 int main(int argc, char **argv) {
3341     pid_t pid = getpid();
3342 }
3343 EOT
3344 test_linkc "whether has getpid" "yes" "no" ""
3345
3346 cat >>confdefs.h <<_ACEOF
3347 #define CMK_HAS_GETPID $pass
3348 _ACEOF
3349
3350
3351 #### check if kill exists ####
3352 cat > $tc <<EOT
3353 #include <sys/types.h>
3354 #include <unistd.h>
3355 #include <signal.h>
3356
3357 int main(int argc, char**argv)
3358 {
3359     pid_t pid = getpid();
3360     kill(pid, 9);
3361 }
3362 EOT
3363 test_linkc "whether has kill" "yes" "no" ""
3364
3365 cat >>confdefs.h <<_ACEOF
3366 #define CMK_HAS_KILL $pass
3367 _ACEOF
3368
3369
3370 #### test for setpriority ###
3371 cat > $t <<EOT
3372 #include <sys/time.h>
3373 #include <sys/resource.h>
3374 void foo(void) {
3375   setpriority(PRIO_PROCESS, 0, 0);
3376 }
3377 EOT
3378 test_cxx "whether has setpriority" "yes" "no" ""
3379
3380 cat >>confdefs.h <<_ACEOF
3381 #define CMK_HAS_SETPRIORITY $pass
3382 _ACEOF
3383
3384
3385 #### test for system ###
3386 cat > $t <<EOT
3387 #include "ckdll_system.C"
3388 EOT
3389 test_cxx "whether to use signal-safe system() " "yes" "no" ""
3390
3391 cat >>confdefs.h <<_ACEOF
3392 #define CMK_SIGSAFE_SYSTEM $pass
3393 _ACEOF
3394
3395
3396 ### test sched_setaffinity ####
3397 cat > $tc <<EOT
3398 #define _GNU_SOURCE
3399 #include <sched.h>
3400
3401 int main()
3402 {
3403   cpu_set_t cpuset;
3404   CPU_ZERO(&cpuset);
3405   CPU_SET(0, &cpuset);
3406   if (sched_setaffinity(0, sizeof(cpuset), &cpuset) < 0) {
3407     return -1;
3408   }
3409   return 0;
3410 }
3411 EOT
3412 test_linkc "whether sched_setaffinity call exists" "yes" "no" ""
3413
3414 cat >>confdefs.h <<_ACEOF
3415 #define CMK_HAS_SETAFFINITY $pass
3416 _ACEOF
3417
3418
3419 ### test pthread_setaffinity_np ####
3420 cat > $tc <<EOT
3421 #include <stdlib.h>
3422 #include <stdio.h>
3423 #include <unistd.h>
3424 #include <pthread.h>
3425
3426 int main()
3427 {
3428   unsigned long mask = 0xffffffff;
3429   unsigned int len = sizeof(mask);
3430
3431   if (pthread_setaffinity_np(pthread_self(), len, &mask) < 0) {
3432     return -1;
3433   }
3434   return 0;
3435 }
3436 EOT
3437 test_linkc "whether pthread_setaffinity_np call exists" "yes" "no" "-lpthread"
3438
3439 cat >>confdefs.h <<_ACEOF
3440 #define CMK_HAS_PTHREAD_SETAFFINITY $pass
3441 _ACEOF
3442
3443
3444 ### test pthread_spin_lock ####
3445 cat > $tc <<EOT
3446 #include <stdlib.h>
3447 #include <stdio.h>
3448 #include <unistd.h>
3449 #include <pthread.h>
3450
3451 int main()
3452 {
3453   pthread_spinlock_t  lock;
3454
3455   pthread_spin_init(&lock, 0);
3456
3457   pthread_spin_lock(&lock);
3458
3459   return 0;
3460 }
3461 EOT
3462 test_linkc "whether pthread_spin_lock exists" "yes" "no" "-lpthread"
3463
3464 cat >>confdefs.h <<_ACEOF
3465 #define CMK_HAS_SPINLOCK $pass
3466 _ACEOF
3467
3468
3469 ### check libnuma on Linux ####
3470 if test "$WITH_NUMA" = "yes"
3471 then
3472 cat > $tc <<EOT
3473 #include <stdlib.h>
3474 #include <stdio.h>
3475 #include <linux/mempolicy.h>
3476 #include <numaif.h>
3477 #include <numa.h>
3478
3479 int main()
3480 {
3481   if (get_mempolicy(NULL, NULL, 0, 0, 0) == 0) return 0;
3482   return -1;
3483 }
3484 EOT
3485 test_linkc "whether libnuma exists" "yes" "no" "-lnuma"
3486
3487 cat >>confdefs.h <<_ACEOF
3488 #define CMK_HAS_NUMACTRL $pass
3489 _ACEOF
3490
3491 if test $pass -eq 1
3492 then
3493         add_flag 'CMK_SYSLIBS="$CMK_SYSLIBS -lnuma"' "libnuma"
3494 fi
3495 fi
3496
3497 #### check bindprocessors on AIX ####
3498 cat > $tc <<EOT
3499 #include <stdlib.h>
3500 #include <stdio.h>
3501 #include <unistd.h>
3502
3503 #include <sys/processor.h>
3504
3505 int main()
3506 {
3507   int retValue = 0;
3508   int pid;
3509   pid = getpid();
3510   if (bindprocessor(BINDPROCESS, pid, 0) == -1) return -1;
3511   return 0;
3512 }
3513 EOT
3514 test_linkc "whether bindprocessor call exists" "yes" "no" ""
3515
3516 cat >>confdefs.h <<_ACEOF
3517 #define CMK_HAS_BINDPROCESSOR $pass
3518 _ACEOF
3519
3520
3521
3522 #### check if dlopen works ####
3523 skip_dl=0
3524 # for bproc, ignore -ldl
3525 test -n "$CMK_BPROC" && skip_dl=1
3526 test -n "$CMK_NO_DL" && skip_dl=1
3527 dl_opt='-ldl'
3528 #workaround for pgcc 4.0, -ldl crash linking, so use -Wl,-ldl to skip the prelinker.
3529 case "$CMK_CXX" in
3530 pgCC*) dl_opt='-Wl,-ldl' ;;
3531 esac
3532
3533 if test $skip_dl -eq 0
3534 then
3535
3536 cat > $t <<EOT
3537 #include "ckdll_dlopen.C"
3538 int main() {
3539         CkDll dll("foo.so");
3540         return 0;
3541 }
3542 EOT
3543 test_link "whether dlopen links without $dl_opt" "yes" "no" ""
3544 noldl=$pass
3545 test_link "whether dlopen links with $dl_opt" "yes" "no" "$dl_opt"
3546 if test $pass -eq 1
3547 then
3548 #dlopen requires -ldl: add it to our link line
3549         add_flag CMK_LIBS='"$CMK_LIBS '$dl_opt'"' "dlopen"
3550 fi
3551
3552 if test $pass -eq 1 -o $noldl -eq 1
3553 then
3554 # One version or another of dlopen worked: compile it in
3555
3556 cat >>confdefs.h <<_ACEOF
3557 #define CMK_DLL_USE_DLOPEN 1
3558 _ACEOF
3559
3560 fi
3561
3562 ### test gethostname ####
3563 cat > $tc <<EOT
3564 #ifdef WIN32
3565 #include <Winsock2.h>
3566 #else
3567 #include <stdlib.h>
3568 #include <stdio.h>
3569 #include <unistd.h>
3570 #endif
3571
3572 int main()
3573 {
3574   char hostname[1000];
3575   gethostname(hostname, 999);
3576   return 0;
3577 }
3578 EOT
3579 test_linkc "whether gethostname call exists" "yes" "no" ""
3580
3581 cat >>confdefs.h <<_ACEOF
3582 #define CMK_HAS_GETHOSTNAME $pass
3583 _ACEOF
3584
3585
3586 #### check if getProcAddress works ####
3587 cat > $t <<EOT
3588 #include "ckdll_win32.C"
3589 EOT
3590 test_cxx "whether getProcAddress works" "yes" "no" ""
3591
3592 cat >>confdefs.h <<_ACEOF
3593 #define CMK_DLL_USE_WIN32 $pass
3594 _ACEOF
3595
3596
3597 fi    # end of skip_dl
3598
3599 #### check if socklen_t exists ####
3600 cat > $t <<EOT
3601 #include <sys/types.h>
3602 #include <sys/socket.h>
3603
3604 void foo(void) {
3605         int i;
3606         socklen_t s=sizeof(i);
3607 }
3608 EOT
3609 test_cxx "whether has socklen_t" "yes" "no" ""
3610
3611 cat >>confdefs.h <<_ACEOF
3612 #define CMK_HAS_SOCKLEN $pass
3613 _ACEOF
3614
3615
3616 ### test getifaddrs ####
3617 cat > $tc <<EOT
3618 #include <netinet/in.h> /* for sockaddr_in */
3619 #include <ifaddrs.h> /* for getifaddrs */
3620 #include <net/if.h> /* for IFF_RUNNING */
3621
3622 int main()
3623 {
3624   struct ifaddrs *interfaces=0;
3625   if( getifaddrs(&interfaces) == 0 ) {
3626         struct ifaddrs *interface;
3627         for( interface=interfaces; interface; interface=interface->ifa_next ) {
3628             if( (interface->ifa_flags & IFF_UP) && ! (interface->ifa_flags & IFF_LOOPBACK) ) {
3629                 const struct sockaddr_in *addr = (const struct sockaddr_in*)interface->ifa_addr;
3630                 if( addr && addr->sin_family==AF_INET ) {
3631                     break;
3632                 }
3633             }
3634         }
3635         freeifaddrs(interfaces);
3636   }
3637 }
3638 EOT
3639 test_linkc "whether getifaddrs call exists" "yes" "no" ""
3640
3641 cat >>confdefs.h <<_ACEOF
3642 #define CMK_HAS_GETIFADDRS $pass
3643 _ACEOF
3644
3645
3646 #### check if mmap exists ####
3647 cat > $t <<EOT
3648 #include <sys/types.h>
3649 #include <sys/mman.h>
3650
3651 void *foo(void *a,int l,int fd) {
3652         return mmap((caddr_t)a,l,PROT_READ+PROT_WRITE,
3653                  MAP_FIXED+MAP_PRIVATE,fd,0);
3654 }
3655 EOT
3656 test_cxx "whether the mmap() syscall exists" "yes" "no" ""
3657
3658 cat >>confdefs.h <<_ACEOF
3659 #define CMK_HAS_MMAP $pass
3660 _ACEOF
3661
3662
3663 #### check if mmap accepts MAP_ANON ####
3664 cat > $t <<EOT
3665 #include <sys/types.h>
3666 #include <sys/mman.h>
3667
3668 void *foo(void *a,int l) {
3669         return mmap((caddr_t)a,l,PROT_READ+PROT_WRITE,
3670                 MAP_FIXED+MAP_PRIVATE+MAP_ANON,-1,0);
3671 }
3672 EOT
3673 test_cxx "whether mmap() accepts MAP_ANON" "yes" "no" ""
3674
3675 cat >>confdefs.h <<_ACEOF
3676 #define CMK_HAS_MMAP_ANON $pass
3677 _ACEOF
3678
3679
3680 #### check if mmap accepts MAP_NORESERVE ####
3681 cat > $t <<EOT
3682 #include <sys/types.h>
3683 #include <sys/mman.h>
3684
3685 void *foo(void *a,int l) {
3686         return mmap((caddr_t)a,l,PROT_READ+PROT_WRITE,
3687                 MAP_FIXED+MAP_PRIVATE+MAP_NORESERVE,-1,0);
3688 }
3689 EOT
3690 test_cxx "whether mmap() accepts MAP_NORESERVE" "yes" "no" ""
3691
3692 cat >>confdefs.h <<_ACEOF
3693 #define CMK_HAS_MMAP_NORESERVE $pass
3694 _ACEOF
3695
3696
3697 #### check if get_myaddress exists ####
3698 cat > $t <<EOT
3699 #include <rpc/rpc.h>
3700
3701 void foo(void *a) {
3702     get_myaddress((struct sockaddr_in*)a);
3703 }
3704 EOT
3705 test_cxx "whether has get_myaddress" "yes" "no" ""
3706
3707 cat >>confdefs.h <<_ACEOF
3708 #define CMK_HAS_GET_MYADDRESS $pass
3709 _ACEOF
3710
3711
3712 #### check if mprotect exists ####
3713 cat > $t <<EOT
3714 #include <stdio.h>
3715 #include <sys/mman.h>
3716
3717 void foo(void *a,int l,int fd) {
3718      void *pg = NULL;
3719      size_t pagesize = 4096;
3720      mprotect(pg, pagesize, PROT_READ | PROT_WRITE);
3721 }
3722 EOT
3723 test_cxx "whether has mprotect" "yes" "no" ""
3724
3725 cat >>confdefs.h <<_ACEOF
3726 #define CMK_HAS_MPROTECT $pass
3727 _ACEOF
3728
3729
3730 #### check if glibc backtrace exists ####
3731 cat > $t <<EOT
3732 #include "cmibacktrace.c"
3733
3734 int main() {
3735         int nLevels=1;
3736         void *stack;
3737         CmiBacktraceRecord(&stack,0,&nLevels);
3738         return 0;
3739 }
3740 EOT
3741 TRACE_LINK_FLAG="-rdynamic"
3742 test_link "whether glibc backtrace works" "yes" "no" "-DCMK_USE_BACKTRACE=1 $TRACE_LINK_FLAG"
3743
3744 cat >>confdefs.h <<_ACEOF
3745 #define CMK_USE_BACKTRACE $pass
3746 _ACEOF
3747
3748
3749 if test $strictpass -eq 1
3750 then
3751         add_flag 'CMK_LD="$CMK_LD '$TRACE_LINK_FLAG'"' "backtrace"
3752         add_flag 'CMK_LDXX="$CMK_LDXX '$TRACE_LINK_FLAG'"' "backtrace"
3753 fi
3754
3755 #### test sleep ####
3756 cat > $t <<EOT
3757 #include <unistd.h>
3758 int main() {
3759   sleep(1);
3760   return 0;
3761 }
3762 EOT
3763 test_cxx "whether has sleep " "yes" "no" ""
3764
3765 cat >>confdefs.h <<_ACEOF
3766 #define CMK_HAS_SLEEP $pass
3767 _ACEOF
3768
3769
3770 #### test usleep ####
3771 cat > $t <<EOT
3772 #include <unistd.h>
3773 int main() {
3774   usleep(100);
3775   return 0;
3776 }
3777 EOT
3778 test_cxx "whether has usleep " "yes" "no" ""
3779
3780 cat >>confdefs.h <<_ACEOF
3781 #define CMK_HAS_USLEEP $pass
3782 _ACEOF
3783
3784
3785 #### test personality() and ADDR_NO_RANDOMIZE ####
3786 # Only works on modern Linux systems
3787 cat > $t <<EOT
3788 #include <sys/personality.h>
3789 int main() {
3790     int orig_persona = personality(0xffffffff);
3791     personality(orig_persona | ADDR_NO_RANDOMIZE);
3792     return 0;
3793 }
3794 EOT
3795 test_cxx "whether personality() and ADDR_NO_RANDOMIZE exist" "yes" "no" ""
3796
3797 cat >>confdefs.h <<_ACEOF
3798 #define CMK_HAS_ADDR_NO_RANDOMIZE $pass
3799 _ACEOF
3800
3801
3802
3803 #### test if has zlib ####
3804 # bproc doesnot like -lz in any case
3805 if test -z "$CMK_BPROC"
3806 then
3807
3808 cat > $t <<EOT
3809 #include <zlib.h>
3810 int main() {
3811   gzFile f = gzopen("/tmp/x","r");
3812   gzprintf(f, "test...\n");
3813   gzclose(f);
3814   return 0;
3815 }
3816 EOT
3817 test_link "whether has zlib" "yes" "no" "-lz"
3818
3819 cat >>confdefs.h <<_ACEOF
3820 #define CMK_PROJECTIONS_USE_ZLIB $pass
3821 _ACEOF
3822
3823 if test $pass -eq 1
3824 then
3825         add_flag 'CMK_LIBZ="-lz"' "zlib"
3826 fi
3827
3828 fi
3829
3830 #### test if has elf.h ####
3831 cat > $t <<EOT
3832 #include <elf.h>
3833 typedef Elf32_Addr ELF_TYPE_Addr;
3834 int main() {
3835 }
3836 EOT
3837 test_cxx "whether has elf.h " "yes" "no" ""
3838
3839 cat >>confdefs.h <<_ACEOF
3840 #define CMK_HAS_ELF_H $pass
3841 _ACEOF
3842
3843
3844 #### test if has Multiprocessing.h for apple ####
3845 cat > $t <<EOT
3846 #include <Carbon/Carbon.h>
3847 #include <Multiprocessing.h>
3848 int main() {
3849   int a = MPProcessorsScheduled();
3850 }
3851 EOT
3852 test_cxx "whether has Multiprocessing.h for Apple " "yes" "no" ""
3853
3854 cat >>confdefs.h <<_ACEOF
3855 #define CMK_HAS_MULTIPROCESSING_H $pass
3856 _ACEOF
3857
3858
3859 #### test if "ntohl" is available ####
3860 cat > $t <<EOT
3861 #if defined(_WIN32) && ! defined(__CYGWIN__) || defined(__MINGW_H)
3862 #include <winsock.h>
3863 #else
3864 #include <stdint.h>
3865 #include <arpa/inet.h>
3866 #include <netinet/in.h>
3867 #endif
3868
3869 int main() {
3870   int i = 100;
3871   i = ntohl(i);
3872   return 0;
3873 }
3874 EOT
3875 test_link "whether ntohl is available" "yes" "no" ""
3876
3877 cat >>confdefs.h <<_ACEOF
3878 #define CMK_HAS_NTOHL $pass
3879 _ACEOF
3880
3881
3882 ### test for libjpeg ####
3883 cat > $t <<EOT
3884 #include <stdio.h>
3885 #include <stdlib.h>
3886 #include "jpeglib.h"
3887
3888 int main()
3889 {
3890   struct jpeg_compress_struct cinfo;
3891   jpeg_create_compress(&cinfo);
3892   return 0;
3893 }
3894 EOT
3895 test_link "whether has libjpeg" "yes" "no" "-ljpeg"
3896
3897 cat >>confdefs.h <<_ACEOF
3898 #define CMK_USE_LIBJPEG $pass
3899 _ACEOF
3900
3901 if test $pass -eq 1
3902 then
3903         add_flag 'CMK_LIBJPEG="-ljpeg"' "libjpeg"
3904 fi
3905
3906 #### check if PAPI exists ####
3907 if test -n "$CMK_USE_PAPI"
3908 then
3909 cat > $t <<EOT
3910 #include <stdio.h>
3911 #include <papi.h>
3912
3913 int main() {
3914     if (PAPI_library_init(PAPI_VER_CURRENT) != PAPI_VER_CURRENT) return 1;
3915     return 0;
3916 }
3917 EOT
3918 test_link "whether PAPI exists" "yes" "no" "-lpapi"
3919
3920 cat >>confdefs.h <<_ACEOF
3921 #define CMK_HAS_COUNTER_PAPI $pass
3922 _ACEOF
3923
3924 if test $pass -eq 1
3925 then
3926         add_flag 'CMK_LIBS="$CMK_LIBS -lpapi"' "papi"
3927 fi
3928 fi
3929
3930 #### test if Python headers are installed ####
3931 PYTHON_VERSION=`python -V 2>&1 | awk {'print $2'} | awk -F. {'print $1"."$2'}`
3932 cat > $t <<EOT
3933 #include "python${PYTHON_VERSION}/Python.h"
3934 #include "python${PYTHON_VERSION}/compile.h"
3935 #include "python${PYTHON_VERSION}/eval.h"
3936 #include "python${PYTHON_VERSION}/node.h"
3937
3938 int main() {
3939     Py_Initialize();
3940     PyEval_InitThreads();
3941     struct _node* programNode = PyParser_SimpleParseString("return 1\n",Py_file_input);
3942     PyCodeObject *program = PyNode_Compile(programNode, "");
3943 }
3944 EOT
3945 test_link "whether Python is installed" "yes" "no" "-lpython$PYTHON_VERSION -lpthread -lutil -ldl"
3946
3947 cat >>confdefs.h <<_ACEOF
3948 #define CMK_HAS_PYTHON $pass
3949 _ACEOF
3950
3951
3952 cat >>confdefs.h <<_ACEOF
3953 #define CMK_PYTHON_VERSION ${PYTHON_VERSION}
3954 _ACEOF
3955
3956 if test $pass -eq 1
3957 then
3958         add_flag "CMK_BUILD_PYTHON=$PYTHON_VERSION" "python"
3959 fi
3960
3961 #### Pick up METIS if the user asks for it ####
3962
3963
3964 # Check whether --with-metis was given.
3965 if test "${with_metis+set}" = set; then :
3966   withval=$with_metis;
3967 else
3968   with_metis=no
3969 fi
3970
3971
3972 WITH_METIS=no
3973 if test "$with_metis" != "no"
3974 then
3975   Echo "Compiling Charm with support for METIS"
3976   WITH_METIS=yes
3977   echo 'charm++: $(L)/libmoduleMetisLB.a $(L)/libmoduleTeamLB.a' >> $MAKEFILE_EXT
3978   add_flag 'CMK_LIBS="$CMK_LIBS -lmetis"' "libmetis"
3979   if test "$with_metis" != "yes"
3980   then
3981     add_flag "CMK_METIS=$with_metis" "Where to find METIS"
3982     add_flag 'CMK_LIBDIR="$CMK_LIBDIR -L$CMK_METIS"' "Library path for METIS"
3983     if test -r $with_metis/Lib/metis.h
3984     then
3985       add_flag 'CMK_INCDIR="$CMK_INCDIR -I$CMK_METIS/Lib"' "Include path for METIS 4"
3986     elif test -r $with_metis/../../include/metis.h
3987     then
3988       add_flag 'CMK_INCDIR="$CMK_INCDIR -I$CMK_METIS/../../include"' "Include path for METIS 5"
3989     else
3990       echo "I can't find metis.h, since the path you specified (which should point to the directory containing libmetis.a) is not laid out as I expect for version 4 or 5."
3991       test_finish 1
3992     fi
3993   fi
3994 fi
3995
3996 ## Cray specific test
3997 if test "$CMK_BUILD_CRAY" = "1"
3998 then
3999
4000 #### test if Cray node topology will work ####
4001 cat > $tc <<EOT
4002 #include <pmi.h>
4003
4004 int main() {
4005     int nid;
4006     PMI_Get_nid(0, &nid);
4007
4008     return 0;
4009 }
4010 EOT
4011 test_linkc "whether PMI_Get_nid exists" "yes" "no" ""
4012
4013 cat >>confdefs.h <<_ACEOF
4014 #define CMK_HAS_PMI_GET_NID $pass
4015 _ACEOF
4016
4017
4018 #### test if Cray mesh topology will work ####
4019 cat > $tc <<EOT
4020 #include <rca_lib.h>
4021
4022 int main() {
4023     rca_mesh_coord_t xyz;
4024     rca_get_meshcoord(0, &xyz);
4025
4026     return 0;
4027 }
4028 EOT
4029 test_linkc "whether Cray rca library is available" "yes" "no" "-lrca"
4030
4031 cat >>confdefs.h <<_ACEOF
4032 #define CMK_HAS_RCALIB $pass
4033 _ACEOF
4034
4035
4036 #### test if Cray mesh dimension query function will work ####
4037 cat > $tc <<EOT
4038 #include <rca_lib.h>
4039
4040 int main() {
4041     rca_mesh_coord_t xyz;
4042     rca_get_max_dimension(&xyz);
4043
4044     return 0;
4045 }
4046 EOT
4047 test_linkc "whether Cray rca_has get_max_dimension" "yes" "no" "-lrca"
4048
4049 cat >>confdefs.h <<_ACEOF
4050 #define CMK_HAS_RCA_MAX_DIMENSION $pass
4051 _ACEOF
4052
4053
4054 #### query Cray machine max NID ####
4055
4056 cmd=`which xtprocadmin 2>/dev/null`
4057 if test -n "$cmd"
4058 then
4059     #maxnid=`xtprocadmin  | tail -1  | awk '{print $1}'`
4060     # workaround for hopper
4061     (export SHELL=/bin/csh; xtprocadmin >& t.$$)
4062     maxnid=`cat t.$$  | tail -1  | awk '{print $1}'`
4063     /bin/rm -f t.$$
4064     { $as_echo "$as_me:${as_lineno-$LINENO}: checking Cray machine maxnid" >&5
4065 $as_echo_n "checking Cray machine maxnid... " >&6; }
4066     { $as_echo "$as_me:${as_lineno-$LINENO}: result: \"$maxnid\"" >&5
4067 $as_echo "\"$maxnid\"" >&6; }
4068     if test -n "$maxnid"
4069     then
4070
4071 cat >>confdefs.h <<_ACEOF
4072 #define CMK_CRAY_MAXNID $maxnid
4073 _ACEOF
4074
4075     fi
4076 fi
4077
4078 fi
4079
4080 #### test if it can build shared library ####
4081 cat > $t <<EOT
4082 #include "stdlib.h"
4083 extern int foo();
4084 int foo1() {
4085   void * t= malloc(2);
4086   foo();
4087   return 0;
4088 }
4089 EOT
4090 test_linkso "whether can build shared library" "yes" "no" ""
4091 if test $pass -eq 0
4092 then
4093         add_flag 'CMK_NO_BUILD_SHARED="true"' "build-shared"
4094 else
4095         BUILD_SHARED=1
4096         if test "$BUILD_MPI" = "1"
4097         then
4098 cat > $t <<EOT
4099 #include "stdlib.h"
4100 #include "mpi.h"
4101 extern int foo();
4102 int foo(int argc, char ** argv) {
4103   void * t= malloc(2);
4104   foo();
4105   MPI_Init(&argc, &argv);
4106   return 0;
4107 }
4108 EOT
4109                 test_linkso "whether can build shared library with MPI" "yes" "no" ""
4110                 BUILD_SHARED=$pass
4111         fi
4112         if test $BUILD_SHARED -eq 0
4113         then
4114                 add_flag 'CMK_NO_BUILD_SHARED="true"' "build-shared"
4115         fi
4116 fi
4117
4118 #### test the version number of bproc ####
4119 if test -n "$CMK_BPROC"
4120 then
4121 cat > $t <<EOT
4122 #include <stdio.h>
4123 #include <sys/bproc.h>
4124 int main()
4125 {
4126   struct bproc_version_t vers;
4127   bproc_version(&vers);
4128   printf("%s\n", vers.version_string);
4129 }
4130 EOT
4131 test_link "whether bproc compiles" "yes" "no" "-lbproc"
4132 if test $pass -eq 1
4133 then
4134 { $as_echo "$as_me:${as_lineno-$LINENO}: checking \"bproc version\"" >&5
4135 $as_echo_n "checking \"bproc version\"... " >&6; }
4136 bproc_ver=`./testlink`
4137 if test x$bproc_ver = x
4138 then
4139 test_result 0 "bproc version" "ERROR" ""
4140 test_finish 1
4141 else
4142 test_result 0 "bproc version" "$bproc_ver" ""
4143 fi
4144 bproc_ver=`echo $bproc_ver | cut -d'.' -f1`
4145
4146 cat >>confdefs.h <<_ACEOF
4147 #define CMK_BPROC_VERSION $bproc_ver
4148 _ACEOF
4149
4150 fi
4151 fi
4152
4153 #### test the if command sync exists ####
4154 # Extract the first word of "sync", so it can be a program name with args.
4155 set dummy sync; ac_word=$2
4156 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
4157 $as_echo_n "checking for $ac_word... " >&6; }
4158 if test "${ac_cv_prog_SYNC+set}" = set; then :
4159   $as_echo_n "(cached) " >&6
4160 else
4161   if test -n "$SYNC"; then
4162   ac_cv_prog_SYNC="$SYNC" # Let the user override the test.
4163 else
4164 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
4165 for as_dir in $PATH
4166 do
4167   IFS=$as_save_IFS
4168   test -z "$as_dir" && as_dir=.
4169     for ac_exec_ext in '' $ac_executable_extensions; do
4170   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
4171     ac_cv_prog_SYNC="sync "
4172     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
4173     break 2
4174   fi
4175 done
4176   done
4177 IFS=$as_save_IFS
4178
4179 fi
4180 fi
4181 SYNC=$ac_cv_prog_SYNC
4182 if test -n "$SYNC"; then
4183   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $SYNC" >&5
4184 $as_echo "$SYNC" >&6; }
4185 else
4186   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
4187 $as_echo "no" >&6; }
4188 fi
4189
4190
4191 if test -n "$SYNC"
4192 then
4193
4194 cat >>confdefs.h <<_ACEOF
4195 #define CMK_HAS_SYNC 1
4196 _ACEOF
4197
4198 fi
4199
4200 ################## Fortran #########################
4201
4202 #echo "set F77 compiler as: $CMK_CF77"
4203 { $as_echo "$as_me:${as_lineno-$LINENO}: checking \"F77 compiler as\"" >&5
4204 $as_echo_n "checking \"F77 compiler as\"... " >&6; }
4205 { $as_echo "$as_me:${as_lineno-$LINENO}: result: \"$CMK_CF77\"" >&5
4206 $as_echo "\"$CMK_CF77\"" >&6; }
4207
4208 { $as_echo "$as_me:${as_lineno-$LINENO}: checking \"whether Fortran 77 compiler works\"" >&5
4209 $as_echo_n "checking \"whether Fortran 77 compiler works\"... " >&6; }
4210 ### test fortran 77 compiler ###
4211 cat > conftest.f <<EOF
4212       SUBROUTINE FOO_foo
4213       END
4214 EOF
4215 $CMK_CF77 -c conftest.f > /dev/null 2> /dev/null
4216 if test ! -r conftest.o
4217 then
4218   { $as_echo "$as_me:${as_lineno-$LINENO}: result: \"no\"" >&5
4219 $as_echo "\"no\"" >&6; }
4220 else
4221   { $as_echo "$as_me:${as_lineno-$LINENO}: result: \"yes\"" >&5
4222 $as_echo "\"yes\"" >&6; }
4223 fi
4224
4225 ### test fortran 90 compiler ###
4226 #echo "set F90 compiler as: $CMK_CF90"
4227 { $as_echo "$as_me:${as_lineno-$LINENO}: checking \"F90 compiler as\"" >&5
4228 $as_echo_n "checking \"F90 compiler as\"... " >&6; }
4229 { $as_echo "$as_me:${as_lineno-$LINENO}: result: \"$CMK_CF90\"" >&5
4230 $as_echo "\"$CMK_CF90\"" >&6; }
4231
4232 { $as_echo "$as_me:${as_lineno-$LINENO}: checking \"whether Fortran 90 compiler works\"" >&5
4233 $as_echo_n "checking \"whether Fortran 90 compiler works\"... " >&6; }
4234 cat > conftest2.f90 <<EOF
4235       SUBROUTINE FOO_foo
4236       END
4237 EOF
4238 $CMK_CF90 -c conftest2.f90 > /dev/null 2> /dev/null
4239 if test ! -r conftest2.o
4240 then
4241   { $as_echo "$as_me:${as_lineno-$LINENO}: result: \"no\"" >&5
4242 $as_echo "\"no\"" >&6; }
4243 else
4244   { $as_echo "$as_me:${as_lineno-$LINENO}: result: \"yes\"" >&5
4245 $as_echo "\"yes\"" >&6; }
4246   mv -f conftest2.o conftest.o
4247   USE_FORTRAN90=1
4248 fi
4249
4250 ### check fortran name mangling
4251 { $as_echo "$as_me:${as_lineno-$LINENO}: checking subroutine name used by Fortran 90 compiler" >&5
4252 $as_echo_n "checking subroutine name used by Fortran 90 compiler... " >&6; }
4253
4254 if test -r conftest.o
4255 then
4256   if test "${_cv_fortran_postfix+set}" = set; then :
4257   $as_echo_n "(cached) " >&6
4258 else
4259   NAME=`$CMK_NM conftest.o | grep "foo_foo__"`
4260   if test "$NAME" != ""
4261   then
4262     _cv_fortran_postfix=TWOSCORE
4263
4264 cat >>confdefs.h <<_ACEOF
4265 #define CMK_FORTRAN_USES_TWOSCORE 1
4266 _ACEOF
4267
4268   else
4269     NAME=`$CMK_NM conftest.o | grep "foo_foo_"`
4270     if test "$NAME" != ""
4271     then
4272       _cv_fortran_postfix=ONESCORE
4273
4274 cat >>confdefs.h <<_ACEOF
4275 #define CMK_FORTRAN_USES_ONESCORE 1
4276 _ACEOF
4277
4278     else
4279       NAME=`$CMK_NM conftest.o | grep "foo_foo"`
4280       if test "$NAME" != ""
4281       then
4282         _cv_fortran_postfix=NOSCORE
4283
4284 cat >>confdefs.h <<_ACEOF
4285 #define CMK_FORTRAN_USES_NOSCORE 1
4286 _ACEOF
4287
4288       else
4289         NAME=`$CMK_NM conftest.o | grep "FOO_FOO"`
4290         if test "$NAME" != ""
4291         then
4292           _cv_fortran_postfix=ALLCAPS
4293
4294 cat >>confdefs.h <<_ACEOF
4295 #define CMK_FORTRAN_USES_ALLCAPS 1
4296 _ACEOF
4297
4298         else
4299           echo "#################################################"
4300           echo "FORTRAN compiler generated name not supported yet"
4301           echo "#################################################"
4302         fi
4303       fi
4304     fi
4305   fi
4306   rm -f conftest.f conftest.o
4307
4308 fi
4309
4310   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $_cv_fortran_postfix" >&5
4311 $as_echo "$_cv_fortran_postfix" >&6; }
4312 else
4313   { $as_echo "$as_me:${as_lineno-$LINENO}: result: \"Fortran compiler not working\"" >&5
4314 $as_echo "\"Fortran compiler not working\"" >&6; }
4315 fi
4316
4317 ### check module name ###
4318
4319 if test "$USE_FORTRAN90" = 1
4320 then
4321   cat > conftest.f90 <<EOF
4322       MODULE testmod
4323         interface
4324           function fpup_issizing(p)
4325           INTEGER :: p
4326           logical fpup_issizing
4327           end function
4328         end interface
4329       END MODULE
4330 EOF
4331   { $as_echo "$as_me:${as_lineno-$LINENO}: checking Fortran 90 mod name is capital" >&5
4332 $as_echo_n "checking Fortran 90 mod name is capital... " >&6; }
4333   $CMK_CF90 -c conftest.f90 > /dev/null 2> /dev/null
4334   name=`ls TESTMOD.* 2>/dev/null`
4335   if test -n "$name"
4336   then
4337         { $as_echo "$as_me:${as_lineno-$LINENO}: result: \"yes\"" >&5
4338 $as_echo "\"yes\"" >&6; }
4339         add_flag 'CMK_MOD_NAME_ALLCAPS=1' "mod name capital"
4340   else
4341         { $as_echo "$as_me:${as_lineno-$LINENO}: result: \"no\"" >&5
4342 $as_echo "\"no\"" >&6; }
4343         name=`ls testmod.* 2>/dev/null`
4344   fi
4345   if test -n "$name"
4346   then
4347         { $as_echo "$as_me:${as_lineno-$LINENO}: checking Fortran 90 mod name extension" >&5
4348 $as_echo_n "checking Fortran 90 mod name extension... " >&6; }
4349         ext=`echo $name | sed -e 's/^[^.]*\.//'`
4350         add_flag 'CMK_MOD_EXT="'$ext'"' "mod name extension"
4351         { $as_echo "$as_me:${as_lineno-$LINENO}: result: \"$ext\"" >&5
4352 $as_echo "\"$ext\"" >&6; }
4353         /bin/rm -f $name
4354   fi
4355   /bin/rm -f conftest.f90
4356 fi
4357
4358 ac_config_files="$ac_config_files libs/ck-libs/ampi/ampiCC libs/ck-libs/ampi/ampirun"
4359
4360 ac_config_commands="$ac_config_commands default"
4361
4362 cat >confcache <<\_ACEOF
4363 # This file is a shell script that caches the results of configure
4364 # tests run on this system so they can be shared between configure
4365 # scripts and configure runs, see configure's option --config-cache.
4366 # It is not useful on other systems.  If it contains results you don't
4367 # want to keep, you may remove or edit it.
4368 #
4369 # config.status only pays attention to the cache file if you give it
4370 # the --recheck option to rerun configure.
4371 #
4372 # `ac_cv_env_foo' variables (set or unset) will be overridden when
4373 # loading this file, other *unset* `ac_cv_foo' will be assigned the
4374 # following values.
4375
4376 _ACEOF
4377
4378 # The following way of writing the cache mishandles newlines in values,
4379 # but we know of no workaround that is simple, portable, and efficient.
4380 # So, we kill variables containing newlines.
4381 # Ultrix sh set writes to stderr and can't be redirected directly,
4382 # and sets the high bit in the cache file unless we assign to the vars.
4383 (
4384   for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do
4385     eval ac_val=\$$ac_var
4386     case $ac_val in #(
4387     *${as_nl}*)
4388       case $ac_var in #(
4389       *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
4390 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
4391       esac
4392       case $ac_var in #(
4393       _ | IFS | as_nl) ;; #(
4394       BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
4395       *) { eval $ac_var=; unset $ac_var;} ;;
4396       esac ;;
4397     esac
4398   done
4399
4400   (set) 2>&1 |
4401     case $as_nl`(ac_space=' '; set) 2>&1` in #(
4402     *${as_nl}ac_space=\ *)
4403       # `set' does not quote correctly, so add quotes: double-quote
4404       # substitution turns \\\\ into \\, and sed turns \\ into \.
4405       sed -n \
4406         "s/'/'\\\\''/g;
4407           s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
4408       ;; #(
4409     *)
4410       # `set' quotes correctly as required by POSIX, so do not add quotes.
4411       sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
4412       ;;
4413     esac |
4414     sort
4415 ) |
4416   sed '
4417      /^ac_cv_env_/b end
4418      t clear
4419      :clear
4420      s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
4421      t end
4422      s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
4423      :end' >>confcache
4424 if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
4425   if test -w "$cache_file"; then
4426     test "x$cache_file" != "x/dev/null" &&
4427       { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
4428 $as_echo "$as_me: updating cache $cache_file" >&6;}
4429     cat confcache >$cache_file
4430   else
4431     { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
4432 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
4433   fi
4434 fi
4435 rm -f confcache
4436
4437 test "x$prefix" = xNONE && prefix=$ac_default_prefix
4438 # Let make expand exec_prefix.
4439 test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
4440
4441 DEFS=-DHAVE_CONFIG_H
4442
4443 ac_libobjs=
4444 ac_ltlibobjs=
4445 for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
4446   # 1. Remove the extension, and $U if already installed.
4447   ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
4448   ac_i=`$as_echo "$ac_i" | sed "$ac_script"`
4449   # 2. Prepend LIBOBJDIR.  When used with automake>=1.10 LIBOBJDIR
4450   #    will be set to the directory where LIBOBJS objects are built.
4451   as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext"
4452   as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo'
4453 done
4454 LIBOBJS=$ac_libobjs
4455
4456 LTLIBOBJS=$ac_ltlibobjs
4457
4458
4459
4460 : ${CONFIG_STATUS=./config.status}
4461 ac_write_fail=0
4462 ac_clean_files_save=$ac_clean_files
4463 ac_clean_files="$ac_clean_files $CONFIG_STATUS"
4464 { $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5
4465 $as_echo "$as_me: creating $CONFIG_STATUS" >&6;}
4466 as_write_fail=0
4467 cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1
4468 #! $SHELL
4469 # Generated by $as_me.
4470 # Run this file to recreate the current configuration.
4471 # Compiler output produced by configure, useful for debugging
4472 # configure, is in config.log if it exists.
4473
4474 debug=false
4475 ac_cs_recheck=false
4476 ac_cs_silent=false
4477
4478 SHELL=\${CONFIG_SHELL-$SHELL}
4479 export SHELL
4480 _ASEOF
4481 cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1
4482 ## -------------------- ##
4483 ## M4sh Initialization. ##
4484 ## -------------------- ##
4485
4486 # Be more Bourne compatible
4487 DUALCASE=1; export DUALCASE # for MKS sh
4488 if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
4489   emulate sh
4490   NULLCMD=:
4491   # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
4492   # is contrary to our usage.  Disable this feature.
4493   alias -g '${1+"$@"}'='"$@"'
4494   setopt NO_GLOB_SUBST
4495 else
4496   case `(set -o) 2>/dev/null` in #(
4497   *posix*) :
4498     set -o posix ;; #(
4499   *) :
4500      ;;
4501 esac
4502 fi
4503
4504
4505 as_nl='
4506 '
4507 export as_nl
4508 # Printing a long string crashes Solaris 7 /usr/bin/printf.
4509 as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
4510 as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
4511 as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
4512 # Prefer a ksh shell builtin over an external printf program on Solaris,
4513 # but without wasting forks for bash or zsh.
4514 if test -z "$BASH_VERSION$ZSH_VERSION" \
4515     && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
4516   as_echo='print -r --'
4517   as_echo_n='print -rn --'
4518 elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
4519   as_echo='printf %s\n'
4520   as_echo_n='printf %s'
4521 else
4522   if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
4523     as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
4524     as_echo_n='/usr/ucb/echo -n'
4525   else
4526     as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
4527     as_echo_n_body='eval
4528       arg=$1;
4529       case $arg in #(
4530       *"$as_nl"*)
4531         expr "X$arg" : "X\\(.*\\)$as_nl";
4532         arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
4533       esac;
4534       expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
4535     '
4536     export as_echo_n_body
4537     as_echo_n='sh -c $as_echo_n_body as_echo'
4538   fi
4539   export as_echo_body
4540   as_echo='sh -c $as_echo_body as_echo'
4541 fi
4542
4543 # The user is always right.
4544 if test "${PATH_SEPARATOR+set}" != set; then
4545   PATH_SEPARATOR=:
4546   (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
4547     (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
4548       PATH_SEPARATOR=';'
4549   }
4550 fi
4551
4552
4553 # IFS
4554 # We need space, tab and new line, in precisely that order.  Quoting is
4555 # there to prevent editors from complaining about space-tab.
4556 # (If _AS_PATH_WALK were called with IFS unset, it would disable word
4557 # splitting by setting IFS to empty value.)
4558 IFS=" ""        $as_nl"
4559
4560 # Find who we are.  Look in the path if we contain no directory separator.
4561 case $0 in #((
4562   *[\\/]* ) as_myself=$0 ;;
4563   *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
4564 for as_dir in $PATH
4565 do
4566   IFS=$as_save_IFS
4567   test -z "$as_dir" && as_dir=.
4568     test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
4569   done
4570 IFS=$as_save_IFS
4571
4572      ;;
4573 esac
4574 # We did not find ourselves, most probably we were run as `sh COMMAND'
4575 # in which case we are not to be found in the path.
4576 if test "x$as_myself" = x; then
4577   as_myself=$0
4578 fi
4579 if test ! -f "$as_myself"; then
4580   $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
4581   exit 1
4582 fi
4583
4584 # Unset variables that we do not need and which cause bugs (e.g. in
4585 # pre-3.0 UWIN ksh).  But do not cause bugs in bash 2.01; the "|| exit 1"
4586 # suppresses any "Segmentation fault" message there.  '((' could
4587 # trigger a bug in pdksh 5.2.14.
4588 for as_var in BASH_ENV ENV MAIL MAILPATH
4589 do eval test x\${$as_var+set} = xset \
4590   && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
4591 done
4592 PS1='$ '
4593 PS2='> '
4594 PS4='+ '
4595
4596 # NLS nuisances.
4597 LC_ALL=C
4598 export LC_ALL
4599 LANGUAGE=C
4600 export LANGUAGE
4601
4602 # CDPATH.
4603 (unset CDPATH) >/dev/null 2>&1 && unset CDPATH
4604
4605
4606 # as_fn_error ERROR [LINENO LOG_FD]
4607 # ---------------------------------
4608 # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
4609 # provided, also output the error to LOG_FD, referencing LINENO. Then exit the
4610 # script with status $?, using 1 if that was 0.
4611 as_fn_error ()
4612 {
4613   as_status=$?; test $as_status -eq 0 && as_status=1
4614   if test "$3"; then
4615     as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
4616     $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3
4617   fi
4618   $as_echo "$as_me: error: $1" >&2
4619   as_fn_exit $as_status
4620 } # as_fn_error
4621
4622
4623 # as_fn_set_status STATUS
4624 # -----------------------
4625 # Set $? to STATUS, without forking.
4626 as_fn_set_status ()
4627 {
4628   return $1
4629 } # as_fn_set_status
4630
4631 # as_fn_exit STATUS
4632 # -----------------
4633 # Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
4634 as_fn_exit ()
4635 {
4636   set +e
4637   as_fn_set_status $1
4638   exit $1
4639 } # as_fn_exit
4640
4641 # as_fn_unset VAR
4642 # ---------------