# general
ac_cv_func_setvbuf_reversed=${ac_cv_func_setvbuf_reversed=no}

# bash
ac_cv_c_long_double=${ac_cv_c_long_double=no}
bash_cv_func_sigsetjmp=${bash_cv_func_sigsetjmp=present}

# openssh
ac_cv_have_accrights_in_msghdr=${ac_cv_have_accrights_in_msghdr=no}
ac_cv_have_broken_snprintf=${ac_cv_have_broken_snprintf=no}
ac_cv_have_control_in_msghdr=${ac_cv_have_control_in_msghdr=yes}
ac_cv_have_openpty_ctty_bug=${ac_cv_have_openpty_ctty_bug=no}
ac_cv_have_space_d_name_in_struct_dirent=${ac_cv_have_space_d_name_in_struct_dirent=yes}

# fget
compat_cv_func_snprintf_works=${compat_cv_func_snprintf_works=yes}

# glib
glib_cv___va_copy=${glib_cv___va_copy=yes}
glib_cv_has__inline=${glib_cv_has__inline=yes}
glib_cv_has__inline__=${glib_cv_has__inline__=yes}
glib_cv_hasinline=${glib_cv_hasinline=yes}
glib_cv_long_long_format=${glib_cv_long_long_format=ll}
glib_cv_rtldglobal_broken=${glib_cv_rtldglobal_broken=no}
glib_cv_sane_realloc=${glib_cv_sane_realloc=yes}
glib_cv_sizeof_gmutex=${glib_cv_sizeof_gmutex=24}
glib_cv_sizeof_system_thread=${glib_cv_sizeof_system_thread=4}
glib_cv_stack_grows=${glib_cv_stack_grows=no}
glib_cv_uscore=${glib_cv_uscore=no}

# glib-2.0
glib_cv_stack_grows=${glib_cv_stack_grows=no}
utils_cv_sys_open_max=${utils_cv_sys_open_max=1015}
glib_cv_use_pid_surrogate=${glib_cv_use_pid_surrogate=yes}

# libpcap
ac_cv_linux_vers=${ac_cv_linux_vers=2}

# startup-notification
lf_cv_sane_realloc=${lf_cv_sane_realloc=yes}

# ncftp
wi_cv_struct_timeval_tv_sec=${wi_cv_struct_timeval_tv_sec=long}
wi_cv_struct_timeval_tv_usec=${wi_cv_struct_timeval_tv_usec=long}

# db
db_cv_align_t=${db_cv_align_t='unsigned long long'}
db_cv_alignp_t=${db_cv_alignp_t='unsigned long'}
db_cv_fcntl_f_setfd=${db_cv_fcntl_f_setfd=yes}
db_cv_sprintf_count=${db_cv_sprintf_count=yes}

# rrdtool
rd_cv_ieee_works=${rd_cv_ieee_works=yes}
# ac_cv_path_PERL=${ac_cv_path_PERL=no}

# gettext
am_cv_func_working_getline=${am_cv_func_working_getline=yes}

# samba
samba_cv_HAVE_GETTIMEOFDAY_TZ=${samba_cv_HAVE_GETTIMEOFDAY_TZ=yes}

# vim
ac_cv_sizeof_int=${ac_cv_sizeof_int=4}

# intercom
ac_cv_func_fnmatch_works=${ac_cv_func_fnmatch_works=yes}

# lmbench
ac_cv_uint=${ac_cv_unit=yes}

# D-BUS
ac_cv_func_posix_getpwnam_r=${ac_cv_func_posix_getpwnam_r=yes}

# evolution-data-server
ac_cv_libiconv_utf8=${ac_cv_libiconv_utf8=yes}

