2 # Process this file with autoconf to produce a configure script.
 
   5 AC_INIT([git], [@@GIT_VERSION@@], [git@vger.kernel.org])
 
   7 AC_CONFIG_SRCDIR([git.c])
 
   9 config_file=config.mak.autogen
 
  10 config_append=config.mak.append
 
  11 config_in=config.mak.in
 
  13 echo "# ${config_append}.  Generated by configure." > "${config_append}"
 
  16 ## Definitions of macros
 
  17 # GIT_CONF_APPEND_LINE(LINE)
 
  18 # --------------------------
 
  19 # Append LINE to file ${config_append}
 
  20 AC_DEFUN([GIT_CONF_APPEND_LINE],
 
  21 [echo "$1" >> "${config_append}"])# GIT_CONF_APPEND_LINE
 
  23 # GIT_ARG_SET_PATH(PROGRAM)
 
  24 # -------------------------
 
  25 # Provide --with-PROGRAM=PATH option to set PATH to PROGRAM
 
  26 # Optional second argument allows setting NO_PROGRAM=YesPlease if
 
  27 # --without-PROGRAM version used.
 
  28 AC_DEFUN([GIT_ARG_SET_PATH],
 
  30  [AS_HELP_STRING([--with-$1=PATH],
 
  31                  [provide PATH to $1])],
 
  32  [GIT_CONF_APPEND_PATH($1,$2)],[])
 
  35 # GIT_CONF_APPEND_PATH(PROGRAM)
 
  36 # ------------------------------
 
  37 # Parse --with-PROGRAM=PATH option to set PROGRAM_PATH=PATH
 
  38 # Used by GIT_ARG_SET_PATH(PROGRAM)
 
  39 # Optional second argument allows setting NO_PROGRAM=YesPlease if
 
  40 # --without-PROGRAM is used.
 
  41 AC_DEFUN([GIT_CONF_APPEND_PATH],
 
  42 [PROGRAM=m4_toupper($1); \
 
  43 if test "$withval" = "no"; then \
 
  44         if test -n "$2"; then \
 
  45                 m4_toupper($1)_PATH=$withval; \
 
  46                 AC_MSG_NOTICE([Disabling use of ${PROGRAM}]); \
 
  47                 GIT_CONF_APPEND_LINE(NO_${PROGRAM}=YesPlease); \
 
  48                 GIT_CONF_APPEND_LINE(${PROGRAM}_PATH=); \
 
  50                 AC_MSG_ERROR([You cannot use git without $1]); \
 
  53         if test "$withval" = "yes"; then \
 
  54                 AC_MSG_WARN([You should provide path for --with-$1=PATH]); \
 
  56                 m4_toupper($1)_PATH=$withval; \
 
  57                 AC_MSG_NOTICE([Setting m4_toupper($1)_PATH to $withval]); \
 
  58                 GIT_CONF_APPEND_LINE(${PROGRAM}_PATH=$withval); \
 
  61 ]) # GIT_CONF_APPEND_PATH
 
  63 # GIT_PARSE_WITH(PACKAGE)
 
  64 # -----------------------
 
  65 # For use in AC_ARG_WITH action-if-found, for packages default ON.
 
  66 # * Set NO_PACKAGE=YesPlease for --without-PACKAGE
 
  67 # * Set PACKAGEDIR=PATH for --with-PACKAGE=PATH
 
  68 # * Unset NO_PACKAGE for --with-PACKAGE without ARG
 
  69 AC_DEFUN([GIT_PARSE_WITH],
 
  70 [PACKAGE=m4_toupper($1); \
 
  71 if test "$withval" = "no"; then \
 
  72         m4_toupper(NO_$1)=YesPlease; \
 
  73 elif test "$withval" = "yes"; then \
 
  77         m4_toupper($1)DIR=$withval; \
 
  78         AC_MSG_NOTICE([Setting m4_toupper($1)DIR to $withval]); \
 
  79         GIT_CONF_APPEND_LINE(${PACKAGE}DIR=$withval); \
 
  83 # GIT_PARSE_WITH_SET_MAKE_VAR(WITHNAME, VAR, HELP_TEXT)
 
  84 # ---------------------
 
  85 # Set VAR to the value specied by --with-WITHNAME.
 
  86 # No verification of arguments is performed, but warnings are issued
 
  87 # if either 'yes' or 'no' is specified.
 
  88 # HELP_TEXT is presented when --help is called.
 
  89 # This is a direct way to allow setting variables in the Makefile.
 
  90 AC_DEFUN([GIT_PARSE_WITH_SET_MAKE_VAR],
 
  92  [AS_HELP_STRING([--with-$1=VALUE], $3)],
 
  93  if test -n "$withval"; then \
 
  94   if test "$withval" = "yes" -o "$withval" = "no"; then \
 
  95     AC_MSG_WARN([You likely do not want either 'yes' or 'no' as]
 
  96                      [a value for $1 ($2).  Maybe you do...?]); \
 
  99   AC_MSG_NOTICE([Setting $2 to $withval]); \
 
 100   GIT_CONF_APPEND_LINE($2=$withval); \
 
 101  fi)])# GIT_PARSE_WITH_SET_MAKE_VAR
 
 104 dnl GIT_CHECK_FUNC(FUNCTION, IFTRUE, IFFALSE)
 
 105 dnl -----------------------------------------
 
 106 dnl Similar to AC_CHECK_FUNC, but on systems that do not generate
 
 107 dnl warnings for missing prototypes (e.g. FreeBSD when compiling without
 
 108 dnl -Wall), it does not work.  By looking for function definition in
 
 109 dnl libraries, this problem can be worked around.
 
 110 AC_DEFUN([GIT_CHECK_FUNC],[AC_CHECK_FUNC([$1],[
 
 111   AC_SEARCH_LIBS([$1],,
 
 116 dnl GIT_STASH_FLAGS(BASEPATH_VAR)
 
 117 dnl -----------------------------
 
 118 dnl Allow for easy stashing of LDFLAGS and CPPFLAGS before running
 
 119 dnl tests that may want to take user settings into account.
 
 120 AC_DEFUN([GIT_STASH_FLAGS],[
 
 121 if test -n "$1"; then
 
 122    old_CPPFLAGS="$CPPFLAGS"
 
 123    old_LDFLAGS="$LDFLAGS"
 
 124    CPPFLAGS="-I$1/include $CPPFLAGS"
 
 125    LDFLAGS="-L$1/$lib $LDFLAGS"
 
 130 dnl GIT_UNSTASH_FLAGS(BASEPATH_VAR)
 
 131 dnl -----------------------------
 
 132 dnl Restore the stashed *FLAGS values.
 
 133 AC_DEFUN([GIT_UNSTASH_FLAGS],[
 
 134 if test -n "$1"; then
 
 135    CPPFLAGS="$old_CPPFLAGS"
 
 136    LDFLAGS="$old_LDFLAGS"
 
 140 ## Site configuration related to programs (before tests)
 
 141 ## --with-PACKAGE[=ARG] and --without-PACKAGE
 
 143 # Set lib to alternative name of lib directory (e.g. lib64)
 
 145  [AS_HELP_STRING([--with-lib=ARG],
 
 146                  [ARG specifies alternative name for lib directory])],
 
 147  [if test "$withval" = "no" || test "$withval" = "yes"; then \
 
 148         AC_MSG_WARN([You should provide name for --with-lib=ARG]); \
 
 151         AC_MSG_NOTICE([Setting lib to '$lib']); \
 
 152         GIT_CONF_APPEND_LINE(lib=$withval); \
 
 156 if test -z "$lib"; then
 
 157    AC_MSG_NOTICE([Setting lib to 'lib' (the default)])
 
 161 AC_ARG_ENABLE([pthreads],
 
 162  [AS_HELP_STRING([--enable-pthreads=FLAGS],
 
 163   [FLAGS is the value to pass to the compiler to enable POSIX Threads.]
 
 164   [The default if FLAGS is not specified is to try first -pthread]
 
 165   [and then -lpthread.]
 
 166   [--without-pthreads will disable threading.])],
 
 168 if test "x$enableval" = "xyes"; then
 
 169    AC_MSG_NOTICE([Will try -pthread then -lpthread to enable POSIX Threads])
 
 170 elif test "x$enableval" != "xno"; then
 
 171    PTHREAD_CFLAGS=$enableval
 
 172    AC_MSG_NOTICE([Setting '$PTHREAD_CFLAGS' as the FLAGS to enable POSIX Threads])
 
 174    AC_MSG_NOTICE([POSIX Threads will be disabled.])
 
 175    NO_PTHREADS=YesPlease
 
 179    AC_MSG_NOTICE([Will try -pthread then -lpthread to enable POSIX Threads.])
 
 182 # Define option to enable JavaScript minification
 
 183 AC_ARG_ENABLE([jsmin],
 
 184 [AS_HELP_STRING([--enable-jsmin=PATH],
 
 185   [PATH is the name of a JavaScript minifier or the absolute path to one.])],
 
 188   AC_MSG_NOTICE([Setting JSMIN to '$JSMIN' to enable JavaScript minifying])
 
 189   GIT_CONF_APPEND_LINE(JSMIN=$enableval);
 
 192 # Define option to enable CSS minification
 
 193 AC_ARG_ENABLE([cssmin],
 
 194 [AS_HELP_STRING([--enable-cssmin=PATH],
 
 195   [PATH is the name of a CSS minifier or the absolute path to one.])],
 
 198   AC_MSG_NOTICE([Setting CSSMIN to '$CSSMIN' to enable CSS minifying])
 
 199   GIT_CONF_APPEND_LINE(CSSMIN=$enableval);
 
 202 ## Site configuration (override autodetection)
 
 203 ## --with-PACKAGE[=ARG] and --without-PACKAGE
 
 204 AC_MSG_NOTICE([CHECKS for site configuration])
 
 206 # Define NO_SVN_TESTS if you want to skip time-consuming SVN interoperability
 
 207 # tests.  These tests take up a significant amount of the total test time
 
 208 # but are not needed unless you plan to talk to SVN repos.
 
 210 # Define PPC_SHA1 environment variable when running make to make use of
 
 211 # a bundled SHA1 routine optimized for PowerPC.
 
 213 # Define NO_OPENSSL environment variable if you do not have OpenSSL.
 
 214 # This also implies BLK_SHA1.
 
 216 # Define OPENSSLDIR=/foo/bar if your openssl header and library files are in
 
 217 # /foo/bar/include and /foo/bar/lib directories.
 
 219 AS_HELP_STRING([--with-openssl],[use OpenSSL library (default is YES)])
 
 220 AS_HELP_STRING([],              [ARG can be prefix for openssl library and headers]),\
 
 221 GIT_PARSE_WITH(openssl))
 
 223 # Define USE_LIBPCRE if you have and want to use libpcre. git-grep will be
 
 224 # able to use Perl-compatible regular expressions.
 
 226 # Define LIBPCREDIR=/foo/bar if your libpcre header and library files are in
 
 227 # /foo/bar/include and /foo/bar/lib directories.
 
 230 AS_HELP_STRING([--with-libpcre],[support Perl-compatible regexes (default is NO)])
 
 231 AS_HELP_STRING([],           [ARG can be also prefix for libpcre library and headers]),
 
 232 if test "$withval" = "no"; then \
 
 234 elif test "$withval" = "yes"; then \
 
 235         USE_LIBPCRE=YesPlease; \
 
 237         USE_LIBPCRE=YesPlease; \
 
 238         LIBPCREDIR=$withval; \
 
 239         AC_MSG_NOTICE([Setting LIBPCREDIR to $withval]); \
 
 240         GIT_CONF_APPEND_LINE(LIBPCREDIR=$withval); \
 
 244 # Define NO_CURL if you do not have curl installed.  git-http-pull and
 
 245 # git-http-push are not built, and you cannot use http:// and https://
 
 248 # Define CURLDIR=/foo/bar if your curl header and library files are in
 
 249 # /foo/bar/include and /foo/bar/lib directories.
 
 251 AS_HELP_STRING([--with-curl],[support http(s):// transports (default is YES)])
 
 252 AS_HELP_STRING([],           [ARG can be also prefix for curl library and headers]),
 
 253 GIT_PARSE_WITH(curl))
 
 255 # Define NO_EXPAT if you do not have expat installed.  git-http-push is
 
 256 # not built, and you cannot push using http:// and https:// transports.
 
 258 # Define EXPATDIR=/foo/bar if your expat header and library files are in
 
 259 # /foo/bar/include and /foo/bar/lib directories.
 
 261 AS_HELP_STRING([--with-expat],
 
 262 [support git-push using http:// and https:// transports via WebDAV (default is YES)])
 
 263 AS_HELP_STRING([],            [ARG can be also prefix for expat library and headers]),
 
 264 GIT_PARSE_WITH(expat))
 
 266 # Define NO_FINK if you are building on Darwin/Mac OS X, have Fink
 
 267 # installed in /sw, but don't want GIT to link against any libraries
 
 268 # installed there.  If defined you may specify your own (or Fink's)
 
 269 # include directories and library directories by defining CFLAGS
 
 270 # and LDFLAGS appropriately.
 
 272 # Define NO_DARWIN_PORTS if you are building on Darwin/Mac OS X,
 
 273 # have DarwinPorts installed in /opt/local, but don't want GIT to
 
 274 # link against any libraries installed there.  If defined you may
 
 275 # specify your own (or DarwinPort's) include directories and
 
 276 # library directories by defining CFLAGS and LDFLAGS appropriately.
 
 278 # Define NO_MMAP if you want to avoid mmap.
 
 280 # Define NO_ICONV if your libc does not properly support iconv.
 
 282 AS_HELP_STRING([--without-iconv],
 
 283 [if your architecture doesn't properly support iconv])
 
 284 AS_HELP_STRING([--with-iconv=PATH],
 
 285 [PATH is prefix for libiconv library and headers])
 
 287 [used only if you need linking with libiconv]),
 
 288 GIT_PARSE_WITH(iconv))
 
 290 ## --enable-FEATURE[=ARG] and --disable-FEATURE
 
 292 # Define USE_NSEC below if you want git to care about sub-second file mtimes
 
 293 # and ctimes. Note that you need recent glibc (at least 2.2.4) for this, and
 
 294 # it will BREAK YOUR LOCAL DIFFS! show-diff and anything using it will likely
 
 295 # randomly break unless your underlying filesystem supports those sub-second
 
 296 # times (my ext3 doesn't).
 
 298 # Define USE_STDEV below if you want git to care about the underlying device
 
 299 # change being considered an inode change from the update-index perspective.
 
 302 # Allow user to set ETC_GITCONFIG variable
 
 303 GIT_PARSE_WITH_SET_MAKE_VAR(gitconfig, ETC_GITCONFIG,
 
 304                         Use VALUE instead of /etc/gitconfig as the
 
 305                         global git configuration file.
 
 306                         If VALUE is not fully qualified it will be interpreted
 
 307                         as a path relative to the computed prefix at runtime.)
 
 310 # Allow user to set ETC_GITATTRIBUTES variable
 
 311 GIT_PARSE_WITH_SET_MAKE_VAR(gitattributes, ETC_GITATTRIBUTES,
 
 312                         Use VALUE instead of /etc/gitattributes as the
 
 313                         global git attributes file.
 
 314                         If VALUE is not fully qualified it will be interpreted
 
 315                         as a path relative to the computed prefix at runtime.)
 
 318 # Allow user to set the default pager
 
 319 GIT_PARSE_WITH_SET_MAKE_VAR(pager, DEFAULT_PAGER,
 
 320                         Use VALUE as the fall-back pager instead of 'less'.
 
 321                         This is used by things like 'git log' when the user
 
 322                         does not specify a pager to use through alternate
 
 323                         methods. eg: /usr/bin/pager)
 
 325 # Allow user to set the default editor
 
 326 GIT_PARSE_WITH_SET_MAKE_VAR(editor, DEFAULT_EDITOR,
 
 327                         Use VALUE as the fall-back editor instead of 'vi'.
 
 328                         This is used by things like 'git commit' when the user
 
 329                         does not specify a preferred editor through other
 
 330                         methods. eg: /usr/bin/editor)
 
 333 # Define SHELL_PATH to provide path to shell.
 
 334 GIT_ARG_SET_PATH(shell)
 
 336 # Define PERL_PATH to provide path to Perl.
 
 337 GIT_ARG_SET_PATH(perl)
 
 339 # Define PYTHON_PATH to provide path to Python.
 
 340 GIT_ARG_SET_PATH(python, allow-without)
 
 342 # Define ZLIB_PATH to provide path to zlib.
 
 343 GIT_ARG_SET_PATH(zlib)
 
 345 # Declare the with-tcltk/without-tcltk options.
 
 347 AS_HELP_STRING([--with-tcltk],[use Tcl/Tk GUI (default is YES)])
 
 348 AS_HELP_STRING([],[ARG is the full path to the Tcl/Tk interpreter.])
 
 349 AS_HELP_STRING([],[Bare --with-tcltk will make the GUI part only if])
 
 350 AS_HELP_STRING([],[Tcl/Tk interpreter will be found in a system.]),\
 
 351 GIT_PARSE_WITH(tcltk))
 
 355 ## Checks for programs.
 
 356 AC_MSG_NOTICE([CHECKS for programs])
 
 360 case $ac_cv_c_inline in
 
 361   inline | yes | no)    ;;
 
 362   *)                    AC_SUBST([INLINE], [$ac_cv_c_inline]) ;;
 
 365 # which switch to pass runtime path to dynamic libraries to the linker
 
 366 AC_CACHE_CHECK([if linker supports -R], git_cv_ld_dashr, [
 
 367    SAVE_LDFLAGS="${LDFLAGS}"
 
 368    LDFLAGS="${SAVE_LDFLAGS} -R /"
 
 369    AC_LINK_IFELSE([AC_LANG_PROGRAM([], [])], [git_cv_ld_dashr=yes], [git_cv_ld_dashr=no])
 
 370    LDFLAGS="${SAVE_LDFLAGS}"
 
 372 if test "$git_cv_ld_dashr" = "yes"; then
 
 373    AC_SUBST(CC_LD_DYNPATH, [-R])
 
 375    AC_CACHE_CHECK([if linker supports -Wl,-rpath,], git_cv_ld_wl_rpath, [
 
 376       SAVE_LDFLAGS="${LDFLAGS}"
 
 377       LDFLAGS="${SAVE_LDFLAGS} -Wl,-rpath,/"
 
 378       AC_LINK_IFELSE([AC_LANG_PROGRAM([], [])], [git_cv_ld_wl_rpath=yes], [git_cv_ld_wl_rpath=no])
 
 379       LDFLAGS="${SAVE_LDFLAGS}"
 
 381    if test "$git_cv_ld_wl_rpath" = "yes"; then
 
 382       AC_SUBST(CC_LD_DYNPATH, [-Wl,-rpath,])
 
 384       AC_CACHE_CHECK([if linker supports -rpath], git_cv_ld_rpath, [
 
 385          SAVE_LDFLAGS="${LDFLAGS}"
 
 386          LDFLAGS="${SAVE_LDFLAGS} -rpath /"
 
 387          AC_LINK_IFELSE([AC_LANG_PROGRAM([], [])], [git_cv_ld_rpath=yes], [git_cv_ld_rpath=no])
 
 388          LDFLAGS="${SAVE_LDFLAGS}"
 
 390       if test "$git_cv_ld_rpath" = "yes"; then
 
 391          AC_SUBST(CC_LD_DYNPATH, [-rpath])
 
 393          AC_MSG_WARN([linker does not support runtime path to dynamic libraries])
 
 397 #AC_PROG_INSTALL                # needs install-sh or install.sh in sources
 
 398 AC_CHECK_TOOLS(AR, [gar ar], :)
 
 399 AC_CHECK_PROGS(TAR, [gtar tar])
 
 400 AC_CHECK_PROGS(DIFF, [gnudiff gdiff diff])
 
 401 # TCLTK_PATH will be set to some value if we want Tcl/Tk
 
 402 # or will be empty otherwise.
 
 403 if test -z "$NO_TCLTK"; then
 
 404   if test "$with_tcltk" = ""; then
 
 405   # No Tcl/Tk switches given. Do not check for Tcl/Tk, use bare 'wish'.
 
 408   elif test "$with_tcltk" = "yes"; then
 
 409   # Tcl/Tk check requested.
 
 410     AC_CHECK_PROGS(TCLTK_PATH, [wish], )
 
 412     AC_MSG_RESULT([Using Tcl/Tk interpreter $with_tcltk])
 
 413     TCLTK_PATH="$with_tcltk"
 
 417 AC_CHECK_PROGS(ASCIIDOC, [asciidoc])
 
 418 if test -n "$ASCIIDOC"; then
 
 419         AC_MSG_CHECKING([for asciidoc version])
 
 420         asciidoc_version=`$ASCIIDOC --version 2>/dev/null`
 
 421         case "${asciidoc_version}" in
 
 424                 AC_MSG_RESULT([${asciidoc_version} > 7])
 
 428                 AC_MSG_RESULT([${asciidoc_version}])
 
 432                 AC_MSG_RESULT([${asciidoc_version} (unknown)])
 
 439 ## Checks for libraries.
 
 440 AC_MSG_NOTICE([CHECKS for libraries])
 
 442 # Define NO_OPENSSL environment variable if you do not have OpenSSL.
 
 443 # Define NEEDS_SSL_WITH_CRYPTO if you need -lcrypto with -lssl (Darwin).
 
 445 GIT_STASH_FLAGS($OPENSSLDIR)
 
 447 AC_CHECK_LIB([crypto], [SHA1_Init],
 
 448 [NEEDS_SSL_WITH_CRYPTO=],
 
 449 [AC_CHECK_LIB([ssl], [SHA1_Init],
 
 450  [NEEDS_SSL_WITH_CRYPTO=YesPlease],
 
 451  [NEEDS_SSL_WITH_CRYPTO= NO_OPENSSL=YesPlease])])
 
 453 GIT_UNSTASH_FLAGS($OPENSSLDIR)
 
 455 AC_SUBST(NEEDS_SSL_WITH_CRYPTO)
 
 459 # Define USE_LIBPCRE if you have and want to use libpcre. git-grep will be
 
 460 # able to use Perl-compatible regular expressions.
 
 463 if test -n "$USE_LIBPCRE"; then
 
 465 GIT_STASH_FLAGS($LIBPCREDIR)
 
 467 AC_CHECK_LIB([pcre], [pcre_version],
 
 468 [USE_LIBPCRE=YesPlease],
 
 471 GIT_UNSTASH_FLAGS($LIBPCREDIR)
 
 473 AC_SUBST(USE_LIBPCRE)
 
 478 # Define NO_CURL if you do not have libcurl installed.  git-http-pull and
 
 479 # git-http-push are not built, and you cannot use http:// and https://
 
 482 GIT_STASH_FLAGS($CURLDIR)
 
 484 AC_CHECK_LIB([curl], [curl_global_init],
 
 488 GIT_UNSTASH_FLAGS($CURLDIR)
 
 493 # Define NO_EXPAT if you do not have expat installed.  git-http-push is
 
 494 # not built, and you cannot push using http:// and https:// transports.
 
 496 GIT_STASH_FLAGS($EXPATDIR)
 
 498 AC_CHECK_LIB([expat], [XML_ParserCreate],
 
 500 [NO_EXPAT=YesPlease])
 
 502 GIT_UNSTASH_FLAGS($EXPATDIR)
 
 507 # Define NEEDS_LIBICONV if linking with libc is not enough (Darwin and
 
 508 # some Solaris installations).
 
 509 # Define NO_ICONV if neither libc nor libiconv support iconv.
 
 511 if test -z "$NO_ICONV"; then
 
 513 GIT_STASH_FLAGS($ICONVDIR)
 
 515 AC_DEFUN([ICONVTEST_SRC],
 
 516 [AC_LANG_PROGRAM([#include <iconv.h>],
 
 517  [iconv_open("", "");])])
 
 519 if test -n "$ICONVDIR"; then
 
 520    lib_order="-liconv -lc"
 
 522    lib_order="-lc -liconv"
 
 527 for l in $lib_order; do
 
 528     if test "$l" = "-liconv"; then
 
 529        NEEDS_LIBICONV=YesPlease
 
 536     AC_MSG_CHECKING([for iconv in $l])
 
 537     AC_LINK_IFELSE([ICONVTEST_SRC],
 
 538         [AC_MSG_RESULT([yes])
 
 541         [AC_MSG_RESULT([no])])
 
 548 GIT_UNSTASH_FLAGS($ICONVDIR)
 
 550 AC_SUBST(NEEDS_LIBICONV)
 
 553 if test -n "$NO_ICONV"; then
 
 560 # Define NO_DEFLATE_BOUND if deflateBound is missing from zlib.
 
 562 GIT_STASH_FLAGS($ZLIB_PATH)
 
 564 AC_DEFUN([ZLIBTEST_SRC], [
 
 565 AC_LANG_PROGRAM([#include <zlib.h>],
 
 566  [deflateBound(0, 0);])])
 
 567 AC_MSG_CHECKING([for deflateBound in -lz])
 
 570 AC_LINK_IFELSE([ZLIBTEST_SRC],
 
 571         [AC_MSG_RESULT([yes])],
 
 573         NO_DEFLATE_BOUND=yes])
 
 576 GIT_UNSTASH_FLAGS($ZLIB_PATH)
 
 578 AC_SUBST(NO_DEFLATE_BOUND)
 
 581 # Define NEEDS_SOCKET if linking with libc is not enough (SunOS,
 
 583 AC_CHECK_LIB([c], [socket],
 
 585 [NEEDS_SOCKET=YesPlease])
 
 586 AC_SUBST(NEEDS_SOCKET)
 
 587 test -n "$NEEDS_SOCKET" && LIBS="$LIBS -lsocket"
 
 590 # The next few tests will define NEEDS_RESOLV if linking with
 
 591 # libresolv provides some of the functions we would normally get
 
 594 AC_SUBST(NEEDS_RESOLV)
 
 596 # Define NO_INET_NTOP if linking with -lresolv is not enough.
 
 597 # Solaris 2.7 in particular hos inet_ntop in -lresolv.
 
 599 AC_SUBST(NO_INET_NTOP)
 
 600 AC_CHECK_FUNC([inet_ntop],
 
 602     [AC_CHECK_LIB([resolv], [inet_ntop],
 
 603             [NEEDS_RESOLV=YesPlease],
 
 604         [NO_INET_NTOP=YesPlease])
 
 607 # Define NO_INET_PTON if linking with -lresolv is not enough.
 
 608 # Solaris 2.7 in particular hos inet_pton in -lresolv.
 
 610 AC_SUBST(NO_INET_PTON)
 
 611 AC_CHECK_FUNC([inet_pton],
 
 613     [AC_CHECK_LIB([resolv], [inet_pton],
 
 614             [NEEDS_RESOLV=YesPlease],
 
 615         [NO_INET_PTON=YesPlease])
 
 618 # Define NO_HSTRERROR if linking with -lresolv is not enough.
 
 619 # Solaris 2.6 in particular has no hstrerror, even in -lresolv.
 
 621 AC_CHECK_FUNC([hstrerror],
 
 623     [AC_CHECK_LIB([resolv], [hstrerror],
 
 624             [NEEDS_RESOLV=YesPlease],
 
 625         [NO_HSTRERROR=YesPlease])
 
 627 AC_SUBST(NO_HSTRERROR)
 
 629 # If any of the above tests determined that -lresolv is needed at
 
 630 # build-time, also set it here for remaining configure-time checks.
 
 631 test -n "$NEEDS_RESOLV" && LIBS="$LIBS -lresolv"
 
 633 AC_CHECK_LIB([c], [basename],
 
 635 [NEEDS_LIBGEN=YesPlease])
 
 636 AC_SUBST(NEEDS_LIBGEN)
 
 637 test -n "$NEEDS_LIBGEN" && LIBS="$LIBS -lgen"
 
 639 ## Checks for header files.
 
 640 AC_MSG_NOTICE([CHECKS for header files])
 
 642 # Define NO_SYS_SELECT_H if you don't have sys/select.h.
 
 643 AC_CHECK_HEADER([sys/select.h],
 
 645 [NO_SYS_SELECT_H=UnfortunatelyYes])
 
 646 AC_SUBST(NO_SYS_SELECT_H)
 
 648 # Define NO_SYS_POLL_H if you don't have sys/poll.h
 
 649 AC_CHECK_HEADER([sys/poll.h],
 
 651 [NO_SYS_POLL_H=UnfortunatelyYes])
 
 652 AC_SUBST(NO_SYS_POLL_H)
 
 654 # Define NO_INTTYPES_H if you don't have inttypes.h
 
 655 AC_CHECK_HEADER([inttypes.h],
 
 657 [NO_INTTYPES_H=UnfortunatelyYes])
 
 658 AC_SUBST(NO_INTTYPES_H)
 
 660 # Define OLD_ICONV if your library has an old iconv(), where the second
 
 661 # (input buffer pointer) parameter is declared with type (const char **).
 
 662 AC_DEFUN([OLDICONVTEST_SRC], [
 
 666 extern size_t iconv(iconv_t cd,
 
 667                     char **inbuf, size_t *inbytesleft,
 
 668                     char **outbuf, size_t *outbytesleft);
 
 671 GIT_STASH_FLAGS($ICONVDIR)
 
 673 AC_MSG_CHECKING([for old iconv()])
 
 674 AC_COMPILE_IFELSE([OLDICONVTEST_SRC],
 
 675         [AC_MSG_RESULT([no])],
 
 676         [AC_MSG_RESULT([yes])
 
 677         OLD_ICONV=UnfortunatelyYes])
 
 679 GIT_UNSTASH_FLAGS($ICONVDIR)
 
 683 ## Checks for typedefs, structures, and compiler characteristics.
 
 684 AC_MSG_NOTICE([CHECKS for typedefs, structures, and compiler characteristics])
 
 687 case $ac_cv_type_socklen_t in
 
 689   *)    AC_SUBST([SOCKLEN_T], [$git_cv_socklen_t_equiv]) ;;
 
 692 # Define NO_D_INO_IN_DIRENT if you don't have d_ino in your struct dirent.
 
 693 AC_CHECK_MEMBER(struct dirent.d_ino,
 
 694 [NO_D_INO_IN_DIRENT=],
 
 695 [NO_D_INO_IN_DIRENT=YesPlease],
 
 696 [#include <dirent.h>])
 
 697 AC_SUBST(NO_D_INO_IN_DIRENT)
 
 699 # Define NO_D_TYPE_IN_DIRENT if your platform defines DT_UNKNOWN but lacks
 
 700 # d_type in struct dirent (latest Cygwin -- will be fixed soonish).
 
 701 AC_CHECK_MEMBER(struct dirent.d_type,
 
 702 [NO_D_TYPE_IN_DIRENT=],
 
 703 [NO_D_TYPE_IN_DIRENT=YesPlease],
 
 704 [#include <dirent.h>])
 
 705 AC_SUBST(NO_D_TYPE_IN_DIRENT)
 
 707 # Define NO_SOCKADDR_STORAGE if your platform does not have struct
 
 709 AC_CHECK_TYPE(struct sockaddr_storage,
 
 710 [NO_SOCKADDR_STORAGE=],
 
 711 [NO_SOCKADDR_STORAGE=YesPlease],[
 
 712 #include <sys/types.h>
 
 713 #include <sys/socket.h>
 
 715 AC_SUBST(NO_SOCKADDR_STORAGE)
 
 717 # Define NO_IPV6 if you lack IPv6 support and getaddrinfo().
 
 718 AC_CHECK_TYPE([struct addrinfo],[
 
 719  GIT_CHECK_FUNC([getaddrinfo],
 
 722 ],[NO_IPV6=YesPlease],[
 
 723 #include <sys/types.h>
 
 724 #include <sys/socket.h>
 
 729 # Define NO_REGEX if you have no or inferior regex support in your C library.
 
 730 AC_CACHE_CHECK([whether the platform regex can handle null bytes],
 
 731  [ac_cv_c_excellent_regex], [
 
 732 AC_EGREP_CPP(yippeeyeswehaveit,
 
 733         AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT
 
 740         [ac_cv_c_excellent_regex=yes],
 
 741         [ac_cv_c_excellent_regex=no])
 
 743 if test $ac_cv_c_excellent_regex = yes; then
 
 750 # Define FREAD_READS_DIRECTORIES if your are on a system which succeeds
 
 751 # when attempting to read from an fopen'ed directory.
 
 752 AC_CACHE_CHECK([whether system succeeds to read fopen'ed directory],
 
 753  [ac_cv_fread_reads_directories],
 
 756         [AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT],
 
 758                 FILE *f = fopen(".", "r");
 
 759                 return f && fread(&c, 1, 1, f)]])],
 
 760         [ac_cv_fread_reads_directories=no],
 
 761         [ac_cv_fread_reads_directories=yes])
 
 763 if test $ac_cv_fread_reads_directories = yes; then
 
 764         FREAD_READS_DIRECTORIES=UnfortunatelyYes
 
 766         FREAD_READS_DIRECTORIES=
 
 768 AC_SUBST(FREAD_READS_DIRECTORIES)
 
 770 # Define SNPRINTF_RETURNS_BOGUS if your are on a system which snprintf()
 
 771 # or vsnprintf() return -1 instead of number of characters which would
 
 772 # have been written to the final string if enough space had been available.
 
 773 AC_CACHE_CHECK([whether snprintf() and/or vsnprintf() return bogus value],
 
 774  [ac_cv_snprintf_returns_bogus],
 
 777         [AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT
 
 780                 int test_vsnprintf(char *str, size_t maxsize, const char *format, ...)
 
 784                   va_start(ap, format);
 
 785                   ret = vsnprintf(str, maxsize, format, ap);
 
 790                   if (test_vsnprintf(buf, 3, "%s", "12345") != 5
 
 791                       || strcmp(buf, "12")) return 1;
 
 792                   if (snprintf(buf, 3, "%s", "12345") != 5
 
 793                       || strcmp(buf, "12")) return 1]])],
 
 794         [ac_cv_snprintf_returns_bogus=no],
 
 795         [ac_cv_snprintf_returns_bogus=yes])
 
 797 if test $ac_cv_snprintf_returns_bogus = yes; then
 
 798         SNPRINTF_RETURNS_BOGUS=UnfortunatelyYes
 
 800         SNPRINTF_RETURNS_BOGUS=
 
 802 AC_SUBST(SNPRINTF_RETURNS_BOGUS)
 
 805 ## Checks for library functions.
 
 806 ## (in default C library and libraries checked by AC_CHECK_LIB)
 
 807 AC_MSG_NOTICE([CHECKS for library functions])
 
 809 # Define NO_LIBGEN_H if you don't have libgen.h.
 
 810 AC_CHECK_HEADER([libgen.h],
 
 812 [NO_LIBGEN_H=YesPlease])
 
 813 AC_SUBST(NO_LIBGEN_H)
 
 815 # Define HAVE_PATHS_H if you have paths.h.
 
 816 AC_CHECK_HEADER([paths.h],
 
 817 [HAVE_PATHS_H=YesPlease],
 
 819 AC_SUBST(HAVE_PATHS_H)
 
 821 # Define NO_STRCASESTR if you don't have strcasestr.
 
 822 GIT_CHECK_FUNC(strcasestr,
 
 824 [NO_STRCASESTR=YesPlease])
 
 825 AC_SUBST(NO_STRCASESTR)
 
 827 # Define NO_STRTOK_R if you don't have strtok_r
 
 828 GIT_CHECK_FUNC(strtok_r,
 
 830 [NO_STRTOK_R=YesPlease])
 
 831 AC_SUBST(NO_STRTOK_R)
 
 833 # Define NO_FNMATCH if you don't have fnmatch
 
 834 GIT_CHECK_FUNC(fnmatch,
 
 836 [NO_FNMATCH=YesPlease])
 
 839 # Define NO_FNMATCH_CASEFOLD if your fnmatch function doesn't have the
 
 840 # FNM_CASEFOLD GNU extension.
 
 841 AC_CACHE_CHECK([whether the fnmatch function supports the FNMATCH_CASEFOLD GNU extension],
 
 842  [ac_cv_c_excellent_fnmatch], [
 
 843 AC_EGREP_CPP(yippeeyeswehaveit,
 
 851         [ac_cv_c_excellent_fnmatch=yes],
 
 852         [ac_cv_c_excellent_fnmatch=no])
 
 854 if test $ac_cv_c_excellent_fnmatch = yes; then
 
 857         NO_FNMATCH_CASEFOLD=YesPlease
 
 859 AC_SUBST(NO_FNMATCH_CASEFOLD)
 
 861 # Define NO_MEMMEM if you don't have memmem.
 
 862 GIT_CHECK_FUNC(memmem,
 
 864 [NO_MEMMEM=YesPlease])
 
 867 # Define NO_STRLCPY if you don't have strlcpy.
 
 868 GIT_CHECK_FUNC(strlcpy,
 
 870 [NO_STRLCPY=YesPlease])
 
 873 # Define NO_UINTMAX_T if your platform does not have uintmax_t
 
 874 AC_CHECK_TYPE(uintmax_t,
 
 876 [NO_UINTMAX_T=YesPlease],[
 
 877 #include <inttypes.h>
 
 879 AC_SUBST(NO_UINTMAX_T)
 
 881 # Define NO_STRTOUMAX if you don't have strtoumax in the C library.
 
 882 GIT_CHECK_FUNC(strtoumax,
 
 884 [NO_STRTOUMAX=YesPlease])
 
 885 AC_SUBST(NO_STRTOUMAX)
 
 887 # Define NO_SETENV if you don't have setenv in the C library.
 
 888 GIT_CHECK_FUNC(setenv,
 
 890 [NO_SETENV=YesPlease])
 
 893 # Define NO_UNSETENV if you don't have unsetenv in the C library.
 
 894 GIT_CHECK_FUNC(unsetenv,
 
 896 [NO_UNSETENV=YesPlease])
 
 897 AC_SUBST(NO_UNSETENV)
 
 899 # Define NO_MKDTEMP if you don't have mkdtemp in the C library.
 
 900 GIT_CHECK_FUNC(mkdtemp,
 
 902 [NO_MKDTEMP=YesPlease])
 
 905 # Define NO_MKSTEMPS if you don't have mkstemps in the C library.
 
 906 GIT_CHECK_FUNC(mkstemps,
 
 908 [NO_MKSTEMPS=YesPlease])
 
 909 AC_SUBST(NO_MKSTEMPS)
 
 911 # Define NO_INITGROUPS if you don't have initgroups in the C library.
 
 912 GIT_CHECK_FUNC(initgroups,
 
 914 [NO_INITGROUPS=YesPlease])
 
 915 AC_SUBST(NO_INITGROUPS)
 
 918 # Define NO_MMAP if you want to avoid mmap.
 
 920 # Define NO_ICONV if your libc does not properly support iconv.
 
 924 # Define USE_PIC if you need the main git objects to be built with -fPIC
 
 925 # in order to build and link perl/Git.so.  x86-64 seems to need this.
 
 927 # Define NO_SYMLINK_HEAD if you never want .git/HEAD to be a symbolic link.
 
 928 # Enable it on Windows.  By default, symrefs are still used.
 
 930 # Define NO_PTHREADS if we do not have pthreads.
 
 932 # Define PTHREAD_LIBS to the linker flag used for Pthread support.
 
 933 AC_DEFUN([PTHREADTEST_SRC], [
 
 937         pthread_mutex_t test_mutex;
 
 938         pthread_key_t test_key;
 
 940         retcode |= pthread_key_create(&test_key, (void *)0);
 
 941         retcode |= pthread_mutex_init(&test_mutex,(void *)0);
 
 942         retcode |= pthread_mutex_lock(&test_mutex);
 
 943         retcode |= pthread_mutex_unlock(&test_mutex);
 
 947 dnl AC_LANG_CONFTEST([AC_LANG_PROGRAM(
 
 948 dnl   [[#include <pthread.h>]],
 
 949 dnl   [[pthread_mutex_t test_mutex;]]
 
 952 NO_PTHREADS=UnfortunatelyYes
 
 955 if test -n "$USER_NOPTHREAD"; then
 
 956    AC_MSG_NOTICE([Skipping POSIX Threads at user request.])
 
 957 # handle these separately since PTHREAD_CFLAGS could be '-lpthreads
 
 958 # -D_REENTRANT' or some such.
 
 959 elif test -z "$PTHREAD_CFLAGS"; then
 
 961   for opt in -mt -pthread -lpthread; do
 
 963      CFLAGS="$opt $CFLAGS"
 
 964      AC_MSG_CHECKING([Checking for POSIX Threads with '$opt'])
 
 965      AC_LINK_IFELSE([PTHREADTEST_SRC],
 
 966         [AC_MSG_RESULT([yes])
 
 969                 PTHREAD_CFLAGS="$opt"
 
 973         [AC_MSG_RESULT([no])])
 
 976   if test $threads_found != yes; then
 
 977     AC_CHECK_LIB([pthread], [pthread_create],
 
 978         [PTHREAD_LIBS="-lpthread"],
 
 979         [NO_PTHREADS=UnfortunatelyYes])
 
 983   CFLAGS="$PTHREAD_CFLAGS $CFLAGS"
 
 984   AC_MSG_CHECKING([Checking for POSIX Threads with '$PTHREAD_CFLAGS'])
 
 985   AC_LINK_IFELSE([PTHREADTEST_SRC],
 
 986         [AC_MSG_RESULT([yes])
 
 988                 PTHREAD_LIBS="$PTHREAD_CFLAGS"
 
 990         [AC_MSG_RESULT([no])])
 
 997 AC_SUBST(PTHREAD_CFLAGS)
 
 998 AC_SUBST(PTHREAD_LIBS)
 
 999 AC_SUBST(NO_PTHREADS)
 
1002 AC_CONFIG_FILES(["${config_file}":"${config_in}":"${config_append}"])
 
1007 rm -f "${config_append}"