Makefile.am 11.1 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
#  This file is part of systemd.
#
#  Copyright 2010 Lennart Poettering
#
#  systemd is free software; you can redistribute it and/or modify it
#  under the terms of the GNU General Public License as published by
#  the Free Software Foundation; either version 2 of the License, or
#  (at your option) any later version.
#
#  systemd is distributed in the hope that it will be useful, but
#  WITHOUT ANY WARRANTY; without even the implied warranty of
#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
#  General Public License for more details.
#
#  You should have received a copy of the GNU General Public License
#  along with systemd; If not, see <http://www.gnu.org/licenses/>.

ACLOCAL_AMFLAGS = -I m4

20
dbuspolicydir=$(sysconfdir)/dbus-1/system.d
21
udevrulesdir=@udevrulesdir@
22

23
pkgsysconfdir=$(sysconfdir)/systemd
24
systemunitdir=$(pkgdatadir)/system
25
sessionunitdir=$(pkgdatadir)/session
26

27 28
AM_CPPFLAGS = \
        -include $(top_builddir)/config.h \
29
	-DSYSTEM_CONFIG_UNIT_PATH=\"$(pkgsysconfdir)/system\" \
30
	-DSYSTEM_DATA_UNIT_PATH=\"$(systemunitdir)\" \
31
	-DSYSTEM_SYSVINIT_PATH=\"$(SYSTEM_SYSVINIT_PATH)\" \
32
	-DSYSTEM_SYSVRCND_PATH=\"$(SYSTEM_SYSVRCND_PATH)\" \
33
	-DSESSION_CONFIG_UNIT_PATH=\"$(pkgsysconfdir)/session\" \
34
	-DSESSION_DATA_UNIT_PATH=\"$(sessionunitdir)\" \
35
	-DCGROUP_AGENT_PATH=\"$(pkglibexecdir)/systemd-cgroups-agent\" \
36 37
	-DSYSTEMD_BINARY_PATH=\"$(sbindir)/systemd\" \
	-I $(top_srcdir)/src
38 39 40 41 42

sbin_PROGRAMS = \
	systemd

bin_PROGRAMS = \
43 44 45 46
	systemctl

if HAVE_GTK
bin_PROGRAMS += \
47
	systemadm
48
endif
49 50 51

pkglibexec_PROGRAMS = \
	systemd-logger \
52 53
	systemd-cgroups-agent \
	systemd-initctl
54 55 56

noinst_PROGRAMS = \
	test-engine \
57
	test-job-type \
58 59
	test-ns \
	test-loopback
60

61
dist_dbuspolicy_DATA = \
62
	src/org.freedesktop.systemd1.conf
63

64
dist_udevrules_DATA = \
65
	src/99-systemd.rules
66

67
dist_systemunit_DATA = \
68
	units/emergency.service \
69 70
	units/getty.target \
	units/halt.target \
71 72 73
	units/local-fs.target \
	units/network.target \
	units/nss-lookup.target \
74 75
	units/poweroff.target \
	units/reboot.target \
76
	units/remote-fs.target \
77
	units/rescue.target \
78
	units/rpcbind.target \
79 80 81 82 83
	units/rtc-set.target \
	units/shutdown.target \
	units/sigpwr.target \
	units/sockets.target \
	units/swap.target \
84 85 86
	units/systemd-initctl.socket \
	units/systemd-logger.socket

87
systemunit_DATA = \
88 89 90 91
	units/basic.target \
	units/getty@.service \
	units/graphical.target \
	units/multi-user.target \
92
	units/systemd-initctl.service \
93 94
	units/systemd-logger.service \
	units/syslog.target
95

96
EXTRA_DIST = \
97 98 99 100
	units/basic.target.m4 \
	units/getty@.service.m4 \
	units/graphical.target.m4 \
	units/multi-user.target.m4 \
101 102
	units/systemd-initctl.service.in \
	units/systemd-logger.service.in \
103
	units/syslog.target.in \
104
	LICENSE \
105 106
	README \
	DISTRO_PORTING
107

108 109 110 111 112 113 114 115 116 117 118
if TARGET_FEDORA
dist_systemunit_DATA += \
	units/fedora/halt.service \
	units/fedora/killall.service \
	units/fedora/poweroff.service \
	units/fedora/prefdm.service \
	units/fedora/rc-local.service \
	units/fedora/reboot.service \
	units/fedora/sysinit.service
endif

119 120 121
# This is needed because automake is buggy in how it generates the
# rules for C programs, but not Vala programs.  We therefore can't
# list the .h files as dependencies if we want make dist to work.
122
BASIC_SOURCES = \
123 124 125 126 127 128 129 130
        src/util.c \
        src/hashmap.c \
        src/set.c \
        src/strv.c \
        src/conf-parser.c \
        src/socket-util.c \
        src/log.c \
        src/ratelimit.c
131

132
COMMON_SOURCES = \
133
	$(BASIC_SOURCES) \
134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170
	src/unit.c \
        src/job.c \
        src/manager.c \
        src/load-fragment.c \
        src/service.c \
        src/automount.c \
        src/mount.c \
        src/swap.c \
        src/device.c \
        src/target.c \
        src/snapshot.c \
        src/socket.c \
        src/timer.c \
        src/load-dropin.c \
        src/execute.c \
        src/dbus.c \
        src/dbus-manager.c \
        src/dbus-unit.c \
        src/dbus-job.c \
	src/dbus-service.c \
	src/dbus-socket.c \
	src/dbus-target.c \
	src/dbus-mount.c \
	src/dbus-automount.c \
	src/dbus-swap.c \
	src/dbus-snapshot.c \
	src/dbus-device.c \
	src/dbus-execute.c \
	src/cgroup.c \
	src/mount-setup.c \
	src/hostname-setup.c \
	src/loopback-setup.c \
	src/utmp-wtmp.c \
	src/specifier.c \
	src/unit-name.c \
	src/fdset.c \
	src/namespace.c
171

172 173
EXTRA_DIST += \
	${COMMON_SOURCES:.c=.h} \
174 175 176 177 178 179 180 181
	src/macro.h \
	src/ioprio.h \
	src/missing.h \
	src/list.h \
	src/securebits.h \
	src/linux/auto_dev-ioctl.h \
	src/initreq.h \
	src/sd-daemon.h
182

183
dist_man_MANS = \
184
	man/systemd.unit.5 \
185 186
	man/systemd.service.5 \
	man/systemd.special.7
187 188

HTMLMANS = \
189
	man/systemd.unit.html \
190 191
	man/systemd.service.html \
	man/systemd.special.html
192 193 194 195 196 197

dist_noinst_DATA = \
	$(HTMLMANS)

EXTRA_DIST += \
	man/systemd.unit.xml \
198 199
	man/systemd.service.xml \
	man/systemd.special.xml
200

201 202
systemd_SOURCES = \
	$(COMMON_SOURCES) \
203
	src/main.c
204 205 206 207

systemd_CPPFLAGS = \
	$(AM_CPPFLAGS) \
	$(DBUS_CFLAGS) \
208 209
	$(UDEV_CFLAGS) \
	$(CGROUP_CFLAGS)
210 211 212

systemd_LDADD = \
	$(DBUS_LIBS) \
213 214
	$(UDEV_LIBS) \
	$(CGROUP_LIBS)
215 216 217

test_engine_SOURCES = \
	$(COMMON_SOURCES) \
218
	src/test-engine.c
219 220 221 222 223 224

test_engine_CPPFLAGS = $(systemd_CPPFLAGS)
test_engine_LDADD = $(systemd_LDADD)

test_job_type_SOURCES = \
	$(COMMON_SOURCES) \
225
	src/test-engine.c
226 227 228 229

test_job_type_CPPFLAGS = $(systemd_CPPFLAGS)
test_job_type_LDADD = $(systemd_LDADD)

230 231
test_ns_SOURCES = \
	$(BASIC_SOURCES) \
232 233
	src/test-ns.c \
	src/namespace.c
234 235 236 237

test_ns_CPPFLAGS = $(systemd_CPPFLAGS)
test_ns_LDADD = $(systemd_LDADD)

238 239
test_loopback_SOURCES = \
	$(BASIC_SOURCES) \
240 241
	src/test-loopback.c \
	src/loopback-setup.c
242 243 244 245

test_loopback_CPPFLAGS = $(systemd_CPPFLAGS)
test_loopback_LDADD = $(systemd_LDADD)

246 247
systemd_logger_SOURCES = \
	$(BASIC_SOURCES) \
248 249
	src/logger.c \
	src/sd-daemon.c
250

251 252
systemd_initctl_SOURCES = \
	$(BASIC_SOURCES) \
253 254
	src/initctl.c \
	src/sd-daemon.c
255 256 257 258 259 260 261 262

systemd_initctl_CPPFLAGS = \
	$(AM_CPPFLAGS) \
	$(DBUS_CFLAGS)

systemd_initctl_LDADD = \
	$(DBUS_LIBS)

263 264
systemd_cgroups_agent_SOURCES = \
	$(BASIC_SOURCES) \
265
	src/cgroups-agent.c
266 267 268 269 270 271 272 273

systemd_cgroups_agent_CPPFLAGS = \
	$(AM_CPPFLAGS) \
	$(DBUS_CFLAGS)

systemd_cgroups_agent_LDADD = \
	$(DBUS_LIBS)

274 275 276 277 278 279 280 281 282 283 284 285 286 287
VALAFLAGS = \
	-g \
	--save-temps \
	--pkg=dbus-glib-1 \
	--pkg=posix

if HAVE_GTK
VALAFLAGS += \
	--pkg=gtk+-2.0
endif

VALA_CFLAGS = \
	-Wno-unused-variable \
	-Wno-unused-function
288 289

systemctl_SOURCES = \
290 291
	src/systemctl.vala \
	src/systemd-interfaces.vala
292

293
systemctl_CPPFLAGS = $(AM_CPPFLAGS) $(DBUSGLIB_CFLAGS) $(VALA_CFLAGS)
294 295 296
systemctl_LDADD = $(DBUSGLIB_LIBS)

systemadm_SOURCES = \
297 298
	src/systemadm.vala \
	src/systemd-interfaces.vala
299

300
systemadm_CPPFLAGS = $(AM_CPPFLAGS) $(DBUSGLIB_CFLAGS) $(GTK_CFLAGS) $(VALA_CFLAGS)
301
systemadm_LDADD = $(DBUSGLIB_LIBS) $(GTK_LIBS)
302

303 304 305
SED_PROCESS = \
	$(MKDIR_P) units && \
	$(SED)  -e 's,@libexecdir\@,$(libexecdir),g' \
306
		-e 's,@pkglibexecdir\@,$(pkglibexecdir),g' \
307
		-e 's,@SPECIAL_SYSLOG_SERVICE\@,$(SPECIAL_SYSLOG_SERVICE),g' \
308
		< $< > $@
309

310 311 312
units/systemd-initctl.service: units/systemd-initctl.service.in Makefile
	$(SED_PROCESS)

313
units/systemd-logger.service: units/systemd-logger.service.in Makefile
314
	$(SED_PROCESS)
315

316
units/syslog.target: units/syslog.target.in Makefile
317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339
	$(SED_PROCESS)

M4_FLAGS =

if TARGET_FEDORA
M4_FLAGS += -DTARGET_FEDORA=1
endif

M4_PROCESS = \
	$(MKDIR_P) units && \
	$(M4) -P $(M4_FLAGS) < $< > $@

units/basic.target: units/basic.target.m4 Makefile
	$(M4_PROCESS)

units/graphical.target: units/graphical.target.m4 Makefile
	$(M4_PROCESS)

units/multi-user.target: units/multi-user.target.m4 Makefile
	$(M4_PROCESS)

units/getty@.service: units/getty@.service.m4 Makefile
	$(M4_PROCESS)
340

341
CLEANFILES = \
342 343 344
	src/systemd-interfaces.c \
	src/systemctl.c \
	src/systemadm.c \
345
	units/systemd-initctl.service \
346
	units/systemd-logger.service \
347 348 349 350 351
	units/syslog.target \
	units/basic.target \
	units/getty@.service \
	units/graphical.target \
	units/multi-user.target
352

353
if HAVE_XSLTPROC
354
man/%.5 man/%.7: man/%.xml
355
	$(MKDIR_P) man
356 357
	$(XSLTPROC) -o $@ -nonet http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $<

358 359
man/%.html: man/%.xml
	$(MKDIR_P) man
360 361 362 363 364 365 366
	$(XSLTPROC) -o $@ -nonet http://docbook.sourceforge.net/release/xsl/current/xhtml-1_1/docbook.xsl $<

CLEANFILES += \
	$(dist_man_MANS) \
	$(HTMLMANS)
endif

367
install-data-hook:
368
	$(MKDIR_P) -m 0755 \
369 370
		$(DESTDIR)$(systemunitdir) \
		$(DESTDIR)$(sessionunitdir) \
371
		$(DESTDIR)$(systemunitdir)/sockets.target.wants \
372
		$(DESTDIR)$(pkgsysconfdir)/system \
373 374 375
		$(DESTDIR)$(pkgsysconfdir)/system/getty.target.wants \
		$(DESTDIR)$(pkgsysconfdir)/system/multi-user.target.wants \
		$(DESTDIR)$(pkgsysconfdir)/system/graphical.target.wants \
376 377 378
		$(DESTDIR)$(pkgsysconfdir)/session \
		$(DESTDIR)$(sysconfdir)/xdg/systemd \
		$(DESTDIR)/cgroup/debug
379 380
	( cd $(DESTDIR)$(sysconfdir)/xdg/systemd/ && \
		rm -f session && \
381 382
		$(LN_S) $(pkgsysconfdir)/session session )
	( cd $(DESTDIR)$(systemunitdir)/sockets.target.wants && \
383
		rm -f systemd-initctl.socket systemd-logger.socket && \
384 385
		$(LN_S) ../systemd-logger.socket systemd-logger.socket && \
		$(LN_S) ../systemd-initctl.socket systemd-initctl.socket )
386 387 388 389
	( cd $(DESTDIR)$(sessionunitdir) && \
		rm -f shutdown.target sockets.target && \
		$(LN_S) ../system/shutdown.target shutdown.target && \
		$(LN_S) ../system/sockets.target sockets.target )
390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427
	( cd $(DESTDIR)$(systemunitdir) && \
		rm -f runlevel0.target runlevel1.target runlevel6.target && \
		$(LN_S) poweroff.target runlevel0.target && \
		$(LN_S) rescue.target runlevel1.target && \
		$(LN_S) reboot.target runlevel6.target )
	( cd $(DESTDIR)$(pkgsysconfdir)/system && \
		rm -f default.target ctrl-alt-del.target kbrequest.target && \
		$(LN_S) $(systemunitdir)/graphical.target default.target && \
		$(LN_S) $(systemunitdir)/reboot.target ctrl-alt-del.target && \
		$(LN_S) $(systemunitdir)/rescue.target kbrequest.target && \
		rm -f runlevel2.target runlevel3.target runlevel4.target runlevel5.target && \
		$(LN_S) $(systemunitdir)/multi-user.target runlevel2.target && \
		$(LN_S) $(systemunitdir)/multi-user.target runlevel3.target && \
		$(LN_S) $(systemunitdir)/multi-user.target runlevel4.target && \
		$(LN_S) $(systemunitdir)/graphical.target runlevel5.target )
	( cd $(DESTDIR)$(pkgsysconfdir)/system/getty.target.wants && \
		rm -f getty@tty1.service getty@tty2.service getty@tty3.service getty@tty4.service getty@tty5.service getty@tty6.service && \
		$(LN_S) $(systemunitdir)/getty@.service getty@tty1.service && \
		$(LN_S) $(systemunitdir)/getty@.service getty@tty2.service && \
		$(LN_S) $(systemunitdir)/getty@.service getty@tty3.service && \
		$(LN_S) $(systemunitdir)/getty@.service getty@tty4.service && \
		$(LN_S) $(systemunitdir)/getty@.service getty@tty5.service && \
		$(LN_S) $(systemunitdir)/getty@.service getty@tty6.service )
	( cd $(DESTDIR)$(pkgsysconfdir)/system/multi-user.target.wants && \
		rm -f getty.target && \
		$(LN_S) $(systemunitdir)/getty.target getty.target )
if TARGET_FEDORA
	( cd $(DESTDIR)$(pkgsysconfdir)/system/graphical.target.wants && \
		rm -f prefdm.service && \
		$(LN_S) $(systemunitdir)/prefdm.service prefdm.service )
	( cd $(DESTDIR)$(pkgsysconfdir)/system/multi-user.target.wants && \
		rm -f rc-local.service && \
		$(LN_S) $(systemunitdir)/rc-local.service rc-local.service )
	( cd $(DESTDIR)$(systemunitdir) && \
		rm -f local.service && \
		$(LN_S) rc-local.service local.service )
endif

428 429 430

DISTCHECK_CONFIGURE_FLAGS = \
	--with-udevrulesdir=$$dc_install_base/$(udevrulesdir)