# Process this file with autoconf to produce a configure script.
AC_PREREQ(2.61)
-AC_INIT([dlog], [1.0], yk.yun@samsung.com)
+AC_INIT([dlog], [8.0], [cw00.choi@samsung.com, k.lewandowsk@samsung.com, m.bloch@samsung.com])
AM_INIT_AUTOMAKE([-Wall -Werror foreign])
-AC_CONFIG_HEADERS([config.h:config.hin])
+LT_INIT
-AC_CONFIG_MACRO_DIR([m4])
-# Init XO
-PLATFORM_INIT
-
-# Checks for programs.
-dnl AC_PROG_CXX
-m4_ifdef([AM_PROG_AR], [AM_PROG_AR])
AC_PROG_CC
-AC_PROG_GCC_TRADITIONAL
-AC_PROG_LIBTOOL
-
-# check for libsystemd-journal
-AC_ARG_ENABLE(journal, AS_HELP_STRING([--enable-journal], [enable systemd journal]),
- [with_systemd_journal=yes],
- with_systemd_journal=no)
-if test "x$with_systemd_journal" != "xno"; then
- PKG_CHECK_MODULES(systemd_journal, [libsystemd-journal],
- [AC_DEFINE(HAVE_SYSTEMD_JOURNAL, 1, [Define if systemd journal is available])
- have_systemd_journal=yes],
- have_systemd_journal=no)
- if test "x$have_systemd_journal" = "xno" -a "x$with_systemd_journal" = "xyes"; then
- AC_MSG_ERROR([systemd journal requested but libraries not found])
- fi
-fi
-AM_CONDITIONAL(HAVE_SYSTEMD_JOURNAL, [test "x$have_systemd_journal" = "xyes"])
-AM_CONDITIONAL(WITH_SYSTEMD_JOURNAL, [test "x$with_systemd_journal" = "xyes"])
-if test "x$have_systemd_journal" = "xyes" ; then
- systemd_journal=systemd-journal
-fi
-AC_SUBST(systemd_journal)
-
-# check binary type for dlog debug mode
-AC_ARG_ENABLE([dlog_debug_mode],
- AS_HELP_STRING([--enable-debug_mode Turn on dlog_debug_mode]),
- [dlog_debug_mode=yes],
- dlog_debug_mode=no)
-if test "x$dlog_debug_mode" = "xyes" ; then
- DEBUG_CFLAGS+=" -DDLOG_DEBUG_ENABLE"
-fi
-AC_ARG_ENABLE([debug_enable],
- AS_HELP_STRING([--enable-debug_enable Turn on debug_enable]),
- [debug_enable=yes],
- debug_enable=no)
-# check for fatal_on
-AC_ARG_ENABLE([fatal_on],
- AS_HELP_STRING([--enable-fatal_on Turn on fatal assertion]),
- [fatal_on=yes],
- fatal_on=no)
-if test "x$fatal_on" = "xyes" ; then
- DEBUG_CFLAGS+=" -DFATAL_ON"
-fi
+AC_PROG_CXX
+
AC_SUBST(DEBUG_CFLAGS)
-dnl AC_SUBST(ACLOCAL_AMFLAGS, "-I m4")
-# Checks for libraries.
-# Checks for header files.
-AC_HEADER_STDC
-AC_CHECK_HEADERS([stdlib.h unistd.h ])
+AC_CHECK_HEADERS([stdlib.h unistd.h])
# Checks for typedefs, structures, and compiler characteristics.
AC_HEADER_STDBOOL
PKG_PROG_PKG_CONFIG
PKG_CHECK_MODULES([CAPI_BASE_COMMON], [capi-base-common])
+AC_ARG_ENABLE([server-user],
+ AS_HELP_STRING([--enable-server-user=USER], [user dlog_server should run with]),
+ [dlog_server_user=$enableval],
+ [dlog_server_user=log])
+AC_DEFINE_UNQUOTED([DLOG_SERVER_USER], "$dlog_server_user")
+AC_SUBST([DLOG_SERVER_USER], "$dlog_server_user")
+
+AC_ARG_ENABLE([server-group],
+ AS_HELP_STRING([--enable-server-group=GROUP], [group dlog_server should run with]),
+ [dlog_server_group=$enableval],
+ [dlog_server_group=log])
+AC_DEFINE_UNQUOTED([DLOG_SERVER_GROUP], "$dlog_server_group")
+AC_SUBST([DLOG_SERVER_GROUP], "$dlog_server_group")
+
+critical_logfile_path_default=${localstatedir}/log/dlog/critical
+AC_ARG_ENABLE([critical-logfile],
+ AS_HELP_STRING([--critical-log-path=PATH], [path of the critical log file (default: $critical_logfile_path_default)]),
+ [critical_logfile=$enableval],
+ [critical_logfile=$critical_logfile_path_default])
+AC_DEFINE_UNQUOTED([DLOG_CRITICAL_LOGFILE_PATH], "$critical_logfile")
+AC_SUBST([DLOG_CRITICAL_LOGFILE_PATH], "$critical_logfile")
+
+critical_logfile_size_default=1048576 # 1 MB
+AC_ARG_ENABLE([critical-logsize],
+ AS_HELP_STRING([--critical-log-size=SIZE], [size of the critical log file in bytes (default: $critical_logfile_size_default)]),
+ [critical_logsize=$enableval],
+ [critical_logsize=$critical_logfile_size_default])
+AC_DEFINE_UNQUOTED([DLOG_CRITICAL_LOGFILE_SIZE], [$critical_logsize])
+AC_SUBST([DLOG_CRITICAL_LOGFILE_SIZE], [$critical_logsize])
+
+AC_ARG_ENABLE([android-monotonic],
+ AS_HELP_STRING([--enable-android-monotonic], [use monotonic send timestamp with log message when using android backend (EXPERIMENTAL)]),
+ [android_monotonic=true],
+ [android_monotonic=false])
+if test x$android_monotonic = xtrue; then
+ AC_DEFINE_UNQUOTED([USE_ANDROID_MONOTONIC])
+fi
+
+AC_ARG_ENABLE([lowmem-notification],
+ AS_HELP_STRING([--enable-lowmem-notification], [enable low memory notification feature in dlog_logger]),
+ [lowmem_notification=true],
+ [lowmem_notification=false])
+if test "${lowmem_notification}" = "true"; then
+ PKG_CHECK_MODULES([VCONF], [vconf])
+ PKG_CHECK_MODULES([GIO], [gio-2.0])
+
+ AC_SUBST(LOWMEM_NOTIFICATION, "true")
+ AC_DEFINE_UNQUOTED([LOWMEM_NOTIFICATION])
+else
+ AC_SUBST(LOWMEM_NOTIFICATION, "false")
+fi
+
# output files
-AC_CONFIG_FILES([Makefile dlog.pc])
+AC_SUBST([datadir])
+AC_SUBST([libexecdir])
+AC_CONFIG_FILES([Makefile dlog.pc dlogutil.pc dlog-redirect-stdout.pc]
+ [dlog_test:tests/dlog_test.in]
+ [run-unittest.sh:tests/dlog_coverage.in]
+ [dlog_test_header:tests/dlog_test_header.in]
+ [dlog_test_daemon_early_quit:tests/dlog_test_daemon_early_quit.in]
+ [dlog_test_stdout_redirect:tests/dlog_test_stdout_redirect.in]
+ [dlog_test_tid_filtering_secure_logging:tests/dlog_test_tid_filtering_secure_logging.in]
+ [dlog_test_backend_autodetection:tests/dlog_test_backend_autodetection.in]
+ [dlog_test_logger_buffering_logging:tests/dlog_test_logger_buffering_logging.in]
+ [dlog_cpu:tests/dlog_cpu.in]
+ [README.testsuite:tests/README.testsuite.in]
+ [units/dlog_logger.service]
+ [units/dlog_cleanup.service])
+
AC_OUTPUT
+
+AC_MSG_RESULT([
+ $PACKAGE $VERSION
+ =====
+
+ compiler: ${CC}
+ cflags: ${CFLAGS}
+ ldflags: ${LDFLAGS}
+
+ server's user: ${dlog_server_user}
+ server's group: ${dlog_server_group}
+])