blob: e7faf705b0711aac436e3431c5a91d467a83360d [file] [log] [blame]
AC_PREREQ([2.69])
AC_INIT([phosphor-hostlogger],
[m4_esyscmd_s([git describe --always --dirty --long])],
[https://github.com/openbmc/phosphor-hostlogger/issues])
AC_LANG([C++])
AM_INIT_AUTOMAKE([subdir-objects -Wall -Werror foreign])
AM_SILENT_RULES([yes])
# Check for programs
AC_PROG_CXX
AC_PROG_INSTALL
AC_PROG_MAKE_SET
AC_PROG_MKDIR_P
AC_HEADER_STDC
# Compiler flags
AX_CXX_COMPILE_STDCXX([17], [noext])
AX_APPEND_COMPILE_FLAGS([-fpic -Wall], [CXXFLAGS])
# Checks for external dependencies
AC_CHECK_LIB([z], [gzopen], [],
[AC_MSG_ERROR([zlib required but not found])])
PKG_CHECK_MODULES([SYSTEMD], [libsystemd >= 221])
PKG_CHECK_MODULES([PHOSPHOR_DBUS_INTERFACES], [phosphor-dbus-interfaces])
PKG_CHECK_MODULES([SDBUSPLUS], [sdbusplus])
AC_PATH_PROG([SDBUSPLUSPLUS], [sdbus++])
AS_IF([test "x$SDBUSPLUSPLUS" = "x"],
[AC_MSG_ERROR([sdbus++ required but not found])])
# systemd unit general configuration
PKG_PROG_PKG_CONFIG
AC_ARG_WITH([systemdsystemunitdir],
[AS_HELP_STRING([--with-systemdsystemunitdir=DIR],
[Directory for systemd service files])], [],
[with_systemdsystemunitdir=auto])
AS_IF([test "x$with_systemdsystemunitdir" = "xyes" -o "x$with_systemdsystemunitdir" = "xauto"],
[def_systemdsystemunitdir=$($PKG_CONFIG --variable=systemdsystemunitdir systemd)
AS_IF([test "x$def_systemdsystemunitdir" = "x"],
[AS_IF([test "x$with_systemdsystemunitdir" = "xyes"],
[AC_MSG_ERROR([systemd support requested but pkg-config unable to query systemd package])],
[with_systemdsystemunitdir=no])],
[with_systemdsystemunitdir="$def_systemdsystemunitdir"])])
AS_IF([test "x$with_systemdsystemunitdir" != "xno"],
[AC_SUBST([systemdsystemunitdir], [$with_systemdsystemunitdir])])
AM_CONDITIONAL([HAVE_SYSTEMD], [test "x$with_systemdsystemunitdir" != "xno"])
# systemd unit parameters
AC_ARG_VAR([SYSTEMD_TARGET], [systemd target for starting service, default is multi-user.target])
AS_IF([test "x$SYSTEMD_TARGET" = "x"], [SYSTEMD_TARGET=multi-user.target])
AC_ARG_VAR([HOST_TTY], [host teletype (TTY), default is ttyVUART0])
AS_IF([test "x$HOST_TTY" = "x"], [HOST_TTY=ttyVUART0])
# Configuration property: path to the ouput directory of log files
AC_ARG_VAR([LOG_OUTPUT_PATH], [Path used to store logs, default is /var/lib/obmc/hostlogs])
AS_IF([test "x$LOG_OUTPUT_PATH" = "x"], [LOG_OUTPUT_PATH="/var/lib/obmc/hostlogs"])
AC_DEFINE_UNQUOTED([LOG_OUTPUT_PATH], ["${LOG_OUTPUT_PATH}"])
# Configuration property: log storage limit (maximum number of messages to store)
AC_ARG_VAR([LOG_STORAGE_SIZE_LIMIT], [Limit number of messages in store, default is 3000])
AS_IF([test "x$LOG_STORAGE_SIZE_LIMIT" = "x"], [LOG_STORAGE_SIZE_LIMIT=3000])
AC_DEFINE_UNQUOTED([LOG_STORAGE_SIZE_LIMIT], [${LOG_STORAGE_SIZE_LIMIT}])
# Configuration property: log storage limit (oldest time in hours)
AC_ARG_VAR([LOG_STORAGE_TIME_LIMIT], [Limit message store by oldest time in hours, default is 0])
AS_IF([test "x$LOG_STORAGE_TIME_LIMIT" = "x"], [LOG_STORAGE_TIME_LIMIT=0])
AC_DEFINE_UNQUOTED([LOG_STORAGE_TIME_LIMIT], [${LOG_STORAGE_TIME_LIMIT}])
# Configuration property: flush period policy.
AC_ARG_VAR([LOG_FLUSH_PERIOD], [Set the default flush period time, default is 0])
AS_IF([test "x$LOG_FLUSH_PERIOD" = "x"], [LOG_FLUSH_PERIOD=0])
AC_DEFINE_UNQUOTED([LOG_FLUSH_PERIOD], [${LOG_FLUSH_PERIOD}])
# Configuration property: limit for log rotation - maximum number of files to store in the log's directory
AC_ARG_VAR([LOG_ROTATION_LIMIT], [Limit for log rotation, default is 10])
AS_IF([test "x$LOG_ROTATION_LIMIT" = "x"], [LOG_ROTATION_LIMIT=10])
AC_DEFINE_UNQUOTED([LOG_ROTATION_LIMIT], [${LOG_ROTATION_LIMIT}])
# dreport integration
AC_ARG_ENABLE([dreport],
[AS_HELP_STRING([--enable-dreport], [create dreport plugin script [no]])],
[case "${enableval}" in
yes) dreport=true ;;
no) dreport=false ;;
*) AC_MSG_ERROR([bad value ${enableval} for --enable-dreport]) ;;
esac],
[dreport=false])
AM_CONDITIONAL(HAVE_DREPORT, test "x$dreport" = "xtrue")
# Debug build configuration
AC_ARG_ENABLE([debug],
[AS_HELP_STRING([--enable-debug], [turn on debugging [no]])],
[case "${enableval}" in
yes) debug=true ;;
no) debug=false ;;
*) AC_MSG_ERROR([bad value ${enableval} for --enable-debug]) ;;
esac],
[debug=false])
AM_CONDITIONAL(DEBUG, test "x$debug" = "xtrue")
AC_CONFIG_FILES([Makefile])
AC_CONFIG_FILES([hostlogger.service])
AC_CONFIG_FILES([hostlogger.dreport])
AC_OUTPUT