# -*- Mode: makefile; indent-tabs-mode: t -*- # # This file is part of systemd. # # Copyright 2010-2012 Lennart Poettering # Copyright 2010-2012 Kay Sievers # Copyright 2013 Zbigniew Jędrzejewski-Szmek # Copyright 2013 David Strauss # Copyright 2016 Luke Shumaker # # systemd is free software; you can redistribute it and/or modify it # under the terms of the GNU Lesser General Public License as published by # the Free Software Foundation; either version 2.1 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public License # along with systemd; If not, see . INSTALL_DIRS += \ $(sysconfdir)/udev/rules.d dist_network_DATA = \ network/99-default.link \ network/80-container-host0.network \ network/80-container-ve.network dist_udevrules_DATA += \ rules/50-udev-default.rules \ rules/60-block.rules \ rules/60-drm.rules \ rules/60-evdev.rules \ rules/60-persistent-storage-tape.rules \ rules/60-persistent-input.rules \ rules/60-persistent-alsa.rules \ rules/60-persistent-storage.rules \ rules/60-serial.rules \ rules/64-btrfs.rules \ rules/70-mouse.rules \ rules/75-net-description.rules \ rules/78-sound-card.rules \ rules/80-net-setup-link.rules nodist_udevrules_DATA += \ rules/99-systemd.rules udevconfdir = $(sysconfdir)/udev dist_udevconf_DATA = \ src/udev/udev.conf pkgconfigdata_DATA += \ src/udev/udev.pc EXTRA_DIST += \ rules/99-systemd.rules.in \ src/udev/udev.pc.in EXTRA_DIST += \ units/systemd-udevd.service.in \ units/systemd-udev-trigger.service.in \ units/systemd-udev-settle.service.in SOCKETS_TARGET_WANTS += \ systemd-udevd-control.socket \ systemd-udevd-kernel.socket SYSINIT_TARGET_WANTS += \ systemd-udevd.service \ systemd-udev-trigger.service rootbin_PROGRAMS += \ udevadm rootlibexec_PROGRAMS += \ systemd-udevd noinst_LTLIBRARIES += \ libudev-core.la src/udev/keyboard-keys-list.txt: $(AM_V_at)$(MKDIR_P) $(dir $@) $(AM_V_GEN)$(CPP) $(CFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS) -dM -include linux/input.h - < /dev/null | $(AWK) '/^#define[ \t]+KEY_[^ ]+[ \t]+[0-9K]/ { if ($$2 != "KEY_MAX") { print $$2 } }' > $@ src/udev/keyboard-keys-from-name.gperf: src/udev/keyboard-keys-list.txt $(AM_V_GEN)$(AWK) 'BEGIN{ print "struct key { const char* name; unsigned short id; };"; print "%null-strings"; print "%%";} { print tolower(substr($$1 ,5)) ", " $$1 }' < $< > $@ src/udev/keyboard-keys-from-name.h: src/udev/keyboard-keys-from-name.gperf $(AM_V_GPERF)$(GPERF) -L ANSI-C -t -N keyboard_lookup_key -H hash_key_name -p -C < $< > $@ gperf_txt_sources += \ src/udev/keyboard-keys-list.txt libudev_core_la_SOURCES = \ src/udev/udev.h \ src/udev/udev-event.c \ src/udev/udev-watch.c \ src/udev/udev-node.c \ src/udev/udev-rules.c \ src/udev/udev-ctrl.c \ src/udev/udev-builtin.c \ src/udev/udev-builtin-btrfs.c \ src/udev/udev-builtin-hwdb.c \ src/udev/udev-builtin-input_id.c \ src/udev/udev-builtin-keyboard.c \ src/udev/udev-builtin-net_id.c \ src/udev/udev-builtin-net_setup_link.c \ src/udev/udev-builtin-path_id.c \ src/udev/udev-builtin-usb_id.c \ src/udev/net/link-config.h \ src/udev/net/link-config.c \ src/udev/net/ethtool-util.h \ src/udev/net/ethtool-util.c nodist_libudev_core_la_SOURCES = \ src/udev/keyboard-keys-from-name.h \ src/udev/net/link-config-gperf.c gperf_gperf_sources += \ src/udev/net/link-config-gperf.gperf libudev_core_la_CFLAGS = \ $(AM_CFLAGS) \ $(BLKID_CFLAGS) \ $(KMOD_CFLAGS) libudev_core_la_LIBADD = \ libsystemd-network.la \ libshared.la \ $(BLKID_LIBS) \ $(KMOD_LIBS) if HAVE_KMOD libudev_core_la_SOURCES += \ src/udev/udev-builtin-kmod.c dist_udevrules_DATA += \ rules/80-drivers.rules endif if HAVE_BLKID libudev_core_la_SOURCES += \ src/udev/udev-builtin-blkid.c endif if HAVE_ACL libudev_core_la_SOURCES += \ src/udev/udev-builtin-uaccess.c \ src/login/logind-acl.c \ src/libsystemd/sd-login/sd-login.c \ src/systemd/sd-login.h endif systemd_udevd_SOURCES = \ src/udev/udevd.c systemd_udevd_LDADD = \ libudev-core.la udevadm_SOURCES = \ src/udev/udevadm.c \ src/udev/udevadm-info.c \ src/udev/udevadm-control.c \ src/udev/udevadm-monitor.c \ src/udev/udevadm-hwdb.c \ src/udev/udevadm-settle.c \ src/udev/udevadm-trigger.c \ src/udev/udevadm-test.c \ src/udev/udevadm-test-builtin.c \ src/udev/udevadm-util.c \ src/udev/udevadm-util.h udevadm_LDADD = \ libudev-core.la # ------------------------------------------------------------------------------ if ENABLE_HWDB INSTALL_DIRS += \ $(sysconfdir)/udev/hwdb.d systemd_hwdb_SOURCES = \ src/libsystemd/sd-hwdb/hwdb-internal.h \ src/hwdb/hwdb.c systemd_hwdb_LDADD = \ libshared.la rootbin_PROGRAMS += \ systemd-hwdb dist_udevhwdb_DATA = \ hwdb/20-pci-vendor-model.hwdb \ hwdb/20-pci-classes.hwdb \ hwdb/20-usb-vendor-model.hwdb \ hwdb/20-usb-classes.hwdb \ hwdb/20-sdio-vendor-model.hwdb \ hwdb/20-sdio-classes.hwdb \ hwdb/20-bluetooth-vendor-product.hwdb \ hwdb/20-acpi-vendor.hwdb \ hwdb/20-OUI.hwdb \ hwdb/20-net-ifname.hwdb \ hwdb/60-evdev.hwdb \ hwdb/60-keyboard.hwdb \ hwdb/70-mouse.hwdb \ hwdb/70-pointingstick.hwdb SYSINIT_TARGET_WANTS += \ systemd-hwdb-update.service # Update hwdb on installation. Do not bother if installing # in DESTDIR, since this is likely for packaging purposes. hwdb-update-hook: -test -n "$(DESTDIR)" || $(rootbindir)/systemd-hwdb update INSTALL_DATA_HOOKS += \ hwdb-update-hook hwdb-remove-hook: -test -n "$(DESTDIR)" || rm -f /etc/udev/hwdb.bin endif EXTRA_DIST += \ units/systemd-hwdb-update.service.in \ hwdb/ids-update.pl \ hwdb/sdio.ids # ------------------------------------------------------------------------------ if ENABLE_TESTS TESTS += \ test/udev-test.pl if HAVE_PYTHON TESTS += \ test/rule-syntax-check.py if HAVE_SYSV_COMPAT TESTS += \ test/sysv-generator-test.py endif endif endif manual_tests += \ test-libudev \ test-udev test_libudev_SOURCES = \ src/test/test-libudev.c test_libudev_LDADD = \ libshared.la test_udev_SOURCES = \ src/test/test-udev.c test_udev_LDADD = \ libudev-core.la \ $(BLKID_LIBS) \ $(KMOD_LIBS) if ENABLE_TESTS check_DATA += \ test/sys endif # packed sysfs test tree test/sys: $(AM_V_at)$(MKDIR_P) $(dir $@) $(AM_V_GEN)tar -C test/ -xJf $(top_srcdir)/test/sys.tar.xz test-sys-distclean: -rm -rf test/sys DISTCLEAN_LOCAL_HOOKS += test-sys-distclean EXTRA_DIST += \ test/sys.tar.xz \ test/udev-test.pl \ test/rule-syntax-check.py \ test/sysv-generator-test.py \ test/mocks/fsck