mirror of
https://github.com/clearlinux/telemetrics-client.git
synced 2026-06-15 18:25:57 +00:00
0c34fab4fa
Small improvements after static code analysis. Signed-off-by: Alex Jaramillo <alex.v.jaramillo@intel.com>
187 lines
6.5 KiB
Plaintext
187 lines
6.5 KiB
Plaintext
# -*- Autoconf -*-
|
|
# Process this file with autoconf to produce a configure script.
|
|
|
|
AC_PREREQ([2.69])
|
|
AC_INIT([telemetrics-client], [2.4.3], [https://clearlinux.org/])
|
|
AC_CONFIG_AUX_DIR([build-aux])
|
|
AM_INIT_AUTOMAKE([1.14 -Wall -Werror -Wno-extra-portability foreign subdir-objects])
|
|
AM_SILENT_RULES([yes])
|
|
LT_INIT([disable-static])
|
|
AC_CONFIG_MACRO_DIRS([build-aux/m4])
|
|
AC_CONFIG_SRCDIR([src/probe.c])
|
|
AC_CONFIG_HEADERS([config.h])
|
|
|
|
# Checks for programs.
|
|
AC_PROG_CXX
|
|
AC_PROG_AWK
|
|
AC_PROG_CC
|
|
AC_PROG_CPP
|
|
AC_PROG_INSTALL
|
|
AC_PROG_LN_S
|
|
AC_PROG_MAKE_SET
|
|
|
|
# Valgrind check
|
|
AX_VALGRIND_DFLT(memcheck, on)
|
|
AX_VALGRIND_DFLT(helgrind, off)
|
|
AX_VALGRIND_DFLT(drd, off)
|
|
AX_VALGRIND_DFLT(sgcheck, off)
|
|
|
|
AX_VALGRIND_CHECK
|
|
|
|
# Checks for libraries.
|
|
|
|
# check >= 0.9.12 is required for TAP output
|
|
PKG_CHECK_MODULES([CHECK], [check >= 0.12])
|
|
PKG_CHECK_MODULES([CURL], [libcurl])
|
|
PKG_CHECK_MODULES([JSON_C], [json-c])
|
|
AC_CHECK_LIB([elf], [elf_begin], [have_elflib=yes], [AC_MSG_ERROR([Unable to find libelf from elfutils])])
|
|
AC_CHECK_LIB([dw], [dwfl_begin], [have_dwlib=yes], [AC_MSG_ERROR([Unable to find libdw from elfutils])])
|
|
AS_IF([test "x$have_elflib" = "xyes" -a "x$have_dwlib" = "xyes"],
|
|
[AC_SUBST(ELFUTILS_LIBS, "-lelf -ldw")])
|
|
|
|
# Special checks for systemd libs
|
|
TELEM_CHECK_SYSTEMD([journal],[JOURNAL])
|
|
TELEM_CHECK_SYSTEMD([daemon],[DAEMON])
|
|
TELEM_CHECK_SYSTEMD([id128],[ID128])
|
|
|
|
# Checks for header files.
|
|
AC_CHECK_HEADERS([curl/curl.h])
|
|
AC_CHECK_HEADERS([elfutils/libdwfl.h])
|
|
AC_CHECK_HEADERS([fcntl.h])
|
|
AC_CHECK_HEADERS([getopt.h])
|
|
AC_CHECK_HEADERS([inttypes.h])
|
|
AC_CHECK_HEADERS([json-c/json.h])
|
|
AC_CHECK_HEADERS([libelf.h])
|
|
AC_CHECK_HEADERS([limits.h])
|
|
AC_CHECK_HEADERS([stdarg.h])
|
|
AC_CHECK_HEADERS([stdint.h])
|
|
AC_CHECK_HEADERS([stdlib.h])
|
|
AC_CHECK_HEADERS([string.h])
|
|
AC_CHECK_HEADERS([sys/fcntl.h])
|
|
AC_CHECK_HEADERS([sys/queue.h])
|
|
AC_CHECK_HEADERS([sys/prctl.h])
|
|
AC_CHECK_HEADERS([sys/socket.h])
|
|
AC_CHECK_HEADERS([sys/types.h])
|
|
AC_CHECK_HEADERS([syslog.h])
|
|
AC_CHECK_HEADERS([unistd.h])
|
|
|
|
# Checks for typedefs, structures, and compiler characteristics.
|
|
AC_CHECK_HEADER_STDBOOL
|
|
AC_C_INLINE
|
|
AC_TYPE_INT32_T
|
|
AC_TYPE_PID_T
|
|
AC_TYPE_SIZE_T
|
|
AC_TYPE_SSIZE_T
|
|
AC_TYPE_UINT32_T
|
|
AC_TYPE_UINT64_T
|
|
AC_TYPE_UINT8_T
|
|
|
|
# Checks for library functions.
|
|
AC_FUNC_MALLOC
|
|
AC_FUNC_REALLOC
|
|
AC_CHECK_FUNCS([memmove])
|
|
AC_CHECK_FUNCS([memset])
|
|
AC_CHECK_FUNCS([socket])
|
|
AC_CHECK_FUNCS([strdup])
|
|
AC_CHECK_FUNCS([strerror])
|
|
AC_CHECK_FUNCS([strndup])
|
|
AC_CHECK_FUNCS([strtol])
|
|
AC_CHECK_FUNCS([uname])
|
|
|
|
# Options
|
|
|
|
AC_ARG_WITH([systemdsystemunitdir], AS_HELP_STRING([--with-systemdsystemunitdir=DIR],
|
|
[path to systemd system service dir @<:@default=/usr/lib/systemd/system@:>@]), [unitpath=${withval}],
|
|
[unitpath="$($PKG_CONFIG --variable=systemdsystemunitdir systemd)"])
|
|
test -z "${unitpath}" && unitpath=/usr/lib/systemd/system
|
|
AC_SUBST(SYSTEMD_UNITDIR, [${unitpath}])
|
|
|
|
AC_ARG_WITH([systemdtmpfilesdir], AS_HELP_STRING([--with-systemdtmpfilesdir=DIR],
|
|
[path to systemd tmpfiles dir @<:@default=/usr/lib/tmpfiles.d@:>@]), [tmpfilespath=${withval}],
|
|
[tmpfilespath="$($PKG_CONFIG --variable=tmpfilesdir systemd)"])
|
|
test -z "${tmpfilespath}" && tmpfilespath=/usr/lib/tmpfiles.d
|
|
AC_SUBST(SYSTEMD_TMPFILESDIR, [${tmpfilespath}])
|
|
|
|
AC_ARG_WITH([systemdsysctldir], AS_HELP_STRING([--with-systemdsysctldir=DIR],
|
|
[path to systemd sysctl dir @<:@default=/usr/lib/sysctl.d@:>@]), [sysctlpath=${withval}],
|
|
[sysctlpath="$($PKG_CONFIG --variable=sysctldir systemd)"])
|
|
test -z "${sysctlpath}" && sysctlpath=/usr/lib/sysctl.d
|
|
AC_SUBST(SYSTEMD_SYSCTLDIR, [${sysctlpath}])
|
|
|
|
AC_ARG_WITH([systemdsystemctldir], AS_HELP_STRING([--with-systemdsystemctldir=DIR],
|
|
[path to systemd systemctl dir @<:@default=/usr/bin@:>@]), [systemctlpath=${withval}])
|
|
test -z "${systemctlpath}" && systemctlpath=/usr/bin
|
|
AC_SUBST(SYSTEMD_SYSTEMCTLDIR, [${systemctlpath}])
|
|
|
|
# systemd.pc gives the /etc conf dir, so we can't use PKG_CONFIG for this one
|
|
AC_ARG_WITH([systemdsystemconfdir], AS_HELP_STRING([--with-systemdsystemconfdir=DIR],
|
|
[path to systemd system conf dir @<:@default=/usr/lib/systemd/system.conf.d@:>@]), [confpath=${withval}],
|
|
[confpath="/usr/lib/systemd/system.conf.d"])
|
|
AC_SUBST(SYSTEMD_SYSTEMCONFDIR, [${confpath}])
|
|
|
|
AC_ARG_WITH([socketdir], AS_HELP_STRING([--with-socketdir=DIR],
|
|
[path to dir for telemetrics socket @<:@default=/run@:>@]), [socketpath=${withval}],
|
|
[socketpath="/run"])
|
|
AC_SUBST(SOCKETDIR, [${socketpath}])
|
|
|
|
AC_ARG_WITH([loglevel], AS_HELP_STRING([--with-loglevel=NUM],
|
|
[maximum log level for binaries @<:@default=5@:>@]), [loglevel=${withval}],
|
|
[loglevel=5])
|
|
AC_DEFINE_UNQUOTED([MAX_LOG_LEVEL], [${loglevel}], [Maximum log level for binaries])
|
|
|
|
AC_ARG_WITH([backendserveraddr], AS_HELP_STRING([--with-backendserveraddr=URI],
|
|
[uri to telemetrics backend server @<:@default=https://clr.telemetry.intel.com/v3/collector@:>@]), [backendaddr=${withval}])
|
|
test -z "${backendaddr}" && backendaddr=https://clr.telemetry.intel.com/v3/collector
|
|
AC_SUBST(BACKEND_ADDR, [${backendaddr}])
|
|
|
|
AC_ARG_ENABLE([logtype], AS_HELP_STRING([--enable-logtype],
|
|
[Vector for logging: stderr (default), syslog, systemd]),
|
|
[case ${enableval} in
|
|
systemd) logtype="systemd";;
|
|
syslog) logtype="syslog" ;;
|
|
stderr) logtype="stderr" ;;
|
|
*) AC_MSG_ERROR([bad value ${enableval} for --enable-logtype]);;
|
|
esac],
|
|
[logtype="stderr"])
|
|
|
|
AM_CONDITIONAL([LOG_STDERR], [test x$logtype = xstderr])
|
|
AM_CONDITIONAL([LOG_SYSLOG], [test x$logtype = xsyslog])
|
|
AM_CONDITIONAL([LOG_SYSTEMD], [test x$logtype = xsystemd])
|
|
|
|
case x$logtype in
|
|
xsystemd) AC_DEFINE([TM_LOG_SYSTEMD], [1], [Log through systemd apis]);;
|
|
xsyslog) AC_DEFINE([TM_LOG_SYSLOG], [1], [Log through syslog apis]);;
|
|
xstderr) AC_DEFINE([TM_LOG_STDERR], [1], [Log through fprintf(stder...)]);;
|
|
esac
|
|
|
|
AC_CONFIG_COMMANDS([config dir],[mkdir -p src/data; touch src/data/.dirstamp])
|
|
AC_CONFIG_FILES([Makefile])
|
|
AC_REQUIRE_AUX_FILE([tap-driver.sh])
|
|
AC_OUTPUT
|
|
|
|
AC_MSG_NOTICE([
|
|
|
|
telemetrics-client $VERSION
|
|
===========================
|
|
|
|
prefix: $prefix
|
|
exec_prefix: $exec_prefix
|
|
libdir: $libdir
|
|
bindir: $bindir
|
|
datarootdir: $datarootdir
|
|
|
|
compiler: $CC
|
|
cflags: $CFLAGS
|
|
ldflags: $LDFLAGS
|
|
|
|
unitdir: $unitpath
|
|
tmpfilesdir: $tmpfilespath
|
|
sysctldir: $sysctlpath
|
|
systemconfdir: $confpath
|
|
socketdir: $socketpath
|
|
loglevel: $loglevel
|
|
logtype: $logtype
|
|
|
|
valgrind: $enable_valgrind
|
|
])
|