autoconf: Checks for libraries
[git/dscho.git] / configure.ac
blobd938546940347c0805221dad224d4d5fc2cff6ca
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 AC_MSG_NOTICE([CHECKS for libraries])
31 # Define NO_OPENSSL environment variable if you do not have OpenSSL.
32 # Define NEEDS_SSL_WITH_CRYPTO if you need -lcrypto with -lssl (Darwin).
33 AC_CHECK_LIB([ssl], [SHA1_Init],[],
34 [AC_CHECK_LIB([crypto], [SHA1_INIT],
35  GIT_CONF_APPEND_LINE(NEEDS_SSL_WITH_CRYPTO=YesPlease),
36  GIT_CONF_APPEND_LINE(NO_OPENSSL=YesPlease))])
38 # Define NO_CURL if you do not have curl installed.  git-http-pull and
39 # git-http-push are not built, and you cannot use http:// and https://
40 # transports.
41 AC_CHECK_LIB([curl], [curl_global_init],[],
42 GIT_CONF_APPEND_LINE(NO_CURL=YesPlease))
44 # Define NO_EXPAT if you do not have expat installed.  git-http-push is
45 # not built, and you cannot push using http:// and https:// transports.
46 AC_CHECK_LIB([expat], [XML_ParserCreate],[],
47 GIT_CONF_APPEND_LINE(NO_EXPAT=YesPlease))
49 # Define NEEDS_LIBICONV if linking with libc is not enough (Darwin).
50 AC_CHECK_LIB([c], [iconv],[],
51 [AC_CHECK_LIB([iconv],[iconv],
52  GIT_CONF_APPEND_LINE(NEEDS_LIBICONV=YesPlease),[])])
54 # Define NEEDS_SOCKET if linking with libc is not enough (SunOS,
55 # Patrick Mauritz).
56 AC_CHECK_LIB([c], [socket],[],
57 [AC_CHECK_LIB([socket],[socket],
58  GIT_CONF_APPEND_LINE(NEEDS_SOCKET=YesPlease),[])])
61 ## Checks for header files.
64 ## Checks for typedefs, structures, and compiler characteristics.
65 AC_MSG_NOTICE([CHECKS for typedefs, structures, and compiler characteristics])
67 # Define NO_D_INO_IN_DIRENT if you don't have d_ino in your struct dirent.
68 AC_CHECK_MEMBER(struct dirent.d_ino,[],
69 GIT_CONF_APPEND_LINE(NO_D_INO_IN_DIRENT=YesPlease),
70 [#include <dirent.h>])
72 # Define NO_D_TYPE_IN_DIRENT if your platform defines DT_UNKNOWN but lacks
73 # d_type in struct dirent (latest Cygwin -- will be fixed soonish).
74 AC_CHECK_MEMBER(struct dirent.d_type,[],
75 GIT_CONF_APPEND_LINE(NO_D_TYPE_IN_DIRENT=YesPlease),
76 [#include <dirent.h>])
78 # Define NO_SOCKADDR_STORAGE if your platform does not have struct
79 # sockaddr_storage.
80 AC_CHECK_TYPE(struct sockaddr_storage,[],
81 GIT_CONF_APPEND_LINE(NO_SOCKADDR_STORAGE=YesPlease),
82 [#include <netinet/in.h>])
85 ## Checks for library functions.
86 ## (in default C library and libraries checked by AC_CHECK_LIB)
87 AC_MSG_NOTICE([CHECKS for library functions])
89 # Define NO_STRCASESTR if you don't have strcasestr.
90 AC_CHECK_FUNC(strcasestr,[],
91 GIT_CONF_APPEND_LINE(NO_STRCASESTR=YesPlease))
93 # Define NO_STRLCPY if you don't have strlcpy.
94 AC_CHECK_FUNC(strlcpy,[],
95 GIT_CONF_APPEND_LINE(NO_STRLCPY=YesPlease))
97 # Define NO_SETENV if you don't have setenv in the C library.
98 AC_CHECK_FUNC(setenv,[],
99 GIT_CONF_APPEND_LINE(NO_SETENV=YesPlease))
101 # Define NO_MMAP if you want to avoid mmap.
103 # Define NO_IPV6 if you lack IPv6 support and getaddrinfo().
105 # Define NO_ICONV if your libc does not properly support iconv.
108 ## Other checks.
109 # Define USE_PIC if you need the main git objects to be built with -fPIC
110 # in order to build and link perl/Git.so.  x86-64 seems to need this.
112 # Define NO_SYMLINK_HEAD if you never want .git/HEAD to be a symbolic link.
113 # Enable it on Windows.  By default, symrefs are still used.
115 # Define WITH_OWN_SUBPROCESS_PY if you want to use with python 2.3.
117 # Define NO_ACCURATE_DIFF if your diff program at least sometimes misses
118 # a missing newline at the end of the file.
121 ## Site configuration
122 ## --with-PACKAGE[=ARG] and --without-PACKAGE
123 # Define NO_SVN_TESTS if you want to skip time-consuming SVN interopability
124 # tests.  These tests take up a significant amount of the total test time
125 # but are not needed unless you plan to talk to SVN repos.
127 # Define MOZILLA_SHA1 environment variable when running make to make use of
128 # a bundled SHA1 routine coming from Mozilla. It is GPL'd and should be fast
129 # on non-x86 architectures (e.g. PowerPC), while the OpenSSL version (default
130 # choice) has very fast version optimized for i586.
132 # Define PPC_SHA1 environment variable when running make to make use of
133 # a bundled SHA1 routine optimized for PowerPC.
135 # Define ARM_SHA1 environment variable when running make to make use of
136 # a bundled SHA1 routine optimized for ARM.
138 # Define NO_OPENSSL environment variable if you do not have OpenSSL.
139 # This also implies MOZILLA_SHA1.
141 # Define NO_CURL if you do not have curl installed.  git-http-pull and
142 # git-http-push are not built, and you cannot use http:// and https://
143 # transports.
145 # Define CURLDIR=/foo/bar if your curl header and library files are in
146 # /foo/bar/include and /foo/bar/lib directories.
148 # Define NO_EXPAT if you do not have expat installed.  git-http-push is
149 # not built, and you cannot push using http:// and https:// transports.
151 # Define NO_MMAP if you want to avoid mmap.
153 # Define NO_PYTHON if you want to loose all benefits of the recursive merge.
155 ## --enable-FEATURE[=ARG] and --disable-FEATURE
156 # Define COLLISION_CHECK below if you believe that SHA1's
157 # 1461501637330902918203684832716283019655932542976 hashes do not give you
158 # sufficient guarantee that no collisions between objects will ever happen.
160 # Define USE_NSEC below if you want git to care about sub-second file mtimes
161 # and ctimes. Note that you need recent glibc (at least 2.2.4) for this, and
162 # it will BREAK YOUR LOCAL DIFFS! show-diff and anything using it will likely
163 # randomly break unless your underlying filesystem supports those sub-second
164 # times (my ext3 doesn't).
166 # Define USE_STDEV below if you want git to care about the underlying device
167 # change being considered an inode change from the update-cache perspective.
170 ## Output files
171 AC_CONFIG_FILES(["${config_file}":"${config_in}":"${config_append}"])
172 AC_OUTPUT
174 ## Cleanup
175 rm -f "${config_append}"