configure.ac revision 263646
1m4_define([maj_ver], [0]) 2m4_define([med_ver], [3]) 3m4_define([min_ver], [0]) 4m4_define([so_version], [maj_ver:med_ver]) 5m4_define([ucl_version], [maj_ver.med_ver.min_ver]) 6 7AC_INIT([libucl],[ucl_version],[https://github.com/vstakhov/libucl],[libucl]) 8AC_CONFIG_SRCDIR([configure.ac]) 9AM_INIT_AUTOMAKE([1.11 foreign silent-rules -Wall -Wportability no-dist-gzip dist-xz]) 10 11UCL_VERSION=ucl_version 12SO_VERSION=so_version 13 14AC_SUBST(UCL_VERSION) 15AC_SUBST(SO_VERSION) 16 17AC_PROG_CC_C99 18AM_PROG_CC_C_O 19AM_PROG_AR 20LT_INIT 21AC_CONFIG_MACRO_DIR([m4]) 22AC_CONFIG_HEADERS([config.h]) 23 24AC_C_CONST 25AC_TYPE_SIZE_T 26 27AC_CHECK_HEADERS_ONCE([fcntl.h unistd.h]) 28AC_TYPE_OFF_T 29AC_FUNC_MMAP 30AC_CHECK_HEADERS_ONCE([fcntl.h]) 31AC_CHECK_HEADERS_ONCE([sys/types.h]) 32AC_CHECK_HEADERS_ONCE([sys/stat.h]) 33AC_CHECK_HEADERS_ONCE([sys/param.h]) 34AC_CHECK_HEADERS_ONCE([sys/mman.h]) 35AC_CHECK_HEADERS_ONCE([stdlib.h]) 36AC_CHECK_HEADERS_ONCE([stddef.h]) 37AC_CHECK_HEADERS_ONCE([stdarg.h]) 38AC_CHECK_HEADERS_ONCE([stdbool.h]) 39AC_CHECK_HEADERS_ONCE([stdint.h]) 40AC_CHECK_HEADERS_ONCE([string.h]) 41AC_CHECK_HEADERS_ONCE([unistd.h]) 42AC_CHECK_HEADERS_ONCE([ctype.h]) 43AC_CHECK_HEADERS_ONCE([errno.h]) 44AC_CHECK_HEADERS_ONCE([limits.h]) 45AC_CHECK_HEADERS_ONCE([libgen.h]) 46AC_CHECK_HEADERS_ONCE([stdio.h]) 47AC_CHECK_HEADERS_ONCE([float.h]) 48AC_CHECK_HEADERS_ONCE([math.h]) 49 50dnl Example of default-disabled feature 51AC_ARG_ENABLE([urls], AS_HELP_STRING([--enable-urls], [Enable URLs fetch (requires libfetch or libcurl)])) 52AC_ARG_ENABLE([signatures], AS_HELP_STRING([--enable-signatures], 53 [Enable signatures check (requires openssl)])) 54AC_ARG_ENABLE([utils], 55 [--enable-utils Build and install utils], 56 [case "${enableval}" in 57 yes) utils=true ;; 58 no) utils=false ;; 59 *) AC_MSG_ERROR([bad value ${enableval} for --enable-utils]) ;; 60 esac],[utils=false]) 61AM_CONDITIONAL([UTILS], [test x$utils = xtrue]) 62 63AS_IF([test "x$enable_signatures" = "xyes"], [ 64 AC_SEARCH_LIBS([EVP_MD_CTX_create], [crypto], [ 65 AC_DEFINE(HAVE_OPENSSL, 1, [Define to 1 if you have the 'crypto' library (-lcrypto).]) 66 LIBSSL_LIB="-lcrypto" 67 LIBS_EXTRA="${LIBS_EXTRA} -lcrypto" 68 ], [AC_MSG_ERROR([unable to find the EVP_MD_CTX_create() function])]) 69]) 70 71AC_PATH_PROG(PANDOC, pandoc, [/non/existent]) 72 73AC_SEARCH_LIBS([clock_gettime], [rt], [], [ 74 AC_CHECK_HEADER([mach/mach_time.h], [ 75 AC_DEFINE(HAVE_MACH_MACH_TIME_H, 1, [Define to 1 on Darwin]) 76 ], [AC_MSG_ERROR([unable to find clock_gettime or mach_absolute_time])]) 77]) 78AC_SEARCH_LIBS([remainder], [m], [], [AC_MSG_ERROR([unable to find remainder() function])]) 79 80AC_CHECK_HEADER([regex.h], [ 81 AC_DEFINE(HAVE_REGEX_H, 1, [Define to 1 if you have the <regex.h> header file.]) 82 ], 83 [AC_MSG_ERROR([unable to find the regex.h header])], 84 [#include <sys/types.h>]) 85 86AS_IF([test "x$enable_urls" = "xyes"], [ 87 AC_CHECK_HEADER([fetch.h], [ 88 AC_DEFINE(HAVE_FETCH_H, 1, [Define to 1 if you have the <fetch.h> header file.]) 89 AC_CHECK_LIB(fetch, fetchXGet, [ 90 AC_DEFINE(HAVE_LIBFETCH, 1, [Define to 1 if you have the 'fetch' library (-lfetch).]) 91 LIBFETCH_LIBS="-lfetch" 92 have_libfetch="yes" 93 LIBS_EXTRA="${LIBS_EXTRA} -lfetch" 94 ]) 95 ], [],[ 96 #include <stdio.h> 97 #ifdef HAVE_SYS_PARAM_H 98 #include <sys/param.h> 99 #endif 100 ]) 101 AC_SUBST(LIBFETCH_LIBS) 102 103 AS_IF([ test "x$have_libfetch" != "xyes"], [ 104 dnl Fallback to libcurl 105 PKG_CHECK_MODULES([CURL], [libcurl], [ 106 AC_DEFINE(CURL_FOUND, 1, [Use libcurl]) 107 LIBS_EXTRA="${LIBS_EXTRA} -lcurl"], 108 [AC_MSG_ERROR([unable to find neither libfetch nor libcurl])]) 109 ]) 110 AC_SUBST(CURL_FOUND) 111 AC_SUBST(CURL_LIBS) 112 AC_SUBST(CURL_CFLAGS) 113]) 114 115AC_SUBST(LIBS_EXTRA) 116 117AC_CONFIG_FILES(Makefile \ 118 src/Makefile \ 119 tests/Makefile \ 120 utils/Makefile \ 121 doc/Makefile \ 122 libucl.pc) 123AC_CONFIG_FILES([stamp-h], [echo timestamp > stamp-h]) 124AC_OUTPUT 125