configure.ac 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194
  1. AC_INIT([logrotate],m4_esyscmd([build-aux/git-version-gen --prefix '' .tarball-version]),
  2. [],[],[https://github.com/logrotate/logrotate])
  3. dnl foreign: Do not require AUTHORS, ChangeLog, NEWS, and README to exist
  4. dnl dist-xz: Produce tar.xz version of the release archive
  5. AM_INIT_AUTOMAKE(foreign dist-xz)
  6. # --enable-silent-rules
  7. m4_ifdef([AM_SILENT_RULES],
  8. [AM_SILENT_RULES([yes])],
  9. [AC_SUBST([AM_DEFAULT_VERBOSITY], [1])])
  10. AC_USE_SYSTEM_EXTENSIONS
  11. AC_PROG_CC
  12. AC_PROG_CC_C99
  13. AC_STRUCT_ST_BLKSIZE
  14. AC_STRUCT_ST_BLOCKS
  15. AC_CANONICAL_HOST
  16. dnl Use 64-bit file offsets on 32-bit systems (defines C macros if necessary)
  17. AC_SYS_LARGEFILE
  18. dnl needed for basename() on OS X
  19. AC_CHECK_HEADERS([libgen.h])
  20. AC_CHECK_LIB([popt],[poptParseArgvString],,
  21. AC_MSG_ERROR([libpopt required but not found]))
  22. dnl Needed for out-of-source builds
  23. mkdir -p test
  24. WITH_SELINUX="no"
  25. AC_ARG_WITH([selinux],
  26. [AS_HELP_STRING([--with-selinux],
  27. [support handling SELinux contexts (yes,no,check) @<:@default=check@:>@])],
  28. [],
  29. [with_selinux=check])
  30. AS_CASE(["$with_selinux"],
  31. [yes], [AC_CHECK_LIB([selinux],[getfscreatecon_raw])],
  32. [no], [],
  33. [AC_CHECK_LIB([selinux],[getfscreatecon_raw])])
  34. AS_IF([test "$ac_cv_lib_selinux_getfscreatecon_raw" = yes],
  35. echo "1" > ./test/test.SELINUX; WITH_SELINUX="yes";, echo "0" > ./test/test.SELINUX;)
  36. WITH_ACL="no"
  37. AC_ARG_WITH([acl],
  38. [AS_HELP_STRING([--with-acl],
  39. [support handling ACL (yes,no,check) @<:@default=check@:>@])],
  40. [],
  41. [with_acl=check])
  42. AS_CASE(["$with_acl"],
  43. [yes], [AC_CHECK_LIB([acl],[acl_get_file])],
  44. [no], [],
  45. [AC_CHECK_LIB([acl],[acl_get_file])])
  46. AS_IF([test "$ac_cv_lib_acl_acl_get_file" = yes],
  47. echo "1" > ./test/test.ACL; WITH_ACL="yes";, echo "0" > ./test/test.ACL;)
  48. DEFAULT_MAIL_COMMAND="/bin/mail"
  49. COMPRESS_COMMAND="/bin/gzip"
  50. UNCOMPRESS_COMMAND="/bin/gunzip"
  51. COMPRESS_EXT=".gz"
  52. STATE_FILE_PATH="/var/lib/logrotate.status"
  53. case "$host" in
  54. *-hpux*)
  55. DEFAULT_MAIL_COMMAND="/usr/bin/mailx"
  56. COMPRESS_COMMAND="/usr/contrib/bin/gzip"
  57. UNCOMPRESS_COMMAND="/usr/contrib/bin/gunzip"
  58. ;;
  59. *-solaris*|*-sunos*)
  60. DEFAULT_MAIL_COMMAND="/usr/bin/mailx"
  61. ;;
  62. *-netbsd*)
  63. DEFAULT_MAIL_COMMAND="/usr/bin/mail"
  64. COMPRESS_COMMAND="/usr/bin/gzip"
  65. UNCOMPRESS_COMMAND="/usr/bin/gunzip"
  66. ;;
  67. *-darwin*)
  68. COMPRESS_COMMAND="/usr/bin/gzip"
  69. UNCOMPRESS_COMMAND="/usr/bin/gunzip"
  70. ;;
  71. esac
  72. AC_ARG_WITH([state-file-path],
  73. AC_HELP_STRING([--with-state-file-path=PATH],
  74. [path to state file (/var/lib/logrotate.status by default)]),
  75. [
  76. case "$withval" in
  77. yes|no)
  78. AC_MSG_ERROR([--with-state-file-path=PATH requires a path to be specified])
  79. ;;
  80. *)
  81. STATE_FILE_PATH="$withval"
  82. ;;
  83. esac
  84. ])
  85. AC_DEFINE_UNQUOTED([STATEFILE], ["$STATE_FILE_PATH"], [State file path.])
  86. AC_SUBST(STATE_FILE_PATH)
  87. AC_ARG_WITH([default-mail-command],
  88. AC_HELP_STRING([--with-default-mail-command=COMMAND],
  89. [default mail command (e.g. /bin/mail)]),
  90. [
  91. case "$withval" in
  92. yes|no)
  93. AC_MSG_ERROR([--with-default-mail-command=COMMAND requires a command to be specified])
  94. ;;
  95. *)
  96. DEFAULT_MAIL_COMMAND="$withval"
  97. ;;
  98. esac
  99. ])
  100. AC_DEFINE_UNQUOTED([DEFAULT_MAIL_COMMAND], ["$DEFAULT_MAIL_COMMAND"], [default mail command])
  101. AC_SUBST(DEFAULT_MAIL_COMMAND)
  102. AC_ARG_WITH([compress-command],
  103. AC_HELP_STRING([--with-compress-command=COMMAND],
  104. [compress command (default: /bin/gzip)]),
  105. [
  106. case "$withval" in
  107. yes|no)
  108. AC_MSG_ERROR([--with-compress-command=COMMAND requires a command to be specified])
  109. ;;
  110. *)
  111. COMPRESS_COMMAND="$withval"
  112. ;;
  113. esac
  114. ])
  115. AC_DEFINE_UNQUOTED([COMPRESS_COMMAND], "$COMPRESS_COMMAND", [default compress command])
  116. AC_SUBST(COMPRESS_COMMAND)
  117. AC_ARG_WITH([uncompress-command],
  118. AC_HELP_STRING([--with-uncompress-command=COMMAND],
  119. [uncompress command (default: /bin/gunzip)]),
  120. [
  121. case "$withval" in
  122. yes|no)
  123. AC_MSG_ERROR([--with-uncompress-command=COMMAND requires a command to be specified])
  124. ;;
  125. *)
  126. UNCOMPRESS_COMMAND="$withval"
  127. ;;
  128. esac
  129. ])
  130. AC_DEFINE_UNQUOTED([UNCOMPRESS_COMMAND], "$UNCOMPRESS_COMMAND", [default uncompress command])
  131. AC_SUBST(UNCOMPRESS_COMMAND)
  132. AC_ARG_WITH([compress-extension],
  133. AC_HELP_STRING([--with-compress-extension=EXTENSION],
  134. [compress extension (default: .gz)]),
  135. [
  136. case "$withval" in
  137. .*)
  138. COMPRESS_EXT="$withval"
  139. ;;
  140. *)
  141. AC_MSG_ERROR([--with-compress-extension=EXTENSION must start with .])
  142. ;;
  143. esac
  144. ])
  145. AC_DEFINE_UNQUOTED([COMPRESS_EXT], ["$COMPRESS_EXT"], [default compress extension])
  146. AC_SUBST(COMPRESS_EXT)
  147. AC_DEFINE_UNQUOTED([ROOT_UID], [0], [Root user-id.])
  148. AC_SUBST(ROOT_UID)
  149. AC_CHECK_FUNCS([asprintf fork madvise qsort strndup strptime utimensat vfork vsyslog])
  150. AC_CONFIG_HEADERS([config.h])
  151. AM_CFLAGS="-Wall -Wextra -Wmissing-format-attribute -Wmissing-noreturn -Wpointer-arith -Wshadow -Wstrict-prototypes -Wundef -Wunused -Wwrite-strings"
  152. AC_ARG_ENABLE([werror],
  153. [AS_HELP_STRING([--enable-werror],
  154. [Treat warnings as errors (default: warnings are not errors)])],
  155. [enable_werror="$enableval"],
  156. [enable_werror=no])
  157. AS_IF([test "x$enable_werror" = "xyes"], [AM_CFLAGS="$AM_CFLAGS -Werror"])
  158. AC_SUBST([AM_CFLAGS])
  159. AC_CONFIG_FILES([Makefile test/Makefile logrotate.8 logrotate.spec])
  160. AC_OUTPUT
  161. AC_MSG_RESULT([
  162. ${PACKAGE_NAME} ${VERSION}
  163. SELinux support: ${WITH_SELINUX}
  164. ACL support: ${WITH_ACL}
  165. default mail command: ${DEFAULT_MAIL_COMMAND}
  166. compress command: ${COMPRESS_COMMAND}
  167. uncompress command: ${UNCOMPRESS_COMMAND}
  168. compress extension: ${COMPRESS_EXT}
  169. statefile path: ${STATE_FILE_PATH}
  170. ])