2 dnl Launch-on-demand/startup stuff for CUPS.
4 dnl Copyright 2007-2015 by Apple Inc.
5 dnl Copyright 1997-2005 by Easy Software Products, all rights reserved.
7 dnl These coded instructions, statements, and computer programs are the
8 dnl property of Apple Inc. and are protected by Federal copyright
9 dnl law. Distribution and use rights are outlined in the file "LICENSE.txt"
10 dnl which should have been included with this file. If this file is
11 dnl file is missing or damaged, see the license at "http://www.cups.org/".
16 AC_SUBST(ONDEMANDFLAGS)
17 AC_SUBST(ONDEMANDLIBS)
19 dnl Launchd is used on OS X/Darwin...
20 AC_ARG_ENABLE(launchd, [ --disable-launchd disable launchd support])
24 if test x$enable_launchd != xno; then
25 AC_CHECK_FUNC(launch_msg, AC_DEFINE(HAVE_LAUNCHD))
26 if test $uversion -ge 140; then
27 AC_CHECK_FUNC(launch_activate_socket, [
28 AC_DEFINE(HAVE_LAUNCHD)
29 AC_DEFINE(HAVE_LAUNCH_ACTIVATE_SOCKET)])
31 AC_CHECK_HEADER(launch.h, AC_DEFINE(HAVE_LAUNCH_H))
36 LAUNCHD_DIR="/System/Library/LaunchDaemons"
37 # liblaunch is already part of libSystem
40 # All others; this test will need to be updated
45 dnl Systemd is used on Linux...
46 AC_ARG_ENABLE(systemd, [ --disable-systemd disable systemd support])
47 AC_ARG_WITH(systemd, [ --with-systemd set directory for systemd service files],
48 SYSTEMD_DIR="$withval", SYSTEMD_DIR="")
51 if test x$enable_systemd != xno; then
52 if test "x$PKGCONFIG" = x; then
53 if test x$enable_systemd = xyes; then
54 AC_MSG_ERROR(Need pkg-config to enable systemd support.)
58 AC_MSG_CHECKING(for libsystemd)
59 if $PKGCONFIG --exists libsystemd; then
62 ONDEMANDFLAGS=`$PKGCONFIG --cflags libsystemd`
63 ONDEMANDLIBS=`$PKGCONFIG --libs libsystemd`
64 elif $PKGCONFIG --exists libsystemd-daemon; then
65 AC_MSG_RESULT(yes - legacy)
67 ONDEMANDFLAGS=`$PKGCONFIG --cflags libsystemd-daemon`
68 ONDEMANDLIBS=`$PKGCONFIG --libs libsystemd-daemon`
70 if $PKGCONFIG --exists libsystemd-journal; then
71 ONDEMANDFLAGS="$ONDEMANDFLAGS `$PKGCONFIG --cflags libsystemd-journal`"
72 ONDEMANDLIBS="$ONDEMANDLIBS `$PKGCONFIG --libs libsystemd-journal`"
78 if test $have_systemd = yes; then
79 AC_DEFINE(HAVE_SYSTEMD)
80 AC_CHECK_HEADER(systemd/sd-journal.h,AC_DEFINE(HAVE_SYSTEMD_SD_JOURNAL_H))
81 if test "x$SYSTEMD_DIR" = x; then
82 SYSTEMD_DIR="`$PKGCONFIG --variable=systemdsystemunitdir systemd`"
88 dnl Upstart is also used on Linux (e.g., Chrome OS)
89 AC_ARG_ENABLE(upstart, [ --enable-upstart enable upstart support])
90 if test "x$enable_upstart" = "xyes"; then
91 if test "x$have_systemd" = "xyes"; then
92 AC_MSG_ERROR(Cannot support both systemd and upstart.)
94 AC_DEFINE(HAVE_UPSTART)
99 AC_SUBST(SMFMANIFESTDIR)
100 AC_ARG_WITH(smfmanifestdir, [ --with-smfmanifestdir set path for Solaris SMF manifest],SMFMANIFESTDIR="$withval")
102 dnl Use init on other platforms...
103 AC_ARG_WITH(rcdir, [ --with-rcdir set path for rc scripts],rcdir="$withval",rcdir="")
104 AC_ARG_WITH(rclevels, [ --with-rclevels set run levels for rc scripts],rclevels="$withval",rclevels="2 3 5")
105 AC_ARG_WITH(rcstart, [ --with-rcstart set start number for rc scripts],rcstart="$withval",rcstart="")
106 AC_ARG_WITH(rcstop, [ --with-rcstop set stop number for rc scripts],rcstop="$withval",rcstop="")
108 if test x$rcdir = x; then
109 if test x$LAUNCHD_DIR = x -a x$SYSTEMD_DIR = x -a x$SMFMANIFESTDIR = x; then
110 # Fall back on "init", the original service startup interface...
111 if test -d /sbin/init.d; then
114 elif test -d /etc/init.d; then
126 if test "x$rcstart" = x; then
128 Linux | GNU | GNU/k*BSD*)
145 if test "x$rcstop" = x; then
147 Linux | GNU | GNU/k*BSD*)
170 if test "x$rcdir" != xno; then
171 if test "x$rclevels" = x; then
178 dnl Xinetd support...
179 AC_ARG_WITH(xinetd, [ --with-xinetd set path for xinetd config files],xinetd="$withval",xinetd="")
183 if test "x$xinetd" = x; then
184 if test ! -x /sbin/launchd; then
185 for dir in /etc/xinetd.d /usr/local/etc/xinetd.d; do
186 if test -d $dir; then
192 elif test "x$xinetd" != xno; then