blob: 0cb8a843edd4905b38482f043947855932cd44f4 [file] [log] [blame]
Ratan Guptaec26fa62018-04-16 15:28:36 +05301AC_PREREQ([2.69])
2AC_INIT([phosphor-snmp], [1.0], [https://github.com/openbmc/openbmc/phosphor-snmp.git])
3AC_LANG([C++])
4AM_INIT_AUTOMAKE([subdir-objects -Wall -Werror foreign])
5AM_SILENT_RULES([yes])
6
7# Compiler flags
8CXXFLAGS="$CXXFLAGS -fpic -Wall -Werror"
9
10# Check for programs
11AC_PROG_CXX
12AM_PROG_AR
13AC_PROG_INSTALL
14AC_PROG_MAKE_SET
Ratan Gupta1dc91782018-04-19 16:47:12 +053015AC_PROG_MKDIR_P
Ratan Guptaec26fa62018-04-16 15:28:36 +053016
17LT_PREREQ([2.4.6])
18LT_INIT([dlopen disable-static shared])
19
Vernon Maueryce714f42018-10-04 10:19:39 -070020AX_CXX_COMPILE_STDCXX_17([noext])
21
Ratan Gupta1dc91782018-04-19 16:47:12 +053022# Checks for libraries.
23AX_PKG_CHECK_MODULES([SYSTEMD], [], [libsystemd >= 221], [],\
24[AC_MSG_ERROR(["Systemd version should be greater then 221."])])
25
26AX_PKG_CHECK_MODULES([SDBUSPLUS], [sdbusplus], [], [],\
27[AC_MSG_ERROR(["Requires sdbusplus package."])])
28
29
30AC_PATH_PROG([SDBUSPLUSPLUS], [sdbus++])
31
32AX_PKG_CHECK_MODULES([PHOSPHOR_LOGGING], [], [phosphor-logging], [],\
33[AC_MSG_ERROR(["Requires phosphor-logging package."])])
34
35# Checks for header files.
36AC_CHECK_HEADER(systemd/sd-bus.h, ,\
37[AC_MSG_ERROR([Could not find systemd/sd-bus.h...systemd development package required])])
38
39AX_PKG_CHECK_MODULES([PHOSPHOR_DBUS_INTERFACES], [], [phosphor-dbus-interfaces],\
40[], [AC_MSG_ERROR(["phosphor-dbus-interfaces required and not found."])])
41
Ratan Guptaec26fa62018-04-16 15:28:36 +053042AC_CHECK_HEADERS([net-snmp/net-snmp-config.h],,\
43 AC_MSG_ERROR(["Requires net-snmp headers"]))
44
Ratan Gupta1dc91782018-04-19 16:47:12 +053045AC_ARG_VAR(BUSNAME_NETWORK_SNMP, [The Dbus busname to own])
46AS_IF([test "x$BUSNAME_NETWORK_SNMP" == "x"], [BUSNAME_NETWORK_SNMP="xyz.openbmc_project.Network.SNMP"])
47AC_DEFINE_UNQUOTED([BUSNAME_NETWORK_SNMP], ["$BUSNAME_NETWORK_SNMP"], [The DBus busname to own])
48
49AC_ARG_VAR(OBJ_NETWORK_SNMP, [The network snmp root DBus object path])
50AS_IF([test "x$OBJ_NETWORK_SNMP" == "x"], [OBJ_NETWORK_SNMP="/xyz/openbmc_project/network/snmp/manager"])
51AC_DEFINE_UNQUOTED([OBJ_NETWORK_SNMP], ["$OBJ_NETWORK_SNMP"], [The network snmp root DBus object path])
52
Ratan Gupta212f53e2018-04-30 17:28:05 +053053AC_ARG_VAR(CLASS_VERSION, [Class version to register with Cereal])
54AS_IF([test "x$CLASS_VERSION" == "x"], [CLASS_VERSION=1])
55AC_DEFINE_UNQUOTED([CLASS_VERSION], [$CLASS_VERSION], [Class version to register with Cereal])
56
57AC_ARG_VAR(SNMP_CONF_PERSIST_PATH, [path of directory having persisted snmp managers.])
58AS_IF([test "x$SNMP_CONF_PERSIST_PATH" == "x"], \
59 [SNMP_CONF_PERSIST_PATH="/var/lib/phosphor-snmp/managers/"])
60AC_DEFINE_UNQUOTED([SNMP_CONF_PERSIST_PATH], ["$SNMP_CONF_PERSIST_PATH"], \
61 [Path of directory having persisted snmp managers.])
62
Ratan Gupta1dc91782018-04-19 16:47:12 +053063
Ratan Guptaec26fa62018-04-16 15:28:36 +053064# Checks for library functions
65LT_INIT # Required for systemd linking
66
67# Check/set gtest specific functions.
68AX_PTHREAD([GTEST_CPPFLAGS="-DGTEST_HAS_PTHREAD=1"],[GTEST_CPPFLAGS="-GTEST_HAS_PTHREAD=0"])
69AC_SUBST(GTEST_CPPFLAGS)
70
71# Add the code covererage
72AX_CODE_COVERAGE
73
74AC_ARG_ENABLE([oe-sdk],
75 AS_HELP_STRING([--enable-oe-sdk], [Link testcases absolutely against OE SDK so they can be ran within it.])
76)
77AC_ARG_VAR(OECORE_TARGET_SYSROOT,
78 [Path to the OE SDK SYSROOT])
79AS_IF([test "x$enable_oe_sdk" == "xyes"],
80 AS_IF([test "x$OECORE_TARGET_SYSROOT" == "x"],
81 AC_MSG_ERROR([OECORE_TARGET_SYSROOT must be set with --enable-oe-sdk])
82 )
83 AC_MSG_NOTICE([Enabling OE-SDK at $OECORE_TARGET_SYSROOT])
84 [
85 testcase_flags="-Wl,-rpath,\${OECORE_TARGET_SYSROOT}/lib"
86 testcase_flags="${testcase_flags} -Wl,-rpath,\${OECORE_TARGET_SYSROOT}/usr/lib"
87 testcase_flags="${testcase_flags} -Wl,-dynamic-linker,`find \${OECORE_TARGET_SYSROOT}/lib/ld-*.so | sort -r -n | head -n1`"
88 ]
89 AC_SUBST([OESDK_TESTCASE_FLAGS], [$testcase_flags])
90)
91
Ratan Gupta1dc91782018-04-19 16:47:12 +053092# Create configured output
93AC_CONFIG_HEADERS([config.h])
Ratan Guptaec26fa62018-04-16 15:28:36 +053094AC_CONFIG_FILES([Makefile])
95AC_CONFIG_FILES([phosphor-snmp.pc])
96AC_OUTPUT