blob: e155e62059759fd7ddd7ef67c73233bcb92fa3be [file] [log] [blame]
Haiyue Wanga1c50752018-04-03 15:16:09 +08001# Initialization
2AC_PREREQ([2.69])
3AC_INIT([kcsbridge], [1.0], [https://github.com/openbmc/kcsbridge/issues])
4AC_CONFIG_HEADERS([config.h])
5AM_INIT_AUTOMAKE([subdir-objects -Wall -Werror foreign dist-xz])
6AM_SILENT_RULES([yes])
Vernon Mauery9ce5a9a2019-03-12 13:59:25 -07007AC_LANG([C++])
Haiyue Wanga1c50752018-04-03 15:16:09 +08008
9# Checks for programs.
Vernon Mauery9ce5a9a2019-03-12 13:59:25 -070010AC_PROG_CXX
Haiyue Wanga1c50752018-04-03 15:16:09 +080011AM_PROG_AR
12AC_PROG_INSTALL
13AC_PROG_MAKE_SET
14
15# Checks for libraries.
16PKG_CHECK_MODULES([SYSTEMD], [libsystemd >= 221])
Vernon Mauery9ce5a9a2019-03-12 13:59:25 -070017PKG_CHECK_MODULES([PHOSPHOR_LOGGING], [phosphor-logging])
18PKG_CHECK_MODULES([SDBUSPLUS], [sdbusplus])
Haiyue Wanga1c50752018-04-03 15:16:09 +080019
Vernon Mauery7a925aa2019-04-18 13:13:47 -070020# systemd unit general configuration
21PKG_PROG_PKG_CONFIG
22AC_ARG_WITH([systemdsystemunitdir],
23 [AS_HELP_STRING([--with-systemdsystemunitdir=DIR],
24 [Directory for systemd service files])], [],
25 [with_systemdsystemunitdir=auto])
26AS_IF([test "x$with_systemdsystemunitdir" = "xyes" -o "x$with_systemdsystemunitdir" = "xauto"],
27 [def_systemdsystemunitdir=$($PKG_CONFIG --variable=systemdsystemunitdir systemd)
28 AS_IF([test "x$def_systemdsystemunitdir" = "x"],
29 [AS_IF([test "x$with_systemdsystemunitdir" = "xyes"],
30 [AC_MSG_ERROR([systemd support requested but pkg-config unable to query systemd package])],
31 [with_systemdsystemunitdir=no])],
32 [with_systemdsystemunitdir="$def_systemdsystemunitdir"])])
33AS_IF([test "x$with_systemdsystemunitdir" != "xno"],
34 [AC_SUBST([systemdsystemunitdir], [$with_systemdsystemunitdir])])
35AM_CONDITIONAL([HAVE_SYSTEMD], [test "x$with_systemdsystemunitdir" != "xno"])
36
Haiyue Wanga1c50752018-04-03 15:16:09 +080037# Checks for header files.
Gunnar Millsccf086f2018-08-31 12:38:18 -050038AC_CHECK_HEADER(systemd/sd-bus.h, ,[AC_MSG_ERROR([Could not find systemd/sd-bus.h...systemd development package required])])
Haiyue Wanga1c50752018-04-03 15:16:09 +080039AC_CHECK_HEADER(linux/ipmi_bmc.h,[HAVE_LINUX_IPMI_BMC_H=""],[HAVE_LINUX_IPMI_BMC_H="-I linux/ipmi_bmc.h"])
40AS_IF([test "$HAVE_LINUX_IPMI_BMC_H" != ""],
41 AC_MSG_WARN([Could not find linux/ipmi-bmc.h: Attempting to download locally for building from https://raw.githubusercontent.com/torvalds/linux/master/include/uapi/linux/ipmi_bmc.h])
42 AC_SUBST([IPMI_BMC_DL],[`mkdir -p linux;wget https://raw.githubusercontent.com/torvalds/linux/master/include/uapi/linux/ipmi_bmc.h -O linux/ipmi_bmc.h`])
43)
44
45# Checks for typedefs, structures, and compiler characteristics.
Vernon Mauery9ce5a9a2019-03-12 13:59:25 -070046AX_CXX_COMPILE_STDCXX([17], [noext], [mandatory])
Haiyue Wanga1c50752018-04-03 15:16:09 +080047AX_APPEND_COMPILE_FLAGS([-fpic -Wall -Werror], [CFLAGS])
48
49# Checks for library functions.
50LT_INIT # Removes 'unrecognized options: --with-libtool-sysroot'
51
52# Check/set gtest specific functions.
53AX_PTHREAD([GTEST_CPPFLAGS="-DGTEST_HAS_PTHREAD=1"],[GTEST_CPPFLAGS="-DGTEST_HAS_PTHREAD=0"])
54AC_SUBST(GTEST_CPPFLAGS)
55
56AC_ARG_ENABLE([oe-sdk],
57 AS_HELP_STRING([--enable-oe-sdk], [Link testcases absolutely against OE SDK so they can be ran within it.])
58)
59AC_ARG_VAR(OECORE_TARGET_SYSROOT,
60 [Path to the OE SDK SYSROOT])
61AS_IF([test "x$enable_oe_sdk" == "xyes"],
62 AS_IF([test "x$OECORE_TARGET_SYSROOT" == "x"],
63 AC_MSG_ERROR([OECORE_TARGET_SYSROOT must be set with --enable-oe-sdk])
64 )
65 AC_MSG_NOTICE([Enabling OE-SDK at $OECORE_TARGET_SYSROOT])
66 [
67 testcase_flags="-Wl,-rpath,\${OECORE_TARGET_SYSROOT}/lib"
68 testcase_flags="${testcase_flags} -Wl,-rpath,\${OECORE_TARGET_SYSROOT}/usr/lib"
69 testcase_flags="${testcase_flags} -Wl,-dynamic-linker,`find \${OECORE_TARGET_SYSROOT}/lib/ld-*.so | sort -r -n | head -n1`"
70 ]
71 AC_SUBST([OESDK_TESTCASE_FLAGS], [$testcase_flags])
72)
73
74# Create configured output
75AC_CONFIG_FILES([Makefile])
76AC_OUTPUT