Code

autoconf: Checks for typedefs, structures, and compiler characteristics.
[git.git] / configure.ac
1 #                                               -*- Autoconf -*-
2 # Process this file with autoconf to produce a configure script.
4 AC_PREREQ(2.59)
5 AC_INIT([git], [1.4.1], [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
24 ## Checks for programs.
25 # Define NO_PYTHON if you want to loose all benefits of the recursive merge.
28 ## Checks for libraries.
29 # Define NO_OPENSSL environment variable if you do not have OpenSSL.
30 # This also implies MOZILLA_SHA1.
31 #
32 # Define NO_CURL if you do not have curl installed.  git-http-pull and
33 # git-http-push are not built, and you cannot use http:// and https://
34 # transports.
35 #
36 # Define NO_EXPAT if you do not have expat installed.  git-http-push is
37 # not built, and you cannot push using http:// and https:// transports.
38 #
39 # Define NEEDS_SSL_WITH_CRYPTO if you need -lcrypto with -lssl (Darwin).
40 #
41 # Define NEEDS_LIBICONV if linking with libc is not enough (Darwin).
42 #
43 # Define NEEDS_SOCKET if linking with libc is not enough (SunOS,
44 # Patrick Mauritz).
47 ## Checks for header files.
50 ## Checks for typedefs, structures, and compiler characteristics.
51 AC_MSG_NOTICE([CHECKS for typedefs, structures, and compiler characteristics])
53 # Define NO_D_INO_IN_DIRENT if you don't have d_ino in your struct dirent.
54 AC_CHECK_MEMBER(struct dirent.d_ino,[],
55 GIT_CONF_APPEND_LINE(NO_D_INO_IN_DIRENT=YesPlease),
56 [#include <dirent.h>])
58 # Define NO_D_TYPE_IN_DIRENT if your platform defines DT_UNKNOWN but lacks
59 # d_type in struct dirent (latest Cygwin -- will be fixed soonish).
60 AC_CHECK_MEMBER(struct dirent.d_type,[],
61 GIT_CONF_APPEND_LINE(NO_D_TYPE_IN_DIRENT=YesPlease),
62 [#include <dirent.h>])
64 # Define NO_SOCKADDR_STORAGE if your platform does not have struct
65 # sockaddr_storage.
66 AC_CHECK_TYPE(struct sockaddr_storage,[],
67 GIT_CONF_APPEND_LINE(NO_SOCKADDR_STORAGE=YesPlease),
68 [#include <netinet/in.h>])
71 ## Checks for library functions.
72 # Define NO_STRCASESTR if you don't have strcasestr.
73 #
74 # Define NO_STRLCPY if you don't have strlcpy.
75 #
76 # Define NO_SETENV if you don't have setenv in the C library.
77 #
78 # Define NO_MMAP if you want to avoid mmap.
79 #
80 # Define NO_IPV6 if you lack IPv6 support and getaddrinfo().
81 #
82 # Define NO_ICONV if your libc does not properly support iconv.
85 ## Other checks.
86 # Define USE_PIC if you need the main git objects to be built with -fPIC
87 # in order to build and link perl/Git.so.  x86-64 seems to need this.
88 #
89 # Define NO_SYMLINK_HEAD if you never want .git/HEAD to be a symbolic link.
90 # Enable it on Windows.  By default, symrefs are still used.
91 #
92 # Define WITH_OWN_SUBPROCESS_PY if you want to use with python 2.3.
93 #
94 # Define NO_ACCURATE_DIFF if your diff program at least sometimes misses
95 # a missing newline at the end of the file.
98 ## Site configuration
99 ## --with-PACKAGE[=ARG] and --without-PACKAGE
100 # Define NO_SVN_TESTS if you want to skip time-consuming SVN interopability
101 # tests.  These tests take up a significant amount of the total test time
102 # but are not needed unless you plan to talk to SVN repos.
104 # Define MOZILLA_SHA1 environment variable when running make to make use of
105 # a bundled SHA1 routine coming from Mozilla. It is GPL'd and should be fast
106 # on non-x86 architectures (e.g. PowerPC), while the OpenSSL version (default
107 # choice) has very fast version optimized for i586.
109 # Define PPC_SHA1 environment variable when running make to make use of
110 # a bundled SHA1 routine optimized for PowerPC.
112 # Define ARM_SHA1 environment variable when running make to make use of
113 # a bundled SHA1 routine optimized for ARM.
115 # Define NO_OPENSSL environment variable if you do not have OpenSSL.
116 # This also implies MOZILLA_SHA1.
118 # Define NO_CURL if you do not have curl installed.  git-http-pull and
119 # git-http-push are not built, and you cannot use http:// and https://
120 # transports.
122 # Define CURLDIR=/foo/bar if your curl header and library files are in
123 # /foo/bar/include and /foo/bar/lib directories.
125 # Define NO_EXPAT if you do not have expat installed.  git-http-push is
126 # not built, and you cannot push using http:// and https:// transports.
128 # Define NO_MMAP if you want to avoid mmap.
130 # Define NO_PYTHON if you want to loose all benefits of the recursive merge.
132 ## --enable-FEATURE[=ARG] and --disable-FEATURE
133 # Define COLLISION_CHECK below if you believe that SHA1's
134 # 1461501637330902918203684832716283019655932542976 hashes do not give you
135 # sufficient guarantee that no collisions between objects will ever happen.
137 # Define USE_NSEC below if you want git to care about sub-second file mtimes
138 # and ctimes. Note that you need recent glibc (at least 2.2.4) for this, and
139 # it will BREAK YOUR LOCAL DIFFS! show-diff and anything using it will likely
140 # randomly break unless your underlying filesystem supports those sub-second
141 # times (my ext3 doesn't).
143 # Define USE_STDEV below if you want git to care about the underlying device
144 # change being considered an inode change from the update-cache perspective.
147 ## Output files
148 AC_CONFIG_FILES(["${config_file}":"${config_in}":"${config_append}"])
149 AC_OUTPUT
151 ## Cleanup
152 rm -f "${config_append}"