1152f758cSDarren Hiebert# Copyright (c) 2009, Darren Hiebert 2152f758cSDarren Hiebert# 3152f758cSDarren Hiebert# This source code is released for free distribution under the terms 40ce38835Sviccuad# of the GNU General Public License version 2 or (at your option) any 50ce38835Sviccuad# later version. 6152f758cSDarren Hiebert 7152f758cSDarren Hiebert# Process this file with autoconf to produce a configure script. 8152f758cSDarren Hiebert 9daa1a0f9SHiroo HAYASHIAC_PREREQ([2.64]) 105911c7c6SAlberto FanjulAC_INIT([universal-ctags],[5.9.0]) 11bf33c698SK.Takata 1237eea9d5SMasatake YAMATOif ! test -e "${srcdir}/config.h.in"; then 1337eea9d5SMasatake YAMATO echo "---" 145314d729SColomban Wendling echo "--- ${srcdir}/config.h.in WAS NOT FOUND." 1>&2 155314d729SColomban Wendling echo "--- YOU MIGHT HAVE RUN autoconf ONLY" 1>&2 169d5b773cSMasatake YAMATO echo "--- BUT YOU MAY HAVE TO RUN autogen.sh." 1>&2 1737eea9d5SMasatake YAMATO echo "---" 1837eea9d5SMasatake YAMATO exit 1 1937eea9d5SMasatake YAMATOfi 20152f758cSDarren Hiebert 21bf33c698SK.Takata# Report system info 22bf33c698SK.Takata# ------------------ 23bf33c698SK.Takataprogram_name=[`grep 'PROGRAM_NAME *"' $srcdir/main/ctags.h | sed -e 's/.*"\([^"]*\)".*/\1/'`] 24bf33c698SK.Takataprogram_version=[`grep 'PROGRAM_VERSION *"' $srcdir/main/ctags.h | sed -e 's/.*"\([^"]*\)".*/\1/'`] 25bf33c698SK.Takataecho "$program_name, version $program_version" 26bf33c698SK.Takatauname -mrsv 2>/dev/null 27bf33c698SK.Takata 28bf33c698SK.TakataAM_INIT_AUTOMAKE([foreign subdir-objects tar-ustar]) 29bf33c698SK.TakataAM_SILENT_RULES([yes]) 30bf33c698SK.TakataAC_CONFIG_HEADERS([config.h]) 31bf33c698SK.Takata 32f7915217Sleleliu008m4_ifndef([PKG_CHECK_EXISTS], [m4_fatal([must install pkg-config 0.18 or later before running ./autogen.sh])]) 33f7915217Sleleliu008 346651ead9SK.TakataAC_CANONICAL_BUILD 356651ead9SK.TakataAC_CANONICAL_HOST 366651ead9SK.Takata 373b8e28c3Sleleliu008case $host in 383b8e28c3Sleleliu008 *darwin*) 393b8e28c3Sleleliu008 if test "${enable_static}" = "yes"; then 403b8e28c3Sleleliu008 printf "\n%s\n" "macOS not support --enable-static." >&5 413b8e28c3Sleleliu008 printf "\n%s\n" "macOS not support --enable-static." >&6 423b8e28c3Sleleliu008 exit 1 433b8e28c3Sleleliu008 fi 442f69ee90Sleleliu008 ;; 452f69ee90Sleleliu008 *freebsd*|*openbsd*) 462f69ee90Sleleliu008 # https://github.com/universal-ctags/ctags/issues/3338 472f69ee90Sleleliu008 export LDFLAGS="$LDFLAGS -L/usr/local/lib" 482f69ee90Sleleliu008 ;; 493b8e28c3Sleleliu008esac 503b8e28c3Sleleliu008 51152f758cSDarren HiebertAH_TEMPLATE([PACKAGE], [Package name.]) 52152f758cSDarren HiebertAH_TEMPLATE([VERSION], [Package version.]) 53152f758cSDarren HiebertAH_TEMPLATE([clock_t], 54152f758cSDarren Hiebert [Define to the appropriate type if <time.h> does not define this.]) 55152f758cSDarren HiebertAH_TEMPLATE([fpos_t], 56152f758cSDarren Hiebert [Define to long if <stdio.h> does not define this.]) 57152f758cSDarren HiebertAH_TEMPLATE([L_tmpnam], 58152f758cSDarren Hiebert [Define to the appropriate size for tmpnam() if <stdio.h> does not define 59152f758cSDarren Hiebert this.]) 60152f758cSDarren HiebertAH_TEMPLATE([HAVE_STAT_ST_INO], 61152f758cSDarren Hiebert [Define this macro if the field "st_ino" exists in struct stat in 62152f758cSDarren Hiebert <sys/stat.h>.]) 631293d03bSMasatake YAMATOAH_TEMPLATE([HAVE_STATEMENT_EXPRESSION_EXT], 641293d03bSMasatake YAMATO [Define this macro if compiler supports statement expression non-standard 651293d03bSMasatake YAMATO C feature.]) 66152f758cSDarren HiebertAH_TEMPLATE([remove], 67152f758cSDarren Hiebert [Define remove to unlink if you have unlink(), but not remove().]) 68152f758cSDarren HiebertAH_TEMPLATE([INT_MAX], 69152f758cSDarren Hiebert [Define as the maximum integer on your system if not defined <limits.h>.]) 70152f758cSDarren HiebertAH_TEMPLATE([CUSTOM_CONFIGURATION_FILE], 71152f758cSDarren Hiebert [You can define this label to be a string containing the name of a 72152f758cSDarren Hiebert site-specific configuration file containing site-wide default options. The 73152f758cSDarren Hiebert files /etc/ctags.conf and /usr/local/etc/ctags.conf are already checked, 74152f758cSDarren Hiebert so only define one here if you need a file somewhere else.]) 751eace6c6SJonathan BuschmannAH_TEMPLATE([ETAGS], 761eace6c6SJonathan Buschmann [Define the string to check (in executable name) for etags mode]) 77152f758cSDarren HiebertAH_TEMPLATE([MACROS_USE_PATTERNS], 78152f758cSDarren Hiebert [Define this label if you want macro tags (defined lables) to use patterns 79152f758cSDarren Hiebert in the EX command by default (original ctags behavior is to use line 80152f758cSDarren Hiebert numbers).]) 81152f758cSDarren HiebertAH_VERBATIM([DEFAULT_FILE_FORMAT], [ 82152f758cSDarren Hiebert/* Define this as desired. 83152f758cSDarren Hiebert * 1: Original ctags format 84152f758cSDarren Hiebert * 2: Extended ctags format with extension flags in EX-style comment. 85152f758cSDarren Hiebert */ 86039bc97fSMasatake YAMATO#define DEFAULT_FILE_FORMAT 2 87152f758cSDarren Hiebert]) 88152f758cSDarren HiebertAH_TEMPLATE([CASE_INSENSITIVE_FILENAMES], 89152f758cSDarren Hiebert [Define this label if your system uses case-insensitive file names]) 90152f758cSDarren HiebertAH_VERBATIM([EXTERNAL_SORT], [ 91152f758cSDarren Hiebert/* Define this label to use the system sort utility (which is probably more 92152f758cSDarren Hiebert* efficient) over the internal sorting algorithm. 93152f758cSDarren Hiebert*/ 94152f758cSDarren Hiebert#ifndef INTERNAL_SORT 95152f758cSDarren Hiebert# undef EXTERNAL_SORT 96152f758cSDarren Hiebert#endif 97152f758cSDarren Hiebert]) 982acdcfa1SYasuhiro MatsumotoAH_TEMPLATE([HAVE_ICONV], 992acdcfa1SYasuhiro Matsumoto [Define this value if support multibyte character encoding.]) 10088c2797bSMasatake YAMATOAH_TEMPLATE([ICONV_USE_LIB_PREFIX], 10188c2797bSMasatake YAMATO [Define this value if the platform uses "lib" as prefix for iconv functions.]) 102152f758cSDarren HiebertAH_TEMPLATE([TMPDIR], 103152f758cSDarren Hiebert [If you wish to change the directory in which temporary files are stored, 104152f758cSDarren Hiebert define this label to the directory desired.]) 105152f758cSDarren HiebertAH_TEMPLATE([NON_CONST_PUTENV_PROTOTYPE], 106152f758cSDarren Hiebert [Define this is you have a prototype for putenv() in <stdlib.h>, but 107152f758cSDarren Hiebert doesn't declare its argument as "const char *".]) 1086651ead9SK.TakataAH_TEMPLATE([MSDOS_STYLE_PATH], 1096651ead9SK.Takata [Define to 1 if your system uses MS-DOS style path.]) 110eed4431bSK.TakataAH_TEMPLATE([MANUAL_GLOBBING], 111eed4431bSK.Takata [Define to 1 if your system doesn't expand wildcards.]) 112eed4431bSK.TakataAH_TEMPLATE([HAVE__FINDFIRST], 113eed4431bSK.Takata [Define to 1 if your system have _findfirst().]) 1147da252f3SMasatake YAMATOAH_TEMPLATE([ENABLE_GCOV], 1157da252f3SMasatake YAMATO [Define to 1 if gcov is instrumented.]) 11636fa0e22SHiroo HAYASHIAH_TEMPLATE([USE_GNULIB_FNMATCH], 11736fa0e22SHiroo HAYASHI [Define to 1 when using fnmatch implementation in bundled gnulib.]) 118152f758cSDarren Hiebert 119152f758cSDarren Hiebert# Define convenience macros 120152f758cSDarren Hiebert# ------------------------- 121152f758cSDarren Hiebert# CHECK_HEADER_DEFINE(LABEL, HEADER [,ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND ] ]) 122152f758cSDarren HiebertAC_DEFUN([CHECK_HEADER_DEFINE], [ 123152f758cSDarren Hiebert AC_MSG_CHECKING([if $1 is defined in $2]) 124c7b3e262SP.Montanus AC_EGREP_CPP([$2:$1], 1257dc8f8faSP.Montanus[ 1267dc8f8faSP.Montanus#include <$2> 127152f758cSDarren Hiebert#ifdef $1 128c7b3e262SP.Montanusconst char *result_yes = "$2:$1"; 129152f758cSDarren Hiebert#endif 130152f758cSDarren Hiebert], [ 131152f758cSDarren Hiebert AC_MSG_RESULT(yes) 132152f758cSDarren Hiebert [$3] 133152f758cSDarren Hiebert], [ 134152f758cSDarren Hiebert AC_MSG_RESULT(no) 135152f758cSDarren Hiebert [$4] 136152f758cSDarren Hiebert]) ]) 137152f758cSDarren Hiebert 1384f9c4393SP.Montanus# CHECK_PROTO(FUNCTION, HEADER-FILE) 1397f2c383aSP.MontanusAC_DEFUN([CHECK_PROTO], [ 1407f2c383aSP.Montanus AC_EGREP_HEADER([[^A-Za-z0-9_]$1([ ]+[A-Za-z0-9_]*)?[ ]*\(], 1417f2c383aSP.Montanus [$2], 1427f2c383aSP.Montanus [], 1437f2c383aSP.Montanus [ 1447f2c383aSP.Montanus AC_MSG_NOTICE([adding prototype for $1]) 145bb1b2dbfSP.Montanus AH_TEMPLATE(AS_TR_CPP([NEED_PROTO_$1]), 146bb1b2dbfSP.Montanus [If you receive error or warning messages indicating that you are missing a prototype for, or a type mismatch using, the following function, define this label and remake.]) 1477f2c383aSP.Montanus AC_DEFINE(AS_TR_CPP([NEED_PROTO_$1])) 1487f2c383aSP.Montanus ]) 1497f2c383aSP.Montanus]) 1507f2c383aSP.Montanus 15196ff0a24SP.Montanus# PRETTY_ARG_VAR(VARIABLE, DESCRIPTION, DEFAULT) 15296ff0a24SP.Montanus# ---------------------------------------------- 15396ff0a24SP.Montanus# Call AC_ARG_VAR with DEFAULT value. 15496ff0a24SP.MontanusAC_DEFUN([PRETTY_ARG_VAR], [ 15596ff0a24SP.Montanus AC_ARG_VAR([$1], [$2 [$3]]) 15696ff0a24SP.Montanus 15796ff0a24SP.Montanus if test "${ac_env_$1_set}" = "set"; then 15896ff0a24SP.Montanus $1="${ac_env_$1_value}" 15996ff0a24SP.Montanus else 16096ff0a24SP.Montanus $1="$3" 16196ff0a24SP.Montanus fi 16296ff0a24SP.Montanus]) 16396ff0a24SP.Montanus 164152f758cSDarren Hiebert# Checks for configuration options 165152f758cSDarren Hiebert# -------------------------------- 166152f758cSDarren Hiebert 1678783e633SP.MontanusAC_ARG_WITH([sparse-cgcc], 1688783e633SP.Montanus [AS_HELP_STRING([--with-sparse-cgcc], 1698783e633SP.Montanus [use Sparse 'compiler wrapper' cgcc as C compiler [no]])]) 1708783e633SP.Montanus 171b4202f59SP.MontanusAC_ARG_ENABLE([coverage-gcov], 172b4202f59SP.Montanus [AS_HELP_STRING([--enable-coverage-gcov], 173b4202f59SP.Montanus [enable 'gcov' coverage testing tool [no]])]) 174b4202f59SP.Montanus 1759aff773fSMaxime CosteAC_ARG_ENABLE(readcmd, 17696f997d0SMaxime Coste [AS_HELP_STRING([--disable-readcmd], 17796f997d0SMaxime Coste [do not include readtags command during install])], 1789aff773fSMaxime Coste [], [enable_readcmd=yes]) 1794650979bSMaxime Coste 180152f758cSDarren Hiebert# AC_ARG_WITH(perl-regex, 18196f997d0SMaxime Coste# [AS_HELP_STRING([--with-perl-regex], 18296f997d0SMaxime Coste# [use Perl pcre interface, if available])]) 183152f758cSDarren Hiebert 184152f758cSDarren HiebertAC_ARG_ENABLE(etags, 18596f997d0SMaxime Coste [AS_HELP_STRING([--enable-etags], 18696f997d0SMaxime Coste [enable the installation of links for etags])]) 187152f758cSDarren Hiebert 188152f758cSDarren HiebertAC_ARG_ENABLE(extended-format, 18996f997d0SMaxime Coste [AS_HELP_STRING([--disable-extended-format], 19096f997d0SMaxime Coste [disable extension flags; use original ctags file format only])], 191039bc97fSMasatake YAMATO AC_DEFINE(DEFAULT_FILE_FORMAT, 1), AC_DEFINE(DEFAULT_FILE_FORMAT, 2)) 192152f758cSDarren Hiebert 193152f758cSDarren HiebertAC_ARG_ENABLE(external-sort, 19496f997d0SMaxime Coste [AS_HELP_STRING([--disable-external-sort], 19596f997d0SMaxime Coste [use internal sort algorithm instead of sort program])]) 196152f758cSDarren Hiebert 1972acdcfa1SYasuhiro MatsumotoAC_ARG_ENABLE(iconv, 198dc1d443eSK.Takata [AS_HELP_STRING([--disable-iconv], 199dc1d443eSK.Takata [disable multibyte character encoding support])]) 2002acdcfa1SYasuhiro Matsumoto 201152f758cSDarren HiebertAC_ARG_ENABLE(custom-config, 20296f997d0SMaxime Coste [AS_HELP_STRING([--enable-custom-config=FILE], 20396f997d0SMaxime Coste [enable custom config file for site-wide defaults])]) 204152f758cSDarren Hiebert 205152f758cSDarren HiebertAC_ARG_ENABLE(macro-patterns, 20696f997d0SMaxime Coste [AS_HELP_STRING([--enable-macro-patterns], 20796f997d0SMaxime Coste [use patterns as default method to locate macros instead of line numbers])]) 208152f758cSDarren Hiebert 209152f758cSDarren HiebertAC_ARG_ENABLE(tmpdir, 21096f997d0SMaxime Coste [AS_HELP_STRING([--enable-tmpdir=DIR], 21196f997d0SMaxime Coste [default directory for temporary files [ARG=/tmp]])], 212152f758cSDarren Hiebert tmpdir_specified=yes) 213152f758cSDarren Hiebert 2144e0988b7SMasatake YAMATOAC_ARG_ENABLE([debugging], 2154e0988b7SMasatake YAMATO [AS_HELP_STRING([--enable-debugging], 2164e0988b7SMasatake YAMATO [enable debugging features])]) 2174e0988b7SMasatake YAMATO 218db918d55SK.TakataAC_ARG_ENABLE([static], 219db918d55SK.Takata [AS_HELP_STRING([--enable-static], 220db918d55SK.Takata [enable static linking (mainly for MinGW)])]) 221db918d55SK.Takata 2221eace6c6SJonathan BuschmannAC_ARG_PROGRAM 223152f758cSDarren Hiebert 224152f758cSDarren Hiebert# Process configuration options 225152f758cSDarren Hiebert# ----------------------------- 226152f758cSDarren Hiebert 2274698c2e4SMike BurnsAM_CONDITIONAL(INSTALL_ETAGS, [test "x$enable_etags" = "xyes"]) 2284698c2e4SMike BurnsAM_CONDITIONAL(USE_READCMD, [test "x$enable_readcmd" = "xyes"]) 229152f758cSDarren Hiebert 230d2f302e4SP.Montanusdnl AC_MSG_NOTICE(Change with $program_transform_name) 23115413bacSMasatake YAMATOCTAGS_NAME_EXECUTABLE=`echo ctags | sed "$program_transform_name"` 23215413bacSMasatake YAMATOAC_SUBST(CTAGS_NAME_EXECUTABLE) 23315413bacSMasatake YAMATOETAGS_NAME_EXECUTABLE=`echo etags | sed "$program_transform_name"` 23415413bacSMasatake YAMATOAC_SUBST(ETAGS_NAME_EXECUTABLE) 2351eace6c6SJonathan Buschmann 23615413bacSMasatake YAMATOAC_DEFINE_UNQUOTED(ETAGS, "$ETAGS_NAME_EXECUTABLE") 2371eace6c6SJonathan Buschmann 238152f758cSDarren Hiebertif test "$enable_custom_config" = no -o "$enable_custom_config" = yes ; then 239d2f302e4SP.Montanus AC_MSG_NOTICE(no name supplied for custom configuration file) 240152f758cSDarren Hiebertelif test -n "$enable_custom_config" ; then 241152f758cSDarren Hiebert AC_DEFINE_UNQUOTED(CUSTOM_CONFIGURATION_FILE, "$enable_custom_config") 242d2f302e4SP.Montanus AC_MSG_NOTICE($enable_custom_config will be used as custom configuration file) 243152f758cSDarren Hiebertfi 244152f758cSDarren Hiebert 245152f758cSDarren Hiebertif test "$enable_macro_patterns" = yes ; then 246152f758cSDarren Hiebert AC_DEFINE(MACROS_USE_PATTERNS) 247d2f302e4SP.Montanus AC_MSG_NOTICE(tag file will use patterns for macros by default) 248152f758cSDarren Hiebertfi 249152f758cSDarren Hiebert 2504e0988b7SMasatake YAMATOAM_CONDITIONAL(ENABLE_DEBUGGING, [test "x$enable_debugging" = "xyes"]) 2514e0988b7SMasatake YAMATO 2524e0988b7SMasatake YAMATO 253152f758cSDarren Hiebert# Checks for programs 254152f758cSDarren Hiebert# ------------------- 255152f758cSDarren Hiebert 256152f758cSDarren HiebertAC_PROG_CC 25725808ebeSMatthew BrushAC_PROG_CC_C99 258daa1a0f9SHiroo HAYASHI# For gnulib. 259daa1a0f9SHiroo HAYASHI# Typically, this is immediately after AC_PROG_CC, ... 260daa1a0f9SHiroo HAYASHIgl_EARLY 261daa1a0f9SHiroo HAYASHI 262f406da36SJiří TechetAC_PROG_RANLIB 2633addc312SColomban WendlingAC_C_BIGENDIAN 264152f758cSDarren Hiebert 26524906f53Sleleliu008if test "$cross_compiling" = "yes"; then 2661daaf2b9Sleleliu008 # We need to compile and run a program on the build machine. 2671daaf2b9Sleleliu008 AC_MSG_CHECKING(for cc for build) 26824906f53Sleleliu008 if test "x${CC_FOR_BUILD}" = "x" ; then 26924906f53Sleleliu008 CC_FOR_BUILD=cc 2701daaf2b9Sleleliu008 fi 2711daaf2b9Sleleliu008 AC_MSG_RESULT($CC_FOR_BUILD) 27224906f53Sleleliu008 27324906f53Sleleliu008 AC_MSG_CHECKING(if $CC_FOR_BUILD works) 27424906f53Sleleliu008 27524906f53Sleleliu008 unset TEMP_DIR_FOR_CHECKING 27624906f53Sleleliu008 TEMP_DIR_FOR_CHECKING=$(mktemp -d) 27724906f53Sleleliu008 27824906f53Sleleliu008 unset CC_FOR_BUILD_WORKS 27924906f53Sleleliu008 CC_FOR_BUILD_WORKS=no 28024906f53Sleleliu008 28124906f53Sleleliu008 ( 28224906f53Sleleliu008 cd "$TEMP_DIR_FOR_CHECKING" || return 1 28324906f53Sleleliu008 28424906f53Sleleliu008 printf 'int main() { return 0;}' > test.c 28524906f53Sleleliu008 28624906f53Sleleliu008 $CC_FOR_BUILD $CPPFLAGS_FOR_BUILD $CFLAGS_FOR_BUILD $LDFLAGS_FOR_BUILD -o test test.c 28724906f53Sleleliu008 ) && CC_FOR_BUILD_WORKS=yes 28824906f53Sleleliu008 28924906f53Sleleliu008 AC_MSG_RESULT($CC_FOR_BUILD_WORKS) 29024906f53Sleleliu008 29124906f53Sleleliu008 unset BUILD_EXEEXT 29224906f53Sleleliu008 unset BUILD_OBJEXT 29324906f53Sleleliu008 29424906f53Sleleliu008 BUILD_OBJEXT='o' 29524906f53Sleleliu008 29624906f53Sleleliu008 if [ -f "$TEMP_DIR_FOR_CHECKING/test.exe" ] ; then 29724906f53Sleleliu008 BUILD_EXEEXT='.exe' 29824906f53Sleleliu008 fi 29924906f53Sleleliu008else 30024906f53Sleleliu008 CC_FOR_BUILD="$CC" 30124906f53Sleleliu008 CFLAGS_FOR_BUILD="$CFLAGS" 30224906f53Sleleliu008 CPPFLAGS_FOR_BUILD="$CPPFLAGS" 30324906f53Sleleliu008 LDFLAGS_FOR_BUILD="$LDFLAGS" 30424906f53Sleleliu008 30524906f53Sleleliu008 BUILD_OBJEXT="$OBJEXT" 30624906f53Sleleliu008 BUILD_EXEEXT="$EXEEXT" 30724906f53Sleleliu008fi 30824906f53Sleleliu008 3091daaf2b9Sleleliu008AC_ARG_VAR(CC_FOR_BUILD,[build system C compiler]) 3101daaf2b9Sleleliu008AC_ARG_VAR(CFLAGS_FOR_BUILD,[CFLAGS for build system C compiler]) 3111daaf2b9Sleleliu008AC_ARG_VAR(CPPFLAGS_FOR_BUILD,[CPPFLAGS for build system C compiler]) 3121daaf2b9Sleleliu008AC_ARG_VAR(LDFLAGS_FOR_BUILD,[LDFLAGS for build system C compiler]) 3131daaf2b9Sleleliu008 31424906f53Sleleliu008AC_SUBST([CC_FOR_BUILD]) 31524906f53Sleleliu008AC_SUBST([CFLAGS_FOR_BUILD]) 31624906f53Sleleliu008AC_SUBST([CPPFLAGS_FOR_BUILD]) 31724906f53Sleleliu008AC_SUBST([LDFLAGS_FOR_BUILD]) 31824906f53Sleleliu008 31924906f53Sleleliu008AC_SUBST([BUILD_OBJEXT]) 32024906f53Sleleliu008AC_SUBST([BUILD_EXEEXT]) 32124906f53Sleleliu008 3229748aca4Sleleliu008AC_ARG_VAR(AR,[ar command or path]) 3239748aca4Sleleliu008AC_ARG_VAR(RANLIB,[ranlib command or path]) 3249748aca4Sleleliu008AC_ARG_VAR(WINDRES,[windres command or path, used with mingw-w64]) 3259748aca4Sleleliu008AC_SUBST([WINDRES]) 3269748aca4Sleleliu008 3279748aca4Sleleliu008if test "x${AR}" = "x" ; then 3289748aca4Sleleliu008 AR=ar 3299748aca4Sleleliu008fi 3309748aca4Sleleliu008 3319748aca4Sleleliu008if test "x${WINDRES}" = "x" ; then 3329748aca4Sleleliu008 WINDRES=windres 3339748aca4Sleleliu008fi 3349748aca4Sleleliu008 3358783e633SP.Montanusif test "${with_sparse_cgcc}" = "yes"; then 3368783e633SP.Montanus REAL_CC="${CC}" 3378783e633SP.Montanus CC="cgcc" 3388783e633SP.Montanus AC_SUBST([REAL_CC]) 3398783e633SP.Montanus 3408783e633SP.Montanus PRETTY_ARG_VAR([CGCC_CFLAGS], [cgcc specific flags], 3418783e633SP.Montanus [-Wsparse-all]) 3428783e633SP.Montanuselse 3438783e633SP.Montanus CGCC_CFLAGS="" 3448783e633SP.Montanusfi 3458783e633SP.Montanus 346b4202f59SP.Montanusif test "${enable_coverage_gcov}" = "yes"; then 347b4202f59SP.Montanus COVERAGE_CFLAGS="--coverage" 348b4202f59SP.Montanus COVERAGE_LDFLAGS="--coverage" 3497da252f3SMasatake YAMATO AC_DEFINE(ENABLE_GCOV) 350b4202f59SP.Montanusfi 351b4202f59SP.MontanusAC_SUBST([COVERAGE_CFLAGS]) 352b4202f59SP.MontanusAC_SUBST([COVERAGE_LDFLAGS]) 353b4202f59SP.Montanus 354152f758cSDarren HiebertAC_PROG_LN_S 355152f758cSDarren HiebertAC_CHECK_PROG(STRIP, strip, strip, :) 356811e7044SjaflAC_SYS_LARGEFILE 357152f758cSDarren Hiebert 35850607bfaSAvinash SonawaneAC_CHECK_PROG([perl_found], [perl], [yes], [no]) 35928a3d08fSMasatake YAMATOAM_CONDITIONAL([RUN_OPTLIB2C], [test "${perl_found}" = "yes"]) 360431a587eSMasatake YAMATOAM_CONDITIONAL([RUN_TXT2CSTR], [test "${perl_found}" = "yes"]) 36154fc59c2SMasatake YAMATO 3624b25d009SHiroo HAYASHI# rst2man and rst2html are part of python-docutils, and if not found 3634b25d009SHiroo HAYASHI# can be installed using pip ("pip install docutils"). On some 3644b25d009SHiroo HAYASHI# systems, rst2man and rst2html are actually installed as rst2man.py 3654b25d009SHiroo HAYASHI# and rst2html.py - create a symlink of that's the case. 36675efdac8Sleleliu008AC_PATH_PROGS(RST2MAN, [rst2man rst2man.py rst2man-3 rst2man-3.6 rst2man-3.7 rst2man-3.8 rst2man-3.9], [no]) 36715413bacSMasatake YAMATOAM_CONDITIONAL([HAVE_RST2MAN], [test "x$RST2MAN" != "xno"]) 3684b25d009SHiroo HAYASHIAC_PATH_PROGS(RST2HTML, [rst2html rst2html.py rst2html-3 rst2html-3.6 rst2html-3.7 rst2html-3.8 rst2html-3.9], [no]) 3694b25d009SHiroo HAYASHIAM_CONDITIONAL([HAVE_RST2HTML], [test "x$RST2HTML" != "xno"]) 370152f758cSDarren Hiebert 3714b25d009SHiroo HAYASHI# rst2pdf is a separate tool and can also be installed via pip (e.g., 3724b25d009SHiroo HAYASHI# "pip install rst2pdf") 3734b25d009SHiroo HAYASHIAC_PATH_PROGS(RST2PDF, [rst2pdf], [no]) 3744b25d009SHiroo HAYASHIAM_CONDITIONAL([HAVE_RST2PDF], [test "x$RST2PDF" != "xno"]) 3754b25d009SHiroo HAYASHI 3764b25d009SHiroo HAYASHI# rst2man had a bug about code-block:: handling. 3774b25d009SHiroo HAYASHI# https://sourceforge.net/p/docutils/patches/141 3780104a0feSMasatake YAMATORST2MAN_OPTIONS= 3790104a0feSMasatake YAMATOif ! test "x$RST2MAN" = "xno"; then 3800104a0feSMasatake YAMATO RST2MAN_SUPPORTING_SYNTAX_HIGHLIGHT_OPTION=no 3810104a0feSMasatake YAMATO AC_MSG_CHECKING(whether rst2mn has --syntax-highlight option) 3820104a0feSMasatake YAMATO if $RST2MAN --help | grep -q -e --syntax-highlight; then 3830104a0feSMasatake YAMATO RST2MAN_SUPPORTING_SYNTAX_HIGHLIGHT_OPTION=yes 3840104a0feSMasatake YAMATO dnl See man/Makefile about the option 3850104a0feSMasatake YAMATO RST2MAN_OPTIONS=--syntax-highlight=none 3860104a0feSMasatake YAMATO fi 3870104a0feSMasatake YAMATO AC_MSG_RESULT($RST2MAN_SUPPORTING_SYNTAX_HIGHLIGHT_OPTION) 3880104a0feSMasatake YAMATOfi 3890104a0feSMasatake YAMATOAC_SUBST(RST2MAN_OPTIONS) 390648c1a07SHiroo HAYASHIAM_CONDITIONAL([HAS_GNU_SED], [sed --version 2>/dev/null | grep -q GNU]) 3910104a0feSMasatake YAMATO 392152f758cSDarren Hiebert# Checks for operating environment 393152f758cSDarren Hiebert# -------------------------------- 394c409ec94SMasatake YAMATOin_git_repo=no 395c409ec94SMasatake YAMATOAC_MSG_CHECKING(building in a git repository) 39642a52756SK.Takataif test -f "${srcdir}/.git/HEAD" || test -f "${srcdir}/.git"; then 397c409ec94SMasatake YAMATO in_git_repo=yes 398c409ec94SMasatake YAMATOfi 399c409ec94SMasatake YAMATOAC_MSG_RESULT(${in_git_repo}) 400c409ec94SMasatake YAMATO 401c409ec94SMasatake YAMATOAC_CHECK_PROGS([GIT], [git]) 402e53335cbSMasatake YAMATOif ! test "${GIT:+set}" = "set"; then 403c409ec94SMasatake YAMATO in_git_repo=no 404c409ec94SMasatake YAMATOfi 405c409ec94SMasatake YAMATOAM_CONDITIONAL([BUILD_IN_GIT_REPO], [test "x${in_git_repo}" = "xyes"]) 406c409ec94SMasatake YAMATO 407942128b4SMasatake YAMATOhave_timeout=no 408942128b4SMasatake YAMATOAC_CHECK_PROGS([TESTING_TIMEOUT], [timeout]) 409e53335cbSMasatake YAMATOif test "${TESTING_TIMEOUT:+set}" = "set"; then 410942128b4SMasatake YAMATO have_timeout=yes 411942128b4SMasatake YAMATOfi 412942128b4SMasatake YAMATOAM_CONDITIONAL([HAVE_TIMEOUT], [test "x${have_timeout}" = "xyes"]) 413942128b4SMasatake YAMATO 414354c22ffSK.TakataAC_CHECK_PROGS([PYTHON], 415354c22ffSK.Takata [python3 python3.8 python3.7 python3.6 python3.5 python], []) 416354c22ffSK.Takata 417152f758cSDarren Hiebert 418152f758cSDarren Hiebert# Check for temporary directory 419152f758cSDarren HiebertAC_MSG_CHECKING(directory to use for temporary files) 420152f758cSDarren Hiebertif test -n "$enable_tmpdir"; then 421152f758cSDarren Hiebert tmpdir="$enable_tmpdir" 422152f758cSDarren Hiebertelif test -n "$TMPDIR"; then 423152f758cSDarren Hiebert tmpdir="$TMPDIR" 424152f758cSDarren Hiebertelif test -n "$TMP"; then 425152f758cSDarren Hiebert tmpdir="$TMP" 426152f758cSDarren Hiebertelif test -n "$TEMP"; then 427152f758cSDarren Hiebert tmpdir="$TEMP" 428152f758cSDarren Hiebertelif test -d "c:/"; then 429152f758cSDarren Hiebert tmpdir="c:/" 430152f758cSDarren Hiebertelse 431152f758cSDarren Hiebert tmpdir="/tmp" 432152f758cSDarren Hiebertfi 433152f758cSDarren Hiebertif test -d $tmpdir ; then 434152f758cSDarren Hiebert AC_MSG_RESULT($tmpdir) 435152f758cSDarren Hiebert AC_DEFINE_UNQUOTED(TMPDIR, "$tmpdir") 436152f758cSDarren Hiebertelse 437152f758cSDarren Hiebert AC_MSG_ERROR($tmpdir does not exist) 438152f758cSDarren Hiebertfi 439152f758cSDarren Hiebert 440152f758cSDarren Hiebert# Test for case-insensitive filenames 441152f758cSDarren HiebertAC_MSG_CHECKING(for case-insensitive filenames) 442152f758cSDarren Hieberttouch conftest.cif 443152f758cSDarren Hiebertif test -f CONFTEST.CIF; then 444152f758cSDarren Hiebert AC_MSG_RESULT(yes) 445152f758cSDarren Hiebert AC_DEFINE(CASE_INSENSITIVE_FILENAMES) 446152f758cSDarren Hiebertelse 447152f758cSDarren Hiebert AC_MSG_RESULT(no) 448152f758cSDarren Hiebertfi 449152f758cSDarren Hiebertrm -f conftest.cif 450152f758cSDarren Hiebert 451152f758cSDarren HiebertAC_MSG_CHECKING(selected sort method) 452152f758cSDarren Hiebertif test no = "$enable_external_sort"; then 453152f758cSDarren Hiebert AC_MSG_RESULT(simple internal algorithm) 454152f758cSDarren Hiebertelse 455152f758cSDarren Hiebert AC_MSG_RESULT(external sort utility) 456152f758cSDarren Hiebert enable_external_sort=no 457152f758cSDarren Hiebert AC_CHECK_PROG(sort_found, sort, yes, no) 458152f758cSDarren Hiebert if test "$sort_found" = yes ; then 459152f758cSDarren Hiebert AC_MSG_CHECKING(if sort accepts our command line) 460152f758cSDarren Hiebert touch ${tmpdir}/sort.test 461152f758cSDarren Hiebert sort -u -f -o ${tmpdir}/sort.test ${tmpdir}/sort.test 1>/dev/null 2>&1 462152f758cSDarren Hiebert if test $? -ne 0 ; then 463152f758cSDarren Hiebert AC_MSG_RESULT(no) 464152f758cSDarren Hiebert else 465152f758cSDarren Hiebert AC_MSG_RESULT(yes) 466152f758cSDarren Hiebert AC_DEFINE(EXTERNAL_SORT) 467152f758cSDarren Hiebert enable_external_sort=yes 468152f758cSDarren Hiebert fi 469152f758cSDarren Hiebert rm -f ${tmpdir}/sort.test 470152f758cSDarren Hiebert fi 471152f758cSDarren Hiebertfi 472152f758cSDarren Hiebertif test "$enable_external_sort" != yes ; then 473d2f302e4SP.Montanus AC_MSG_NOTICE(using internal sort algorithm as fallback) 474152f758cSDarren Hiebertfi 475152f758cSDarren Hiebert 476152f758cSDarren Hiebert 477152f758cSDarren Hiebert# Checks for header files 478152f758cSDarren Hiebert# ----------------------- 479152f758cSDarren Hiebert 480288a2fd5SK.TakataAC_CHECK_HEADERS([direct.h dirent.h fcntl.h io.h stat.h types.h unistd.h]) 481288a2fd5SK.TakataAC_CHECK_HEADERS([sys/dir.h sys/stat.h sys/types.h sys/wait.h]) 482152f758cSDarren Hiebert 483152f758cSDarren Hiebert# Checks for header file macros 484152f758cSDarren Hiebert# ----------------------------- 485152f758cSDarren Hiebert 486152f758cSDarren HiebertCHECK_HEADER_DEFINE(L_tmpnam, [stdio.h],, AC_DEFINE(L_tmpnam, 20)) 487152f758cSDarren Hiebert 488152f758cSDarren Hiebert 489ad91e260SMasatake YAMATO# Checks for typedefs and types 490ad91e260SMasatake YAMATO# ----------------------------- 491152f758cSDarren Hiebert 492152f758cSDarren HiebertAC_TYPE_OFF_T 493152f758cSDarren Hiebert 494288a2fd5SK.TakataAC_CHECK_HEADERS([stdbool.h]) 4954da1666eSP.Montanus 496152f758cSDarren Hiebert# Checks for compiler characteristics 497152f758cSDarren Hiebert# ----------------------------------- 498152f758cSDarren Hiebert 499152f758cSDarren HiebertAC_C_CONST 500152f758cSDarren HiebertAC_OBJEXT 501152f758cSDarren HiebertAC_EXEEXT 5027c4980fdSMasatake YAMATOAC_C_TYPEOF 503152f758cSDarren Hiebert 504db918d55SK.Takataif test "${enable_static}" = "yes"; then 505db918d55SK.Takata LDFLAGS="$LDFLAGS -static" 506db918d55SK.Takatafi 507db918d55SK.Takata 5081fb7a18eSK.Takata# Check for host type 5091fb7a18eSK.Takatacase "$host" in 5101fb7a18eSK.Takata i?86-*-mingw* | x86_64-*-mingw*) 5111fb7a18eSK.Takata host_mingw=yes 512daa1a0f9SHiroo HAYASHI # See https://github.com/universal-ctags/ctags/pull/3069 513daa1a0f9SHiroo HAYASHI gl_cv_have_weak=no 5141fb7a18eSK.Takata AC_DEFINE(MSDOS_STYLE_PATH) 515eed4431bSK.Takata AC_DEFINE(MANUAL_GLOBBING) 516eed4431bSK.Takata AC_DEFINE(HAVE__FINDFIRST) 5171fb7a18eSK.Takata ;; 51857360006SK.Takata *-cygwin | *-msys) 5191675e2a4SHiroo HAYASHI gl_cv_have_weak=no 5201675e2a4SHiroo HAYASHI ;; 5211fb7a18eSK.Takataesac 522aff0c5f2SK.TakataAM_CONDITIONAL([HOST_MINGW], [test "x${host_mingw}" = "xyes"]) 5231fb7a18eSK.Takata 52434421e96SPierce LopezAC_MSG_CHECKING(if compiler supports statement expressions) 5251293d03bSMasatake YAMATOAC_COMPILE_IFELSE([AC_LANG_PROGRAM([],[ 5261293d03bSMasatake YAMATOint main(int argc, char **argv) {return ({ int x = 1; x + argc;});} 52734421e96SPierce Lopez])],[have_statement_expression_ext=yes],[have_statement_expression_ext=no]) 52834421e96SPierce LopezAC_MSG_RESULT($have_statement_expression_ext) 52934421e96SPierce Lopezif test yes = "$have_statement_expression_ext"; then 5301293d03bSMasatake YAMATO AC_DEFINE(HAVE_STATEMENT_EXPRESSION_EXT) 5311293d03bSMasatake YAMATOfi 5321293d03bSMasatake YAMATO 5331293d03bSMasatake YAMATO 5341fb7a18eSK.Takata# Check if struct stat contains st_ino. 5351fb7a18eSK.Takata# MinGW has st_ino, but it doesn't work. 5361fb7a18eSK.Takataif test yes != "$host_mingw"; then 537152f758cSDarren Hiebert AC_MSG_CHECKING(if struct stat contains st_ino) 538af016d2cSP.Montanus AC_COMPILE_IFELSE([AC_LANG_PROGRAM([ 53975a2591dSP.Montanus #include <sys/stat.h> 54075a2591dSP.Montanus #include <stdlib.h> 54175a2591dSP.Montanus ], [ 542152f758cSDarren Hiebert struct stat st; 543152f758cSDarren Hiebert stat(".", &st); 544152f758cSDarren Hiebert if (st.st_ino > 0) 545152f758cSDarren Hiebert exit(0); 546af016d2cSP.Montanus ])],[have_st_ino=yes],[have_st_ino=no]) 547152f758cSDarren Hiebert AC_MSG_RESULT($have_st_ino) 548152f758cSDarren Hiebert if test yes = "$have_st_ino"; then 549152f758cSDarren Hiebert AC_DEFINE(HAVE_STAT_ST_INO) 550152f758cSDarren Hiebert fi 5511fb7a18eSK.Takatafi 5526651ead9SK.Takata 553c181cfd4SP.MontanusPRETTY_ARG_VAR([EXTRA_CPPFLAGS], [extra (Objective) C/C++ preprocessor flags], 554c181cfd4SP.Montanus [-D_GNU_SOURCE -D__USE_GNU]) 555262057c2SP.MontanusPRETTY_ARG_VAR([DEBUG_CPPFLAGS], [(Objective) C/C++ preprocessor debug flags], 556262057c2SP.Montanus [-DDEBUG]) 557262057c2SP.Montanus 55842a56708SP.MontanusPRETTY_ARG_VAR([EXTRA_CFLAGS], [extra C compiler flags], 55942a56708SP.Montanus [-std=gnu99]) 56019d6d7f4SP.MontanusPRETTY_ARG_VAR([WARNING_CFLAGS], [C compiler warning flags], 56119d6d7f4SP.Montanus [-Wall]) 562152f758cSDarren Hiebert 563daa1a0f9SHiroo HAYASHI# For gnulib. 564daa1a0f9SHiroo HAYASHI# Place it further down in the file, typically where you normally check for 565daa1a0f9SHiroo HAYASHI# header files or functions. 566daa1a0f9SHiroo HAYASHIgl_INIT 567daa1a0f9SHiroo HAYASHI 56836fa0e22SHiroo HAYASHIif test "$REPLACE_FNMATCH" != 0; then 56936fa0e22SHiroo HAYASHI AC_DEFINE([USE_GNULIB_FNMATCH]) 57036fa0e22SHiroo HAYASHIfi 57136fa0e22SHiroo HAYASHI 5722a0a0d8dSFabian GroffenAC_CHECK_FUNCS(asprintf) 573152f758cSDarren HiebertAC_CHECK_FUNCS(strstr) 574152f758cSDarren HiebertAC_CHECK_FUNCS(strcasecmp stricmp, break) 575152f758cSDarren HiebertAC_CHECK_FUNCS(strncasecmp strnicmp, break) 576152f758cSDarren Hiebert 577152f758cSDarren HiebertAC_CHECK_FUNCS(mkstemp, have_mkstemp=yes) 578152f758cSDarren Hiebertif test "$have_mkstemp" != yes ; then 579152f758cSDarren Hiebert AC_CHECK_FUNCS(tempnam, have_tempnam=yes) 580152f758cSDarren Hiebertfi 581152f758cSDarren Hiebertif test "$have_mkstemp" != yes -a "$have_tempnam" != yes; then 582152f758cSDarren Hiebert AC_CHECK_FUNCS(chmod) 583152f758cSDarren Hiebert if test "$tmpdir_specified" = yes ; then 584d2f302e4SP.Montanus AC_MSG_NOTICE(use of tmpnam overrides temporary directory selection) 585152f758cSDarren Hiebert fi 586152f758cSDarren Hiebertfi 587152f758cSDarren Hiebert 588152f758cSDarren HiebertAC_CHECK_FUNCS(opendir findfirst _findfirst, break) 589152f758cSDarren HiebertAC_CHECK_FUNCS(strerror) 590152f758cSDarren Hiebert 591152f758cSDarren HiebertAC_CHECK_FUNCS(truncate, have_truncate=yes) 592152f758cSDarren Hiebert# === Cannot nest AC_CHECK_FUNCS() calls 593152f758cSDarren Hiebertif test "$have_truncate" != yes ; then 594152f758cSDarren Hiebert AC_CHECK_FUNCS(ftruncate, have_ftruncate=yes) 595152f758cSDarren Hiebert if test "$have_ftruncate" != yes ; then 596152f758cSDarren Hiebert AC_CHECK_FUNCS(chsize) 597152f758cSDarren Hiebert fi 598152f758cSDarren Hiebertfi 599152f758cSDarren Hiebert 600152f758cSDarren HiebertAC_CHECK_FUNCS(setenv, have_setenv=yes) 601152f758cSDarren Hiebert# === Cannot nest AC_CHECK_FUNCS() calls 602152f758cSDarren Hiebertif test "$have_setenv" != yes ; then 603152f758cSDarren Hiebert AC_CHECK_FUNCS(putenv, have_putenv=yes) 604152f758cSDarren Hiebert if test "$have_putenv" = yes ; then 605152f758cSDarren Hiebert AC_EGREP_HEADER(putenv, stdlib.h, have_putenv_prototype=yes) 606152f758cSDarren Hiebert if test "$have_putenv_prototype" = yes ; then 607152f758cSDarren Hiebert AC_MSG_CHECKING(putenv prototype) 608152f758cSDarren Hiebert AC_EGREP_HEADER([[^A-Za-zo-9_]putenv[ ]*\(.*const.*\)[ ]*;], 609152f758cSDarren Hiebert stdlib.h, AC_MSG_RESULT(correct), 610152f758cSDarren Hiebert [ 611152f758cSDarren Hiebert AC_MSG_RESULT(no const) 612152f758cSDarren Hiebert AC_DEFINE(NON_CONST_PUTENV_PROTOTYPE) 613152f758cSDarren Hiebert ]) 614152f758cSDarren Hiebert fi 615152f758cSDarren Hiebert fi 616152f758cSDarren Hiebertfi 617152f758cSDarren Hiebert 618d96bd365SMasatake YAMATOhave_scandir=no 619d96bd365SMasatake YAMATOAC_CHECK_FUNCS(scandir,have_scandir=yes) 620d96bd365SMasatake YAMATO 621d96bd365SMasatake YAMATOhave_dirent_h=no 622d96bd365SMasatake YAMATOAC_CHECK_HEADERS(dirent.h,have_dirent_h=yes) 623152f758cSDarren Hiebert 624db918d55SK.Takatadnl Dummy check for setting $PKG_CONFIG. 625db918d55SK.TakataPKG_CHECK_EXISTS([dummy]) 626db918d55SK.Takataif test "${enable_static}" = "yes"; then 627db918d55SK.Takata PKG_CONFIG="$PKG_CONFIG --static" 628db918d55SK.Takatafi 629db918d55SK.Takata 6302bd78028STim HarderAC_ARG_ENABLE([xml], 6312b015c92STim Harder [AS_HELP_STRING([--disable-xml], 6322b015c92STim Harder [disable xml support])]) 6332bd78028STim Harder 634a086aff1SMasatake YAMATOAH_TEMPLATE([HAVE_LIBXML], 635a086aff1SMasatake YAMATO [Define this value if libxml is available.]) 636745aa53bSMasatake YAMATOdnl About the condition of version 637745aa53bSMasatake YAMATOdnl see https://mail.gnome.org/archives/xml/2010-February/msg00008.html 6382b015c92STim HarderAS_IF([test "x$enable_xml" != "xno"], [ 639745aa53bSMasatake YAMATO PKG_CHECK_MODULES(LIBXML, [libxml-2.0 >= 2.7.7], 640a086aff1SMasatake YAMATO [have_libxml=yes 641a086aff1SMasatake YAMATO AC_DEFINE(HAVE_LIBXML)], 6422b015c92STim Harder [AS_IF([test "x$enable_xml" = "xyes"], [ 6432b015c92STim Harder AC_MSG_ERROR([libxml2 not found])])]) 6442bd78028STim Harder]) 645a086aff1SMasatake YAMATOAM_CONDITIONAL(HAVE_LIBXML, test "x$have_libxml" = xyes) 646a086aff1SMasatake YAMATO 647db918d55SK.Takataif test "${enable_static}" = "yes"; then 648db918d55SK.Takata if test "${have_libxml}" = "yes"; then 649db918d55SK.Takata if test "${host_mingw}" = "yes"; then 650db918d55SK.Takata dnl -DLIBXML_STATIC needs to be added manually. 651db918d55SK.Takata LIBXML_CFLAGS="$LIBXML_CFLAGS -DLIBXML_STATIC" 652db918d55SK.Takata fi 653db918d55SK.Takata fi 654db918d55SK.Takatafi 655db918d55SK.Takata 6562bd78028STim HarderAC_ARG_ENABLE([json], 6572b015c92STim Harder [AS_HELP_STRING([--disable-json], 6582b015c92STim Harder [disable json support])]) 6592bd78028STim Harder 6609b88981cSAman GuptaAH_TEMPLATE([HAVE_JANSSON], 6619b88981cSAman Gupta [Define this value if jansson is available.]) 66278d7d098STim Harderdnl This enforces explicit feature usage regardless of the libraries 66378d7d098STim Harderdnl available on the build system. This avoids automagic dependencies which 66478d7d098STim Harderdnl can cause issues for source-based distros [1]. 66578d7d098STim Harderdnl [1]: https://wiki.gentoo.org/wiki/Project:Quality_Assurance/Automagic_dependencies 6662b015c92STim HarderAS_IF([test "x$enable_json" != "xno"], [ 6679b88981cSAman Gupta PKG_CHECK_MODULES(JANSSON, jansson, 6689b88981cSAman Gupta [have_jansson=yes 6699b88981cSAman Gupta AC_DEFINE(HAVE_JANSSON)], 6702b015c92STim Harder [AS_IF([test "x$enable_json" = "xyes"], [ 6712b015c92STim Harder AC_MSG_ERROR([jansson not found])])]) 6722bd78028STim Harder]) 6739b88981cSAman GuptaAM_CONDITIONAL(HAVE_JANSSON, test "x$have_jansson" = xyes) 6749b88981cSAman Gupta 675e7ed5190SHan-Wen NienhuysAH_TEMPLATE([HAVE_SECCOMP], 676e7ed5190SHan-Wen Nienhuys [Define this value if libseccomp is available.]) 677e7ed5190SHan-Wen NienhuysAC_ARG_ENABLE([seccomp], 678e7ed5190SHan-Wen Nienhuys [AS_HELP_STRING([--disable-seccomp], 679e7ed5190SHan-Wen Nienhuys [disable seccomp support])]) 680e7ed5190SHan-Wen NienhuysAS_IF([test "x$enable_seccomp" != "xno"], [ 681e7ed5190SHan-Wen Nienhuys PKG_CHECK_MODULES(SECCOMP, libseccomp, 682e7ed5190SHan-Wen Nienhuys [have_seccomp=yes 683e7ed5190SHan-Wen Nienhuys AC_DEFINE(HAVE_SECCOMP)], 684e7ed5190SHan-Wen Nienhuys [AS_IF([test "x$enable_seccomp" = "xyes"], [ 685e7ed5190SHan-Wen Nienhuys AC_MSG_ERROR([libseccomp not found])])]) 686e7ed5190SHan-Wen Nienhuys]) 687e7ed5190SHan-Wen Nienhuys 6882bd78028STim HarderAC_ARG_ENABLE([yaml], 6892b015c92STim Harder [AS_HELP_STRING([--disable-yaml], 6902b015c92STim Harder [disable yaml support])]) 6912bd78028STim Harder 692288cd67dSMasatake YAMATOAH_TEMPLATE([HAVE_LIBYAML], 693288cd67dSMasatake YAMATO [Define this value if libyaml is available.]) 6942b015c92STim HarderAS_IF([test "x$enable_yaml" != "xno"], [ 695288cd67dSMasatake YAMATO PKG_CHECK_MODULES(LIBYAML, yaml-0.1, 696288cd67dSMasatake YAMATO [have_libyaml=yes 697288cd67dSMasatake YAMATO AC_DEFINE(HAVE_LIBYAML)], 6982b015c92STim Harder [AS_IF([test "x$enable_yaml" = "xyes"], [ 6992b015c92STim Harder AC_MSG_ERROR([libyaml not found])])]) 7002bd78028STim Harder]) 701288cd67dSMasatake YAMATOAM_CONDITIONAL(HAVE_LIBYAML, test "x$have_libyaml" = xyes) 702288cd67dSMasatake YAMATO 7036a8d5b70SMasatake YAMATOAC_ARG_ENABLE([pcre2], 7046a8d5b70SMasatake YAMATO [AS_HELP_STRING([--disable-pcre2], 7056a8d5b70SMasatake YAMATO [disable pcre2 support])]) 7066a8d5b70SMasatake YAMATO 7076a8d5b70SMasatake YAMATOAH_TEMPLATE([HAVE_PCRE2], 7086a8d5b70SMasatake YAMATO [Define this value if pcre2 is available.]) 7096a8d5b70SMasatake YAMATOAS_IF([test "x$enable_pcre2" != "xno"], [ 7106a8d5b70SMasatake YAMATO PKG_CHECK_MODULES(PCRE2, libpcre2-8, 7116a8d5b70SMasatake YAMATO [have_libpcre2_8=yes 7126a8d5b70SMasatake YAMATO AC_DEFINE(HAVE_PCRE2)], 7136a8d5b70SMasatake YAMATO [AS_IF([test "x$enable_pcre2" = "xyes"], [ 7146a8d5b70SMasatake YAMATO AC_MSG_ERROR([libpcre2-8 not found])])]) 7156a8d5b70SMasatake YAMATO]) 7166a8d5b70SMasatake YAMATOAM_CONDITIONAL(HAVE_PCRE2, test "x$have_libpcre2_8" = xyes) 717a086aff1SMasatake YAMATO 7189a71e3b8SK.Takataif test "${enable_static}" = "yes"; then 7199a71e3b8SK.Takata if test "${have_libpcre2_8}" = "yes"; then 7209a71e3b8SK.Takata if test "${host_mingw}" = "yes"; then 7219a71e3b8SK.Takata dnl -DPCRE2_STATIC needs to be added manually. 7229a71e3b8SK.Takata PCRE2_CFLAGS="$PCRE2_CFLAGS -DPCRE2_STATIC" 7239a71e3b8SK.Takata fi 7249a71e3b8SK.Takata fi 7259a71e3b8SK.Takatafi 7269a71e3b8SK.Takata 7279a71e3b8SK.Takata 728152f758cSDarren Hiebert# Checks for missing prototypes 729152f758cSDarren Hiebert# ----------------------------- 7306dd10afcSP.MontanusAC_MSG_NOTICE(checking for new missing prototypes) 731152f758cSDarren Hiebert 732152f758cSDarren HiebertCHECK_PROTO(stat, sys/stat.h) 733152f758cSDarren HiebertCHECK_PROTO(lstat, sys/stat.h) 734152f758cSDarren Hiebertif test "$have_truncate" = yes ; then 735152f758cSDarren Hiebert CHECK_PROTO(truncate, unistd.h) 736152f758cSDarren Hiebertfi 737152f758cSDarren Hiebertif test "$have_ftruncate" = yes ; then 738152f758cSDarren Hiebert CHECK_PROTO(ftruncate, unistd.h) 739152f758cSDarren Hiebertfi 740152f758cSDarren Hiebert 7412acdcfa1SYasuhiro Matsumoto# Process library configuration options 7422acdcfa1SYasuhiro Matsumoto# ------------------------------------- 7432acdcfa1SYasuhiro Matsumoto 7449c4466a5SMasatake YAMATOICONV_LIBS= 745dc1d443eSK.Takataif test "$enable_iconv" != no ; then 7462acdcfa1SYasuhiro Matsumoto save_LIBS="$LIBS" 74788c2797bSMasatake YAMATO # 74888c2797bSMasatake YAMATO # Working around for issue #1620 74988c2797bSMasatake YAMATO # 75088c2797bSMasatake YAMATO LIBS="$LIBS $LIBXML_LIBS" 75188c2797bSMasatake YAMATO LIBS="$LIBS $JANSSON_LIBS" 75288c2797bSMasatake YAMATO LIBS="$LIBS $SECCOMP_LIBS" 75388c2797bSMasatake YAMATO LIBS="$LIBS $LIBYAML_LIBS" 75488c2797bSMasatake YAMATO LIBS="$LIBS $ASPELL_LIBS" 7552acdcfa1SYasuhiro Matsumoto LIBS="$LIBS -liconv" 75688c2797bSMasatake YAMATO # 75788c2797bSMasatake YAMATO AC_MSG_CHECKING(for iconv_open or libiconv_open with -liconv) 7582acdcfa1SYasuhiro Matsumoto AC_LINK_IFELSE([AC_LANG_PROGRAM([ 7592acdcfa1SYasuhiro Matsumoto #include <iconv.h> 7602acdcfa1SYasuhiro Matsumoto ], [iconv_open("fr", "to")])], [ 76188c2797bSMasatake YAMATO # 76288c2797bSMasatake YAMATO # iconv_open is available in libiconv. 76388c2797bSMasatake YAMATO # 7649c4466a5SMasatake YAMATO LIBS="$save_LIBS" 7659c4466a5SMasatake YAMATO ICONV_LIBS=-liconv 76688c2797bSMasatake YAMATO AC_MSG_RESULT([yes(iconv)]) 7672acdcfa1SYasuhiro Matsumoto AC_DEFINE(HAVE_ICONV) 76888c2797bSMasatake YAMATO ], [AC_LINK_IFELSE([AC_LANG_PROGRAM([ 76988c2797bSMasatake YAMATO #include <iconv.h> 77088c2797bSMasatake YAMATO ], [libiconv_open("fr", "to")])],[ 77188c2797bSMasatake YAMATO # 77288c2797bSMasatake YAMATO # libiconv_open is available in libiconv 77388c2797bSMasatake YAMATO # 77488c2797bSMasatake YAMATO LIBS="$save_LIBS" 77588c2797bSMasatake YAMATO ICONV_LIBS=-liconv 77688c2797bSMasatake YAMATO AC_MSG_RESULT([yes(libiconv_open)]) 77788c2797bSMasatake YAMATO AC_DEFINE(HAVE_ICONV) 77888c2797bSMasatake YAMATO AC_DEFINE(ICONV_USE_LIB_PREFIX) 7792acdcfa1SYasuhiro Matsumoto ],[LIBS="$save_LIBS" 7802acdcfa1SYasuhiro Matsumoto AC_MSG_RESULT(no) 78188c2797bSMasatake YAMATO AC_CHECK_FUNC(iconv_open, [ 78288c2797bSMasatake YAMATO # 78388c2797bSMasatake YAMATO # iconv_open is available in libc. 78488c2797bSMasatake YAMATO # No extra -l flag is needed. 78588c2797bSMasatake YAMATO # 78688c2797bSMasatake YAMATO AC_DEFINE(HAVE_ICONV) 78788c2797bSMasatake YAMATO ], [ 78888c2797bSMasatake YAMATO AC_MSG_ERROR([Could not find libiconv. Please install libiconv and libiconv-devel.])])]) 78988c2797bSMasatake YAMATO ]) 7909c4466a5SMasatake YAMATO AC_SUBST([ICONV_LIBS]) 7912acdcfa1SYasuhiro Matsumotofi 7922acdcfa1SYasuhiro Matsumoto 79398a480efSMasatake YAMATO# Checks for declaration 79498a480efSMasatake YAMATO# ---------------------- 795af934330SMasatake YAMATOAC_CHECK_DECLS([__environ], [], [], [ 79698a480efSMasatake YAMATO[#include <unistd.h>] 79798a480efSMasatake YAMATO]) 7981f00f07bSMasatake YAMATOAC_CHECK_DECLS([_NSGetEnviron],[],[],[ 7991f00f07bSMasatake YAMATO[#include <crt_externs.h>] 8001f00f07bSMasatake YAMATO]) 801ad91e260SMasatake YAMATOAC_CHECK_DECLS([strnlen],[have_strnlen=yes],[],[ 802ad91e260SMasatake YAMATO[#include <string.h>] 803ad91e260SMasatake YAMATO]) 804ad91e260SMasatake YAMATOAM_CONDITIONAL(HAVE_STRNLEN, test "x$have_strnlen" = xyes) 805152f758cSDarren Hiebert 80624906f53Sleleliu008if test "$cross_compiling" = "yes"; then 8071daaf2b9Sleleliu008 AC_MSG_CHECKING(whether strnlen is declared for build) 8081daaf2b9Sleleliu008 TEMP_DIR_FOR_CHECKING=$(mktemp -d || exit 1) 8091daaf2b9Sleleliu008 cat > "$TEMP_DIR_FOR_CHECKING/test.c" <<EOF 8101daaf2b9Sleleliu008#include<string.h> 8111daaf2b9Sleleliu008int main() { strnlen("abcd",1); return 0;} 8121daaf2b9Sleleliu008EOF 8131daaf2b9Sleleliu008 8141daaf2b9Sleleliu008 if $CC_FOR_BUILD $CPPFLAGS_FOR_BUILD $CFLAGS_FOR_BUILD -o "$TEMP_DIR_FOR_CHECKING/test.o" "$TEMP_DIR_FOR_CHECKING/test.c" > /dev/null 2>&1 ; then 8151daaf2b9Sleleliu008 have_strnlen_for_build=yes 8161daaf2b9Sleleliu008 else 8171daaf2b9Sleleliu008 have_strnlen_for_build=no 8181daaf2b9Sleleliu008 fi 8191daaf2b9Sleleliu008 AC_MSG_RESULT($have_strnlen_for_build) 8201daaf2b9Sleleliu008 AM_CONDITIONAL(HAVE_STRNLEN_FOR_BUILD, test "x$have_strnlen_for_build" = xyes) 82124906f53Sleleliu008else 82224906f53Sleleliu008 AM_CONDITIONAL(HAVE_STRNLEN_FOR_BUILD, test "x$have_strnlen" = xyes) 82324906f53Sleleliu008fi 8241daaf2b9Sleleliu008 8255379f429SMasatake YAMATOif test "$CTAGS_NAME_EXECUTABLE" != ctags ; then 8265379f429SMasatake YAMATO AC_MSG_NOTICE(Changing name of 'ctags' for $CTAGS_NAME_EXECUTABLE) 8271eace6c6SJonathan Buschmannfi 8281eace6c6SJonathan Buschmann 8295379f429SMasatake YAMATOif test "$ETAGS_NAME_EXECUTABLE" != etags ; then 8305379f429SMasatake YAMATO AC_MSG_NOTICE(Changing name of 'etags' for $ETAGS_NAME_EXECUTABLE) 8311eace6c6SJonathan Buschmannfi 8321eace6c6SJonathan Buschmann 833152f758cSDarren Hiebert# Output files 834152f758cSDarren Hiebert# ------------ 835152f758cSDarren Hiebert 836de9a8ebeSMasatake YAMATOAC_CHECK_FUNCS(mblen) 837152f758cSDarren Hiebert 83872ae6981SMasatake YAMATOAC_CONFIG_FILES([Makefile gnulib/Makefile man/GNUmakefile]) 8391eace6c6SJonathan Buschmann 8401eace6c6SJonathan BuschmannAC_OUTPUT 841152f758cSDarren Hiebert 842*1dbf25f5SMasatake YAMATOAC_MSG_RESULT([ 843*1dbf25f5SMasatake YAMATO########################################################################## 844*1dbf25f5SMasatake YAMATONow you can run make or gmake, when you run as make, besure it is GNU make. 845*1dbf25f5SMasatake YAMATO########################################################################## 846*1dbf25f5SMasatake YAMATO]) 847*1dbf25f5SMasatake YAMATO 848152f758cSDarren Hiebert# vim:ts=4:sw=4: 849