dnl _HK_LIB_ENABLE_IMPL(name, description, config_define, enable_var, dnl enabled_list, [commands], [unimplemented]) dnl name - Name of the library (e.g., xcbXorg) dnl description - Human readable description dnl config_define - Configuration define name (e.g., CONFIG_XCBXORG_ENABLED) dnl enable_var - Shell variable to track enabled status dnl enabled_list - List variable to append name to (e.g., SENSEAPIS_ENABLED) dnl commands - Optional: Shell commands to execute when enabling dnl unimplemented - Optional: If "unimplemented", error out AC_DEFUN([_HK_LIB_ENABLE_IMPL], [ AS_IF([test "x[]m4_normalize($7)" = "xunimplemented"], [ AC_MSG_ERROR([$1 is not yet implemented]) ]) AS_IF([test "x${$4_done}" != "xyes"], [ $4_done=yes AC_DEFINE([$3], [1], [Enable $2]) $5="${$5} $1" $6 ]) ]) dnl _HK_LIB_ARG_ENABLE(dev_api_type, name, description, config_define, dnl enabled_list, [commands], [unimplemented]) dnl lib/api_type - Type of API ("senseapi", "wilzorapi", or "lib") dnl name - Name of the library (e.g., xcbXorg) dnl description - Human readable description dnl config_define - Configuration define name (e.g., CONFIG_XCBXORG_ENABLED) dnl enabled_list - List variable to append name to dnl commands - Optional: Shell commands to execute when enabling dnl unimplemented - Optional: If "unimplemented", error out AC_DEFUN([_HK_LIB_ARG_ENABLE], [ AC_ARG_ENABLE([$1-$2], [AS_HELP_STRING([--enable-$1-$2], [Enable $3])], [AS_IF([test "x$enable_$1_$2" != "xno"], [ _HK_LIB_ENABLE_IMPL([$2], [$3], [$4], [enable_$1_$2], [$5], [$6], [$7]) ])], [enable_$1_$2=no] ) ]) # Macro for enabling the XCB/Xorg Connection Mgr lib. Invoked by several other # libs. AC_DEFUN([_HK_LIB_XCBXORG_ENABLE], [ _HK_LIB_ENABLE_IMPL([xcbXorg], [XCB/Xorg Connection Manager backend], [CONFIG_LIB_XCBXORG_ENABLED], [enable_lib_xcbXorg], [COMMONLIBS_ENABLED], [ PKG_CHECK_MODULES([XCB], [xcb], [], [ AC_MSG_ERROR(m4_normalize([XCB library not found. Sense API XCB/Xorg requires the XCB dev headers and shlib.])) ]) AC_SUBST([XCB_CFLAGS]) AC_SUBST([XCB_LIBS]) ] ) ]) AC_DEFUN([_HK_LIB_ALSA_ENABLE], [ _HK_LIB_ENABLE_IMPL([alsa], [ALSA Connection Manager backend], [CONFIG_LIB_ALSA_ENABLED], [enable_lib_alsa], [COMMONLIBS_ENABLED], [ PKG_CHECK_MODULES([ALSA], [alsa], [], [ AC_MSG_ERROR(m4_normalize([ALSA library not found. Sense API ALSA requires the ALSA dev headers and shlib.])) ]) AC_SUBST([ALSA_CFLAGS]) AC_SUBST([ALSA_LIBS]) ] ) ]) # Temporary until we implement the xcbWindow SenseAPI. _HK_LIB_XCBXORG_ENABLE