configure.ac 16 KB
Newer Older
Ondřej Surý's avatar
Ondřej Surý committed
1 2
#                                               -*- Autoconf -*-

3
AC_PREREQ([2.60])
Jan Včelák's avatar
Jan Včelák committed
4
AC_INIT([knot], [2.1.0-dev], [knot-dns@labs.nic.cz])
5
AM_INIT_AUTOMAKE([gnits subdir-objects no-dist-gzip dist-xz -Wall -Werror])
6
AM_SILENT_RULES([yes])
Lubos Slovak's avatar
Lubos Slovak committed
7
AC_CONFIG_SRCDIR([src/knot/main.c])
Ondřej Surý's avatar
Ondřej Surý committed
8 9
AC_CONFIG_HEADERS([src/config.h])
AC_CONFIG_MACRO_DIR([m4])
10
AC_USE_SYSTEM_EXTENSIONS([_GNU_SOURCE])
11
AC_CANONICAL_HOST
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34

# Here are a set of rules to help you update your library version
# information:
#
# 1. Start with version information of ‘0:0:0’ for each libtool library.
#
# 2. Update the version information only immediately before a public
#    release of your software. More frequent updates are unnecessary,
#    and only guarantee that the current interface number gets larger
#    faster.
#
# 3. If the library source code has changed at all since the last
#    update, then increment revision (‘c:r:a’ becomes ‘c:r+1:a’).
#
# 4. If any interfaces have been added, removed, or changed since the
#    last update, increment current, and set revision to 0.
#
# 5. If any interfaces have been added since the last public release,
#    then increment age.
#
# 6. If any interfaces have been removed or changed since the last
#    public release, then set age to 0.

35
AC_SUBST([libknot_VERSION_INFO],["-version-info 1:0:0"])
36 37
AC_SUBST([libdnssec_VERSION_INFO],["-version-info 0:0:0"])
AC_SUBST([libzscanner_VERSION_INFO],["-version-info 0:1:0"])
38

39
# Automatically update release date based on configure.ac date
40 41
AC_PROG_SED
release_date=$($SED -n 's/^Knot DNS .* (\(.*\))/\1/p;q;' ${srcdir}/NEWS)
42 43
AC_SUBST([RELEASE_DATE], $release_date)

44 45 46 47
# Set compiler compatibility flags
AC_PROG_CC_C99
AM_PROG_CC_C_O
AC_PROG_CPP_WERROR
Ondřej Surý's avatar
Ondřej Surý committed
48

49
# Default compiler flags
50
CFLAGS="$CFLAGS -Wall -Werror=format-security -Werror=implicit"
51

52
# Checks for programs.
53
m4_ifdef([AM_PROG_AR], [AM_PROG_AR]) # call AM_PROG_AR only if available
54

Ondřej Surý's avatar
Ondřej Surý committed
55
# Initialize libtool
Marek Vavrusa's avatar
Marek Vavrusa committed
56
AC_PROG_LIBTOOL
Ondřej Surý's avatar
Ondřej Surý committed
57 58
LT_INIT

59
# Use pkg-config
60
PKG_PROG_PKG_CONFIG
61
m4_ifdef([PKG_INSTALLDIR], [PKG_INSTALLDIR], [AC_SUBST([pkgconfigdir], ['${libdir}/pkgconfig'])])
62
AC_CONFIG_FILES([src/libknot.pc
63 64 65
		 src/dnssec/libdnssec.pc
		 src/zscanner/libzscanner.pc
		 ])
66

67 68 69 70
# Build Knot DNS daemon
AC_ARG_ENABLE([daemon],
    AS_HELP_STRING([--disable-daemon], [Don't build Knot DNS main daemon]), [], [enable_daemon=yes])
AM_CONDITIONAL([HAVE_DAEMON], [test "$enable_daemon" = "yes"])
71

72 73 74 75
# Build Knot DNS utilities
AC_ARG_ENABLE([utilities],
    AS_HELP_STRING([--disable-utilities], [Don't build Knot DNS utilities]), [], [enable_utilities=yes])
AM_CONDITIONAL([HAVE_UTILS], [test "$enable_utilities" = "yes"])
76

77 78 79 80
# Build Knot DNS documentation
AC_ARG_ENABLE([documentation],
    AS_HELP_STRING([--disable-documentation], [Don't build Knot DNS documentation]), [], [enable_documentation=yes])
AM_CONDITIONAL([HAVE_DOCS], [test "$enable_documentation" = "yes"])
81

82 83 84
######################
# Generic dependencies
######################
85

Ondřej Surý's avatar
Ondřej Surý committed
86 87
AC_PROG_INSTALL

88 89
AX_CC_LLVM

90
AC_ARG_ENABLE([fastparser],
91 92 93 94 95 96 97 98
    AS_HELP_STRING([--disable-fastparser], [Disable use of fastest zone parser]),[],[
    # Set zone parser type - fastest on release build, slowest on dev build
    AS_IF([test -d ".git" -o "$PATCH_VERSION" = "dev"],[
        enable_fastparser=no
    	],[
    	enable_fastparser=yes
    	])
    ])
99 100 101 102 103 104 105 106

AS_IF([test "$enable_fastparser" = "yes"],[
    AS_IF([test "${CC_LLVM}" = "yes"],[
        AC_MSG_WARN([LLVM based compiler detected; disabling fastest zone parser, see https://gitlab.labs.nic.cz/labs/knot/issues/351])
        enable_fastparser=no
        ])
    ])

107
AM_CONDITIONAL([FAST_PARSER], [test "$enable_fastparser" = "yes"])
108 109

# GnuTLS crypto backend
110 111 112 113 114 115
PKG_CHECK_MODULES([gnutls], [gnutls >= 3.0 nettle], [
    CFLAGS_save=$CFLAGS
    CFLAGS="$CFLAGS $gnutls_CFLAGS"
    AC_CHECK_HEADERS([nettle/version.h])
    CFLAGS=$CFLAGS_save
])
116 117 118 119

# JSON for DNSSEC status storage
PKG_CHECK_MODULES([jansson], [jansson >= 2.3])

120 121
# Debug modules
AC_ARG_ENABLE([debug],
122
    AS_HELP_STRING([--enable-debug=server,zones,ns,loader,dnssec],
123
    [compile selected debug modules [default=none]]),
124
    [
125 126
    echo ${enableval}|tr "," "\n"|while read val; do
        case "${val}" in
127 128 129 130 131
            server) AC_DEFINE([KNOTD_SERVER_DEBUG], [1], [Server debug.]) ;;
            zones) AC_DEFINE([KNOT_ZONES_DEBUG], [1], [Zones debug.]) ;;
            ns) AC_DEFINE([KNOT_NS_DEBUG], [1], [Nameserver debug.]) ;;
            loader) AC_DEFINE([KNOT_LOADER_DEBUG], [1], [Zone loading debug.]) ;;
            dnssec) AC_DEFINE([KNOT_DNSSEC_DEBUG], [1], [DNSSEC debug.]) ;;
132 133
        esac
    done
134
    ], [])
Jan Kadlec's avatar
Jan Kadlec committed
135

136
# Debug level
137 138
AC_ARG_ENABLE([debuglevel],
    AS_HELP_STRING([--enable-debuglevel=brief|verbose|details], [enable given debug level [default=disabled]]),
139 140 141 142 143 144
    # Not all shells support fall-through with ;& so I have to duplicate
    [case "x${enableval}" in
      xdetails)
        AC_DEFINE([DEBUG_ENABLE_DETAILS], [1], [Enable details debugging messages.])
        AC_DEFINE([DEBUG_ENABLE_VERBOSE], [1], [Enable verbose debugging messages.])
        AC_DEFINE([DEBUG_ENABLE_BRIEF], [1], [Enable brief debugging messages.])
145
        ;;
146 147 148
      xverbose)
        AC_DEFINE([DEBUG_ENABLE_VERBOSE], [1], [Enable verbose debugging messages.])
        AC_DEFINE([DEBUG_ENABLE_BRIEF], [1], [Enable brief debugging messages.])
149
        ;;
150 151 152 153
      xbrief)
        AC_DEFINE([DEBUG_ENABLE_BRIEF], [1], [Enable brief debugging messages.])
        ;;
    esac], [])
154

155
# recvmmsg() (valgrind doesn't support it, so disable for debugging)
156
# The check for struct mmsghdr is required when libc doesn't have an API but the function links
157
AC_ARG_ENABLE([recvmmsg],
158
    AS_HELP_STRING([--enable-recvmmsg=yes|no], [enable recvmmsg() network API under Linux (kernel support required) (set to 'no' if you have trouble running server under valgrind) [default=yes]]),
159 160
    [case "${enableval}" in
      yes)
161 162 163
	  AC_CHECK_FUNCS([sendmmsg])
          AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <sys/socket.h>]], [[struct mmsghdr v; recvmmsg(0,0,0,0,0);]])],
          [AC_DEFINE(HAVE_RECVMMSG, 1, [Define if struct mmsghdr and recvmmsg() exists.])])
164
          ;;
165
      no)
166
          ;;
167
      *)
168 169
          AC_MSG_ERROR([bad value ${enableval} for --enable-recvmmsg])
          ;;
170 171 172 173 174 175
    esac],
    [
      AC_CHECK_FUNCS([sendmmsg])
      AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <sys/socket.h>]], [[struct mmsghdr v; recvmmsg(0,0,0,0,0);]])],
      [AC_DEFINE(HAVE_RECVMMSG, 1, [Define if struct mmsghdr and recvmmsg() exists.])])
    ])
176

177
# Check for link time optimizations support and predictive commoning
178
AC_ARG_ENABLE([lto],
179
    AS_HELP_STRING([--enable-lto=yes|no], [enable link-time optimizations, enable if not broken for some extra speed [default=no]]),
180
    [case "${enableval}" in
181
      yes) AX_CHECK_COMPILE_FLAG("-flto", [CFLAGS="$CFLAGS -flto"], []) ;;
182
      no) ;;
183
      *)  AC_MSG_ERROR([bad value ${enableval} for --enable-lto]) ;;
184
    esac])
185

186
AX_CHECK_COMPILE_FLAG("-fpredictive-commoning", [CFLAGS="$CFLAGS -fpredictive-commoning"], [], "-Werror")
187

188 189 190
# Default directories
run_dir="${localstatedir}/run/knot"
AC_ARG_WITH([rundir],
191
        AC_HELP_STRING([--with-rundir=path], [Path to run-time variable data (pid, sockets...). [default=LOCALSTATEDIR/run/knot]]),
192 193 194
        [run_dir=$withval])
AC_SUBST(run_dir)

Ondřej Surý's avatar
Ondřej Surý committed
195
storage_dir="${localstatedir}/lib/knot"
196
AC_ARG_WITH([storage],
197
        AC_HELP_STRING([--with-storage=path], [Default storage directory (slave zones, persistent data). [default=LOCALSTATEDIR/lib/knot]]),
198 199 200
        [storage_dir=$withval])
AC_SUBST(storage_dir)

201 202
config_dir="${sysconfdir}/knot"
AC_ARG_WITH([configdir],
203
        AC_HELP_STRING([--with-configdir=path], [Default directory for configuration. [default=SYSCONFDIR/knot]]),
204 205 206
        [config_dir=$withval])
AC_SUBST(config_dir)

207 208 209 210 211 212 213 214 215 216 217
#########################################
# Dependencies needed for Knot DNS daemon
#########################################

# Systemd integration
AC_ARG_ENABLE([systemd],
    AS_HELP_STRING([--enable-systemd=auto|yes|no], [enable systemd integration [default=auto]]),
    [enable_systemd="$enableval"], [enable_systemd=auto])

AS_IF([test "$enable_daemon" = "yes"],[

218
AS_IF([test "$enable_systemd" != "no"],[
219
  AS_CASE([$enable_systemd],
220 221 222 223
    [auto],[PKG_CHECK_MODULES([systemd], [libsystemd], [enable_systemd=yes], [
            PKG_CHECK_MODULES([systemd], [libsystemd-daemon libsystemd-journal], [enable_systemd=yes], [enable_systemd=no])])],
    [yes],[PKG_CHECK_MODULES([systemd], [libsystemd], [], [
    	    PKG_CHECK_MODULES([systemd], [libsystemd-daemon libsystemd-journal])])],
224 225 226 227 228 229
    [*],[AC_MSG_ERROR([Invalid value of --enable-systemd.])])
    ])

AS_IF([test "$enable_systemd" = "yes"],[
  AC_DEFINE([ENABLE_SYSTEMD], [1], [Use systemd integration.])])
])
230 231 232 233 234

dnl Check for userspace-rcu library
AC_ARG_WITH(urcu,
[  --with-urcu=DIR        where to find userspace-rcu library])

235 236
AS_IF([test "$enable_daemon" = "yes"],[

237 238
AS_IF([test "$with_urcu" != "no"], [
  PKG_CHECK_MODULES([liburcu], liburcu, [
239
    liburcu_PKGCONFIG="liburcu >= 0.4.0"
240
    AC_SUBST([liburcu_PKGCONFIG])
241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259
    with_urcu=yes
  ],[
    for try_urcu in "$with_urcu" "" "/usr/local"; do
      save_LIBS="$LIBS"
      save_CPPFLAGS="$CPPFLAGS"

      AS_IF([test -d "$try_urcu"], [
        liburcu_CFLAGS="-I$try_urcu/include"
        liburcu_LIBS="-L$try_urcu/lib"
      ],[
        liburcu_CFLAGS=""
        liburcu_LIBS=""
      ])

      CPPFLAGS="$CPPFLAGS $liburcu_CFLAGS"
      LIBS="$LIBS $liburcu_LIBS"

      AC_SEARCH_LIBS([rcu_set_pointer_sym], [urcu], [
        with_urcu=yes
260
	liburcu_LIBS="$liburcu_LIBS -lurcu"
261 262
	AC_SUBST([liburcu_CFLAGS])
	AC_SUBST([liburcu_LIBS])
263 264
	break
      ],[
Ondřej Surý's avatar
Ondřej Surý committed
265 266
        CPPFLAGS="$save_CPPFLAGS"
        LIBS="$save_LIBS"
267 268 269 270 271
        with_urcu=no
	# do not cache result of AC_SEARCH_LIBS test
	unset ac_cv_search_rcu_set_pointer_sym
      ])
    done
272 273
    CPPFLAGS="$save_CPPFLAGS"
    LIBS="$save_LIBS"
274 275 276

    AS_IF([test "$with_urcu" = "no"],[
      AC_MSG_ERROR([liburcu is required])
277
      ])
278 279 280
  ])
])

281
AC_SEARCH_LIBS([urcu_init], [urcu], [AC_MSG_ERROR([liburcu is too old (< 0.4.0), urcu_init symbol found])])
282
])
283

284 285
opt_dnstap=no
AS_IF([test "$enable_daemon" = "yes"],[
286 287 288
dnl Check for dnstap.
dt_DNSTAP([
    AC_DEFINE([USE_DNSTAP], [1], [Define to 1 to enable dnstap support])
289 290
    AC_SUBST(DNSTAP_CFLAGS)
    AC_SUBST(DNSTAP_LIBS)
291
    ])
292
])
293

294 295
AM_CONDITIONAL([HAVE_DNSTAP], test "$opt_dnstap" != "no")

Jan Včelák's avatar
Jan Včelák committed
296
dnl Check for LMDB
297 298
AC_ARG_WITH([lmdb],
    AC_HELP_STRING([--with-lmdb=[DIR]], [Link with external LMDB]),[
299 300
    with_lmdb=$withval
    ],[
301 302 303 304
    with_lmdb=yes
    ])

have_lmdb=no
305

306 307 308 309 310
AS_IF([test "$with_lmdb" != "no"],[
    save_CPPFLAGS=$CPPFLAGS
    save_LIBS=$LIBS
    for try_lmdb in "$with_lmdb" "" "/usr/local"; do

311 312 313
      AS_IF([test -d "$try_lmdb"], [
        lmdb_CFLAGS="-I$try_lmdb/include"
        lmdb_LIBS="-L$try_lmdb/lib"
314 315 316 317 318 319 320 321 322 323 324
        ],[
        lmdb_CFLAGS=""
        lmdb_LIBS=""
	])

      CPPFLAGS="$CPPFLAGS $lmdb_CFLAGS"
      LIBS="$LIBS $lmdb_LIBS"

      AC_SEARCH_LIBS([mdb_env_open], [lmdb], [
          AC_CHECK_HEADERS([lmdb.h], [], [
              AC_ERROR([lmdb headers not found in `$try_lmdb', is your installation complete?])])
325
	  lmdb_LIBS="$lmdb_LIBS -llmdb"
326 327 328 329 330
          have_lmdb=yes
          break
          ],[
	  have_lmdb=no
	  # do not cache result of AC_SEARCH_LIBS test
331
	  unset ac_cv_search_mdb_env_open
332 333 334 335 336
	  ])

      CPPFLAGS="$save_CPPFLAGS"
      LIBS="$save_LIBS"
    done
337 338
    CPPFLAGS="$save_CPPFLAGS"
    LIBS="$save_LIBS"
339 340 341
    ])

AS_IF([test "$have_lmdb" != "no"],[
342 343 344 345
    AC_SUBST([lmdb_CFLAGS])
    AC_SUBST([lmdb_LIBS])
    enable_lmdb=shared
    ],[enable_lmdb=embedded])
346
AM_CONDITIONAL([HAVE_LMDB], test "$have_lmdb" != "no")
347

348 349
AS_IF([test "$enable_daemon" = "yes"],[

350
dnl Check for rosedb module
351
AC_ARG_ENABLE([rosedb],
352
    AS_HELP_STRING([--enable-rosedb], [Enable static RR query module.]),
353
    [], [enable_rosedb=no])
354 355
]) # Knot DNS daemon dependencies

356
AS_IF([test "$enable_rosedb" = yes], [AC_DEFINE([HAVE_ROSEDB], [1], [Define to 1 to enable static RR query module.])])
357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380
AM_CONDITIONAL([HAVE_ROSEDB], [test "$enable_rosedb" = yes])

############################################
# Dependencies needed for Knot DNS utilities
############################################

dnl Check for libidn.
AC_ARG_WITH(libidn,
    AC_HELP_STRING([--with-libidn=[DIR]], [Support IDN (needs GNU Libidn)]),
    with_libidn=$withval,
    with_libidn=yes
    )

AS_IF([test "$enable_utilities" = "yes"],[
AS_IF([test "$with_libidn" != "no"],[
    PKG_CHECK_MODULES([libidn], [libidn >= 0.0.0], [
        with_libidn=yes
        AC_DEFINE([LIBIDN], [1], [Define to 1 to enable IDN support])
        ],[
        with_libidn=no
        AC_MSG_WARN([libidn not found])
	])])

]) # Knot DNS utilities dependencies
381

382 383
AC_SEARCH_LIBS([pow], [m])
AC_SEARCH_LIBS([pthread_create], [pthread], [], [AC_MSG_ERROR([pthreads not found])])
384
AC_SEARCH_LIBS([dlopen], [dl])
Marek Vavrusa's avatar
Marek Vavrusa committed
385
AC_SEARCH_LIBS([clock_gettime], [rt])
386
AC_SEARCH_LIBS([capng_apply], [cap-ng])
Ondřej Surý's avatar
Ondřej Surý committed
387 388 389

# Checks for header files.
AC_HEADER_RESOLV
390
AC_CHECK_HEADERS_ONCE([cap-ng.h netinet/in_systm.h pthread_np.h signal.h sys/select.h sys/time.h sys/wait.h sys/uio.h])
Ondřej Surý's avatar
Ondřej Surý committed
391 392 393 394 395 396 397 398

# Checks for typedefs, structures, and compiler characteristics.
AC_C_INLINE
AC_TYPE_PID_T
AC_TYPE_SIZE_T
AC_TYPE_SSIZE_T

# Checks for library functions.
399
AC_CHECK_FUNCS([clock_gettime gettimeofday fgetln getline madvise malloc_trim poll posix_memalign pthread_setaffinity_np regcomp select setgroups strlcat strlcpy initgroups])
Ondřej Surý's avatar
Ondřej Surý committed
400

401 402
# Check for be64toh function
AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <endian.h>]], [[return be64toh(0);]])],
403
[AC_DEFINE(HAVE_BE64TOH, 1, [Define to 1 if you have the 'be64toh' function.])])
404

405 406 407 408 409 410 411 412
# Check for cpu_set_t/cpuset_t compatibility
AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <pthread.h>]], [[cpu_set_t set; CPU_ZERO(&set);]])],
[AC_DEFINE(HAVE_CPUSET_LINUX, 1, [Define if Linux-like cpu_set_t exists.])])
AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <pthread_np.h>]], [[cpuset_t set; CPU_ZERO(&set);]])],
[AC_DEFINE(HAVE_CPUSET_BSD, 1, [Define if FreeBSD-like cpuset_t exists.])])
AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <sched.h>]], [[cpuset_t* set = cpuset_create(); cpuset_destroy(set);]])],
[AC_DEFINE(HAVE_CPUSET_NETBSD, 1, [Define if cpuset_t and cpuset(3) exists.])])

413
# Prepare CFLAG_VISIBILITY to be used where needed
414
gl_VISIBILITY()
415

416 417 418
# Add code coverage macro
AX_CODE_COVERAGE

419 420
AS_IF([test "$enable_documentation" = "yes"],[

421
AC_PATH_PROGS([SPHINXBUILD], [sphinx-build sphinx-build-3], [false])
422 423 424 425 426 427 428 429 430 431
AS_IF([test "$SPHINXBUILD" = "false"],
  [AC_MSG_WARN([Could not find the 'sphinx-build' executable, you will be unable to regenerate documentation.])],
  [AC_PATH_PROG([PDFLATEX], [pdflatex], [false])
   AS_IF([test "$PDFLATEX" = ""],
     [AC_MSG_WARN([Could not find the 'pdflatex' executable, you will be unable to generate PDF documentation.])])
   AC_PATH_PROG([MAKEINFO], [makeinfo], [false])
   AS_IF([test "$MAKEINFO" = "false"],
     [AC_MSG_WARN([Could not find the 'makeinfo' executable, you will be unable to generate info documentation.])])
  ])

432 433
])

434 435 436 437
AM_CONDITIONAL([HAVE_SPHINXBUILD], test "$SPHINXBUILD" != "false")
AM_CONDITIONAL([HAVE_PDFLATEX], test "$PDFLATEX" != "false")
AM_CONDITIONAL([HAVE_MAKEINFO], test "$MAKEINFO" != "false")

Ondřej Surý's avatar
Ondřej Surý committed
438
AC_CONFIG_FILES([Makefile
439
		 doc/Makefile
440
		 samples/Makefile
441 442 443
		 libtap/Makefile
		 src/Makefile
		 tests/Makefile
444
		 tests-fuzz/Makefile
445
		 src/dnstap/Makefile
446
		 src/zscanner/Makefile
Ondřej Surý's avatar
Ondřej Surý committed
447 448 449
		 src/dnssec/Makefile
		 src/dnssec/tests/Makefile
		 src/dnssec/utils/Makefile
450
		 ])
451

Ondřej Surý's avatar
Ondřej Surý committed
452
AC_OUTPUT
453

Daniel Salzman's avatar
Daniel Salzman committed
454 455 456 457 458
AC_MSG_RESULT([
  $PACKAGE $VERSION

    Target:   $host_os $host_cpu
    Compiler: ${CC}
459
    CFLAGS:   ${CFLAGS} ${CPPFLAGS}
460 461 462 463 464
    LIBS:     ${LIBS} ${LDFLAGS}
    LibURCU:  ${liburcu_LIBS} ${liburcu_CFLAGS}
    GnuTLS:   ${gnutls_LIBS} ${gnutls_CFLAGS}
    Jansson:  ${jansson_LIBS} ${jansson_CFLAGS}
    LMDB:     ${enable_lmdb} ${lmdb_LIBS} ${lmdb_CFLAGS}
Daniel Salzman's avatar
Daniel Salzman committed
465

466 467 468 469
    Prefix:		${prefix}
    Run dir:		${run_dir}
    Storage dir:	${storage_dir}
    Config dir: 	${config_dir}
Daniel Salzman's avatar
Daniel Salzman committed
470

471 472 473 474 475
    Knot DNS libraries:     yes
    Knot DNS daemon:        ${enable_daemon}
    Knot DNS utils:         ${enable_utilities}
    Knot DNS documentation: ${enable_documentation}

476 477 478 479 480
    Fast zone parser:    ${enable_fastparser}
    Utilities with IDN:  ${with_libidn}
    Systemd integration: ${enable_systemd}
    Dnstap support:      ${opt_dnstap}
    Code coverage:       ${enable_code_coverage}
481
    Bash completions:    ${bash_completions_output}
Daniel Salzman's avatar
Daniel Salzman committed
482 483 484

  Continue with 'make' command
])