Makefile.am 13.8 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
	units/systemd-initctl.socket \
85 86 87 88 89 90 91
	units/systemd-logger.socket \
	units/dev-hugepages.automount \
	units/dev-hugepages.mount \
	units/dev-mqueue.automount \
	units/dev-mqueue.mount \
	units/proc-sys-fs-binfmt_misc.automount \
	units/proc-sys-fs-binfmt_misc.mount \
92 93
	units/sys-fs-fuse-connections.automount \
	units/sys-fs-fuse-connections.mount \
94 95
	units/sys-kernel-debug.automount \
	units/sys-kernel-debug.mount \
96 97 98
	units/sys-kernel-security.automount \
	units/sys-kernel-security.mount \
	units/var-lock.mount \
99
	units/var-run.mount
100

101
systemunit_DATA = \
102 103 104 105
	units/basic.target \
	units/getty@.service \
	units/graphical.target \
	units/multi-user.target \
106
	units/systemd-initctl.service \
107 108
	units/systemd-logger.service \
	units/syslog.target
109

110 111 112
dist_sessionunit_DATA = \
	units/session/default.target

113 114 115
sessionunit_DATA = \
	units/session/remote-fs.target

116
EXTRA_DIST = \
117 118 119 120
	units/basic.target.m4 \
	units/getty@.service.m4 \
	units/graphical.target.m4 \
	units/multi-user.target.m4 \
121
	units/remote-fs.target.m4 \
122 123
	units/systemd-initctl.service.in \
	units/systemd-logger.service.in \
124
	units/syslog.target.in \
125
	LICENSE \
126 127
	README \
	DISTRO_PORTING
128

129 130 131 132 133 134 135 136 137 138 139
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

140 141 142 143 144 145 146 147 148
if TARGET_GENTOO
dist_systemunit_DATA += \
	units/gentoo/halt.service \
	units/gentoo/killall.service \
	units/gentoo/poweroff.service \
	units/gentoo/reboot.service \
	units/gentoo/xdm.service
endif

149 150 151
# 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.
152
BASIC_SOURCES = \
153 154 155 156 157 158 159 160
        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
161

162
COMMON_SOURCES = \
163
	$(BASIC_SOURCES) \
164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195
	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 \
196
	src/kmod-setup.c \
197 198 199 200 201
	src/utmp-wtmp.c \
	src/specifier.c \
	src/unit-name.c \
	src/fdset.c \
	src/namespace.c
202

203 204
EXTRA_DIST += \
	${COMMON_SOURCES:.c=.h} \
205 206 207 208 209 210 211 212
	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
213

214
dist_man_MANS = \
215
	man/systemd.unit.5 \
216 217 218
	man/systemd.service.5

nodist_man_MANS = \
219
	man/systemd.special.7
220

221
dist_noinst_DATA = \
222
	man/systemd.unit.html \
223
	man/systemd.service.html
224

225 226
nodist_noinst_DATA = \
	man/systemd.special.html
227 228 229

EXTRA_DIST += \
	man/systemd.unit.xml \
230
	man/systemd.service.xml \
231 232 233
	man/systemd.special.xml.in \
	man/systemd.special.7.in \
	man/systemd.special.html.in
234

235 236
systemd_SOURCES = \
	$(COMMON_SOURCES) \
237
	src/main.c
238 239 240 241

systemd_CPPFLAGS = \
	$(AM_CPPFLAGS) \
	$(DBUS_CFLAGS) \
242 243
	$(UDEV_CFLAGS) \
	$(CGROUP_CFLAGS)
244 245 246

systemd_LDADD = \
	$(DBUS_LIBS) \
247 248
	$(UDEV_LIBS) \
	$(CGROUP_LIBS)
249 250 251

test_engine_SOURCES = \
	$(COMMON_SOURCES) \
252
	src/test-engine.c
253 254 255 256 257 258

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

test_job_type_SOURCES = \
	$(COMMON_SOURCES) \
259
	src/test-engine.c
260 261 262 263

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

264 265
test_ns_SOURCES = \
	$(BASIC_SOURCES) \
266 267
	src/test-ns.c \
	src/namespace.c
268 269 270 271

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

272 273
test_loopback_SOURCES = \
	$(BASIC_SOURCES) \
274 275
	src/test-loopback.c \
	src/loopback-setup.c
276 277 278 279

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

280 281
systemd_logger_SOURCES = \
	$(BASIC_SOURCES) \
282 283
	src/logger.c \
	src/sd-daemon.c
284

285 286
systemd_initctl_SOURCES = \
	$(BASIC_SOURCES) \
287 288
	src/initctl.c \
	src/sd-daemon.c
289 290 291 292 293 294 295 296

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

systemd_initctl_LDADD = \
	$(DBUS_LIBS)

297 298
systemd_cgroups_agent_SOURCES = \
	$(BASIC_SOURCES) \
299
	src/cgroups-agent.c
300 301 302 303 304 305 306 307

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

systemd_cgroups_agent_LDADD = \
	$(DBUS_LIBS)

308 309 310 311 312 313 314 315 316 317 318 319 320 321
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
322 323

systemctl_SOURCES = \
324 325
	src/systemctl.vala \
	src/systemd-interfaces.vala
326

327
systemctl_CPPFLAGS = $(AM_CPPFLAGS) $(DBUSGLIB_CFLAGS) $(VALA_CFLAGS)
328 329 330
systemctl_LDADD = $(DBUSGLIB_LIBS)

systemadm_SOURCES = \
331 332
	src/systemadm.vala \
	src/systemd-interfaces.vala
333

334
systemadm_CPPFLAGS = $(AM_CPPFLAGS) $(DBUSGLIB_CFLAGS) $(GTK_CFLAGS) $(VALA_CFLAGS)
335
systemadm_LDADD = $(DBUSGLIB_LIBS) $(GTK_LIBS)
336

337
SED_PROCESS = \
338
	$(AM_V_GEN)$(MKDIR_P) $(dir $@) && \
339
	$(SED)  -e 's,@libexecdir\@,$(libexecdir),g' \
340
		-e 's,@pkglibexecdir\@,$(pkglibexecdir),g' \
341
		-e 's,@SPECIAL_SYSLOG_SERVICE\@,$(SPECIAL_SYSLOG_SERVICE),g' \
342
		< $< > $@
343

344
units/%: units/%.in Makefile
345 346
	$(SED_PROCESS)

347
man/%: man/%.in Makefile
348 349
	$(SED_PROCESS)

350
M4_PROCESS_SYSTEM = \
351
	$(AM_V_GEN)$(MKDIR_P) $(dir $@) && \
352
	$(M4) -P $(M4_DISTRO_FLAG) -DFOR_SYSTEM=1 < $< > $@
353 354

M4_PROCESS_SESSION = \
355
	$(AM_V_GEN)$(MKDIR_P) $(dir $@) && \
356
	$(M4) -P $(M4_DISTRO_FLAG) -DFOR_SESSION=1 < $< > $@
357

358
units/%: units/%.m4 Makefile
359
	$(M4_PROCESS_SYSTEM)
360

361
units/session/%: units/%.m4 Makefile
362
	$(M4_PROCESS_SESSION)
363

364
CLEANFILES = \
365
	units/systemd-initctl.service \
366
	units/systemd-logger.service \
367 368 369 370
	units/syslog.target \
	units/basic.target \
	units/getty@.service \
	units/graphical.target \
371 372
	units/multi-user.target \
	units/remote-fs.target \
373 374 375
	units/session/remote-fs.target \
	man/systemd.special.7 \
	man/systemd.special.html
376

377 378 379 380 381 382 383
if HAVE_VALAC
CLEANFILES += \
	src/systemd-interfaces.c \
	src/systemctl.c \
	src/systemadm.c
endif

384
if HAVE_XSLTPROC
385
XSLTPROC_PROCESS_MAN = \
386
	$(AM_V_GEN)$(MKDIR_P) $(dir $@) && \
387 388
	$(XSLTPROC) -o $@ -nonet http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $<

389
XSLTPROC_PROCESS_MAN_IN = \
390
	$(AM_V_GEN)$(MKDIR_P) $(dir $@) && \
391 392 393 394
	$(XSLTPROC) -o ${@:.in=} -nonet http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $< && \
	mv ${@:.in=} $@

XSLTPROC_PROCESS_HTML = \
395
	$(AM_V_GEN)$(MKDIR_P) $(dir $@) && \
396 397
	$(XSLTPROC) -o $@ -nonet http://docbook.sourceforge.net/release/xsl/current/xhtml-1_1/docbook.xsl $<

398
XSLTPROC_PROCESS_HTML_IN = \
399
	$(AM_V_GEN)$(MKDIR_P) $(dir $@) && \
400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420
	$(XSLTPROC) -o ${@:.in=} -nonet http://docbook.sourceforge.net/release/xsl/current/xhtml-1_1/docbook.xsl $< && \
	mv ${@:.in=} $@

man/%.5: man/%.xml
	$(XSLTPROC_PROCESS_MAN)

man/%.5.in: man/%.xml.in
	$(XSLTPROC_PROCESS_MAN)

man/%.7: man/%.xml
	$(XSLTPROC_PROCESS_MAN)

man/%.7.in: man/%.xml.in
	$(XSLTPROC_PROCESS_MAN_IN)

man/%.html: man/%.xml
	$(XSLTPROC_PROCESS_HTML)

man/%.html.in: man/%.xml.in
	$(XSLTPROC_PROCESS_HTML_IN)

421 422
CLEANFILES += \
	$(dist_man_MANS) \
423 424 425 426
	man/systemd.special.7.in \
	man/systemd.unit.html \
	man/systemd.service.html \
	man/systemd.special.html.in
427
endif
428

429
install-data-hook:
430
	$(MKDIR_P) -m 0755 \
431 432
		$(DESTDIR)$(systemunitdir) \
		$(DESTDIR)$(sessionunitdir) \
433
		$(DESTDIR)$(systemunitdir)/sockets.target.wants \
434
		$(DESTDIR)$(systemunitdir)/basic.target.wants \
435
		$(DESTDIR)$(pkgsysconfdir)/system \
436 437 438
		$(DESTDIR)$(pkgsysconfdir)/system/getty.target.wants \
		$(DESTDIR)$(pkgsysconfdir)/system/multi-user.target.wants \
		$(DESTDIR)$(pkgsysconfdir)/system/graphical.target.wants \
439
		$(DESTDIR)$(pkgsysconfdir)/session \
440
		$(DESTDIR)$(sysconfdir)/xdg/systemd
441 442
	$(MKDIR_P) -m 0755 $(DESTDIR)/cgroup/systemd || \
		echo "Don't forget to create /cgroup/systemd! Couldn't create it for you, continuing anyway."
443 444
	( cd $(DESTDIR)$(sysconfdir)/xdg/systemd/ && \
		rm -f session && \
445 446
		$(LN_S) $(pkgsysconfdir)/session session )
	( cd $(DESTDIR)$(systemunitdir)/sockets.target.wants && \
447
		rm -f systemd-initctl.socket systemd-logger.socket && \
448 449
		$(LN_S) ../systemd-logger.socket systemd-logger.socket && \
		$(LN_S) ../systemd-initctl.socket systemd-initctl.socket )
450
	( cd $(DESTDIR)$(sessionunitdir) && \
451
		rm -f shutdown.target sockets.target local-fs.target swap.target && \
452
		$(LN_S) ../system/shutdown.target shutdown.target && \
453 454 455
		$(LN_S) ../system/sockets.target sockets.target && \
		$(LN_S) ../system/local-fs.target local-fs.target && \
		$(LN_S) ../system/swap.target swap.target )
456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481
	( 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 )
482
	( cd $(DESTDIR)$(systemunitdir)/basic.target.wants && \
483 484 485 486 487 488
		rm -f dev-hugepages.automount \
			dev-mqueue.automount \
			proc-sys-fs-binfmt_misc.automount \
			sys-kernel-debug.automount \
			sys-fs-fuse-connections.automount \
			sys-kernel-security.automount && \
489 490 491
		$(LN_S) ../dev-hugepages.automount dev-hugepages.automount && \
		$(LN_S) ../dev-mqueue.automount dev-mqueue.automount && \
		$(LN_S) ../proc-sys-fs-binfmt_misc.automount proc-sys-fs-binfmt_misc.automount && \
492 493 494
		$(LN_S) ../sys-kernel-debug.automount sys-kernel-debug.automount && \
		$(LN_S) ../sys-kernel-security.automount sys-kernel-security.automount && \
		$(LN_S) ../sys-fs-fuse-connections.automount sys-fs-fuse-connections.automount )
495 496 497 498 499 500 501 502 503 504
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 )
505 506
	( cd $(DESTDIR)/etc/init.d && \
		$(LN_S) halt reboot > /dev/null 2>&1 || true )
507 508
endif

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