📄 configure.ac
字号:
if test -z "$GSSAPI_LIB_DIR"; then if test -f "$GSSAPI_ROOT/bin/krb5-config"; then gss_ldflags=`$GSSAPI_ROOT/bin/krb5-config --libs gssapi` LDFLAGS="$LDFLAGS $gss_ldflags" else LDFLAGS="$LDFLAGS $GSSAPI_ROOT/lib -lgssapi" fi else LDFLAGS="$LDFLAGS $GSSAPI_LIB_DIR" fi AC_MSG_RESULT(yes) AC_DEFINE(HAVE_GSSAPI, 1, [if you have the gssapi libraries]) if test -n "$GSSAPI_INCS"; then # cut off the preceding -I from the include path GSSAPI_INCS=`echo $GSSAPI_INCS | sed -e s/^-I//g` fi if test -f "$GSSAPI_INCS/gssapi.h"; then AC_DEFINE(HAVE_GSSHEIMDAL, 1, [if you have the Heimdal gssapi libraries]) else AC_DEFINE(HAVE_GSSMIT, 1, [if you have the MIT gssapi libraries]) fi else AC_MSG_RESULT(no)fi dnl Detect the pkg-config tool, as it may have extra info about thednl openssl installation we can use. I *believe* this is what we arednl expected to do on really recent Redhat Linux hosts.AC_PATH_PROG( PKGCONFIG, pkg-config, no, $PATH:/usr/bin:/usr/local/bin)if test "$PKGCONFIG" != "no" ; then AC_MSG_CHECKING([for OpenSSL options using pkg-config]) $PKGCONFIG --exists openssl SSL_EXISTS=$? if test "$SSL_EXISTS" -eq "0"; then SSL_LIBS=`$PKGCONFIG --libs-only-l openssl 2>/dev/null` SSL_LDFLAGS=`$PKGCONFIG --libs-only-L openssl 2>/dev/null` SSL_CPPFLAGS=`$PKGCONFIG --cflags-only-I openssl 2>/dev/null` LIBS="$LIBS $SSL_LIBS" CPPFLAGS="$CPPFLAGS $SSL_CPPFLAGS" LDFLAGS="$LDFLAGS $SSL_LDFLAGS" AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) fifidnl **********************************************************************dnl Check for the presence of SSL libraries and headersdnl **********************************************************************dnl Default to compiler & linker defaults for SSL files & libraries.OPT_SSL=offdnl Default to no CA bundleca="no"AC_ARG_WITH(ssl,dnlAC_HELP_STRING([--with-ssl=PATH],[where to look for SSL, PATH points to the SSL installation (default: /usr/local/ssl)])AC_HELP_STRING([--without-ssl], [disable SSL]), OPT_SSL=$withval)if test X"$OPT_SSL" = Xnothen AC_MSG_WARN(SSL/https support disabled) else dnl Check for and handle argument to --with-ssl. dnl save the pre-ssl check flags for a while CLEANLDFLAGS="$LDFLAGS" CLEANCPPFLAGS="$CPPFLAGS" case "$OPT_SSL" in yes) EXTRA_SSL=/usr/local/ssl ;; off) EXTRA_SSL= ;; *) dnl check the given spot right away! EXTRA_SSL=$OPT_SSL LDFLAGS="$LDFLAGS -L$EXTRA_SSL/lib" CPPFLAGS="$CPPFLAGS -I$EXTRA_SSL/include/openssl -I$EXTRA_SSL/include" ;; esac AC_CHECK_LIB(crypto, CRYPTO_lock,[ HAVECRYPTO="yes" ],[ OLDLDFLAGS="$LDFLAGS" OLDCPPFLAGS="$CPPFLAGS" LDFLAGS="$CLEANLDFLAGS -L$EXTRA_SSL/lib" CPPFLAGS="$CLEANCPPFLAGS -I$EXTRA_SSL/include/openssl -I$EXTRA_SSL/include" AC_CHECK_LIB(crypto, CRYPTO_add_lock,[ HAVECRYPTO="yes" ], [ LDFLAGS="$OLDLDFLAGS" CPPFLAGS="$OLDCPPFLAGS" ]) ]) if test "$HAVECRYPTO" = "yes"; then dnl This is only reasonable to do if crypto actually is there: check for dnl SSL libs NOTE: it is important to do this AFTER the crypto lib AC_CHECK_LIB(crypto, CRYPTO_add_lock) AC_CHECK_LIB(ssl, SSL_connect) if test "$ac_cv_lib_ssl_SSL_connect" != yes; then dnl we didn't find the SSL lib, try the RSAglue/rsaref stuff AC_MSG_CHECKING(for ssl with RSAglue/rsaref libs in use); OLIBS=$LIBS LIBS="$LIBS -lRSAglue -lrsaref" AC_CHECK_LIB(ssl, SSL_connect) if test "$ac_cv_lib_ssl_SSL_connect" != yes; then dnl still no SSL_connect AC_MSG_RESULT(no) LIBS=$OLIBS else AC_MSG_RESULT(yes) fi fi dnl Check for SSLeay headers AC_CHECK_HEADERS(openssl/x509.h openssl/rsa.h openssl/crypto.h \ openssl/pem.h openssl/ssl.h openssl/err.h, OPENSSL_ENABLED=1) if test $ac_cv_header_openssl_x509_h = no; then AC_CHECK_HEADERS(x509.h rsa.h crypto.h pem.h ssl.h err.h, OPENSSL_ENABLED=1) fi dnl If the ENGINE library seems to be around, check for the OpenSSL engine dnl header, it is kind of "separated" from the main SSL check AC_CHECK_FUNC(ENGINE_init, [ AC_CHECK_HEADERS(openssl/engine.h) ]) AC_SUBST(OPENSSL_ENABLED) AC_MSG_CHECKING([CA cert bundle install path]) AC_ARG_WITH(ca-bundle,AC_HELP_STRING([--with-ca-bundle=FILE], [File name to install the CA bundle as])AC_HELP_STRING([--without-ca-bundle], [Don't install the CA bundle]), [ ca="$withval" ], [ if test "x$prefix" != xNONE; then ca="\${prefix}/share/curl/curl-ca-bundle.crt" else ca="$ac_default_prefix/share/curl/curl-ca-bundle.crt" fi ] ) if test X"$OPT_SSL" = Xno; then ca="no" fi if test "x$ca" != "xno"; then CURL_CA_BUNDLE='"'$ca'"' AC_SUBST(CURL_CA_BUNDLE) fi AC_MSG_RESULT([$ca]) dnl these can only exist if openssl exists AC_CHECK_FUNCS( RAND_status \ RAND_screen \ RAND_egd \ CRYPTO_cleanup_all_ex_data ) fi if test X"$OPT_SSL" != Xoff && test "$OPENSSL_ENABLED" != "1"; then AC_MSG_ERROR([OpenSSL libs and/or directories were not found where specified!]) fifiAM_CONDITIONAL(CABUNDLE, test x$ca != xno)dnl **********************************************************************dnl Check for the presence of ZLIB libraries and headersdnl **********************************************************************dnl Check for & handle argument to --with-zlib._cppflags=$CPPFLAGS_ldflags=$LDFLAGSOPT_ZLIB="/usr/local"AC_ARG_WITH(zlib,AC_HELP_STRING([--with-zlib=PATH],[search for zlib in PATH])AC_HELP_STRING([--without-zlib],[disable use of zlib]), [OPT_ZLIB="$withval"])case "$OPT_ZLIB" in no) AC_MSG_WARN([zlib disabled]) ;; *) dnl check for the lib first without setting any new path, since many dnl people have it in the default path AC_CHECK_LIB(z, inflateEnd, , [if test -d "$OPT_ZLIB"; then CPPFLAGS="$CPPFLAGS -I$OPT_ZLIB/include" LDFLAGS="$LDFLAGS -L$OPT_ZLIB/lib" fi]) AC_CHECK_HEADER(zlib.h,[ AC_CHECK_LIB(z, gzread, [HAVE_LIBZ="1" AC_SUBST(HAVE_LIBZ) LIBS="$LIBS -lz" AC_DEFINE(HAVE_ZLIB_H, 1, [if you have the zlib.h header file]) AC_DEFINE(HAVE_LIBZ, 1, [If zlib is available])], [ CPPFLAGS=$_cppflags LDFLAGS=$_ldflags])], [ CPPFLAGS=$_cppflags LDFLAGS=$_ldflags] ) ;;esacdnl set variable for use in automakefile(s)AM_CONDITIONAL(HAVE_LIBZ, test x"$HAVE_LIBZ" = x1)dnl Default is to try the thread-safe versions of a few functionsOPT_THREAD=ondnl detect AIX 4.3 or laterdnl see full docs on this reasoning in the lib/hostip.c source fileAC_MSG_CHECKING([AIX 4.3 or later])AC_PREPROC_IFELSE([#if defined(_AIX) && defined(_AIX43)printf("just fine");#else#error "this is not AIX 4.3 or later"#endif], [ AC_MSG_RESULT([yes]) OPT_THREAD=off ], [ AC_MSG_RESULT([no]) ])AC_ARG_ENABLE(thread,dnlAC_HELP_STRING([--disable-thread],[don't look for thread-safe functions])AC_HELP_STRING([--enable-thread],[look for thread-safe functions]),[ case "$enableval" in no) OPT_THREAD=off AC_MSG_WARN(libcurl will not get built using thread-safe functions) ;; *) ;; esac])if test X"$OPT_THREAD" = Xoffthen AC_DEFINE(DISABLED_THREADSAFE, 1, \Set to explicitly specify we don't want to use thread-safe functions)else dnl dig around for gethostbyname_r() CURL_CHECK_GETHOSTBYNAME_R() dnl dig around for gethostbyaddr_r() CURL_CHECK_GETHOSTBYADDR_R() dnl poke around for inet_ntoa_r() CURL_CHECK_INET_NTOA_R() dnl is there a localtime_r() CURL_CHECK_LOCALTIME_R() AC_CHECK_FUNCS( gmtime_r )fidnl **********************************************************************dnl Back to "normal" configuringdnl **********************************************************************dnl Checks for header files.AC_HEADER_STDCdnl First check for the very most basic headers. Then we can use thesednl ones as default-headers when checking for the rest!AC_CHECK_HEADERS( sys/types.h \ sys/time.h \ sys/select.h \ sys/socket.h \ unistd.h \ malloc.h \ stdlib.h \ arpa/inet.h \ net/if.h \ netinet/in.h \ netdb.h \ sys/sockio.h \ sys/stat.h \ sys/param.h \ termios.h \ termio.h \ sgtty.h \ fcntl.h \ dlfcn.h \ alloca.h \ winsock.h \ time.h \ io.h \ pwd.h \ utime.h \ sys/utime.h \ sys/poll.h \ setjmp.h,dnl to do if not found[],dnl to do if found[],dnl default includes[#ifdef HAVE_SYS_TYPES_H#include <sys/types.h>#endif#ifdef HAVE_SYS_TIME_H#include <sys/time.h>#endif#ifdef HAVE_SYS_SELECT_H#include <sys/select.h>#endif#ifdef HAVE_SYS_SOCKET_H#include <sys/socket.h>#endif])dnl Checks for typedefs, structures, and compiler characteristics.AC_C_CONSTAC_TYPE_SIZE_TAC_HEADER_TIMEAC_CHECK_SIZEOF(off_t)AC_CHECK_TYPE(long long, [AC_DEFINE(HAVE_LONGLONG, 1, [if your compiler supports 'long long'])])# check for ssize_tAC_CHECK_TYPE(ssize_t, , AC_DEFINE(ssize_t, int, [the signed version of size_t]))TYPE_SOCKLEN_TTYPE_IN_ADDR_TAC_FUNC_SELECT_ARGTYPESdnl Checks for library functions.dnl AC_PROG_GCC_TRADITIONALAC_TYPE_SIGNALdnl AC_FUNC_VPRINTFAC_CHECK_FUNCS( socket \ select \ strdup \ strstr \ strtok_r \ strftime \ uname \ strcasecmp \ stricmp \ strcmpi \ gethostbyaddr \ gettimeofday \ inet_addr \ inet_ntoa \ inet_pton \ tcsetattr \ tcgetattr \ perror \ closesocket \ siginterrupt \ sigaction \ signal \ getpass_r \ strlcat \ getpwuid \ geteuid \ dlopen \ utime \ sigsetjmp \ poll,dnl if found[],dnl if not found, $ac_func is the name we check for func="$ac_func" AC_MSG_CHECKING([deeper for $func]) AC_TRY_LINK( [], [ $func ();], AC_MSG_RESULT(yes!) eval "ac_cv_func_$func=yes" def=`echo "HAVE_$func" | tr 'a-z' 'A-Z'` AC_DEFINE_UNQUOTED($def, 1, [If you have $func]), AC_MSG_RESULT(but still no) ))dnl sigsetjmp() might be a macro and no function so if it isn't found alreadydnl we make an extra check here!if test "$ac_cv_func_sigsetjmp" != "yes"; then AC_MSG_CHECKING([for sigsetjmp defined as macro]) AC_TRY_LINK( [#include <setjmp.h>], [sigjmp_buf jmpenv; sigsetjmp(jmpenv, 1);], AC_MSG_RESULT(yes) AC_DEFINE(HAVE_SIGSETJMP, 1, [If you have sigsetjmp]), AC_MSG_RESULT(no) )fiAC_PATH_PROG( PERL, perl, , $PATH:/usr/local/bin/perl:/usr/bin/:/usr/local/bin )AC_SUBST(PERL)AC_PATH_PROGS( NROFF, gnroff nroff, , $PATH:/usr/bin/:/usr/local/bin )AC_SUBST(NROFF)AC_PROG_YACCdnl AC_PATH_PROG( RANLIB, ranlib, /usr/bin/ranlib, dnl $PATH:/usr/bin/:/usr/local/bin )dnl AC_SUBST(RANLIB)dnl ************************************************************dnl lame option to switch on debug optionsdnlAC_MSG_CHECKING([whether to enable debug options])AC_ARG_ENABLE(debug,AC_HELP_STRING([--enable-debug],[Enable pedantic debug options])AC_HELP_STRING([--disable-debug],[Disable debug options]),[ case "$enableval" in no) AC_MSG_RESULT(no) ;; *) AC_MSG_RESULT(yes) CPPFLAGS="$CPPFLAGS -DCURLDEBUG" CFLAGS="$CFLAGS -g" if test "$GCC" = "yes"; then CFLAGS="$CFLAGS -W -Wall -Wwrite-strings -pedantic -Wno-long-long -Wundef -Wpointer-arith -Wnested-externs" fi dnl strip off optimizer flags NEWFLAGS="" for flag in $CFLAGS; do case "$flag" in -O*) dnl echo "cut off $flag" ;; *) NEWFLAGS="$NEWFLAGS $flag" ;; esac done CFLAGS=$NEWFLAGS ;; esac ], AC_MSG_RESULT(no))ares="no"AC_MSG_CHECKING([whether to enable ares])AC_ARG_ENABLE(ares,AC_HELP_STRING([--enable-ares],[Enable using ares for name lookups])AC_HELP_STRING([--disable-ares],[Disable using ares for name lookups]),[ case "$enableval" in no) AC_MSG_RESULT(no) ;; *) AC_MSG_RESULT(yes) if test "x$IPV6_ENABLED" = "x1"; then AC_MSG_ERROR([ares doesn't work with ipv6, disable ipv6 to use ares]) fi AC_DEFINE(USE_ARES, 1, [Define if you want to enable ares support]) ares="yes" ;; esac ], AC_MSG_RESULT(no))AM_CONDITIONAL(ARES, test x$ares = xyes)AC_CONFIG_FILES([Makefile \ docs/Makefile \ docs/examples/Makefile \ docs/libcurl/Makefile \ include/Makefile \ include/curl/Makefile \ src/Makefile \ lib/Makefile \ tests/Makefile \ tests/data/Makefile \ tests/server/Makefile \ tests/libtest/Makefile \ packages/Makefile \ packages/Win32/Makefile \ packages/Win32/cygwin/Makefile \ packages/Linux/Makefile \ packages/Linux/RPM/Makefile \ packages/Linux/RPM/curl.spec \ packages/Linux/RPM/curl-ssl.spec \ packages/Solaris/Makefile \ packages/DOS/Makefile \ packages/EPM/curl.list \ packages/EPM/Makefile \ curl-config])AC_OUTPUT
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -