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