summaryrefslogtreecommitdiffstats
path: root/configure.ac
diff options
context:
space:
mode:
authorGravatar Martin Szulecki2014-07-26 17:08:41 +0200
committerGravatar Martin Szulecki2014-09-19 18:54:02 +0200
commit577538f213cd7132c7450db393fd6fef6bb46b5a (patch)
tree74a21364696e0e2f375613e1c45006d5e6779dc0 /configure.ac
parentb7976d2a53b27ec9c42f81a22e91704dbcc5fb53 (diff)
downloadusbmuxd-577538f213cd7132c7450db393fd6fef6bb46b5a.tar.gz
usbmuxd-577538f213cd7132c7450db393fd6fef6bb46b5a.tar.bz2
Add systemd activation autofoo with fallback for udev and manual activation
Diffstat (limited to 'configure.ac')
-rw-r--r--configure.ac82
1 files changed, 78 insertions, 4 deletions
diff --git a/configure.ac b/configure.ac
index 6737f6f..33f6151 100644
--- a/configure.ac
+++ b/configure.ac
@@ -42,6 +42,45 @@ else
fi
fi
+AC_ARG_WITH([udevrulesdir],
+ AS_HELP_STRING([--with-udevrulesdir=DIR],
+ [Directory for udev rules]),
+ [],
+ [with_udevrulesdir=auto])
+if test "x$with_udevrulesdir" = "xauto"; then
+ udevdir=$($PKG_CONFIG --variable=udevdir udev)
+ if test "x$udevdir" != "x"; then
+ with_udevrulesdir=$udevdir"/rules.d"
+ else
+ with_udevrulesdir=$prefix/lib/udev/rules.d
+ fi
+fi
+AC_SUBST([udevrulesdir], [$with_udevrulesdir])
+
+AC_ARG_WITH([systemd],
+ [AS_HELP_STRING([--without-systemd],
+ [do not build with systemd support @<:@default=yes@:>@])],
+ [with_systemd=no],
+ [with_systemd=yes])
+
+AC_ARG_WITH([systemdsystemunitdir],
+ [AS_HELP_STRING([--with-systemdsystemunitdir=DIR],
+ [directory for systemd service files])],
+ [with_systemdsystemunitdir=$withval],
+ [with_systemdsystemunitdir=$($PKG_CONFIG --variable=systemdsystemunitdir systemd)])
+
+if test "x$with_systemdsystemunitdir" != xno; then
+ AC_SUBST([systemdsystemunitdir], [$with_systemdsystemunitdir])
+fi
+AM_CONDITIONAL(HAVE_SYSTEMD, [test -n "$with_systemdsystemunitdir" -a "x$with_systemdsystemunitdir" != xno -a "x$with_systemd" = "xyes" ])
+
+if test "x$with_systemd" = xyes; then
+ udev_activation_rule="TAG+=\"systemd\", ENV{SYSTEMD_WANTS}=\"usbmuxd.service\""
+else
+ udev_activation_rule="RUN+=\"@sbindir@/usbmuxd -u -U usbmux\""
+fi
+AC_SUBST(udev_activation_rule)
+
# Checks for header files.
AC_HEADER_STDC
AC_CHECK_HEADERS([stdint.h stdlib.h string.h])
@@ -61,20 +100,40 @@ AC_CHECK_FUNCS([strcasecmp strdup strerror strndup stpcpy])
# Check for operating system
AC_MSG_CHECKING([whether to enable WIN32 build settings])
+UDEV_SUB=
+SYSTEMD_SUB=
case ${host_os} in
*mingw32*|*cygwin*)
win32=true
AC_MSG_RESULT([yes])
AC_CHECK_TOOL([WINDRES], [windres], AC_MSG_ERROR([windres not found]))
AC_SUBST(WINDRES)
+ activation_method="manual"
+ ;;
+ darwin*)
+ win32=false
+ AC_MSG_RESULT([no])
+ activation_method="launchd"
;;
*)
win32=false
AC_MSG_RESULT([no])
+ UDEV_SUB=udev
+ activation_method="systemd"
+ if test "x$with_systemd" != "xyes"; then
+ echo "*** Note: support for systemd activation has been disabled, using udev activation instead ***"
+ activation_method="udev"
+ else
+ AC_DEFINE(WITH_SYSTEMD, 1, [Define to enable systemd support])
+ SYSTEMD_SUB=systemd
+ fi
;;
esac
AM_CONDITIONAL(WIN32, test x$win32 = xtrue)
+AC_SUBST([UDEV_SUB])
+AC_SUBST([SYSTEMD_SUB])
+
AS_COMPILER_FLAGS(GLOBAL_CFLAGS, "-g -Wall -Wextra -Wmissing-declarations -Wredundant-decls -Wshadow -Wpointer-arith -Wwrite-strings -Wswitch-default -Wno-unused-parameter")
AC_SUBST(GLOBAL_CFLAGS)
@@ -83,15 +142,30 @@ m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])])
AC_OUTPUT([
Makefile
src/Makefile
-udev/39-usbmuxd.rules
+udev/Makefile
+systemd/Makefile
])
-echo "
+echo -n "
Configuration for $PACKAGE $VERSION:
-------------------------------------------
- Install prefix: ...........: $prefix
- Preflight worker support ..: $have_limd
+ install prefix ............: $prefix
+ preflight worker support ..: $have_limd
+ activation method .........: $activation_method
+"
+
+if test "x$activation_method" = "xsystemd"; then
+ echo -n " systemd unit directory ....: ${systemdsystemunitdir}
+"
+fi
+
+if test -n "$udevrulesdir"; then
+ echo -n " udev rules directory ......: ${udevrulesdir}
+"
+fi
+
+echo " compiler ..................: ${CC}
Now type 'make' to build $PACKAGE $VERSION,
and then 'make install' for installation.