configure.ac 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. # Process this file with autoconf to produce a configure script.
  2. AC_PREREQ([2.68])
  3. AC_INIT([libmd], [m4_esyscmd([./get-version])], [[email protected]])
  4. AC_CONFIG_SRCDIR([src/sha2.c])
  5. AC_CONFIG_AUX_DIR([build-aux])
  6. AC_CONFIG_MACRO_DIR([m4])
  7. AM_INIT_AUTOMAKE([1.8 -Wall foreign nostdinc no-dist-gzip dist-xz])
  8. m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])],
  9. [AC_SUBST([AM_DEFAULT_VERBOSITY], [1])])
  10. LIBMD_ABI_MAJOR=0
  11. LIBMD_ABI_MINOR=0
  12. LIBMD_ABI_PATCH=5
  13. LIBMD_ABI="$LIBMD_ABI_MAJOR:$LIBMD_ABI_MINOR:$LIBMD_ABI_PATCH"
  14. AC_SUBST([LIBMD_ABI])
  15. # Check and store if we got user supplied variables.
  16. user_CFLAGS=${CFLAGS-unset}
  17. # Checks for operating system services and capabilities.
  18. AC_USE_SYSTEM_EXTENSIONS
  19. AC_SYS_LARGEFILE
  20. AM_PROG_AR
  21. LT_INIT
  22. LIBMD_LINKER_VERSION_SCRIPT
  23. # Checks for programs.
  24. AC_PROG_SED
  25. AC_PROG_CC
  26. # Checks for the build machinery.
  27. AS_IF([test "$user_CFLAGS" = unset], [
  28. LIBMD_CHECK_COMPILER_FLAG([-Wall])
  29. LIBMD_CHECK_COMPILER_FLAG([-Wextra])
  30. LIBMD_CHECK_COMPILER_FLAG([-Wbad-function-cast])
  31. LIBMD_CHECK_COMPILER_FLAG([-Wc99-c11-compat])
  32. LIBMD_CHECK_COMPILER_FLAG([-Wcast-align])
  33. LIBMD_CHECK_COMPILER_FLAG([-Wdeclaration-after-statement])
  34. LIBMD_CHECK_COMPILER_FLAG([-Wdocumentation])
  35. LIBMD_CHECK_COMPILER_FLAG([-Wduplicated-branches])
  36. LIBMD_CHECK_COMPILER_FLAG([-Wduplicated-cond])
  37. LIBMD_CHECK_COMPILER_FLAG([-Wformat -Wformat-security])
  38. LIBMD_CHECK_COMPILER_FLAG([-Wformat=2])
  39. LIBMD_CHECK_COMPILER_FLAG([-Winit-self])
  40. LIBMD_CHECK_COMPILER_FLAG([-Wlogical-not-parentheses])
  41. LIBMD_CHECK_COMPILER_FLAG([-Wlogical-op])
  42. LIBMD_CHECK_COMPILER_FLAG([-Wmissing-declarations])
  43. LIBMD_CHECK_COMPILER_FLAG([-Wmissing-format-attribute])
  44. LIBMD_CHECK_COMPILER_FLAG([-Wmissing-prototypes])
  45. LIBMD_CHECK_COMPILER_FLAG([-Wnested-externs])
  46. LIBMD_CHECK_COMPILER_FLAG([-Wno-tautological-constant-out-of-range-compare])
  47. LIBMD_CHECK_COMPILER_FLAG([-Wno-unused-parameter])
  48. LIBMD_CHECK_COMPILER_FLAG([-Wnull-dereference])
  49. LIBMD_CHECK_COMPILER_FLAG([-Wold-style-definition])
  50. LIBMD_CHECK_COMPILER_FLAG([-Wpointer-arith])
  51. LIBMD_CHECK_COMPILER_FLAG([-Wredundant-decls])
  52. LIBMD_CHECK_COMPILER_FLAG([-Wregister])
  53. LIBMD_CHECK_COMPILER_FLAG([-Wrestrict])
  54. LIBMD_CHECK_COMPILER_FLAG([-Wshadow])
  55. LIBMD_CHECK_COMPILER_FLAG([-Wshift-negative-value])
  56. LIBMD_CHECK_COMPILER_FLAG([-Wsizeof-array-argument])
  57. LIBMD_CHECK_COMPILER_FLAG([-Wstrict-prototypes])
  58. LIBMD_CHECK_COMPILER_FLAG([-Wswitch-bool])
  59. LIBMD_CHECK_COMPILER_FLAG([-Wvla])
  60. LIBMD_CHECK_COMPILER_FLAG([-Wwrite-strings])
  61. CFLAGS="$LIBMD_COMPILER_FLAGS $CFLAGS"
  62. AC_ARG_ENABLE([sanitize],
  63. [AS_HELP_STRING([--enable-sanitize], [enable compiler sanitizer support])],
  64. [
  65. LIBMD_COMPILER_FLAGS=''
  66. LIBMD_CHECK_COMPILER_FLAG([-fsanitize=address])
  67. LIBMD_CHECK_COMPILER_FLAG([-fsanitize=leak])
  68. LIBMD_CHECK_COMPILER_FLAG([-fsanitize=undefined])
  69. CFLAGS="$LIBMD_COMPILER_FLAGS $CFLAGS"
  70. LDFLAGS="$LIBMD_COMPILER_FLAGS $LDFLAGS"
  71. ])
  72. ])
  73. # Checks for libraries.
  74. # Checks for header files.
  75. AC_CHECK_HEADERS([unistd.h])
  76. # Checks for typedefs, structures, and compiler characteristics.
  77. AC_C_BIGENDIAN
  78. AC_TYPE_OFF_T
  79. AC_TYPE_SIZE_T
  80. AC_TYPE_SSIZE_T
  81. # Checks for library functions.
  82. AC_CONFIG_FILES([
  83. Makefile
  84. include/Makefile
  85. man/Makefile
  86. src/Makefile
  87. src/libmd.pc
  88. test/Makefile
  89. ])
  90. AC_CONFIG_HEADERS([config.h])
  91. AC_OUTPUT