blob: 706047287241b557e0377c2a804e41b4ecb3e3a8 [file] [log] [blame]
# Initialization
AC_PREREQ([2.69])
AC_INIT([phosphor-led-sysfs], [1.0], [https://github.com/openbmc/phosphor-led-sysfs/issues])
AC_LANG([C++])
AC_CONFIG_HEADERS([config.h])
AM_INIT_AUTOMAKE([subdir-objects -Wall -Werror foreign dist-xz])
AM_SILENT_RULES([yes])
# Checks for programs.
AC_PROG_CXX
AC_PROG_INSTALL
AC_PROG_MAKE_SET
# Checks for libraries.
PKG_CHECK_MODULES([SYSTEMD], [libsystemd >= 221])
# Checks for typedefs, structures, and compiler characteristics.
AX_CXX_COMPILE_STDCXX_17([noext])
AX_APPEND_COMPILE_FLAGS([-Wall -Werror], [CXXFLAGS])
# For libtools
LT_INIT
# Checks for header files.
PKG_CHECK_MODULES([SDBUSPLUS], [sdbusplus],, [AC_MSG_ERROR([Could not find sdbusplus...openbmc/sdbusplus package required])])
PKG_CHECK_MODULES([PHOSPHOR_DBUS_INTERFACES], [phosphor-dbus-interfaces],, [AC_MSG_ERROR([Could not find phosphor-dbus-interfaces...openbmc/phosphor-dbus-interfaces package required])])
# Check/set gtest specific functions.
AS_IF([test "x$enable_tests" != "xno"], [
PKG_CHECK_MODULES([GTEST], [gtest], [], [true])
PKG_CHECK_MODULES([GMOCK], [gmock], [], [true])
AX_PTHREAD
AX_SAVE_FLAGS_WITH_PREFIX(OLD, [CPPFLAGS])
AX_APPEND_COMPILE_FLAGS([$GTEST_CFLAGS], [CPPFLAGS])
AC_LANG_PUSH([C++])
AC_CHECK_HEADERS([gtest/gtest.h], [
AS_IF([test "x$GTEST_CFLAGS" = "x"], [
AS_IF([test "x$PTHREAD_CFLAGS" = "x"], [
AX_APPEND_COMPILE_FLAGS(["-DGTEST_HAS_PTHREAD=0"], [GTEST_CFLAGS])
], [
AX_APPEND_COMPILE_FLAGS(["-DGTEST_HAS_PTHREAD=1"], [GTEST_CFLAGS])
AX_APPEND_COMPILE_FLAGS([$PTHREAD_CFLAGS], [GTEST_CFLAGS])
])
])
], [
AS_IF([test "x$enable_tests" = "xyes"], [
AC_MSG_ERROR([Testing enabled but could not find gtest/gtest.h])
])
])
AC_LANG_POP([C++])
AX_RESTORE_FLAGS_WITH_PREFIX(OLD, [CPPFLAGS])
AX_SAVE_FLAGS_WITH_PREFIX(OLD, [CPPFLAGS])
AX_APPEND_COMPILE_FLAGS([$GMOCK_CFLAGS], [CPPFLAGS])
AC_LANG_PUSH([C++])
AC_CHECK_HEADERS([gmock/gmock.h], [], [
AS_IF([test "x$enable_tests" = "xyes"], [
AC_MSG_ERROR([Testing enabled but could not find gmock/gmock.h])
])
])
AC_LANG_POP([C++])
AX_RESTORE_FLAGS_WITH_PREFIX(OLD, [CPPFLAGS])
AX_SAVE_FLAGS_WITH_PREFIX(OLD, [LDFLAGS])
AX_APPEND_COMPILE_FLAGS([$GTEST_LIBS], [LDFLAGS])
AC_CHECK_LIB([gtest], [main], [
AS_IF([test "x$GTEST_LIBS" = "x"], [
AX_APPEND_COMPILE_FLAGS([-lgtest], [GTEST_LIBS])
])
], [
AS_IF([test "x$enable_tests" = "xyes"], [
AC_MSG_ERROR([Testing enabled but couldn't find gtest libs])
])
])
AX_RESTORE_FLAGS_WITH_PREFIX(OLD, [LDFLAGS])
AX_SAVE_FLAGS_WITH_PREFIX(OLD, [LDFLAGS])
AX_APPEND_COMPILE_FLAGS([$GMOCK_LIBS], [LDFLAGS])
AC_CHECK_LIB([gmock], [main], [
AS_IF([test "x$GMOCK_LIBS" = "x"], [
AX_APPEND_COMPILE_FLAGS([-lgmock], [GMOCK_LIBS])
])
], [
AS_IF([test "x$enable_tests" = "xyes"], [
AC_MSG_ERROR([Testing enabled but couldn't find gmock libs])
])
])
AX_RESTORE_FLAGS_WITH_PREFIX(OLD, [LDFLAGS])
])
AX_CODE_COVERAGE
AC_ARG_VAR(BUSNAME, [The Dbus busname to own])
AS_IF([test "x$BUSNAME" == "x"], [BUSNAME="xyz.openbmc_project.LED.Controller"])
AC_DEFINE_UNQUOTED([BUSNAME], ["$BUSNAME"], [The Dbus busname to own])
AC_ARG_VAR(OBJPATH, [The physical LED controller Dbus root])
AS_IF([test "x$OBJPATH" == "x"], [OBJPATH="/xyz/openbmc_project/led/physical"])
AC_DEFINE_UNQUOTED([OBJPATH], ["$OBJPATH"], [The physical LED controller Dbus root])
# Platform device path for led subsystem.
AC_ARG_VAR(DEVPATH, [Physical led device path])
AS_IF([test "x$DEVPATH" == "x"], [DEVPATH="/sys/class/leds/"])
AC_DEFINE_UNQUOTED([DEVPATH], ["$DEVPATH"], [Physical led device path])
# Create configured output
AC_CONFIG_FILES([Makefile])
AC_OUTPUT