]>
Commit | Line | Data |
---|---|---|
47be870b LP |
1 | # This file is part of systemd. |
2 | # | |
3 | # Copyright 2010 Lennart Poettering | |
4 | # | |
5 | # systemd is free software; you can redistribute it and/or modify it | |
6 | # under the terms of the GNU General Public License as published by | |
7 | # the Free Software Foundation; either version 2 of the License, or | |
8 | # (at your option) any later version. | |
9 | # | |
10 | # systemd is distributed in the hope that it will be useful, but | |
11 | # WITHOUT ANY WARRANTY; without even the implied warranty of | |
12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
13 | # General Public License for more details. | |
14 | # | |
15 | # You should have received a copy of the GNU General Public License | |
16 | # along with systemd; If not, see <http://www.gnu.org/licenses/>. | |
17 | ||
18 | AC_PREREQ(2.63) | |
19 | ||
1b00a255 | 20 | AC_INIT([systemd],[0],[systemd-devel@lists.freedesktop.org]) |
e99e38bb | 21 | AC_CONFIG_SRCDIR([src/main.c]) |
47be870b LP |
22 | AC_CONFIG_MACRO_DIR([m4]) |
23 | AC_CONFIG_HEADERS([config.h]) | |
24 | ||
e99e38bb | 25 | AM_INIT_AUTOMAKE([foreign 1.11 -Wall -Wno-portability silent-rules tar-pax subdir-objects]) |
47be870b | 26 | |
1b322bdb | 27 | AC_SUBST(PACKAGE_URL, [http://www.freedesktop.org/wiki/Software/systemd]) |
47be870b LP |
28 | |
29 | AC_CANONICAL_HOST | |
30 | ||
31 | AM_SILENT_RULES([yes]) | |
32 | ||
33 | AC_CHECK_PROG([STOW], [stow], [yes], [no]) | |
34 | ||
35 | AS_IF([test "x$STOW" = "xyes" && test -d /usr/local/stow], [ | |
36 | AC_MSG_NOTICE([*** Found /usr/local/stow: default install prefix set to /usr/local/stow/${PACKAGE_NAME}-${PACKAGE_VERSION} ***]) | |
37 | ac_default_prefix="/usr/local/stow/${PACKAGE_NAME}-${PACKAGE_VERSION}" | |
38 | ]) | |
39 | ||
e9da3678 LP |
40 | AC_PROG_MKDIR_P |
41 | AC_PROG_LN_S | |
42 | AC_PROG_SED | |
43 | ||
47be870b LP |
44 | AC_PROG_CC |
45 | AC_PROG_CC_C99 | |
46 | AM_PROG_CC_C_O | |
47 | AC_PROG_GCC_TRADITIONAL | |
48 | AC_USE_SYSTEM_EXTENSIONS | |
49 | ||
d1ab0ca0 LP |
50 | CC_CHECK_CFLAGS_APPEND([ \ |
51 | -Wall \ | |
52 | -W \ | |
53 | -Wextra \ | |
54 | -pipe \ | |
55 | -Wno-long-long \ | |
56 | -Winline \ | |
57 | -Wvla \ | |
58 | -Wno-overlength-strings \ | |
59 | -Wundef \ | |
60 | -Wformat=2 \ | |
61 | -Wlogical-op \ | |
62 | -Wsign-compare \ | |
63 | -Wformat-security \ | |
64 | -Wmissing-include-dirs \ | |
65 | -Wformat-nonliteral \ | |
66 | -Wold-style-definition \ | |
67 | -Wpointer-arith \ | |
68 | -Winit-self \ | |
69 | -Wdeclaration-after-statement \ | |
70 | -Wfloat-equal \ | |
71 | -Wmissing-prototypes \ | |
72 | -Wstrict-prototypes \ | |
73 | -Wredundant-decls \ | |
74 | -Wmissing-declarations \ | |
75 | -Wmissing-noreturn \ | |
76 | -Wshadow \ | |
77 | -Wendif-labels \ | |
78 | -Wcast-align \ | |
79 | -Wstrict-aliasing=2 \ | |
80 | -Wwrite-strings \ | |
81 | -Wno-unused-parameter \ | |
82 | -ffast-math \ | |
83 | -Wp,-D_FORTIFY_SOURCE=2 \ | |
84 | -fno-common \ | |
85 | -fdiagnostics-show-option \ | |
86 | -Wno-missing-field-initializers]) | |
47be870b LP |
87 | |
88 | AC_SEARCH_LIBS([clock_gettime], [rt], [], [AC_MSG_ERROR([*** POSIX RT library not found])]) | |
89 | AC_SEARCH_LIBS([cap_init], [cap], [], [AC_MSG_ERROR([*** POSIX caps library not found])]) | |
90 | AC_CHECK_HEADERS([sys/capability.h], [], [AC_MSG_ERROR([*** POSIX caps headers not found])]) | |
91 | ||
b237ef2c | 92 | # This makes sure pkg.m4 is available. |
a9b5b032 | 93 | m4_pattern_forbid([^_?PKG_[A-Z_]+$],[*** pkg.m4 missing, please install pkg-config]) |
d1ab0ca0 | 94 | |
e1ce2c27 | 95 | PKG_CHECK_MODULES(UDEV, [ libudev >= 154 ]) |
47be870b LP |
96 | AC_SUBST(UDEV_CFLAGS) |
97 | AC_SUBST(UDEV_LIBS) | |
98 | ||
99 | PKG_CHECK_MODULES(DBUS, [ dbus-1 ]) | |
100 | AC_SUBST(DBUS_CFLAGS) | |
101 | AC_SUBST(DBUS_LIBS) | |
102 | ||
103 | PKG_CHECK_MODULES(DBUSGLIB, [ dbus-glib-1 ]) | |
104 | AC_SUBST(DBUSGLIB_CFLAGS) | |
105 | AC_SUBST(DBUSGLIB_LIBS) | |
106 | ||
53f7d807 LP |
107 | PKG_CHECK_MODULES(CGROUP, [ libcgroup >= 0.36 ]) |
108 | AC_SUBST(CGROUP_CFLAGS) | |
109 | AC_SUBST(CGROUP_LIBS) | |
110 | ||
a9b5b032 MT |
111 | have_gtk=no |
112 | AC_ARG_ENABLE(gtk, AS_HELP_STRING([--disable-gtk], [disable GTK tools])) | |
113 | if test "x$enable_gtk" != "xno"; then | |
114 | PKG_CHECK_MODULES(GTK, [ gtk+-2.0 ], | |
115 | [AC_DEFINE(HAVE_GTK, 1, [Define if GTK is available]) have_gtk=yes], have_gtk=no) | |
116 | AC_SUBST(GTK_CFLAGS) | |
117 | AC_SUBST(GTK_LIBS) | |
118 | if test "x$have_gtk" = xno -a "x$enable_gtk" = xyes; then | |
119 | AC_MSG_ERROR([*** gtk support requested but libraries not found]) | |
120 | fi | |
121 | fi | |
122 | AM_CONDITIONAL(HAVE_GTK, [test "$have_gtk" = "yes"]) | |
123 | ||
e12891f7 | 124 | AM_PROG_VALAC([0.8]) |
47be870b | 125 | AC_SUBST(VAPIDIR) |
42e39f0b | 126 | AM_CONDITIONAL(HAVE_VALAC, test x"$VALAC" != x) |
47be870b | 127 | |
d1ab0ca0 LP |
128 | AC_PATH_PROG([XSLTPROC], [xsltproc]) |
129 | AM_CONDITIONAL(HAVE_XSLTPROC, test x"$XSLTPROC" != x) | |
130 | ||
5e6afdd3 LP |
131 | AC_PATH_PROG([M4], [m4]) |
132 | ||
9f2c5942 | 133 | AC_ARG_WITH(distro, AS_HELP_STRING([--with-distro=DISTRO],[Specify the distribution to target: One of fedora, suse, debian, arch, gentoo, slackware or other])) |
0571e011 LP |
134 | if test "z$with_distro" = "z"; then |
135 | if test "$cross_compiling" = yes; then | |
136 | AC_MSG_WARN([Target distribution cannot be reliably detected when cross-compiling. You should specify it with --with-distro (see $0 --help for recognized distros)]) | |
137 | else | |
138 | AC_CHECK_FILE(/etc/redhat-release,with_distro="fedora") | |
139 | AC_CHECK_FILE(/etc/SuSE-release,with_distro="suse") | |
140 | AC_CHECK_FILE(/etc/debian_version,with_distro="debian") | |
d7c114c0 | 141 | AC_CHECK_FILE(/etc/arch-release,with_distro="arch") |
f2b4af1c | 142 | AC_CHECK_FILE(/etc/gentoo-release,with_distro="gentoo") |
65c8976a | 143 | AC_CHECK_FILE(/etc/slackware-version,with_distro="slackware") |
0571e011 LP |
144 | fi |
145 | if test "z$with_distro" = "z"; then | |
146 | with_distro=`uname -s` | |
147 | fi | |
148 | fi | |
149 | with_distro=`echo ${with_distro} | tr '[[:upper:]]' '[[:lower:]]' ` | |
150 | ||
34eff652 LP |
151 | # Default generic names |
152 | SPECIAL_DBUS_SERVICE=dbus.service | |
153 | SPECIAL_SYSLOG_SERVICE=syslog.service | |
154 | ||
155 | # Location of the init scripts as mandated by LSB | |
156 | SYSTEM_SYSVINIT_PATH=/etc/init.d | |
157 | ||
12e84679 LP |
158 | M4_DISTRO_FLAG= |
159 | ||
0571e011 LP |
160 | case $with_distro in |
161 | fedora) | |
162 | SYSTEM_SYSVINIT_PATH=/etc/rc.d/init.d | |
163 | SYSTEM_SYSVRCND_PATH=/etc/rc.d | |
34eff652 LP |
164 | |
165 | # A little background why we define these special unit | |
166 | # names here in configure.ac: SysV services currently | |
167 | # cannot have aliases. As long as syslog is started | |
168 | # via a SysV init script we hence define these names | |
169 | # to the actual SysV name here. Later on when SysV | |
170 | # init scripts are not used anymore it is advisable to | |
171 | # use the generic names instead and use symlinks in | |
172 | # the unit directories to point to the right native | |
173 | # unit file. | |
174 | ||
a7b6f8e5 LP |
175 | SPECIAL_DBUS_SERVICE=messagebus.service |
176 | SPECIAL_SYSLOG_SERVICE=rsyslog.service | |
2c696a96 | 177 | AC_DEFINE(TARGET_FEDORA, [], [Target is Fedora/RHEL]) |
12e84679 | 178 | M4_DISTRO_FLAG=-DTARGET_FEDORA=1 |
0571e011 LP |
179 | ;; |
180 | suse) | |
0571e011 | 181 | SYSTEM_SYSVRCND_PATH=/etc/init.d |
cfe243e3 | 182 | AC_DEFINE(TARGET_SUSE, [], [Target is OpenSUSE/SLE]) |
12e84679 | 183 | M4_DISTRO_FLAG=-DTARGET_SUSE=1 |
0571e011 LP |
184 | ;; |
185 | debian) | |
0571e011 | 186 | SYSTEM_SYSVRCND_PATH=/etc |
a7b6f8e5 | 187 | SPECIAL_SYSLOG_SERVICE=rsyslog.service |
2c696a96 | 188 | AC_DEFINE(TARGET_DEBIAN, [], [Target is Debian/Ubuntu]) |
12e84679 | 189 | M4_DISTRO_FLAG=-DTARGET_DEBIAN=1 |
0571e011 | 190 | ;; |
d7c114c0 DR |
191 | arch) |
192 | SYSTEM_SYSVINIT_PATH=/etc/rc.d | |
193 | SYSTEM_SYSVRCND_PATH=/etc | |
a7b6f8e5 | 194 | SPECIAL_SYSLOG_SERVICE=syslog-ng.service |
d7c114c0 | 195 | AC_DEFINE(TARGET_ARCH, [], [Target is ArchLinux]) |
12e84679 | 196 | M4_DISTRO_FLAG=-DTARGET_ARCH=1 |
d7c114c0 | 197 | ;; |
f2b4af1c | 198 | gentoo) |
f2b4af1c | 199 | SYSTEM_SYSVRCND_PATH=/etc |
a7b6f8e5 | 200 | SPECIAL_SYSLOG_SERVICE=syslog-ng.service |
f2b4af1c | 201 | AC_DEFINE(TARGET_GENTOO, [], [Target is Gentoo]) |
12e84679 | 202 | M4_DISTRO_FLAG=-DTARGET_GENTOO=1 |
f2b4af1c | 203 | ;; |
65c8976a MS |
204 | slackware) |
205 | SYSTEM_SYSVINIT_PATH=/etc/rc.d/init.d | |
206 | SYSTEM_SYSVRCND_PATH=/etc/rc.d | |
a7b6f8e5 | 207 | SPECIAL_DBUS_SERVICE=messagebus.service |
65c8976a | 208 | AC_DEFINE(TARGET_SLACKWARE, [], [Target is Slackware]) |
12e84679 | 209 | M4_DISTRO_FLAG=-DTARGET_SLACKWARE=1 |
65c8976a | 210 | ;; |
bf024b02 | 211 | other) |
136337ff | 212 | AS_IF([test "x$with_sysvinit_path" = "x"], |
b6c2bf61 | 213 | [AC_MSG_ERROR([With --distro=other, you must pass --with-sysvinit-path= to configure])]) |
136337ff | 214 | AS_IF([test "x$with_sysvrcd_path" = "x"], |
b6c2bf61 | 215 | [AC_MSG_ERROR([With --distro=other, you must pass --with-sysvrcd-path= to configure])]) |
136337ff | 216 | AS_IF([test "x$with_dbus_service" = "x"], |
b6c2bf61 | 217 | [AC_MSG_ERROR([With --distro=other, you must pass --with-dbus-service= to configure])]) |
136337ff | 218 | AS_IF([test "x$with_syslog_service" = "x"], |
b6c2bf61 | 219 | [AC_MSG_ERROR([With --distro=other, you must pass --with-syslog-service= to configure])]) |
0571e011 LP |
220 | ;; |
221 | *) | |
bf024b02 | 222 | AC_MSG_ERROR([Your distribution (${with_distro}) is not yet supported, SysV init scripts could not be found! (patches welcome); you can specify --with-distro=other to skip this check]) |
0571e011 LP |
223 | ;; |
224 | esac | |
225 | ||
136337ff TFH |
226 | AC_ARG_WITH([sysvinit-path], |
227 | [AS_HELP_STRING([--with-sysvinit-path=PATH], | |
228 | [Specify the path to where the SysV init scripts are located @<:@default=based on distro@:>@])], | |
229 | [SYSTEM_SYSVINIT_PATH="$withval"], | |
230 | []) | |
231 | ||
232 | AC_ARG_WITH([sysvrcd-path], | |
233 | [AS_HELP_STRING([--with-sysvrcd-path=PATH], | |
234 | [Specify the path to the base directory for the SysV rcN.d directories @<:@default=based on distro@:>@])], | |
235 | [SYSTEM_SYSVRCND_PATH="$withval"], | |
236 | []) | |
237 | ||
238 | AC_ARG_WITH([dbus-service], | |
239 | [AS_HELP_STRING([--with-dbus-service=PATH], | |
240 | [Specify the name of the special DBus service @<:@default=based on distro@:>@])], | |
a7b6f8e5 | 241 | [SPECIAL_DBUS_SERVICE="$withval"], |
136337ff TFH |
242 | []) |
243 | ||
244 | AC_ARG_WITH([syslog-service], | |
245 | [AS_HELP_STRING([--with-syslog-service=PATH], | |
246 | [Specify the name of the special syslog service @<:@default=based on distro@:>@])], | |
a7b6f8e5 | 247 | [SPECIAL_SYSLOG_SERVICE="$withval"], |
136337ff TFH |
248 | []) |
249 | ||
0571e011 | 250 | AC_SUBST(SYSTEM_SYSVINIT_PATH) |
d64b723a | 251 | AC_SUBST(SYSTEM_SYSVRCND_PATH) |
a7b6f8e5 LP |
252 | AC_SUBST(SPECIAL_DBUS_SERVICE) |
253 | AC_SUBST(SPECIAL_SYSLOG_SERVICE) | |
12e84679 | 254 | AC_SUBST(M4_DISTRO_FLAG) |
0571e011 LP |
255 | |
256 | AM_CONDITIONAL(TARGET_FEDORA, test x"$with_distro" = xfedora) | |
257 | AM_CONDITIONAL(TARGET_SUSE, test x"$with_distro" = xsuse) | |
258 | AM_CONDITIONAL(TARGET_DEBIAN, test x"$with_distro" = xdebian) | |
d7c114c0 | 259 | AM_CONDITIONAL(TARGET_ARCH, test x"$with_distro" = xarch) |
f2b4af1c | 260 | AM_CONDITIONAL(TARGET_GENTOO, test x"$with_distro" = xgentoo) |
65c8976a | 261 | AM_CONDITIONAL(TARGET_SLACKWARE, test x"$with_distro" = xslackware) |
0571e011 | 262 | |
a7b6f8e5 LP |
263 | AC_DEFINE_UNQUOTED(SPECIAL_DBUS_SERVICE, ["$SPECIAL_DBUS_SERVICE"], [D-Bus service name]) |
264 | AC_DEFINE_UNQUOTED(SPECIAL_SYSLOG_SERVICE, ["$SPECIAL_SYSLOG_SERVICE"], [Syslog service name]) | |
2c696a96 | 265 | |
d1ab0ca0 LP |
266 | AC_ARG_WITH([udevrulesdir], |
267 | AS_HELP_STRING([--with-udevrulesdir=DIR], [Diectory for udev rules]), | |
268 | [], | |
269 | [with_udevrulesdir=/lib/udev/rules.d]) | |
270 | AC_SUBST([udevrulesdir], [$with_udevrulesdir]) | |
271 | ||
8c4a3079 LP |
272 | AC_ARG_WITH([rootdir], |
273 | AS_HELP_STRING([--with-rootdir=DIR], [Root directory for files necessary for boot]), | |
274 | [], | |
a6baa3f6 | 275 | [with_rootdir=${ac_default_prefix}]) |
8c4a3079 LP |
276 | AC_SUBST([rootdir], [$with_rootdir]) |
277 | ||
a45a909f CR |
278 | AC_CONFIG_FILES([Makefile]) |
279 | AC_OUTPUT | |
0571e011 LP |
280 | |
281 | echo " | |
282 | $PACKAGE_NAME $VERSION | |
283 | ||
2c696a96 | 284 | Distribution: ${with_distro} |
0571e011 LP |
285 | SysV init scripts: ${SYSTEM_SYSVINIT_PATH} |
286 | SysV rc?.d directories: ${SYSTEM_SYSVRCND_PATH} | |
a7b6f8e5 LP |
287 | Syslog service: ${SPECIAL_SYSLOG_SERVICE} |
288 | D-Bus service: ${SPECIAL_DBUS_SERVICE} | |
a9b5b032 | 289 | Gtk: ${have_gtk} |
8c4a3079 LP |
290 | prefix: ${prefix} |
291 | root dir: ${with_rootdir} | |
d1ab0ca0 | 292 | udev rules dir: ${with_udevrulesdir} |
0571e011 | 293 | " |