configure

changeset 51
5acf05940667
parent 48
0d2c13c24fd0
equal deleted inserted replaced
50:63477d92411d 51:5acf05940667
1343 --disable-option-checking ignore unrecognized --enable/--with options 1343 --disable-option-checking ignore unrecognized --enable/--with options
1344 --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) 1344 --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
1345 --enable-FEATURE[=ARG] include FEATURE [ARG=yes] 1345 --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
1346 --enable-silent-rules less verbose build output (undo: "make V=1") 1346 --enable-silent-rules less verbose build output (undo: "make V=1")
1347 --disable-silent-rules verbose build output (undo: "make V=0") 1347 --disable-silent-rules verbose build output (undo: "make V=0")
1348 --enable-debug Turn on debugging 1348 --enable-debug Turn on debugging
1349 --enable-dependency-tracking 1349 --enable-dependency-tracking
1350 do not reject slow dependency extractors 1350 do not reject slow dependency extractors
1351 --disable-dependency-tracking 1351 --disable-dependency-tracking
1352 speeds up one-time build 1352 speeds up one-time build
1353 1353
2787 DEBUG_TRUE='#' 2787 DEBUG_TRUE='#'
2788 DEBUG_FALSE= 2788 DEBUG_FALSE=
2789 fi 2789 fi
2790 2790
2791 2791
2792 # Checks for programs. 2792 # Compiler (empty default options)
2793 ${CFLAGS=""}
2793 ac_ext=c 2794 ac_ext=c
2794 ac_cpp='$CPP $CPPFLAGS' 2795 ac_cpp='$CPP $CPPFLAGS'
2795 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' 2796 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
2796 ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' 2797 ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
2797 ac_compiler_gnu=$ac_cv_c_compiler_gnu 2798 ac_compiler_gnu=$ac_cv_c_compiler_gnu
3768 am__fastdepCC_TRUE='#' 3769 am__fastdepCC_TRUE='#'
3769 am__fastdepCC_FALSE= 3770 am__fastdepCC_FALSE=
3770 fi 3771 fi
3771 3772
3772 3773
3773 3774 case $ac_cv_prog_cc_stdc in #(
3774 # Checks for libraries. 3775 no) :
3776 ac_cv_prog_cc_c99=no; ac_cv_prog_cc_c89=no ;; #(
3777 *) :
3778 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C99" >&5
3779 $as_echo_n "checking for $CC option to accept ISO C99... " >&6; }
3780 if ${ac_cv_prog_cc_c99+:} false; then :
3781 $as_echo_n "(cached) " >&6
3782 else
3783 ac_cv_prog_cc_c99=no
3784 ac_save_CC=$CC
3785 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
3786 /* end confdefs.h. */
3787 #include <stdarg.h>
3788 #include <stdbool.h>
3789 #include <stdlib.h>
3790 #include <wchar.h>
3791 #include <stdio.h>
3792
3793 // Check varargs macros. These examples are taken from C99 6.10.3.5.
3794 #define debug(...) fprintf (stderr, __VA_ARGS__)
3795 #define showlist(...) puts (#__VA_ARGS__)
3796 #define report(test,...) ((test) ? puts (#test) : printf (__VA_ARGS__))
3797 static void
3798 test_varargs_macros (void)
3799 {
3800 int x = 1234;
3801 int y = 5678;
3802 debug ("Flag");
3803 debug ("X = %d\n", x);
3804 showlist (The first, second, and third items.);
3805 report (x>y, "x is %d but y is %d", x, y);
3806 }
3807
3808 // Check long long types.
3809 #define BIG64 18446744073709551615ull
3810 #define BIG32 4294967295ul
3811 #define BIG_OK (BIG64 / BIG32 == 4294967297ull && BIG64 % BIG32 == 0)
3812 #if !BIG_OK
3813 your preprocessor is broken;
3814 #endif
3815 #if BIG_OK
3816 #else
3817 your preprocessor is broken;
3818 #endif
3819 static long long int bignum = -9223372036854775807LL;
3820 static unsigned long long int ubignum = BIG64;
3821
3822 struct incomplete_array
3823 {
3824 int datasize;
3825 double data[];
3826 };
3827
3828 struct named_init {
3829 int number;
3830 const wchar_t *name;
3831 double average;
3832 };
3833
3834 typedef const char *ccp;
3835
3836 static inline int
3837 test_restrict (ccp restrict text)
3838 {
3839 // See if C++-style comments work.
3840 // Iterate through items via the restricted pointer.
3841 // Also check for declarations in for loops.
3842 for (unsigned int i = 0; *(text+i) != '\0'; ++i)
3843 continue;
3844 return 0;
3845 }
3846
3847 // Check varargs and va_copy.
3848 static void
3849 test_varargs (const char *format, ...)
3850 {
3851 va_list args;
3852 va_start (args, format);
3853 va_list args_copy;
3854 va_copy (args_copy, args);
3855
3856 const char *str;
3857 int number;
3858 float fnumber;
3859
3860 while (*format)
3861 {
3862 switch (*format++)
3863 {
3864 case 's': // string
3865 str = va_arg (args_copy, const char *);
3866 break;
3867 case 'd': // int
3868 number = va_arg (args_copy, int);
3869 break;
3870 case 'f': // float
3871 fnumber = va_arg (args_copy, double);
3872 break;
3873 default:
3874 break;
3875 }
3876 }
3877 va_end (args_copy);
3878 va_end (args);
3879 }
3880
3881 int
3882 main ()
3883 {
3884
3885 // Check bool.
3886 _Bool success = false;
3887
3888 // Check restrict.
3889 if (test_restrict ("String literal") == 0)
3890 success = true;
3891 char *restrict newvar = "Another string";
3892
3893 // Check varargs.
3894 test_varargs ("s, d' f .", "string", 65, 34.234);
3895 test_varargs_macros ();
3896
3897 // Check flexible array members.
3898 struct incomplete_array *ia =
3899 malloc (sizeof (struct incomplete_array) + (sizeof (double) * 10));
3900 ia->datasize = 10;
3901 for (int i = 0; i < ia->datasize; ++i)
3902 ia->data[i] = i * 1.234;
3903
3904 // Check named initializers.
3905 struct named_init ni = {
3906 .number = 34,
3907 .name = L"Test wide string",
3908 .average = 543.34343,
3909 };
3910
3911 ni.number = 58;
3912
3913 int dynamic_array[ni.number];
3914 dynamic_array[ni.number - 1] = 543;
3915
3916 // work around unused variable warnings
3917 return (!success || bignum == 0LL || ubignum == 0uLL || newvar[0] == 'x'
3918 || dynamic_array[ni.number - 1] != 543);
3919
3920 ;
3921 return 0;
3922 }
3923 _ACEOF
3924 for ac_arg in '' -std=gnu99 -std=c99 -c99 -AC99 -D_STDC_C99= -qlanglvl=extc99
3925 do
3926 CC="$ac_save_CC $ac_arg"
3927 if ac_fn_c_try_compile "$LINENO"; then :
3928 ac_cv_prog_cc_c99=$ac_arg
3929 fi
3930 rm -f core conftest.err conftest.$ac_objext
3931 test "x$ac_cv_prog_cc_c99" != "xno" && break
3932 done
3933 rm -f conftest.$ac_ext
3934 CC=$ac_save_CC
3935
3936 fi
3937 # AC_CACHE_VAL
3938 case "x$ac_cv_prog_cc_c99" in
3939 x)
3940 { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
3941 $as_echo "none needed" >&6; } ;;
3942 xno)
3943 { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
3944 $as_echo "unsupported" >&6; } ;;
3945 *)
3946 CC="$CC $ac_cv_prog_cc_c99"
3947 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5
3948 $as_echo "$ac_cv_prog_cc_c99" >&6; } ;;
3949 esac
3950 if test "x$ac_cv_prog_cc_c99" != xno; then :
3951 ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c99
3952 else
3953 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
3954 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
3955 if ${ac_cv_prog_cc_c89+:} false; then :
3956 $as_echo_n "(cached) " >&6
3957 else
3958 ac_cv_prog_cc_c89=no
3959 ac_save_CC=$CC
3960 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
3961 /* end confdefs.h. */
3962 #include <stdarg.h>
3963 #include <stdio.h>
3964 struct stat;
3965 /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
3966 struct buf { int x; };
3967 FILE * (*rcsopen) (struct buf *, struct stat *, int);
3968 static char *e (p, i)
3969 char **p;
3970 int i;
3971 {
3972 return p[i];
3973 }
3974 static char *f (char * (*g) (char **, int), char **p, ...)
3975 {
3976 char *s;
3977 va_list v;
3978 va_start (v,p);
3979 s = g (p, va_arg (v,int));
3980 va_end (v);
3981 return s;
3982 }
3983
3984 /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has
3985 function prototypes and stuff, but not '\xHH' hex character constants.
3986 These don't provoke an error unfortunately, instead are silently treated
3987 as 'x'. The following induces an error, until -std is added to get
3988 proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an
3989 array size at least. It's necessary to write '\x00'==0 to get something
3990 that's true only with -std. */
3991 int osf4_cc_array ['\x00' == 0 ? 1 : -1];
3992
3993 /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
3994 inside strings and character constants. */
3995 #define FOO(x) 'x'
3996 int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
3997
3998 int test (int i, double x);
3999 struct s1 {int (*f) (int a);};
4000 struct s2 {int (*f) (double a);};
4001 int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
4002 int argc;
4003 char **argv;
4004 int
4005 main ()
4006 {
4007 return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
4008 ;
4009 return 0;
4010 }
4011 _ACEOF
4012 for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
4013 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
4014 do
4015 CC="$ac_save_CC $ac_arg"
4016 if ac_fn_c_try_compile "$LINENO"; then :
4017 ac_cv_prog_cc_c89=$ac_arg
4018 fi
4019 rm -f core conftest.err conftest.$ac_objext
4020 test "x$ac_cv_prog_cc_c89" != "xno" && break
4021 done
4022 rm -f conftest.$ac_ext
4023 CC=$ac_save_CC
4024
4025 fi
4026 # AC_CACHE_VAL
4027 case "x$ac_cv_prog_cc_c89" in
4028 x)
4029 { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
4030 $as_echo "none needed" >&6; } ;;
4031 xno)
4032 { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
4033 $as_echo "unsupported" >&6; } ;;
4034 *)
4035 CC="$CC $ac_cv_prog_cc_c89"
4036 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
4037 $as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
4038 esac
4039 if test "x$ac_cv_prog_cc_c89" != xno; then :
4040 ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c89
4041 else
4042 ac_cv_prog_cc_stdc=no
4043 fi
4044
4045 fi
4046 ;;
4047 esac
4048 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO Standard C" >&5
4049 $as_echo_n "checking for $CC option to accept ISO Standard C... " >&6; }
4050 if ${ac_cv_prog_cc_stdc+:} false; then :
4051 $as_echo_n "(cached) " >&6
4052 fi
4053
4054 case $ac_cv_prog_cc_stdc in #(
4055 no) :
4056 { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
4057 $as_echo "unsupported" >&6; } ;; #(
4058 '') :
4059 { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
4060 $as_echo "none needed" >&6; } ;; #(
4061 *) :
4062 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_stdc" >&5
4063 $as_echo "$ac_cv_prog_cc_stdc" >&6; } ;;
4064 esac
4065
3775 4066
3776 # Checks for header files. 4067 # Checks for header files.
3777 4068
3778 ac_ext=c 4069 ac_ext=c
3779 ac_cpp='$CPP $CPPFLAGS' 4070 ac_cpp='$CPP $CPPFLAGS'
4170 fi 4461 fi
4171 4462
4172 done 4463 done
4173 4464
4174 4465
4175 for ac_header in stdlib.h string.h 4466 for ac_header in stdlib.h string.h dirent.h regex.h
4176 do : 4467 do :
4177 as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` 4468 as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
4178 ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" 4469 ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
4179 if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : 4470 if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
4180 cat >>confdefs.h <<_ACEOF 4471 cat >>confdefs.h <<_ACEOF

mercurial