• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
2
3dnl Libabigail version number is handled here with the major and minor
4dnl version numbers.
5m4_define([version_major],   [2])
6m4_define([version_minor],   [2])
7
8dnl Below are the numbers to handle libabigail.so's versionning
9dnl following the libtool's versionning scheme to handle shared
10dnl libraries' compatibility.
11dnl
12dnl Below are the rules to follow to update the three numbers
13dnl (LIBABIGAIL_SO_CURRENT, LIBABIGAIL_SO_REVISION and LIBABIGAIL_SO_AGE):
14dnl
15dnl 1. If the library source code has changed at all since the last
16dnl    update, then increment LIBABIGAIL_SO_REVISION ('C:R:A' becomes
17dnl    'C:R+1:A').
18dnl
19dnl 2. If any interfaces have been added, removed, or changed since
20dnl    the last update, increment LIBABIGAIL_SO_CURRENT, and set
21dnl    LIBABIGAIL_REVISION to 0.
22dnl
23dnl 3. If any interfaces have been added since the last public release,
24dnl    then increment LIBABIGAIL_SO_AGE.
25dnl
26dnl 4. If any interfaces have been removed or changed since the last
27dnl     public release, then set LIBABIGAIL_SO_AGE to 0.
28m4_define([libabigail_so_current],  [1])
29m4_define([libabigail_so_revision], [0])
30m4_define([libabigail_so_age],      [0])
31
32AC_INIT([libabigail],
33	[version_major.version_minor],
34	[http://sourceware.org/bugzilla],
35	[libabigail],
36	[http://sourceware.org/libabigail])
37
38AC_PREREQ([2.63])
39AC_CONFIG_AUX_DIR([build-aux])
40AC_CONFIG_HEADERS([config.h])
41AC_CONFIG_SRCDIR([README])
42AC_CONFIG_MACRO_DIR([m4])
43
44dnl Include some autoconf macros to check for python modules.
45dnl
46dnl These macros are coming from the autoconf archive at
47dnl http://www.gnu.org/software/autoconf-archive
48
49dnl This one is for the AX_CHECK_PYTHON_MODULES() macro.
50m4_include([autoconf-archive/ax_check_python_modules.m4])
51
52dnl These two below are for the AX_PROG_PYTHON_VERSION() module.
53m4_include([autoconf-archive/ax_compare_version.m4])
54m4_include([autoconf-archive/ax_prog_python_version.m4])
55
56dnl This one is to be able to run "make check-valgrind"
57dnl and have unit tests run under  der Valgrind.
58m4_include([autoconf-archive/ax_valgrind_check.m4])
59
60AM_INIT_AUTOMAKE([1.11.1 foreign subdir-objects dist-xz tar-ustar parallel-tests])
61AM_MAINTAINER_MODE([enable])
62
63AM_SILENT_RULES([yes])
64
65VERSION_MAJOR=version_major
66VERSION_MINOR=version_minor
67VERSION_REVISION=0
68ABIXML_VERSION_MAJOR=2
69ABIXML_VERSION_MINOR=1
70LIBABIGAIL_SO_CURRENT=libabigail_so_current
71LIBABIGAIL_SO_REVISION=libabigail_so_revision
72LIBABIGAIL_SO_AGE=libabigail_so_age
73
74AC_SUBST(VERSION_MAJOR)
75AC_SUBST(VERSION_MINOR)
76AC_SUBST(VERSION_REVISION)
77AC_SUBST(ABIXML_VERSION_MAJOR)
78AC_SUBST(ABIXML_VERSION_MINOR)
79AC_SUBST(LIBABIGAIL_SO_CURRENT)
80AC_SUBST(LIBABIGAIL_SO_REVISION)
81AC_SUBST(LIBABIGAIL_SO_AGE)
82
83dnl This VERSION_SUFFIX environment variable is to allow appending
84dnl arbitrary text to the libabigail version string representation.
85dnl That is useful to identify custom versions of the library
86dnl (e.g. development versions or versions of a particular origin).
87dnl
88dnl The feature can be enabled by passing VERSION_SUFFIX to `configure`,
89dnl e.g.
90dnl
91dnl   $ configure VERSION_SUFFIX="-dev"
92AC_SUBST(VERSION_SUFFIX)
93
94AC_ARG_ENABLE(rpm,
95	      AS_HELP_STRING([--enable-rpm=yes|no|auto],
96			     [enable the support of rpm in abipkgdiff (default is auto)]),
97	      ENABLE_RPM=$enableval,
98	      ENABLE_RPM=auto)
99
100# '--enable-rpm415' option name preserved for backwards compatibility.
101AC_ARG_ENABLE(rpm415,
102	      AS_HELP_STRING([--enable-rpm415=yes|no|auto],
103			     [enable rpm/zstd in abipkgdiff testing (default is auto)]),
104	      ENABLE_RPM_ZSTD=$enableval,
105	      ENABLE_RPM_ZSTD=auto)
106
107AC_ARG_ENABLE(debug-self-comparison,
108	      AS_HELP_STRING([--enable-debug-self-comparison=yes|no],
109			     [enable debugging of self comparison with 'abidw --debug-abidiff'(default is no)]),
110	      ENABLE_DEBUG_SELF_COMPARISON=$enableval,
111	      ENABLE_DEBUG_SELF_COMPARISON=no)
112
113AC_ARG_ENABLE(debug-type-canonicalization,
114	      AS_HELP_STRING([--enable-debug-type-canonicalization=yes|no],
115			     [enable debugging of type canonicalization 'abidw --debug-tc'(default is no)]),
116	      ENABLE_DEBUG_TYPE_CANONICALIZATION=$enableval,
117	      ENABLE_DEBUG_TYPE_CANONICALIZATION=no)
118
119AC_ARG_ENABLE(show-type-use-in-abilint,
120	      AS_HELP_STRING([--enable-show-type-use-in-abilint=yes|no],
121			     ['enable abilint --show-type-use'(default is no)]),
122	      ENABLE_SHOW_TYPE_USE_IN_ABILINT=$enableval,
123	      ENABLE_SHOW_TYPE_USE_IN_ABILINT=no)
124
125AC_ARG_ENABLE(deb,
126	      AS_HELP_STRING([--enable-deb=yes|no|auto],
127			     [enable the support of deb in abipkgdiff (default is auto)]),
128	      ENABLE_DEB=$enableval,
129	      ENABLE_DEB=auto)
130
131AC_ARG_ENABLE(tar,
132	      AS_HELP_STRING([--enable-tar=yes|no|auto],
133			     [enable the support of GNU tar archives in abipkgdiff (default is auto)]),
134	      ENABLE_TAR=$enableval,
135	      ENABLE_TAR=auto)
136
137AC_ARG_ENABLE(apidoc,
138	      AS_HELP_STRING([--enable-apidoc=yes|no|auto],
139			     [enable generation of the apidoc in html]),
140	      ENABLE_APIDOC=$enableval,
141	      ENABLE_APIDOC=auto)
142
143AC_ARG_ENABLE(manual,
144	      AS_HELP_STRING([--enable-manual=yes|no|auto],
145			     [enable generation of the manual in html]),
146	      ENABLE_MANUAL=$enableval,
147	      ENABLE_MANUAL=auto)
148
149AC_ARG_ENABLE([bash-completion],
150	      AS_HELP_STRING([--enable-bash-completion=yes|no|auto],
151			     [enable using completion files for tools]),
152	      ENABLE_BASH_COMPLETION=$enableval,
153	      ENABLE_BASH_COMPLETION=auto)
154
155AC_ARG_ENABLE([fedabipkgdiff],
156	      AS_HELP_STRING([--enable-fedabipkgdiff=yes|no|auto],
157			     [enable the fedabipkgdiff tool]),
158	      ENABLE_FEDABIPKGDIFF=$enableval,
159	      ENABLE_FEDABIPKGDIFF=auto)
160
161AC_ARG_ENABLE([python3],
162	      AS_HELP_STRING([--enable-python3=yes|no|auto],
163			     [enable running abigail tools with python3 (default is auto)]),
164	      ENABLE_PYTHON3=$enableval,
165	      ENABLE_PYTHON3=auto)
166
167AC_ARG_ENABLE(asan,
168	      AS_HELP_STRING([--enable-asan=yes|no],
169			     [enable the support of building with -fsanitize=address)]),
170	      ENABLE_ASAN=$enableval,
171	      ENABLE_ASAN=no)
172
173AC_ARG_ENABLE(msan,
174	      AS_HELP_STRING([--enable-msan=yes|no],
175			     [enable the support of building with -fsanitize=memory)]),
176	      ENABLE_MSAN=$enableval,
177	      ENABLE_MSAN=no)
178
179AC_ARG_ENABLE(tsan,
180	      AS_HELP_STRING([--enable-tsan=yes|no],
181			     [enable the support of building with -fsanitize=thread)]),
182	      ENABLE_TSAN=$enableval,
183	      ENABLE_TSAN=no)
184
185AC_ARG_ENABLE(ubsan,
186	      AS_HELP_STRING([--enable-ubsan=yes|no],
187			     [enable the support of building with -fsanitize=undefined)]),
188	      ENABLE_UBSAN=$enableval,
189	      ENABLE_UBSAN=no)
190
191dnl check if user has enabled CTF code
192AC_ARG_ENABLE(ctf,
193	      AS_HELP_STRING([--enable-ctf=yes|no],
194			     [disable support of ctf files)]),
195	      ENABLE_CTF=$enableval,
196	      ENABLE_CTF=no)
197
198dnl *************************************************
199dnl check for dependencies
200dnl *************************************************
201
202AC_PROG_CXX
203AC_CANONICAL_HOST
204AC_USE_SYSTEM_EXTENSIONS
205AC_PROG_INSTALL
206
207LT_PREREQ([2.2])
208LT_INIT
209
210AC_LANG([C++])
211AC_LANG_COMPILER_REQUIRE
212
213dnl
214dnl We use C++11
215dnl
216CXX_STANDARD=c++11
217
218dnl
219dnl check if the c++ compiler has support __attribute__((visibility("hidden")))
220dnl
221AC_MSG_NOTICE([checking for GCC visibility attribute support ...])
222AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
223struct __attribute__((visibility("hidden"))) Foo
224{
225  int m0;
226
227  Foo()
228   : m0()
229  {}
230};
231                 ]])],
232		 [SUPPORTS_GCC_VISIBILITY_ATTRIBUTE=yes],
233		 [SUPPORTS_GCC_VISIBILITY_ATTRIBUTE=no]
234)
235
236if test x$SUPPORTS_GCC_VISIBILITY_ATTRIBUTE = xyes; then
237   AC_MSG_NOTICE([GCC visibility attribute is supported])
238   AC_DEFINE([HAS_GCC_VISIBILITY_ATTRIBUTE], 1,
239   	     [Defined if the compiler supports the attribution visibility syntax __attribute__((visibility("hidden")))])
240   VISIBILITY_FLAGS="-fvisibility=hidden"
241else
242   AC_MSG_NOTICE([GCC visibility attribute is not supported])
243   VISIBILITY_FLAGS=
244fi
245
246AC_SUBST(VISIBILITY_FLAGS)
247
248dnl Older glibc had a broken fts that didn't work with Large File Systems.
249dnl We want the version that can handler LFS, but include workaround if we
250dnl get a bad one. Add define to CFLAGS (not AC_DEFINE it) since we need to
251dnl check it before including config.h (which might define _FILE_OFFSET_BITS).
252AC_CACHE_CHECK([whether including fts.h with _FILE_OFFSET_BITS set breaks], ac_cv_bad_fts,
253  [AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
254	#define _FILE_OFFSET_BITS 64
255	#include <fts.h>
256	]])],
257		     ac_cv_bad_fts=no, ac_cv_bad_fts=yes)])
258AS_IF([test "x$ac_cv_bad_fts" = "xyes"],
259      [CFLAGS="$CFLAGS -DBAD_FTS=1",
260       CXXFLAGS="$CXXFLAGS -DBAD_FTS=1"])
261
262dnl On musl, we need to find fts-standalone
263AS_CASE(
264  [${host_os}], [*-musl*], [
265    PKG_CHECK_MODULES([FTS], [fts-standalone])
266])
267
268dnl Check for dependency: libelf, libdw, libebl (elfutils)
269dnl Note that we need to use at least elfutils 0.159 but
270dnl at that time elfutils didnt have pkgconfig capabilities
271dnl  to easily query for its version.
272ELF_LIBS=
273AC_CHECK_LIB([elf], [elf_end], [ELF_LIBS="-lelf"])
274AC_CHECK_HEADER([libelf.h],
275		[],
276		[AC_MSG_ERROR([could not find libelf.h])])
277
278DW_LIBS=
279AC_CHECK_LIB(dw, dwfl_begin, [DW_LIBS=-ldw])
280AC_CHECK_LIB(dw, dwarf_getalt,
281	     [FOUND_DWARF_GETALT_IN_LIBDW=yes],
282	     [FOUND_DWARF_GETALT_IN_LIBDW=no])
283
284AC_CHECK_HEADER(elfutils/libdwfl.h,
285		[],
286		[AC_MSG_ERROR([could not find elfutils/libdwfl.h installed])])
287
288dnl Allow users to compile with the NDEBUG macro defined,
289dnl meaning they are compiling in a mode where the
290dnl assert call does nothing.  With the directive below,
291dnl users just need to pass the --disable-assert
292dnl option to configure.
293AC_HEADER_ASSERT
294
295if test x$ELF_LIBS = x; then
296   AC_MSG_ERROR([could not find elfutils elf library installed])
297fi
298
299if test x$DW_LIBS = x; then
300   AC_MSG_ERROR([could not find elfutils dwarf library installed])
301fi
302
303if test x$FOUND_DWARF_GETALT_IN_LIBDW = xyes; then
304   AC_DEFINE([LIBDW_HAS_DWARF_GETALT], 1,
305	     [Defined if libdw has the function dwarf_getalt])
306fi
307
308AC_SUBST(DW_LIBS)
309AC_SUBST([ELF_LIBS])
310
311dnl check for libctf presence if CTF code has been enabled by command line
312dnl argument, and then define CTF flag (to build CTF file code) if libctf is
313dnl found on the system
314CTF_LIBS=
315if test x$ENABLE_CTF = xyes; then
316  LIBCTF=
317  AC_CHECK_LIB(ctf, ctf_open, [LIBCTF=yes], [LIBCTF=no])
318  if test x$LIBCTF = xyes; then
319    AC_MSG_NOTICE([activating CTF code])
320    AC_DEFINE([WITH_CTF], 1,
321	     [Defined if user enables and system has the libctf library])
322    CTF_LIBS=-lctf
323  else
324    AC_MSG_NOTICE([CTF enabled but no libctf found])
325    ENABLE_CTF=no
326  fi
327fi
328
329dnl Check for dependency: libxml
330LIBXML2_VERSION=2.6.22
331PKG_CHECK_MODULES(XML, libxml-2.0 >= $LIBXML2_VERSION)
332
333AC_SUBST(LIBXML2_VERSION)
334AC_SUBST(XML_LIBS)
335AC_SUBST(XML_CFLAGS)
336
337dnl Check for some programs like rm, mkdir, etc ...
338AC_CHECK_PROG(HAS_RM, rm, yes, no)
339if test x$HAS_RM = xno; then
340   AC_MSG_ERROR([could not find the program 'rm' installed])
341fi
342
343AC_CHECK_PROG(HAS_MKDIR, mkdir, yes, no)
344if test x$HAS_MKDIR = xno; then
345   AC_MSG_ERROR([could not find the program 'mkdir' installed])
346fi
347
348dnl Check for the rpm2cpio and cpio programs
349if test x$ENABLE_RPM = xyes -o x$ENABLE_RPM = xauto; then
350  AC_CHECK_PROG(HAS_RPM2CPIO, rpm2cpio, yes, no)
351  AC_CHECK_PROG(HAS_CPIO, cpio, yes, no)
352  AC_CHECK_PROG(HAS_RPM, rpm, yes, no)
353
354  if test x$HAS_RPM2CPIO = xyes -a x$HAS_CPIO = xyes -a x$HAS_RPM = xyes; then
355     ENABLE_RPM=yes
356  else
357    if test x$ENABLE_RPM = xyes; then
358      AC_MSG_ERROR([rpm support in abipkgdiff needs 'rpm2cpio', 'cpio' and 'rpm' programs to be installed])
359    fi
360    ENABLE_RPM=no
361  fi
362fi
363
364dnl Point to a rpm/zstd file, that is:
365dnl     $ rpm -qp --qf '%{PAYLOADCOMPRESSOR}\n' [rpm_zstd_file]
366dnl     zstd
367m4_define([rpm_zstd_file], [tests/data/test-diff-pkg/mesa-libGLU-9.0.1-3.fc33.x86_64.rpm])
368AC_CONFIG_SRCDIR([rpm_zstd_file])
369if test x$ENABLE_RPM_ZSTD = xyes -o x$ENABLE_RPM_ZSTD = xauto; then
370  if test x$ENABLE_RPM = xno; then
371    if test x$ENABLE_RPM_ZSTD = xyes; then
372      AC_MSG_ERROR([rpm/zstd support needs rpm support])
373    fi
374    ENABLE_RPM_ZSTD=n/a
375  else
376    AC_MSG_CHECKING([for rpm/zstd support])
377    rpm2cpio > /dev/null 2>&AS_MESSAGE_LOG_FD "$srcdir"/rpm_zstd_file
378    if test $? -eq 0; then
379      enable_rpm_zstd=yes
380    else
381      enable_rpm_zstd=no
382    fi
383    AC_MSG_RESULT([$enable_rpm_zstd])
384    if test x$ENABLE_RPM_ZSTD:$enable_rpm_zstd = xyes:no; then
385      AC_MSG_ERROR([rpm/zstd support not available])
386    fi
387    ENABLE_RPM_ZSTD=$enable_rpm_zstd
388  fi
389fi
390
391if test x$ENABLE_RPM = xyes; then
392   AC_DEFINE([WITH_RPM], 1, [compile the rpm package support in abipkgdiff])
393   AC_MSG_NOTICE([rpm support in abipkgdiff is enabled]);
394
395   if test x$ENABLE_RPM_ZSTD = xyes; then
396      AC_DEFINE([WITH_RPM_ZSTD], 1, [has rpm/zstd support])
397      AC_MSG_NOTICE([rpm/zstd in abipkgdiff testing is enabled])
398   fi
399else
400   AC_MSG_NOTICE([rpm support in abipkgdiff is disabled]);
401fi
402
403AM_CONDITIONAL(ENABLE_RPM, test x$ENABLE_RPM = xyes)
404
405dnl enable the debugging of self comparison when doing abidw --debug-abidiff <binary>
406if test x$ENABLE_DEBUG_SELF_COMPARISON = xyes; then
407  AC_DEFINE([WITH_DEBUG_SELF_COMPARISON], 1, [compile support of debugging abidw --abidiff])
408  AC_MSG_NOTICE([support of debugging self comparison is enabled])
409else
410  AC_MSG_NOTICE([support of debugging self comparison is disabled])
411fi
412
413AM_CONDITIONAL(ENABLE_DEBUG_SELF_COMPARISON, test x$ENABLE_DEBUG_SELF_COMPARISON = xyes)
414
415dnl enable support of abilint --show-type-use <type-id>
416if test x$ENABLE_SHOW_TYPE_USE_IN_ABILINT = xyes; then
417  AC_DEFINE([WITH_SHOW_TYPE_USE_IN_ABILINT], 1, [compile support of abilint --show-type-use])
418  AC_MSG_NOTICE([support of abilint --show-type-use <type-id> is enabled])
419else
420  AC_MSG_NOTICE([support of abilint --show-type-use <type-id> is disabled])
421fi
422
423AM_CONDITIONAL(ENABLE_SHOW_TYPE_USE_IN_ABILINT, test x$ENABLE_SHOW_TYPE_USE_IN_ABILINT = xyes)
424
425dnl enable the debugging of type canonicalization when doing abidw --debug-tc <binary>
426if test x$ENABLE_DEBUG_TYPE_CANONICALIZATION = xyes; then
427   AC_DEFINE([WITH_DEBUG_TYPE_CANONICALIZATION],
428	     1,
429	     [compile support of debugging type canonicalization while using abidw --debug-tc])
430   AC_MSG_NOTICE([support of debugging type canonicalization is enabled])
431else
432   AC_MSG_NOTICE([support of debugging type canonicalization is disabled])
433fi
434
435AM_CONDITIONAL(ENABLE_DEBUG_TYPE_CANONICALIZATION, test x$ENABLE_DEBUG_TYPE_CANONICALIZATION = xyes)
436
437dnl Check for the dpkg program
438if test x$ENABLE_DEB = xauto -o x$ENABLE_DEB = xyes; then
439   AC_CHECK_PROG(HAS_DPKG, dpkg, yes, no)
440
441   if test x$ENABLE_DEB = xauto; then
442     if test x$HAS_DPKG = xyes; then
443       ENABLE_DEB=yes
444     else
445       ENABLE_DEB=no
446    fi
447   fi
448fi
449
450if test x$ENABLE_DEB = xyes; then
451   AC_DEFINE([WITH_DEB], 1, [compile the deb package support in abipkgdiff])
452   AC_MSG_NOTICE(deb support in abipkgdiff is enabled);
453else
454   AC_MSG_NOTICE(deb support in abipkgdiff is disabled);
455fi
456
457AM_CONDITIONAL(ENABLE_DEB, test x$ENABLE_DEB = xyes)
458
459dnl Check for the tar program
460if test x$ENABLE_TAR = xauto -o x$ENABLE_TAR = xyes; then
461   AC_CHECK_PROG(HAS_TAR, tar, yes, no)
462
463   if test x$ENABLE_TAR = xauto; then
464     if test x$HAS_TAR = xyes; then
465       ENABLE_TAR=yes
466    fi
467   fi
468fi
469
470if test x$ENABLE_TAR = xyes; then
471   AC_DEFINE([WITH_TAR], 1, [compile the GNU tar archive support in abipkgdiff])
472   AC_MSG_NOTICE(GNU tar support in abipkgdiff is enabled);
473else
474   AC_MSG_NOTICE(GNU tar support in abipkgdiff is disabled);
475fi
476
477AM_CONDITIONAL(ENABLE_TAR, test x$ENABLE_TAR = xyes)
478
479dnl Check for the bash-completion package
480if test x$ENABLE_BASH_COMPLETION = xauto -o x$ENABLE_BASH_COMPLETION = xyes; then
481   AC_CHECK_PROG(HAS_BASH_COMPLETION, bash-completion, yes, no)
482
483   if test x$ENABLE_BASH_COMPLETION = xauto; then
484     if test x$HAS_BASH_COMPLETION = xyes; then
485       ENABLE_BASH_COMPLETION=yes
486     else
487       ENABLE_BASH_COMPLETION=no
488    fi
489   fi
490fi
491
492if test x$ENABLE_BASH_COMPLETION = xyes; then
493   AC_MSG_NOTICE(bash-completion support in libabigail is enabled);
494else
495   AC_MSG_NOTICE(bash-completion support in libabigail is disabled);
496fi
497
498AM_CONDITIONAL(ENABLE_BASH_COMPLETION, test x$ENABLE_BASH_COMPLETION = xyes)
499
500# The minimal python 2 version we want to support is 2.6.6 because EL6
501# distributions have that version installed.
502MINIMAL_PYTHON2_VERSION="2.6.6"
503
504AC_PATH_PROG(PYTHON, python, no)
505AX_PROG_PYTHON_VERSION($MINIMAL_PYTHON2_VERSION,
506			 [MINIMAL_PYTHON_VERSION_FOUND=yes],
507			 [MINIMAL_PYTHON_VERSION_FOUND=no])
508
509# The minimal python 3 version we want to support is 3.5, which is
510# available in Fedora releases and in EL7.
511if test x$ENABLE_PYTHON3 != xno; then
512  AC_CHECK_PROGS(PYTHON3_INTERPRETER, [python3 python3.5 python3.6 python3.7], no)
513else
514  PYTHON3_INTERPRETER=no
515fi
516
517if test x$ENABLE_PYTHON3 = xauto; then
518    if test x$PYTHON3_INTERPRETER != xno; then
519      ENABLE_PYTHON3=yes
520    else
521      # When enabling python3 is auto, tests only run if the
522      # python3 interpreter was found on the system. Otherwise,
523      # just ignore it.
524	ENABLE_PYTHON3=no
525      AC_MSG_NOTICE([Python 3 was not found. Skip running tests with Python 3.])
526    fi
527fi
528
529if test x$ENABLE_PYTHON3 = xyes; then
530    if  test x$PYTHON3_INTERPRETER != xno; then
531      # We were asked to enable python3 implicitely (auto and
532      # python3 was found) or explicitly.  So enable running tests
533      # using python3 then.
534      RUN_TESTS_WITH_PY3=yes
535    else
536       AC_MSG_ERROR([Python 3 was not found])
537    fi
538fi
539
540if test x$PYTHON3_INTERPRETER = xyes; then
541   MINIMAL_PYTHON_VERSION_FOUND=yes
542fi
543
544if test x$MINIMAL_PYTHON_VERSION_FOUND = xno; then
545  AC_MSG_NOTICE([no minimal version of python found])
546  if test x$PYTHON = xno; then
547     AC_MSG_NOTICE([python binary wasn't found])
548     if test x$PYTHON3_INTERPRETER != xno; then
549     	  AC_MSG_NOTICE([using $PYTHON3_INTERPRETER instead])
550	  PYTHON=$PYTHON3_INTERPRETER
551	  MINIMAL_PYTHON_VERSION_FOUND=yes
552	  MISSING_FEDABIPKGDIFF_DEP=no
553     fi
554  fi
555else
556  AC_MSG_NOTICE([a minimal version of python was found ...])
557  if test x$PYTHON3_INTERPRETER != xno; then
558   # We were instructed to use python3 and it's present on the
559   # system.  Let's update the PYTHON variable that points to the
560   # actual python interpreter we are going to be using
561   AC_MSG_NOTICE([... and it was $PYTHON3_INTERPRETER])
562   PYTHON=$PYTHON3_INTERPRETER
563  fi
564fi
565
566dnl if --enable-fedabipkgdiff has the 'auto' value, then check for the required
567dnl python modules.  If they are present, then enable the fedabipkgdiff program.
568dnl If they are not then disable the program.
569dnl
570dnl If --enable-fedabipkgdiff has the 'yes' value, then check for the required
571dnl python modules and whatever dependency fedabipkgdiff needs.  If they are
572dnl not present then the configure script will error out.
573
574if test x$ENABLE_FEDABIPKGDIFF = xauto -o x$ENABLE_FEDABIPKGDIFF = xyes; then
575   CHECK_DEPS_FOR_FEDABIPKGDIFF=yes
576else
577   CHECK_DEPS_FOR_FEDABIPKGDIFF=no
578fi
579
580if test x$CHECK_DEPS_FOR_FEDABIPKGDIFF = xyes; then
581  MISSING_FEDABIPKGDIFF_DEP=no
582
583  if test x$ENABLE_FEDABIPKGDIFF = xyes; then
584     MISSING_FEDABIPKGDIFF_DEP_FATAL=yes
585  else
586     MISSING_FEDABIPKGDIFF_DEP_FATAL=no
587  fi
588
589  AC_PATH_PROG(WGET, wget, no)
590
591  if test x$WGET = xno; then
592    MISSING_FEDABIPKGDIFF_DEP=yes
593    if test x$MISSING_FEDABIPKGDIFF_DEP_FATAL = xyes; then
594      AC_MSG_ERROR(could not find the wget program)
595    else
596      AC_MSG_NOTICE([could not find the wget program])
597      AC_MSG_NOTICE([disabling fedabipkgdiff as a result])
598    fi
599  fi
600
601  if test x$MINIMAL_PYTHON_VERSION_FOUND = xno; then
602    MISSING_FEDABIPKGDIFF_DEP=yes
603    if test x$MISSING_FEDABIPKGDIFF_DEP_FATAL = xyes; then
604      AC_MSG_ERROR([could not find a python program of version at least $MINIMAL_PYTHON2_VERSION])
605    fi
606  fi
607
608  ###################################################################
609  # Now we are going to check the presence of the required python
610  # modules using either python2 or python3 as required until now.
611  ###################################################################
612
613  # Grrr, the urlparse python2 module got renamed in python3 as
614  # urllib.parse.  Oh well.
615  if test x$PYTHON = xpython3; then
616     URLPARSE_MODULE=urllib.parse
617  else
618     URLPARSE_MODULE=urlparse
619  fi
620
621  REQUIRED_PYTHON_MODULES_FOR_FEDABIPKGDIFF="\
622   argparse logging os re subprocess sys $URLPARSE_MODULE \
623   xdg koji mock rpm imp tempfile mimetypes shutil six"
624
625  AX_CHECK_PYTHON_MODULES([$REQUIRED_PYTHON_MODULES_FOR_FEDABIPKGDIFF],
626			  [$PYTHON],
627			  [FOUND_ALL_PYTHON_MODULES=yes],
628			  [FOUND_ALL_PYTHON_MODULES=no])
629
630  if test x$FOUND_ALL_PYTHON_MODULES = xno; then
631    MISSING_FEDABIPKGDIFF_DEP=yes
632    if test x$MISSING_FEDABIPKGDIFF_DEP_FATAL = xyes; then
633      AC_MSG_ERROR([missing python modules: $MISSING_PYTHON_MODULES]);
634    else
635      AC_MSG_NOTICE([missing python modules: $MISSING_PYTHON_MODULES])
636      AC_MSG_NOTICE([disabling fedabipkgdiff as a result])
637    fi
638  else
639    # On some old platforms, the koji client object doesn't have
640    # the required .read_config method.  Alas, that module doesn't
641    # have any __version__ string either.  So we do as well as we
642    # can to try and detect that case and disable fedabipkgdiff if
643    # necessary.
644    AC_MSG_CHECKING([if koji client is recent enough])
645    $PYTHON 2>&AS_MESSAGE_LOG_FD -c "
646import koji
647try:
648    koji.read_config('koji')
649except koji.ConfigurationError:
650    # See 'tools/fedabipkgdiff'.
651    pass"
652    if test $? -eq 0; then
653      koji_version_check_ok=yes
654    else
655      koji_version_check_ok=no
656    fi
657    AC_MSG_RESULT([$koji_version_check_ok])
658    if test x$koji_version_check_ok = xno; then
659      MISSING_FEDABIPKGDIFF_DEP=yes
660      if test x$MISSING_FEDABIPKGDIFF_DEP_FATAL = xyes; then
661        AC_MSG_ERROR([unsuitable koji client])
662      else
663	AC_MSG_WARN([disabling fedabipkgdiff])
664      fi
665    fi
666  fi
667
668  if test x$MISSING_FEDABIPKGDIFF_DEP = xno; then
669    ENABLE_FEDABIPKGDIFF=yes
670  else
671    ENABLE_FEDABIPKGDIFF=no
672  fi
673fi
674
675AM_CONDITIONAL(ENABLE_FEDABIPKGDIFF, test x$ENABLE_FEDABIPKGDIFF = xyes)
676AM_CONDITIONAL(ENABLE_RUNNING_TESTS_WITH_PY3, test x$RUN_TESTS_WITH_PY3 = xyes)
677AM_CONDITIONAL(ENABLE_PYTHON3_INTERPRETER, test x$PYTHON3_INTERPRETER != xno)
678AC_SUBST(PYTHON)
679
680DEPS_CPPFLAGS="$XML_CFLAGS"
681AC_SUBST(DEPS_CPPFLAGS)
682
683dnl Check for the presence of doxygen program
684
685if test x$ENABLE_APIDOC != xno; then
686  AC_CHECK_PROG(FOUND_DOXYGEN, doxygen, yes, no)
687  if test x$ENABLE_APIDOC = xauto; then
688    if test x$FOUND_DOXYGEN = xyes; then
689      ENABLE_APIDOC=yes
690    else
691      ENABLE_APIDOC=no
692    fi
693  fi
694fi
695AM_CONDITIONAL(ENABLE_APIDOC, test x$ENABLE_APIDOC = xyes)
696
697dnl Check for the presence of the sphinx-build program
698
699if test x$ENABLE_MANUAL != xno; then
700  AC_CHECK_PROG(FOUND_SPHINX_BUILD, sphinx-build, yes, no)
701  if test x$ENABLE_MANUAL = xauto; then
702    if test x$FOUND_SPHINX_BUILD = xyes; then
703      ENABLE_MANUAL=yes
704    else
705      ENABLE_MANUAL=no
706    fi
707  fi
708fi
709AM_CONDITIONAL(ENABLE_MANUAL, test x$ENABLE_MANUAL = xyes)
710
711dnl Check for the presence of Valgrind and do the plumbing to allow
712dnl the running of "make check-valgrind".
713AX_VALGRIND_DFLT(memcheck, on)
714AX_VALGRIND_DFLT(helgrind, on)
715AX_VALGRIND_DFLT(drd, off)
716AX_VALGRIND_DFLT(sgcheck, off)
717
718AX_VALGRIND_CHECK
719
720dnl Set the list of libraries libabigail depends on
721
722DEPS_LIBS="$XML_LIBS $ELF_LIBS $DW_LIBS $CTF_LIBS"
723AC_SUBST(DEPS_LIBS)
724
725if test x$ABIGAIL_DEVEL != x; then
726   CFLAGS="-g -Og -Wall -Wextra -Werror -D_FORTIFY_SOURCE=2"
727   CXXFLAGS="-g -Og -Wall -Wextra -Werror -D_FORTIFY_SOURCE=2 -D_GLIBCXX_DEBUG"
728fi
729
730if test x$ABIGAIL_DEBUG != x; then
731    CFLAGS="$CFLAGS -Og -g3 -ggdb"
732    CXXFLAGS="$CXXFLAGS -Og -g3 -ggdb"
733fi
734
735if test x$ABIGAIL_NO_OPTIMIZATION_DEBUG != x; then
736   CFLAGS="-g -O0 -Wall -Wextra -Werror"
737   CXXFLAGS="-g -O0 -Wall -Wextra -Werror"
738fi
739
740if test x$ENABLE_ASAN = xyes; then
741    CFLAGS="$CFLAGS -fsanitize=address"
742    CXXFLAGS="$CXXFLAGS -fsanitize=address"
743fi
744
745if test x$ENABLE_MSAN = xyes; then
746    CFLAGS="$CFLAGS -fsanitize=memory -fsanitize-memory-track-origins"
747    CXXFLAGS="$CXXFLAGS -fsanitize=memory -fsanitize-memory-track-origins"
748fi
749
750if test x$ENABLE_TSAN = xyes; then
751    CFLAGS="$CFLAGS -fsanitize=thread"
752    CXXFLAGS="$CXXFLAGS -fsanitize=thread"
753fi
754
755if test x$ENABLE_UBSAN = xyes; then
756    CFLAGS="$CFLAGS -fsanitize=undefined"
757    CXXFLAGS="$CXXFLAGS -fsanitize=undefined"
758fi
759
760dnl Set a few Automake conditionals
761
762AM_CONDITIONAL([CTF_READER],[test "x$ENABLE_CTF" = "xyes"])
763
764dnl Set the level of C++ standard we use.
765CXXFLAGS="$CXXFLAGS -std=$CXX_STANDARD"
766
767dnl Check if several decls and constant are defined in dependant
768dnl libraries
769HAS_EM_AARCH64=no
770AC_CHECK_DECL([EM_AARCH64],
771              [HAS_EM_AARCH64=yes],
772              [HAS_EM_AARCH64=no],
773              [[#include <elf.h>]])
774
775if test x$HAS_EM_AARCH64 = xyes; then
776  AC_DEFINE([HAVE_EM_AARCH64_MACRO],
777                 1,
778            [Defined to 1 if elf.h has EM_AARCH64 macro defined])
779fi
780
781HAS_EM_TILEPRO=no
782AC_CHECK_DECL([EM_TILEPRO],
783              [HAS_EM_TILEPRO=yes],
784              [HAS_EM_TILEPRO=no],
785              [[#include <elf.h>]])
786
787if test x$HAS_EM_TILEPRO = xyes; then
788  AC_DEFINE([HAVE_EM_TILEPRO_MACRO],
789                 1,
790            [Defined to 1 if elf.h has EM_TILEPR0 macro defined])
791fi
792
793HAS_EM_TILEGX=no
794AC_CHECK_DECL([EM_TILEGX],
795              [HAS_EM_TILEGX=yes],
796              [HAS_EM_TILEGX=no],
797              [[#include <elf.h>]])
798
799if test x$HAS_EM_TILEGX = xyes; then
800  AC_DEFINE([HAVE_EM_TILEGX_MACRO],
801                 1,
802            [Defined to 1 if elf.h has EM_TILEGX macro defined])
803fi
804
805HAS_R_AARCH64_ABS64=no
806AC_CHECK_DECL([R_AARCH64_ABS64],
807	      [HAS_R_AARCH64_ABS64=yes],
808	      [HAS_R_AARCH64_ABS64=no],
809	      [[#include <elf.h>]])
810
811if test x$HAS_R_AARCH64_ABS64 = xyes; then
812   AC_DEFINE([HAVE_R_AARCH64_ABS64_MACRO],
813	     1,
814	     [Defined to 1 if elf.h has R_AARCH64_ABS64 macro defined])
815fi
816
817HAS_R_AARCH64_PREL32=no
818AC_CHECK_DECL([R_AARCH64_PREL32],
819	      [HAS_R_AARCH64_PREL32=yes],
820	      [HAS_R_AARCH64_PREL32=no],
821	      [[#include <elf.h>]])
822
823if test x$HAS_R_AARCH64_PREL32 = xyes; then
824   AC_DEFINE([HAVE_R_AARCH64_PREL32_MACRO],
825	     1,
826	     [Defined to 1 if elf.h has R_AARCH64_PREL32 macro defined])
827fi
828
829HAS_DW_LANG_UPC=no
830AC_CHECK_DECL([DW_LANG_UPC],
831	      [HAS_DW_LANG_UPC=yes],
832	      [HAS_DW_LANG_UPC=no],
833	      [[#include <dwarf.h>]])
834if test x$HAS_DW_LANG_UPC = xyes; then
835   AC_DEFINE([HAVE_DW_LANG_UPC_enumerator],
836	     1,
837	     [Define to 1 if dwarf.h has the DW_LANG_UPC enumerator])
838fi
839
840HAS_DW_LANG_D=no
841AC_CHECK_DECL([DW_LANG_D],
842	      [HAS_DW_LANG_D=yes],
843	      [HAS_DW_LANG_D=no],
844	      [[#include <dwarf.h>]])
845if test x$HAS_DW_LANG_D = xyes; then
846   AC_DEFINE([HAVE_DW_LANG_D_enumerator],
847             1,
848	     [Define to 1 if dwarf.h has the DW_LANG_D enumerator])
849fi
850
851HAS_DW_LANG_Python=no
852AC_CHECK_DECL([DW_LANG_Python],
853	      [HAS_DW_LANG_Python=yes],
854	      [HAS_DW_LANG_Python=no],
855	      [[#include <dwarf.h>]])
856if test x$HAS_DW_LANG_Python = xyes; then
857   AC_DEFINE([HAVE_DW_LANG_Python_enumerator],
858             1,
859	     [Define to 1 if dwarf.h has the DW_LANG_Python enumerator])
860fi
861
862HAS_DW_LANG_Go=no
863AC_CHECK_DECL([DW_LANG_Go],
864	      [HAS_DW_LANG_Go=yes],
865	      [HAS_DW_LANG_Go=no],
866	      [[#include <dwarf.h>]])
867if test x$HAS_DW_LANG_Go = xyes; then
868   AC_DEFINE([HAVE_DW_LANG_Go_enumerator],
869             1,
870	     [Define to 1 if dwarf.h has the DW_LANG_Go enumerator])
871fi
872
873HAS_DW_LANG_C11=no
874AC_CHECK_DECL([DW_LANG_C11],
875	      [HAS_DW_LANG_C11=yes],
876	      [HAS_DW_LANG_C11=no],
877	      [[#include <dwarf.h>]])
878if test x$HAS_DW_LANG_C11 = xyes; then
879   AC_DEFINE([HAVE_DW_LANG_C11_enumerator],
880             1,
881	     [Define to 1 if dwarf.h has the DW_LANG_C11 enumerator])
882fi
883
884HAS_DW_LANG_C_plus_plus_03=no
885AC_CHECK_DECL([DW_LANG_C_plus_plus_03],
886	      [HAS_DW_LANG_C_plus_plus_03=yes],
887	      [HAS_DW_LANG_C_plus_plus_03=no],
888	      [[#include <dwarf.h>]])
889if test x$HAS_DW_LANG_C_plus_plus_03 = xyes; then
890   AC_DEFINE([HAVE_DW_LANG_C_plus_plus_03_enumerator],
891             1,
892	     [Define to 1 if dwarf.h has the DW_LANG_C_plus_plus_03 enumerator])
893fi
894
895HAS_DW_LANG_C_plus_plus_11=no
896AC_CHECK_DECL([DW_LANG_C_plus_plus_11],
897	      [HAS_DW_LANG_C_plus_plus_11=yes],
898	      [HAS_DW_LANG_C_plus_plus_11=no],
899	      [[#include <dwarf.h>]])
900if test x$HAS_DW_LANG_C_plus_plus_11 = xyes; then
901   AC_DEFINE([HAVE_DW_LANG_C_plus_plus_11_enumerator],
902             1,
903	     [Define to 1 if dwarf.h has the DW_LANG_C_plus_plus_11 enumerator])
904fi
905
906HAS_DW_LANG_C_plus_plus_14=no
907AC_CHECK_DECL([DW_LANG_C_plus_plus_14],
908	      [HAS_DW_LANG_C_plus_plus_14=yes],
909	      [HAS_DW_LANG_C_plus_plus_14=no],
910	      [[#include <dwarf.h>]])
911if test x$HAS_DW_LANG_C_plus_plus_14 = xyes; then
912   AC_DEFINE([HAVE_DW_LANG_C_plus_plus_14_enumerator],
913             1,
914	     [Define to 1 if dwarf.h has the DW_LANG_C_plus_plus_14 enumerator])
915fi
916
917HAS_DW_LANG_Mips_Assembler=no
918AC_CHECK_DECL([DW_LANG_Mips_Assembler],
919	      [HAS_DW_LANG_Mips_Assembler=yes],
920	      [HAS_DW_LANG_Mips_Assembler=no],
921	      [[#include <dwarf.h>]])
922if test x$HAS_DW_LANG_Mips_Assembler = xyes; then
923   AC_DEFINE([HAVE_DW_LANG_Mips_Assembler_enumerator],
924             1,
925	     [Define to 1 if dwarf.h has the DW_LANG_Mips_Assembler enumerator])
926fi
927
928HAS_DW_LANG_Rust=no
929AC_CHECK_DECL([DW_LANG_Rust],
930	      [HAS_DW_LANG_Rust=yes],
931	      [HAS_DW_LANG_Rust=no],
932	      [[#include <dwarf.h>]])
933
934if test x$HAS_DW_LANG_Rust = xyes; then
935  AC_DEFINE([HAVE_DW_LANG_Rust_enumerator],
936  	    1,
937	    [Define to 1 if dwarf.h has the DW_LANG_Rust enumerator])
938fi
939
940HAS_DW_FORM_strx1=no
941HAS_DW_FORM_strx2=no
942HAS_DW_FORM_strx3=no
943HAS_DW_FORM_strx4=no
944HAS_DW_FORM_line_strp=no
945
946AC_CHECK_DECL([DW_FORM_strx1],
947	      [HAS_DW_FORM_strx1=yes],
948	      [HAS_DW_FORM_strx1=no],
949	      [[#include <dwarf.h>]])
950
951if test x$HAS_DW_FORM_strx1 = xyes; then
952   AC_DEFINE([HAVE_DW_FORM_strx1],
953   	     1,
954	     [Define to 1 if dwarf.h has the DW_FORM_strx1 enumerator])
955fi
956
957AC_CHECK_DECL([DW_FORM_strx2],
958	      [HAS_DW_FORM_strx2=yes],
959	      [HAS_DW_FORM_strx2=no],
960	      [[#include <dwarf.h>]])
961
962if test x$HAS_DW_FORM_strx2 = xyes; then
963   AC_DEFINE([HAVE_DW_FORM_strx2],
964   	     1,
965	     [Define to 1 if dwarf.h has the DW_FORM_strx2 enumerator])
966fi
967
968AC_CHECK_DECL([DW_FORM_strx3],
969	      [HAS_DW_FORM_strx3=yes],
970	      [HAS_DW_FORM_strx3=no],
971	      [[#include <dwarf.h>]])
972
973if test x$HAS_DW_FORM_strx3 = xyes; then
974   AC_DEFINE([HAVE_DW_FORM_strx3],
975   	     1,
976	     [Define to 1 if dwarf.h has the DW_FORM_strx3 enumerator])
977fi
978
979AC_CHECK_DECL([DW_FORM_strx4],
980	      [HAS_DW_FORM_strx4=yes],
981	      [HAS_DW_FORM_strx4=no],
982	      [[#include <dwarf.h>]])
983
984if test x$HAS_DW_FORM_strx4 = xyes; then
985   AC_DEFINE([HAVE_DW_FORM_strx4],
986   	     1,
987	     [Define to 1 if dwarf.h has the DW_FORM_strx4 enumerator])
988fi
989
990AC_CHECK_DECL([DW_FORM_line_strp],
991	      [HAS_DW_FORM_line_strp=yes],
992	      [HAS_DW_FORM_line_strp=no],
993	      [[#include <dwarf.h>]])
994
995if test x$HAS_DW_FORM_line_strp = xyes; then
996   AC_DEFINE([HAVE_DW_FORM_line_strp],
997   	     1,
998	     [Define to 1 if dwarf.h has the DW_FORM_line_strp enumerator])
999fi
1000
1001if test x$HAS_DW_FORM_strx1 = xyes -a \
1002	x$HAS_DW_FORM_strx2 = xyes -a \
1003	x$HAS_DW_FORM_strx3 = xyes -a \
1004	x$HAS_DW_FORM_strx4 = xyes ; then
1005   AC_DEFINE([HAVE_DW_FORM_strx],
1006   	     1,
1007	     [Define to 1 if dwarf.h has the DW_FORM_strx enumerators])
1008fi
1009
1010dnl Set large files support
1011AC_SYS_LARGEFILE
1012
1013AC_CONFIG_FILES([Makefile
1014libabigail.pc
1015  include/Makefile
1016  include/abg-version.h
1017  doc/Makefile
1018    doc/manuals/Makefile
1019  src/Makefile
1020  tools/Makefile
1021  tests/Makefile
1022    tests/data/Makefile
1023    bash-completion/Makefile])
1024
1025dnl Some test scripts are generated by autofoo.
1026AC_CONFIG_FILES([tests/runtestcanonicalizetypes.sh],
1027		[chmod +x tests/runtestcanonicalizetypes.sh])
1028		AC_CONFIG_FILES([tests/runtestslowselfcompare.sh],
1029		[chmod +x tests/runtestslowselfcompare.sh])
1030AC_CONFIG_FILES([tests/mockfedabipkgdiff],
1031		[chmod +x tests/mockfedabipkgdiff])
1032AC_CONFIG_FILES([tests/runtestfedabipkgdiff.py],
1033		[chmod +x tests/runtestfedabipkgdiff.py])
1034AC_CONFIG_FILES([tests/runtestfedabipkgdiffpy3.sh],
1035		[chmod +x tests/runtestfedabipkgdiffpy3.sh])
1036AC_CONFIG_FILES([tests/runtestdefaultsupprs.py],
1037		[chmod +x tests/runtestdefaultsupprs.py])
1038AC_CONFIG_FILES([tests/runtestdefaultsupprspy3.sh],
1039		[chmod +x tests/runtestdefaultsupprspy3.sh])
1040
1041AC_OUTPUT
1042
1043AC_MSG_NOTICE([
1044=====================================================================
1045	Libabigail: $VERSION_MAJOR.$VERSION_MINOR.$VERSION_REVISION$VERSION_SUFFIX
1046=====================================================================
1047
1048		Here is the configuration of the package:
1049
1050    Prefix                                         : ${prefix}
1051    Source code location                           : ${srcdir}
1052    C Compiler                                     : ${CC}
1053    C++ Compiler		                   : ${CXX}
1054    GCC visibility attribute supported             : ${SUPPORTS_GCC_VISIBILITY_ATTRIBUTE}
1055    CXXFLAGS	   	     			   : ${CXXFLAGS}
1056    Python					   : ${PYTHON}
1057
1058 OPTIONAL FEATURES:
1059    C++ standard level                             : ${CXX_STANDARD}
1060    libdw has the dwarf_getalt function            : ${FOUND_DWARF_GETALT_IN_LIBDW}
1061    Enable rpm support in abipkgdiff               : ${ENABLE_RPM}
1062    Enable rpm/zstd in abipkgdiff testing          : ${ENABLE_RPM_ZSTD}
1063    Enable abilint --show-type-use <type-id>       : ${ENABLE_SHOW_TYPE_USE_IN_ABILINT}
1064    Enable self comparison debugging               : ${ENABLE_DEBUG_SELF_COMPARISON}
1065    Enable type canonicalization debugging         : ${ENABLE_DEBUG_TYPE_CANONICALIZATION}
1066    Enable deb support in abipkgdiff               : ${ENABLE_DEB}
1067    Enable GNU tar archive support in abipkgdiff   : ${ENABLE_TAR}
1068    Enable bash completion	                   : ${ENABLE_BASH_COMPLETION}
1069    Enable fedabipkgdiff                           : ${ENABLE_FEDABIPKGDIFF}
1070    Enable python 3				   : ${ENABLE_PYTHON3}
1071    Enable CTF front-end                           : ${ENABLE_CTF}
1072    Enable running tests under Valgrind            : ${enable_valgrind}
1073    Enable build with -fsanitize=address    	   : ${ENABLE_ASAN}
1074    Enable build with -fsanitize=memory    	   : ${ENABLE_MSAN}
1075    Enable build with -fsanitize=thread    	   : ${ENABLE_TSAN}
1076    Enable build with -fsanitize=undefined  	   : ${ENABLE_UBSAN}
1077    Generate html apidoc	                   : ${ENABLE_APIDOC}
1078    Generate html manual	                   : ${ENABLE_MANUAL}
1079])
1080