Makefile.am 14.4 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
interfacedir=$(datadir)/dbus-1/interfaces
27

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

sbin_PROGRAMS = \
	systemd

bin_PROGRAMS = \
44 45 46 47
	systemctl

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

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

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

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

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

68 69 70 71 72 73 74 75 76 77 78 79 80
interface_DATA = \
	org.freedesktop.systemd1.Manager.xml \
	org.freedesktop.systemd1.Job.xml \
	org.freedesktop.systemd1.Unit.xml \
	org.freedesktop.systemd1.Service.xml \
	org.freedesktop.systemd1.Socket.xml \
	org.freedesktop.systemd1.Target.xml \
	org.freedesktop.systemd1.Device.xml \
	org.freedesktop.systemd1.Mount.xml \
	org.freedesktop.systemd1.Automount.xml \
	org.freedesktop.systemd1.Snapshot.xml \
	org.freedesktop.systemd1.Swap.xml

81
dist_systemunit_DATA = \
82
	units/emergency.service \
83 84
	units/getty.target \
	units/halt.target \
85 86 87
	units/local-fs.target \
	units/network.target \
	units/nss-lookup.target \
88 89
	units/poweroff.target \
	units/reboot.target \
90
	units/remote-fs.target \
91
	units/rescue.target \
92
	units/rpcbind.target \
93 94 95 96 97
	units/rtc-set.target \
	units/shutdown.target \
	units/sigpwr.target \
	units/sockets.target \
	units/swap.target \
98
	units/systemd-initctl.socket \
99 100 101 102 103 104 105
	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 \
106 107
	units/sys-fs-fuse-connections.automount \
	units/sys-fs-fuse-connections.mount \
108 109
	units/sys-kernel-debug.automount \
	units/sys-kernel-debug.mount \
110 111 112
	units/sys-kernel-security.automount \
	units/sys-kernel-security.mount \
	units/var-lock.mount \
113
	units/var-run.mount
114

115
systemunit_DATA = \
116 117 118 119
	units/basic.target \
	units/getty@.service \
	units/graphical.target \
	units/multi-user.target \
120
	units/systemd-initctl.service \
121 122
	units/systemd-logger.service \
	units/syslog.target
123

124 125 126
dist_sessionunit_DATA = \
	units/session/default.target

127 128 129
sessionunit_DATA = \
	units/session/remote-fs.target

130
EXTRA_DIST = \
131 132 133 134
	units/basic.target.m4 \
	units/getty@.service.m4 \
	units/graphical.target.m4 \
	units/multi-user.target.m4 \
135
	units/remote-fs.target.m4 \
136 137
	units/systemd-initctl.service.in \
	units/systemd-logger.service.in \
138
	units/syslog.target.in \
139
	LICENSE \
140 141
	README \
	DISTRO_PORTING
142

143 144 145 146 147 148 149 150 151 152 153
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

154 155 156 157 158 159 160 161 162
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

163 164 165
# 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.
166
BASIC_SOURCES = \
167 168 169 170 171 172 173 174
        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
175

176
COMMON_SOURCES = \
177
	$(BASIC_SOURCES) \
178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209
	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 \
210
	src/kmod-setup.c \
211 212 213 214 215
	src/utmp-wtmp.c \
	src/specifier.c \
	src/unit-name.c \
	src/fdset.c \
	src/namespace.c
216

217 218
EXTRA_DIST += \
	${COMMON_SOURCES:.c=.h} \
219 220 221 222 223 224 225 226
	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
227

228
dist_man_MANS = \
229
	man/systemd.unit.5 \
230 231 232
	man/systemd.service.5

nodist_man_MANS = \
233
	man/systemd.special.7
234

235
dist_noinst_DATA = \
236
	man/systemd.unit.html \
237
	man/systemd.service.html
238

239 240
nodist_noinst_DATA = \
	man/systemd.special.html
241 242 243

EXTRA_DIST += \
	man/systemd.unit.xml \
244
	man/systemd.service.xml \
245 246 247
	man/systemd.special.xml.in \
	man/systemd.special.7.in \
	man/systemd.special.html.in
248

249 250
systemd_SOURCES = \
	$(COMMON_SOURCES) \
251
	src/main.c
252 253 254 255

systemd_CPPFLAGS = \
	$(AM_CPPFLAGS) \
	$(DBUS_CFLAGS) \
256 257
	$(UDEV_CFLAGS) \
	$(CGROUP_CFLAGS)
258 259 260

systemd_LDADD = \
	$(DBUS_LIBS) \
261 262
	$(UDEV_LIBS) \
	$(CGROUP_LIBS)
263 264 265

test_engine_SOURCES = \
	$(COMMON_SOURCES) \
266
	src/test-engine.c
267 268 269 270 271 272

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

test_job_type_SOURCES = \
	$(COMMON_SOURCES) \
273
	src/test-engine.c
274 275 276 277

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

278 279
test_ns_SOURCES = \
	$(BASIC_SOURCES) \
280 281
	src/test-ns.c \
	src/namespace.c
282 283 284 285

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

286 287
test_loopback_SOURCES = \
	$(BASIC_SOURCES) \
288 289
	src/test-loopback.c \
	src/loopback-setup.c
290 291 292 293

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

294 295
systemd_logger_SOURCES = \
	$(BASIC_SOURCES) \
296 297
	src/logger.c \
	src/sd-daemon.c
298

299 300
systemd_initctl_SOURCES = \
	$(BASIC_SOURCES) \
301 302
	src/initctl.c \
	src/sd-daemon.c
303 304 305 306 307 308 309 310

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

systemd_initctl_LDADD = \
	$(DBUS_LIBS)

311 312
systemd_cgroups_agent_SOURCES = \
	$(BASIC_SOURCES) \
313
	src/cgroups-agent.c
314 315 316 317 318 319 320 321

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

systemd_cgroups_agent_LDADD = \
	$(DBUS_LIBS)

322 323 324 325 326 327 328 329 330 331 332 333 334 335
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
336 337

systemctl_SOURCES = \
338 339
	src/systemctl.vala \
	src/systemd-interfaces.vala
340

341
systemctl_CPPFLAGS = $(AM_CPPFLAGS) $(DBUSGLIB_CFLAGS) $(VALA_CFLAGS)
342 343 344
systemctl_LDADD = $(DBUSGLIB_LIBS)

systemadm_SOURCES = \
345 346
	src/systemadm.vala \
	src/systemd-interfaces.vala
347

348
systemadm_CPPFLAGS = $(AM_CPPFLAGS) $(DBUSGLIB_CFLAGS) $(GTK_CFLAGS) $(VALA_CFLAGS)
349
systemadm_LDADD = $(DBUSGLIB_LIBS) $(GTK_LIBS)
350

351
SED_PROCESS = \
352
	$(AM_V_GEN)$(MKDIR_P) $(dir $@) && \
353
	$(SED)  -e 's,@libexecdir\@,$(libexecdir),g' \
354
		-e 's,@pkglibexecdir\@,$(pkglibexecdir),g' \
355
		-e 's,@SPECIAL_SYSLOG_SERVICE\@,$(SPECIAL_SYSLOG_SERVICE),g' \
356
		< $< > $@
357

358
units/%: units/%.in Makefile
359 360
	$(SED_PROCESS)

361
man/%: man/%.in Makefile
362 363
	$(SED_PROCESS)

364
M4_PROCESS_SYSTEM = \
365
	$(AM_V_GEN)$(MKDIR_P) $(dir $@) && \
366
	$(M4) -P $(M4_DISTRO_FLAG) -DFOR_SYSTEM=1 < $< > $@
367 368

M4_PROCESS_SESSION = \
369
	$(AM_V_GEN)$(MKDIR_P) $(dir $@) && \
370
	$(M4) -P $(M4_DISTRO_FLAG) -DFOR_SESSION=1 < $< > $@
371

372
units/%: units/%.m4 Makefile
373
	$(M4_PROCESS_SYSTEM)
374

375
units/session/%: units/%.m4 Makefile
376
	$(M4_PROCESS_SESSION)
377

378
CLEANFILES = \
379
	units/systemd-initctl.service \
380
	units/systemd-logger.service \
381 382 383 384
	units/syslog.target \
	units/basic.target \
	units/getty@.service \
	units/graphical.target \
385 386
	units/multi-user.target \
	units/remote-fs.target \
387 388 389
	units/session/remote-fs.target \
	man/systemd.special.7 \
	man/systemd.special.html
390

391 392 393 394 395 396 397
if HAVE_VALAC
CLEANFILES += \
	src/systemd-interfaces.c \
	src/systemctl.c \
	src/systemadm.c
endif

398
if HAVE_XSLTPROC
399
XSLTPROC_PROCESS_MAN = \
400
	$(AM_V_GEN)$(MKDIR_P) $(dir $@) && \
401 402
	$(XSLTPROC) -o $@ -nonet http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $<

403
XSLTPROC_PROCESS_MAN_IN = \
404
	$(AM_V_GEN)$(MKDIR_P) $(dir $@) && \
405 406 407 408
	$(XSLTPROC) -o ${@:.in=} -nonet http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $< && \
	mv ${@:.in=} $@

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

412
XSLTPROC_PROCESS_HTML_IN = \
413
	$(AM_V_GEN)$(MKDIR_P) $(dir $@) && \
414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434
	$(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)

435 436
CLEANFILES += \
	$(dist_man_MANS) \
437 438 439 440
	man/systemd.special.7.in \
	man/systemd.unit.html \
	man/systemd.service.html \
	man/systemd.special.html.in
441
endif
442

443 444 445 446 447
org.freedesktop.systemd1.%.xml: systemd
	$(AM_V_GEN)./systemd --introspect=${@:.xml=} > $@

CLEANFILES += $(interface_DATA)

448
install-data-hook:
449
	$(MKDIR_P) -m 0755 \
450 451
		$(DESTDIR)$(systemunitdir) \
		$(DESTDIR)$(sessionunitdir) \
452
		$(DESTDIR)$(systemunitdir)/sockets.target.wants \
453
		$(DESTDIR)$(systemunitdir)/basic.target.wants \
454
		$(DESTDIR)$(pkgsysconfdir)/system \
455 456 457
		$(DESTDIR)$(pkgsysconfdir)/system/getty.target.wants \
		$(DESTDIR)$(pkgsysconfdir)/system/multi-user.target.wants \
		$(DESTDIR)$(pkgsysconfdir)/system/graphical.target.wants \
458
		$(DESTDIR)$(pkgsysconfdir)/session \
459
		$(DESTDIR)$(sysconfdir)/xdg/systemd
460 461
	$(MKDIR_P) -m 0755 $(DESTDIR)/cgroup/systemd || \
		echo "Don't forget to create /cgroup/systemd! Couldn't create it for you, continuing anyway."
462 463
	( cd $(DESTDIR)$(sysconfdir)/xdg/systemd/ && \
		rm -f session && \
464 465
		$(LN_S) $(pkgsysconfdir)/session session )
	( cd $(DESTDIR)$(systemunitdir)/sockets.target.wants && \
466
		rm -f systemd-initctl.socket systemd-logger.socket && \
467 468
		$(LN_S) ../systemd-logger.socket systemd-logger.socket && \
		$(LN_S) ../systemd-initctl.socket systemd-initctl.socket )
469
	( cd $(DESTDIR)$(sessionunitdir) && \
470
		rm -f shutdown.target sockets.target local-fs.target swap.target && \
471
		$(LN_S) ../system/shutdown.target shutdown.target && \
472 473 474
		$(LN_S) ../system/sockets.target sockets.target && \
		$(LN_S) ../system/local-fs.target local-fs.target && \
		$(LN_S) ../system/swap.target swap.target )
475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500
	( 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 )
501
	( cd $(DESTDIR)$(systemunitdir)/basic.target.wants && \
502 503 504 505 506 507
		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 && \
508 509 510
		$(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 && \
511 512 513
		$(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 )
514 515 516 517 518 519 520 521 522 523
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 )
524 525
	( cd $(DESTDIR)/etc/init.d && \
		$(LN_S) halt reboot > /dev/null 2>&1 || true )
526 527
endif

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