7
7
AC_DEFUN([NUT_CHECK_LIBHAL],
9
9
if test -z "${nut_have_libhal_seen}"; then
10
nut_have_libhal_seen=yes
12
CFLAGS_ORIG="${CFLAGS}"
13
CPPFLAGS_ORIG="${CPPFLAGS}"
14
LDFLAGS_ORIG="${LDFLAGS}"
17
AC_MSG_CHECKING(for libhal version via pkg-config (0.5.8 minimum required))
18
HAL_VERSION=`pkg-config --silence-errors --modversion hal`
19
HAL_MIN_VERSION=`pkg-config --silence-errors --atleast-version=0.5.8 hal`
22
AC_MSG_RESULT(${HAL_VERSION} found)
25
AC_MSG_RESULT(${HAL_VERSION} found)
28
dnl also get cflags from glib-2.0 to workaround a bug in dbus-glib
29
AC_MSG_CHECKING(for libhal cflags via pkg-config)
30
CFLAGS=`pkg-config --silence-errors --cflags hal dbus-glib-1`
33
AC_MSG_RESULT(not found)
36
AC_MSG_RESULT(${CFLAGS})
39
dnl also get libs from glib-2.0 to workaround a bug in dbus-glib
40
AC_MSG_CHECKING(for libhal ldflags via pkg-config)
41
LDFLAGS=`pkg-config --silence-errors --libs hal dbus-glib-1`
44
AC_MSG_RESULT(not found)
47
AC_MSG_RESULT(${LDFLAGS})
50
dnl this will only work as of HAL 0.5.9
51
AC_MSG_CHECKING(for libhal user via pkg-config)
52
HAL_USER=`pkg-config --silence-errors --variable=haluser hal`
53
if (test -z "$HAL_USER")
56
AC_MSG_RESULT(using default (${HAL_USER}))
58
AC_MSG_RESULT(${HAL_USER})
60
AC_DEFINE_UNQUOTED(HAL_USER, "${HAL_USER}", [HAL user])
62
dnl the device match key changed with HAL 0.5.11
63
AC_MSG_CHECKING(for hal-${HAL_VERSION} device match key)
64
HAL_DEVICE_MATCH_KEY=`pkg-config --silence-errors --atleast-version=0.5.11 hal`
67
HAL_DEVICE_MATCH_KEY="info.bus"
69
HAL_DEVICE_MATCH_KEY="info.subsystem"
71
AC_MSG_RESULT(${HAL_DEVICE_MATCH_KEY})
72
AC_DEFINE_UNQUOTED(HAL_DEVICE_MATCH_KEY, "${HAL_DEVICE_MATCH_KEY}", [HAL device match key])
74
dnl Determine installation paths for callout and .fdi
75
dnl As per HAL spec, §5 Callouts and §2 Device Information Files
76
dnl - addon install path: $libdir/hal
77
AC_MSG_CHECKING(for libhal Callouts path)
78
HAL_CALLOUTS_PATH=`pkg-config --silence-errors --variable=libexecdir hal`
79
if (test -z "$HAL_CALLOUTS_PATH")
81
# fallback to detecting the right path
82
if (test -d "${libdir}/hal")
85
HAL_CALLOUTS_PATH="${libdir}/hal"
86
AC_MSG_RESULT(${HAL_CALLOUTS_PATH})
88
if (test -d "/usr/libexec")
90
HAL_CALLOUTS_PATH="${libexecdir}"
91
AC_MSG_RESULT(${HAL_CALLOUTS_PATH})
94
HAL_CALLOUTS_PATH="${libdir}/hal"
95
AC_MSG_RESULT(using default (${HAL_CALLOUTS_PATH}))
99
AC_MSG_RESULT(${HAL_CALLOUTS_PATH})
102
dnl - fdi install path: $datarootdir/hal/fdi/information/20thirdparty
103
AC_MSG_CHECKING(for libhal Device Information path)
104
HAL_FDI_PATH=`pkg-config --silence-errors --variable=hal_fdidir hal`
105
if (test -z "$HAL_FDI_PATH")
107
# fallback to detecting the right path
108
if (test -d "/usr/share/hal/fdi/information/20thirdparty")
110
# seems supported everywhere
111
HAL_FDI_PATH="${datarootdir}/hal/fdi/information/20thirdparty"
112
AC_MSG_RESULT(${HAL_FDI_PATH})
116
AC_MSG_RESULT(not found)
119
HAL_FDI_PATH="${HAL_FDI_PATH}/information/20thirdparty"
120
AC_MSG_RESULT(${HAL_FDI_PATH})
123
if test "${nut_have_libhal}" != "yes"; then
126
CFLAGS="-DDBUS_API_SUBJECT_TO_CHANGE -I/usr/include/hal -I/usr/include/dbus-1.0 -I/usr/lib/dbus-1.0/include"
128
LDFLAGS="-lhal -ldbus-1 -lpthread"
130
AC_CHECK_HEADER(libhal.h, , [nut_have_libhal=no])
131
AC_CHECK_LIB(hal, libhal_device_new_changeset, [nut_have_libhal=yes],
132
[nut_have_libhal=no],
136
if test "${nut_have_libhal}" = "yes"; then
137
LIBHAL_CFLAGS="${CFLAGS}"
138
LIBHAL_LDFLAGS="${LDFLAGS}"
141
CFLAGS="${CFLAGS_ORIG}"
142
CPPFLAGS="${CPPFLAGS_ORIG}"
143
LDFLAGS="${LDFLAGS_ORIG}"
145
dnl - test for g_timeout_add_seconds availability
146
AC_MSG_CHECKING([if GLib is version 2.14.0 or newer])
147
if pkg-config --atleast-version=2.14.0 glib-2.0; then
148
AC_DEFINE(HAVE_GLIB_2_14, 1, [Define to 1 if GLib is version 2.14 or newer])
10
nut_have_libhal_seen=yes
12
CFLAGS_ORIG="${CFLAGS}"
15
AC_MSG_CHECKING(for libhal version via pkg-config (0.5.8 minimum required))
16
HAL_VERSION="`pkg-config --silence-errors --modversion hal 2>/dev/null`"
17
if test "$?" != "0" -o -z "${HAL_VERSION}"; then
18
AC_MSG_RESULT(none found)
19
elif pkg-config --silence-errors --atleast-version=0.5.8 hal 2>/dev/null; then
20
AC_MSG_RESULT(${HAL_VERSION} found)
22
AC_MSG_WARN(${HAL_VERSION} is too old)
25
AC_MSG_CHECKING(for libhal cflags)
26
AC_ARG_WITH(hal-includes,
27
AS_HELP_STRING([@<:@--with-hal-includes=CFLAGS@:>@], [include flags for the HAL library]),
31
AC_MSG_ERROR(invalid option --with(out)-hal-includes - see docs/configure.txt)
38
dnl also get cflags from glib-2.0 to workaround a bug in dbus-glib
39
CFLAGS="`pkg-config --silence-errors --cflags hal dbus-glib-1 2>/dev/null`"
40
if test "$?" != "0"; then
41
CFLAGS="-DDBUS_API_SUBJECT_TO_CHANGE -I/usr/include/hal -I/usr/include/dbus-1.0 -I/usr/lib/dbus-1.0/include"
44
AC_MSG_RESULT([${CFLAGS}])
46
AC_MSG_CHECKING(for libhal ldflags)
48
AS_HELP_STRING([@<:@--with-hal-libs=LIBS@:>@], [linker flags for the HAL library]),
52
AC_MSG_ERROR(invalid option --with(out)-hal-libs - see docs/configure.txt)
59
dnl also get libs from glib-2.0 to workaround a bug in dbus-glib
60
LIBS="`pkg-config --silence-errors --libs hal dbus-glib-1 2>/dev/null`"
61
if test "$?" != "0"; then
62
LIBS="-lhal -ldbus-1 -lpthread"
65
AC_MSG_RESULT([${LIBS}])
67
dnl check if HAL is usable
68
AC_CHECK_HEADERS(libhal.h, [nut_have_libhal=yes], [nut_have_libhal=no], [AC_INCLUDES_DEFAULT])
69
AC_CHECK_HEADERS(glib.h dbus/dbus-glib.h, [], [nut_have_libhal=no], [AC_INCLUDES_DEFAULT])
70
AC_CHECK_FUNCS(libhal_device_new_changeset, [], [nut_have_libhal=no])
72
if test "${nut_have_libhal}" = "yes"; then
73
AC_CHECK_FUNCS(g_timeout_add_seconds)
74
LIBHAL_CFLAGS="${CFLAGS}"
78
CFLAGS="${CFLAGS_ORIG}"