./configure script checks now for existence of the following types and structure members: * dirent.d_ino in dirent.h (NO_D_INO_IN_DIRENT) * dirent.d_type in dirent.h (NO_D_TYPE_IN_DIRENT) * 'struct sockaddr_storage' in netinet/in.h (NO_SOCKADDR_STORAGE) ./configure script checks now for the following library functions: * strcasestr (NO_STRCASESTR) * strlcpy (NO_STRLCPY) * setenv (NO_SETENV) in default C library and in libraries which have AC_CHECK_LIB done for them (crypto, curl, expat). NOTE: not all checks are implemented! Signed-off-by: Jakub Narebski <jnareb@xxxxxxxxx> --- This patch needs review by someone better versed in compiling git on different platforms, namely AC_CHECK_MEMBER and AC_CHECK_TYPE needs checking if all header files where git search for specified structure member or specified type. I don't know (yet) how to implement checking for NEEDS_SSL_WITH_CRYPTO (probably also checlking for crypto library needs correction), NEEDS_LIBICONV, NEEDS_SOCKET, NO_IPV6, NO_ICONV, Python < 2.3 and Python == 2.3, if to check for NO_MMAP, and for NO_ACCURATE_DIFF. This patch is to be considered preliminary! configure.ac | 28 ++++++++++++++++++++++++++-- 1 files changed, 26 insertions(+), 2 deletions(-) diff --git a/configure.ac b/configure.ac index 55d7a9b..fbd46e2 100644 --- a/configure.ac +++ b/configure.ac @@ -14,17 +14,41 @@ AC_CONFIG_SRCDIR([git.c]) AC_DEFUN([MY_APPEND_LINE], [[echo "$1" >> config.mak.append]])# AC_APPEND_LINE + # Checks for libraries. -AC_MSG_NOTICE(CHECKS for libraries) +AC_MSG_NOTICE([CHECKS for libraries]) AC_CHECK_LIB([crypto], [SHA1_Init],,MY_APPEND_LINE(NO_OPENSSL=YesPlease)) AC_CHECK_LIB([curl], [curl_easy_setopt],,MY_APPEND_LINE(NO_CURL=YesPlease)) AC_CHECK_LIB([expat], [XML_ParserCreate],,MY_APPEND_LINE(NO_EXPAT=YesPlease)) + +# Checks for typedefs, structures, and compiler characteristics. +AC_MSG_NOTICE([CHECKS for typedefs, structures, and compiler characteristics]) + +AC_CHECK_MEMBER(struct dirent.d_ino,, +MY_APPEND_LINE(NO_D_INO_IN_DIRENT=YesPlease), +[#include <dirent.h>]) +AC_CHECK_MEMBER(struct dirent.d_type,, +MY_APPEND_LINE(NO_D_TYPE_IN_DIRENT=YesPlease), +[#include <dirent.h>]) + +AC_CHECK_TYPE(struct sockaddr_storage,, +MY_APPEND_LINE(NO_SOCKADDR_STORAGE=YesPlease), +[#include <netinet/in.h>]) + + +# Checks for library functions. +AC_MSG_NOTICE([CHECKS for library functions]) +AC_CHECK_FUNC(strcasestr,,MY_APPEND_LINE(NO_STRCASESTR=YesPlease)) +AC_CHECK_FUNC(strlcpy,,MY_APPEND_LINE(NO_STRLCPY=YesPlease)) +AC_CHECK_FUNC(setenv,,MY_APPEND_LINE(NO_SETENV=YesPlease)) + + # Output files AC_CONFIG_FILES([config.mak:config.mak.in:config.mak.append], [rm -f config.mak.append], -- 1.4.0 - : send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html