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