Second step of revamping the build system

The original Makefile.am was drawn to the top level.  This commit
breaks it out into the various directories with SUBDIRS connecting
them.  This makes each directory easier to maintain.
This commit is contained in:
Anthony G. Basile 2012-11-15 20:18:22 -05:00
parent b7b2cc298c
commit c47f33a498
30 changed files with 169875 additions and 618 deletions

View File

@ -1,624 +1,10 @@
ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS} ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS}
#SUBDIRS = docs keymaps keymaps-force-release man rules src test
# And these are the special ones for / SUBDIRS = keymaps keymaps-force-release
rootprefix=@rootprefix@
rootbindir=$(rootprefix)/bin
rootlibexecdir=$(rootprefix)/lib/systemd
AM_CPPFLAGS = \
-include $(top_builddir)/config.h \
-DROOTPREFIX=\"$(rootprefix)\" \
-I $(top_srcdir)/src/libudev \
-I $(top_srcdir)/src/udev \
$(OUR_CPPFLAGS)
# ------------------------------------------------------------------------------
if ENABLE_GTK_DOC if ENABLE_GTK_DOC
SUBDIRS += \ SUBDIRS += \
docs/libudev docs/libudev
endif endif
include_HEADERS += \
src/libudev/libudev.h
lib_LTLIBRARIES += \
libudev.la
libudev_la_SOURCES =\
src/libudev/libudev-private.h \
src/libudev/libudev.c \
src/libudev/libudev-list.c \
src/libudev/libudev-util.c \
src/libudev/libudev-device.c \
src/libudev/libudev-enumerate.c \
src/libudev/libudev-monitor.c \
src/libudev/libudev-queue.c \
src/libudev/libudev-hwdb-def.h \
src/libudev/libudev-hwdb.c
libudev_la_CFLAGS = \
$(AM_CFLAGS) \
-fvisibility=hidden
libudev_la_LDFLAGS = \
$(AM_LDFLAGS) \
-version-info $(LIBUDEV_CURRENT):$(LIBUDEV_REVISION):$(LIBUDEV_AGE) \
-Wl,--version-script=$(top_srcdir)/src/libudev/libudev.sym
pkgconfiglib_DATA += \
src/libudev/libudev.pc
EXTRA_DIST += \
src/libudev/libudev.pc.in \
src/libudev/libudev.sym
CLEANFILES += \
src/libudev/libudev.pc
# move lib from $(libdir) to $(rootlibdir) and update devel link, if needed
libudev-install-move-hook:
if test "$(libdir)" != "$(rootlibdir)"; then \
$(MKDIR_P) $(DESTDIR)$(rootlibdir) && \
so_img_name=$$(readlink $(DESTDIR)$(libdir)/libudev.so) && \
so_img_rel_target_prefix=$$(echo $(libdir) | sed 's,\(^/\|\)[^/][^/]*,..,g') && \
ln -sf $$so_img_rel_target_prefix$(rootlibdir)/$$so_img_name $(DESTDIR)$(libdir)/libudev.so && \
mv $(DESTDIR)$(libdir)/libudev.so.* $(DESTDIR)$(rootlibdir); \
fi
libudev-uninstall-move-hook:
rm -f $(DESTDIR)$(rootlibdir)/libudev.so*
INSTALL_EXEC_HOOKS += libudev-install-move-hook
UNINSTALL_EXEC_HOOKS += libudev-uninstall-move-hook
# ------------------------------------------------------------------------------
noinst_LTLIBRARIES += \
libudev-private.la
libudev_private_la_SOURCES =\
$(libudev_la_SOURCES) \
src/libudev/libudev-device-private.c \
src/libudev/libudev-queue-private.c
libudev_private_la_CFLAGS = \
$(AM_CFLAGS) \
-fvisibility=default
libudev_private_la_LIBADD = \
libsystemd-shared.la
# ------------------------------------------------------------------------------
MANPAGES += \
man/udev.7 \
man/udevadm.8 \
man/systemd-udevd.service.8
udev-confdirs:
-$(MKDIR_P) $(DESTDIR)$(sysconfdir)/udev/rules.d
-$(MKDIR_P) $(DESTDIR)$(sysconfdir)/udev/hwdb.d
INSTALL_DATA_HOOKS += udev-confdirs
dist_udevrules_DATA += \
rules/99-systemd.rules \
rules/42-usb-hid-pm.rules \
rules/50-udev-default.rules \
rules/60-persistent-storage-tape.rules \
rules/60-persistent-serial.rules \
rules/60-persistent-input.rules \
rules/60-persistent-alsa.rules \
rules/60-persistent-storage.rules \
rules/64-btrfs.rules \
rules/75-net-description.rules \
rules/75-tty-description.rules \
rules/78-sound-card.rules \
rules/80-drivers.rules \
rules/95-udev-late.rules
dist_udevhwdb_DATA = \
hwdb/20-pci-vendor-product.hwdb \
hwdb/20-pci-classes.hwdb \
hwdb/20-usb-vendor-product.hwdb \
hwdb/20-usb-classes.hwdb \
hwdb/20-acpi-vendor.hwdb \
hwdb/20-OUI.hwdb
udevconfdir = $(sysconfdir)/udev
dist_udevconf_DATA = \
src/udev/udev.conf
sharepkgconfigdir = $(datadir)/pkgconfig
sharepkgconfig_DATA = \
src/udev/udev.pc
EXTRA_DIST += \
rules/99-systemd.rules.in \
src/udev/udev.pc.in
CLEANFILES += \
rules/99-systemd.rules \
src/udev/udev.pc
bin_PROGRAMS += \
udevadm
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-blkid.c \
src/udev/udev-builtin-btrfs.c \
src/udev/udev-builtin-firmware.c \
src/udev/udev-builtin-hwdb.c \
src/udev/udev-builtin-input_id.c \
src/udev/udev-builtin-kmod.c \
src/udev/udev-builtin-net_id.c \
src/udev/udev-builtin-path_id.c \
src/udev/udev-builtin-usb_id.c
libudev_core_la_CFLAGS = \
$(AM_CFLAGS) \
$(BLKID_CFLAGS) \
$(KMOD_CFLAGS)
libudev_core_la_LIBADD = \
libudev-private.la \
$(BLKID_LIBS) \
$(KMOD_LIBS)
libudev_core_la_CPPFLAGS = \
$(AM_CPPFLAGS) \
-DFIRMWARE_PATH="$(FIRMWARE_PATH)"
if HAVE_ACL
libudev_core_la_SOURCES += \
src/udev/udev-builtin-uaccess.c
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
udevadm_LDADD = \
libudev-core.la
# ------------------------------------------------------------------------------
TESTS += \
test/udev-test.pl \
test/rules-test.sh
noinst_PROGRAMS += \
test-libudev \
test-udev
test_libudev_SOURCES = \
src/test/test-libudev.c
test_libudev_LDADD = \
libudev.la
test_udev_SOURCES = \
src/test/test-udev.c
test_udev_LDADD = \
libudev-core.la \
$(BLKID_LIBS) \
$(KMOD_LIBS) \
$(SELINUX_LIBS)
check_DATA += \
test/sys
# 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/rules-test.sh \
test/rule-syntax-check.py
# ------------------------------------------------------------------------------
ata_id_SOURCES = \
src/udev/ata_id/ata_id.c
ata_id_LDADD = \
libudev-private.la
udevlibexec_PROGRAMS += \
ata_id
# ------------------------------------------------------------------------------
cdrom_id_SOURCES = \
src/udev/cdrom_id/cdrom_id.c
cdrom_id_LDADD = \
libudev.la
udevlibexec_PROGRAMS += \
cdrom_id
dist_udevrules_DATA += \
rules/60-cdrom_id.rules
# ------------------------------------------------------------------------------
collect_SOURCES = \
src/udev/collect/collect.c
collect_LDADD = \
libudev-private.la
udevlibexec_PROGRAMS += \
collect
# ------------------------------------------------------------------------------
scsi_id_SOURCES =\
src/udev/scsi_id/scsi_id.c \
src/udev/scsi_id/scsi_serial.c \
src/udev/scsi_id/scsi.h \
src/udev/scsi_id/scsi_id.h
scsi_id_LDADD = \
libudev-private.la
udevlibexec_PROGRAMS += \
scsi_id
EXTRA_DIST += \
src/udev/scsi_id/README
# ------------------------------------------------------------------------------
v4l_id_SOURCES = \
src/udev/v4l_id/v4l_id.c
v4l_id_LDADD = \
libudev.la
udevlibexec_PROGRAMS += \
v4l_id
dist_udevrules_DATA += \
rules/60-persistent-v4l.rules
# ------------------------------------------------------------------------------
accelerometer_SOURCES = \
src/udev/accelerometer/accelerometer.c
accelerometer_LDADD = \
libudev.la -lm
udevlibexec_PROGRAMS += \
accelerometer
dist_udevrules_DATA += \
rules/61-accelerometer.rules
# ------------------------------------------------------------------------------
if ENABLE_GUDEV
if ENABLE_GTK_DOC
SUBDIRS += \
docs/gudev
endif
libgudev_includedir = \
$(includedir)/gudev-1.0/gudev
libgudev_include_HEADERS = \
src/gudev/gudev.h \
src/gudev/gudevenums.h \
src/gudev/gudevenumtypes.h \
src/gudev/gudevtypes.h \
src/gudev/gudevclient.h \
src/gudev/gudevdevice.h \
src/gudev/gudevenumerator.h
lib_LTLIBRARIES += libgudev-1.0.la
pkgconfiglib_DATA += \
src/gudev/gudev-1.0.pc
CLEANFILES += \
src/gudev/gudev-1.0.pc
libgudev_1_0_la_SOURCES = \
src/gudev/gudevenums.h \
src/gudev/gudevenumtypes.h \
src/gudev/gudevenumtypes.h\
src/gudev/gudevtypes.h \
src/gudev/gudevclient.h \
src/gudev/gudevclient.c \
src/gudev/gudevdevice.h \
src/gudev/gudevdevice.c \
src/gudev/gudevenumerator.h \
src/gudev/gudevenumerator.c \
src/gudev/gudevprivate.h
nodist_libgudev_1_0_la_SOURCES = \
src/gudev/gudevmarshal.h \
src/gudev/gudevmarshal.c \
src/gudev/gudevenumtypes.h \
src/gudev/gudevenumtypes.c
BUILT_SOURCES += \
$(nodist_libgudev_1_0_la_SOURCES)
libgudev_1_0_la_CPPFLAGS = \
$(AM_CPPFLAGS) \
-I$(top_builddir)/src\
-I$(top_srcdir)/src\
-I$(top_builddir)/src/gudev \
-I$(top_srcdir)/src/gudev \
-D_POSIX_PTHREAD_SEMANTICS -D_REENTRANT \
-D_GUDEV_COMPILATION \
-DG_LOG_DOMAIN=\"GUdev\"
libgudev_1_0_la_CFLAGS = \
$(AM_CFLAGS) \
-fvisibility=default \
$(GLIB_CFLAGS)
libgudev_1_0_la_LIBADD = \
libudev.la \
$(GLIB_LIBS)
libgudev_1_0_la_LDFLAGS = \
$(AM_LDFLAGS) \
-version-info $(LIBGUDEV_CURRENT):$(LIBGUDEV_REVISION):$(LIBGUDEV_AGE) \
-export-dynamic -no-undefined \
-export-symbols-regex '^g_udev_.*'
src/gudev/gudevmarshal.h: src/gudev/gudevmarshal.list
$(AM_V_at)$(MKDIR_P) $(dir $@)
$(AM_V_GEN)glib-genmarshal $< --prefix=g_udev_marshal --header > $@
src/gudev/gudevmarshal.c: src/gudev/gudevmarshal.list
$(AM_V_at)$(MKDIR_P) $(dir $@)
$(AM_V_GEN)echo '#include "gudevmarshal.h"' > $@ && \
glib-genmarshal $< --prefix=g_udev_marshal --body >> $@
src/gudev/gudevenumtypes.%: src/gudev/gudevenumtypes.%.template src/gudev/gudevenums.h
$(AM_V_at)$(MKDIR_P) $(dir $@)
$(AM_V_GEN)glib-mkenums --template $^ > $@
if HAVE_INTROSPECTION
-include $(INTROSPECTION_MAKEFILE)
src/gudev/GUdev-1.0.gir: libgudev-1.0.la
src_gudev_GUdev_1_0_gir_INCLUDES = GObject-2.0
src_gudev_GUdev_1_0_gir_CFLAGS = \
$(INCLUDES) \
-D_GUDEV_COMPILATION \
-D_GUDEV_WORK_AROUND_DEV_T_BUG \
-I$(top_srcdir)/src \
-I$(top_builddir)/src \
-I$(top_srcdir)/src/gdev \
-I$(top_builddir)/src/gdev
src_gudev_GUdev_1_0_gir_LIBS = libgudev-1.0.la
src_gudev_GUdev_1_0_gir_SCANNERFLAGS = \
--pkg-export=gudev-1.0 \
--warn-all
src_gudev_GUdev_1_0_gir_FILES = \
src/gudev/gudev.h \
src/gudev/gudevtypes.h \
src/gudev/gudevenums.h \
src/gudev/gudevenumtypes.h \
src/gudev/gudevclient.h \
src/gudev/gudevdevice.h \
src/gudev/gudevenumerator.h \
src/gudev/gudevclient.c \
src/gudev/gudevdevice.c \
src/gudev/gudevenumerator.c
INTROSPECTION_GIRS = src/gudev/GUdev-1.0.gir
INTROSPECTION_SCANNER_ARGS = --c-include=gudev/gudev.h
girdir = $(datadir)/gir-1.0
gir_DATA = \
src/gudev/GUdev-1.0.gir
typelibsdir = $(libdir)/girepository-1.0
typelibs_DATA = \
src/gudev/GUdev-1.0.typelib
CLEANFILES += $(gir_DATA) $(typelibs_DATA)
endif # HAVE_INTROSPECTION
# move lib from $(libdir) to $(rootlibdir) and update devel link, if needed
libgudev-install-move-hook:
if test "$(libdir)" != "$(rootlibdir)"; then \
$(MKDIR_P) $(DESTDIR)$(rootlibdir) && \
so_img_name=$$(readlink $(DESTDIR)$(libdir)/libgudev-1.0.so) && \
so_img_rel_target_prefix=$$(echo $(libdir) | sed 's,\(^/\|\)[^/][^/]*,..,g') && \
ln -sf $$so_img_rel_target_prefix$(rootlibdir)/$$so_img_name $(DESTDIR)$(libdir)/libgudev-1.0.so && \
mv $(DESTDIR)$(libdir)/libgudev-1.0.so.* $(DESTDIR)$(rootlibdir); \
fi
libgudev-uninstall-move-hook:
rm -f $(DESTDIR)$(rootlibdir)/libgudev-1.0.so*
INSTALL_EXEC_HOOKS += libgudev-install-move-hook
UNINSTALL_EXEC_HOOKS += libgudev-uninstall-move-hook
endif
EXTRA_DIST += \
src/gudev/gudev-1.0.pc.in \
src/gudev/gudevmarshal.list \
src/gudev/gudevenumtypes.h.template \
src/gudev/gudevenumtypes.c.template \
src/gudev/gjs-example.js \
src/gudev/seed-example-enum.js \
src/gudev/seed-example.js
# ------------------------------------------------------------------------------
if ENABLE_KEYMAP
keymap_SOURCES = \
src/udev/keymap/keymap.c
keymap_CPPFLAGS = \
$(AM_CPPFLAGS) -I src/udev/keymap
nodist_keymap_SOURCES = \
src/udev/keymap/keys-from-name.h \
src/udev/keymap/keys-to-name.h
BUILT_SOURCES += \
$(nodist_keymap_SOURCES)
udevlibexec_PROGRAMS += \
keymap
dist_doc_DATA += \
src/udev/keymap/README.keymap.txt
dist_udevrules_DATA += \
src/udev/keymap/95-keymap.rules \
src/udev/keymap/95-keyboard-force-release.rules
dist_udevhome_SCRIPTS = \
src/udev/keymap/findkeyboards \
src/udev/keymap/keyboard-force-release.sh
TESTS += \
src/udev/keymap/check-keymaps.sh
CLEANFILES += \
src/udev/keymap/keys.txt \
src/udev/keymap/keys-from-name.gperf \
src/udev/keymap/keyboard-force-release.sh
udevkeymapdir = $(udevlibexecdir)/keymaps
dist_udevkeymap_DATA = \
keymaps/acer \
keymaps/acer-aspire_5720 \
keymaps/acer-aspire_8930 \
keymaps/acer-aspire_5920g \
keymaps/acer-aspire_6920 \
keymaps/acer-travelmate_c300 \
keymaps/asus \
keymaps/compaq-e_evo \
keymaps/dell \
keymaps/dell-latitude-xt2 \
keymaps/everex-xt5000 \
keymaps/fujitsu-amilo_li_2732 \
keymaps/fujitsu-amilo_pa_2548 \
keymaps/fujitsu-amilo_pro_edition_v3505 \
keymaps/fujitsu-amilo_pro_v3205 \
keymaps/fujitsu-amilo_si_1520 \
keymaps/fujitsu-esprimo_mobile_v5 \
keymaps/fujitsu-esprimo_mobile_v6 \
keymaps/genius-slimstar-320 \
keymaps/hewlett-packard \
keymaps/hewlett-packard-2510p_2530p \
keymaps/hewlett-packard-compaq_elitebook \
keymaps/hewlett-packard-pavilion \
keymaps/hewlett-packard-presario-2100 \
keymaps/hewlett-packard-tablet \
keymaps/hewlett-packard-tx2 \
keymaps/hewlett-packard_elitebook-8440p \
keymaps/ibm-thinkpad-usb-keyboard-trackpoint \
keymaps/inventec-symphony_6.0_7.0 \
keymaps/lenovo-3000 \
keymaps/lenovo-ideapad \
keymaps/lenovo-thinkpad-usb-keyboard-trackpoint \
keymaps/lenovo-thinkpad_x6_tablet \
keymaps/lenovo-thinkpad_x200_tablet \
keymaps/lg-x110 \
keymaps/logitech-wave \
keymaps/logitech-wave-cordless \
keymaps/logitech-wave-pro-cordless \
keymaps/maxdata-pro_7000 \
keymaps/medion-fid2060 \
keymaps/medionnb-a555 \
keymaps/micro-star \
keymaps/module-asus-w3j \
keymaps/module-ibm \
keymaps/module-lenovo \
keymaps/module-sony \
keymaps/module-sony-old \
keymaps/module-sony-vgn \
keymaps/module-sony-vpc \
keymaps/olpc-xo \
keymaps/onkyo \
keymaps/oqo-model2 \
keymaps/samsung-other \
keymaps/samsung-90x3a \
keymaps/samsung-sq1us \
keymaps/samsung-sx20s \
keymaps/toshiba-satellite_a100 \
keymaps/toshiba-satellite_a110 \
keymaps/toshiba-satellite_m30x \
keymaps/zepto-znote
udevkeymapforcereldir = $(udevlibexecdir)/keymaps/force-release
dist_udevkeymapforcerel_DATA = \
keymaps-force-release/dell-touchpad \
keymaps-force-release/dell-xps \
keymaps-force-release/hp-other \
keymaps-force-release/samsung-other \
keymaps-force-release/samsung-90x3a \
keymaps-force-release/common-volume-keys
src/udev/keymap/keys.txt: Makefile
$(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-9]/ { if ($$2 != "KEY_MAX") { print $$2 } }' | sed 's/^KEY_COFFEE$$/KEY_SCREENLOCK/' > $@
src/udev/keymap/keys-from-name.gperf: src/udev/keymap/keys.txt Makefile
$(AM_V_GEN)$(AWK) 'BEGIN{ print "struct key { const char* name; unsigned short id; };"; print "%null-strings"; print "%%";} { print $$1 ", " $$1 }' < $< > $@
src/udev/keymap/keys-from-name.h: src/udev/keymap/keys-from-name.gperf Makefile
$(AM_V_GEN)$(GPERF) -L ANSI-C -t --ignore-case -N lookup_key -H hash_key_name -p -C < $< > $@
src/udev/keymap/keys-to-name.h: src/udev/keymap/keys.txt Makefile
$(AM_V_GEN)$(AWK) 'BEGIN{ print "const char* const key_names[KEY_CNT] = { "} { print "[" $$1 "] = \"" $$1 "\"," } END{print "};"}' < $< > $@
endif
EXTRA_DIST += \
src/udev/keymap/check-keymaps.sh \
src/udev/keymap/keyboard-force-release.sh.in
# ------------------------------------------------------------------------------
mtd_probe_SOURCES = \
src/udev/mtd_probe/mtd_probe.c \
src/udev/mtd_probe/mtd_probe.h \
src/udev/mtd_probe/probe_smartmedia.c
mtd_probe_CPPFLAGS = \
$(AM_CPPFLAGS)
dist_udevrules_DATA += \
rules/75-probe_mtd.rules
udevlibexec_PROGRAMS += \
mtd_probe

View File

@ -6,4 +6,5 @@ aclocal && \
autoheader && \ autoheader && \
autoconf && \ autoconf && \
libtoolize --copy && \ libtoolize --copy && \
gtkdocize --docdir docs && \
automake --add-missing --copy automake --add-missing --copy

View File

@ -31,6 +31,7 @@ AC_PROG_MAKE_SET
AC_PATH_PROG([M4], [m4]) AC_PATH_PROG([M4], [m4])
AC_PATH_PROG([XSLTPROC], [xsltproc]) AC_PATH_PROG([XSLTPROC], [xsltproc])
GTK_DOC_CHECK([1.18],[--flavour no-tmpl])
# TODO check this --- we don't want kmod necessarily # TODO check this --- we don't want kmod necessarily
# PKG_CHECK_MODULES(KMOD, [libkmod >= 5]) # PKG_CHECK_MODULES(KMOD, [libkmod >= 5])
@ -108,6 +109,14 @@ AS_IF([test "x$with_python" != "xno"], [
]) ])
AM_CONDITIONAL([HAVE_PYTHON_DEVEL], [test "$have_python_devel" = "yes"]) AM_CONDITIONAL([HAVE_PYTHON_DEVEL], [test "$have_python_devel" = "yes"])
# ------------------------------------------------------------------------------
have_introspection=no
AC_ARG_ENABLE([introspection],
[AS_HELP_STRING([--without-introspection], [Disable man page index and systemd-python (default: no)])])
GOBJECT_INTROSPECTION_CHECK([1.31.1])
AM_CONDITIONAL([HAVE_INTROSPECTION], [test "$have_introspection" = "yes"])
# ------------------------------------------------------------------------------ # ------------------------------------------------------------------------------
have_selinux=no have_selinux=no
AC_ARG_ENABLE(selinux, AS_HELP_STRING([--disable-selinux], [Disable optional SELINUX support])) AC_ARG_ENABLE(selinux, AS_HELP_STRING([--disable-selinux], [Disable optional SELINUX support]))
@ -242,6 +251,18 @@ AC_SUBST([rootlibdir], [$with_rootlibdir])
# ------------------------------------------------------------------------------ # ------------------------------------------------------------------------------
AC_CONFIG_FILES([Makefile AC_CONFIG_FILES([Makefile
docs/Makefile
docs/gudev/Makefile docs/gudev/Makefile
docs/libudev/Makefile]) docs/libudev/Makefile
hwdb/Makefile
keymaps-force-release/Makefile
keymaps/Makefile
man/Makefile
rules/Makefile
src/Makefile
src/gudev/Makefile
src/libudev/Makefile
src/test/Makefile
src/udev/Makefile
test/Makefile])
AC_OUTPUT AC_OUTPUT

8
docs/Makefile.am Normal file
View File

@ -0,0 +1,8 @@
if ENABLE_GUDEV
SUBDIRS = \
libudev
if ENABLE_GTK_DOC
SUBDIRS += \
gudev
endif
endif

51108
hwdb/20-OUI.hwdb Normal file

File diff suppressed because it is too large Load Diff

6050
hwdb/20-acpi-vendor.hwdb Normal file

File diff suppressed because it is too large Load Diff

531
hwdb/20-pci-classes.hwdb Normal file
View File

@ -0,0 +1,531 @@
# This file is part of systemd.
#
# Data imported and updated from: http://pci-ids.ucw.cz/v2.2/pci.ids
pci:v*d*sv*sd*bc00*
ID_PCI_CLASS_FROM_DATABASE=Unclassified device
pci:v*d*sv*sd*bc00sc00*
ID_PCI_SUBCLASS_FROM_DATABASE=Non-VGA unclassified device
pci:v*d*sv*sd*bc00sc01*
ID_PCI_SUBCLASS_FROM_DATABASE=VGA compatible unclassified device
pci:v*d*sv*sd*bc01*
ID_PCI_CLASS_FROM_DATABASE=Mass storage controller
pci:v*d*sv*sd*bc01sc00*
ID_PCI_SUBCLASS_FROM_DATABASE=SCSI storage controller
pci:v*d*sv*sd*bc01sc01*
ID_PCI_SUBCLASS_FROM_DATABASE=IDE interface
pci:v*d*sv*sd*bc01sc02*
ID_PCI_SUBCLASS_FROM_DATABASE=Floppy disk controller
pci:v*d*sv*sd*bc01sc03*
ID_PCI_SUBCLASS_FROM_DATABASE=IPI bus controller
pci:v*d*sv*sd*bc01sc04*
ID_PCI_SUBCLASS_FROM_DATABASE=RAID bus controller
pci:v*d*sv*sd*bc01sc05*
ID_PCI_SUBCLASS_FROM_DATABASE=ATA controller
pci:v*d*sv*sd*bc01sc05i20*
ID_PCI_INTERFACE_FROM_DATABASE=ADMA single stepping
pci:v*d*sv*sd*bc01sc05i30*
ID_PCI_INTERFACE_FROM_DATABASE=ADMA continuous operation
pci:v*d*sv*sd*bc01sc06*
ID_PCI_SUBCLASS_FROM_DATABASE=SATA controller
pci:v*d*sv*sd*bc01sc06i00*
ID_PCI_INTERFACE_FROM_DATABASE=Vendor specific
pci:v*d*sv*sd*bc01sc06i01*
ID_PCI_INTERFACE_FROM_DATABASE=AHCI 1.0
pci:v*d*sv*sd*bc01sc07*
ID_PCI_SUBCLASS_FROM_DATABASE=Serial Attached SCSI controller
pci:v*d*sv*sd*bc01sc08*
ID_PCI_SUBCLASS_FROM_DATABASE=Non-Volatile memory controller
pci:v*d*sv*sd*bc01sc80*
ID_PCI_SUBCLASS_FROM_DATABASE=Mass storage controller
pci:v*d*sv*sd*bc02*
ID_PCI_CLASS_FROM_DATABASE=Network controller
pci:v*d*sv*sd*bc02sc00*
ID_PCI_SUBCLASS_FROM_DATABASE=Ethernet controller
pci:v*d*sv*sd*bc02sc01*
ID_PCI_SUBCLASS_FROM_DATABASE=Token ring network controller
pci:v*d*sv*sd*bc02sc02*
ID_PCI_SUBCLASS_FROM_DATABASE=FDDI network controller
pci:v*d*sv*sd*bc02sc03*
ID_PCI_SUBCLASS_FROM_DATABASE=ATM network controller
pci:v*d*sv*sd*bc02sc04*
ID_PCI_SUBCLASS_FROM_DATABASE=ISDN controller
pci:v*d*sv*sd*bc02sc05*
ID_PCI_SUBCLASS_FROM_DATABASE=WorldFip controller
pci:v*d*sv*sd*bc02sc06*
ID_PCI_SUBCLASS_FROM_DATABASE=PICMG controller
pci:v*d*sv*sd*bc02sc80*
ID_PCI_SUBCLASS_FROM_DATABASE=Network controller
pci:v*d*sv*sd*bc03*
ID_PCI_CLASS_FROM_DATABASE=Display controller
pci:v*d*sv*sd*bc03sc00*
ID_PCI_SUBCLASS_FROM_DATABASE=VGA compatible controller
pci:v*d*sv*sd*bc03sc00i00*
ID_PCI_INTERFACE_FROM_DATABASE=VGA controller
pci:v*d*sv*sd*bc03sc00i01*
ID_PCI_INTERFACE_FROM_DATABASE=8514 controller
pci:v*d*sv*sd*bc03sc01*
ID_PCI_SUBCLASS_FROM_DATABASE=XGA compatible controller
pci:v*d*sv*sd*bc03sc02*
ID_PCI_SUBCLASS_FROM_DATABASE=3D controller
pci:v*d*sv*sd*bc03sc80*
ID_PCI_SUBCLASS_FROM_DATABASE=Display controller
pci:v*d*sv*sd*bc04*
ID_PCI_CLASS_FROM_DATABASE=Multimedia controller
pci:v*d*sv*sd*bc04sc00*
ID_PCI_SUBCLASS_FROM_DATABASE=Multimedia video controller
pci:v*d*sv*sd*bc04sc01*
ID_PCI_SUBCLASS_FROM_DATABASE=Multimedia audio controller
pci:v*d*sv*sd*bc04sc02*
ID_PCI_SUBCLASS_FROM_DATABASE=Computer telephony device
pci:v*d*sv*sd*bc04sc03*
ID_PCI_SUBCLASS_FROM_DATABASE=Audio device
pci:v*d*sv*sd*bc04sc80*
ID_PCI_SUBCLASS_FROM_DATABASE=Multimedia controller
pci:v*d*sv*sd*bc05*
ID_PCI_CLASS_FROM_DATABASE=Memory controller
pci:v*d*sv*sd*bc05sc00*
ID_PCI_SUBCLASS_FROM_DATABASE=RAM memory
pci:v*d*sv*sd*bc05sc01*
ID_PCI_SUBCLASS_FROM_DATABASE=FLASH memory
pci:v*d*sv*sd*bc05sc80*
ID_PCI_SUBCLASS_FROM_DATABASE=Memory controller
pci:v*d*sv*sd*bc06*
ID_PCI_CLASS_FROM_DATABASE=Bridge
pci:v*d*sv*sd*bc06sc00*
ID_PCI_SUBCLASS_FROM_DATABASE=Host bridge
pci:v*d*sv*sd*bc06sc01*
ID_PCI_SUBCLASS_FROM_DATABASE=ISA bridge
pci:v*d*sv*sd*bc06sc02*
ID_PCI_SUBCLASS_FROM_DATABASE=EISA bridge
pci:v*d*sv*sd*bc06sc03*
ID_PCI_SUBCLASS_FROM_DATABASE=MicroChannel bridge
pci:v*d*sv*sd*bc06sc04*
ID_PCI_SUBCLASS_FROM_DATABASE=PCI bridge
pci:v*d*sv*sd*bc06sc04i00*
ID_PCI_INTERFACE_FROM_DATABASE=Normal decode
pci:v*d*sv*sd*bc06sc04i01*
ID_PCI_INTERFACE_FROM_DATABASE=Subtractive decode
pci:v*d*sv*sd*bc06sc05*
ID_PCI_SUBCLASS_FROM_DATABASE=PCMCIA bridge
pci:v*d*sv*sd*bc06sc06*
ID_PCI_SUBCLASS_FROM_DATABASE=NuBus bridge
pci:v*d*sv*sd*bc06sc07*
ID_PCI_SUBCLASS_FROM_DATABASE=CardBus bridge
pci:v*d*sv*sd*bc06sc08*
ID_PCI_SUBCLASS_FROM_DATABASE=RACEway bridge
pci:v*d*sv*sd*bc06sc08i00*
ID_PCI_INTERFACE_FROM_DATABASE=Transparent mode
pci:v*d*sv*sd*bc06sc08i01*
ID_PCI_INTERFACE_FROM_DATABASE=Endpoint mode
pci:v*d*sv*sd*bc06sc09*
ID_PCI_SUBCLASS_FROM_DATABASE=Semi-transparent PCI-to-PCI bridge
pci:v*d*sv*sd*bc06sc09i40*
ID_PCI_INTERFACE_FROM_DATABASE=Primary bus towards host CPU
pci:v*d*sv*sd*bc06sc09i80*
ID_PCI_INTERFACE_FROM_DATABASE=Secondary bus towards host CPU
pci:v*d*sv*sd*bc06sc0A*
ID_PCI_SUBCLASS_FROM_DATABASE=InfiniBand to PCI host bridge
pci:v*d*sv*sd*bc06sc80*
ID_PCI_SUBCLASS_FROM_DATABASE=Bridge
pci:v*d*sv*sd*bc07*
ID_PCI_CLASS_FROM_DATABASE=Communication controller
pci:v*d*sv*sd*bc07sc00*
ID_PCI_SUBCLASS_FROM_DATABASE=Serial controller
pci:v*d*sv*sd*bc07sc00i00*
ID_PCI_INTERFACE_FROM_DATABASE=8250
pci:v*d*sv*sd*bc07sc00i01*
ID_PCI_INTERFACE_FROM_DATABASE=16450
pci:v*d*sv*sd*bc07sc00i02*
ID_PCI_INTERFACE_FROM_DATABASE=16550
pci:v*d*sv*sd*bc07sc00i03*
ID_PCI_INTERFACE_FROM_DATABASE=16650
pci:v*d*sv*sd*bc07sc00i04*
ID_PCI_INTERFACE_FROM_DATABASE=16750
pci:v*d*sv*sd*bc07sc00i05*
ID_PCI_INTERFACE_FROM_DATABASE=16850
pci:v*d*sv*sd*bc07sc00i06*
ID_PCI_INTERFACE_FROM_DATABASE=16950
pci:v*d*sv*sd*bc07sc01*
ID_PCI_SUBCLASS_FROM_DATABASE=Parallel controller
pci:v*d*sv*sd*bc07sc01i00*
ID_PCI_INTERFACE_FROM_DATABASE=SPP
pci:v*d*sv*sd*bc07sc01i01*
ID_PCI_INTERFACE_FROM_DATABASE=BiDir
pci:v*d*sv*sd*bc07sc01i02*
ID_PCI_INTERFACE_FROM_DATABASE=ECP
pci:v*d*sv*sd*bc07sc01i03*
ID_PCI_INTERFACE_FROM_DATABASE=IEEE1284
pci:v*d*sv*sd*bc07sc01iFE*
ID_PCI_INTERFACE_FROM_DATABASE=IEEE1284 Target
pci:v*d*sv*sd*bc07sc02*
ID_PCI_SUBCLASS_FROM_DATABASE=Multiport serial controller
pci:v*d*sv*sd*bc07sc03*
ID_PCI_SUBCLASS_FROM_DATABASE=Modem
pci:v*d*sv*sd*bc07sc03i00*
ID_PCI_INTERFACE_FROM_DATABASE=Generic
pci:v*d*sv*sd*bc07sc03i01*
ID_PCI_INTERFACE_FROM_DATABASE=Hayes/16450
pci:v*d*sv*sd*bc07sc03i02*
ID_PCI_INTERFACE_FROM_DATABASE=Hayes/16550
pci:v*d*sv*sd*bc07sc03i03*
ID_PCI_INTERFACE_FROM_DATABASE=Hayes/16650
pci:v*d*sv*sd*bc07sc03i04*
ID_PCI_INTERFACE_FROM_DATABASE=Hayes/16750
pci:v*d*sv*sd*bc07sc04*
ID_PCI_SUBCLASS_FROM_DATABASE=GPIB controller
pci:v*d*sv*sd*bc07sc05*
ID_PCI_SUBCLASS_FROM_DATABASE=Smard Card controller
pci:v*d*sv*sd*bc07sc80*
ID_PCI_SUBCLASS_FROM_DATABASE=Communication controller
pci:v*d*sv*sd*bc08*
ID_PCI_CLASS_FROM_DATABASE=Generic system peripheral
pci:v*d*sv*sd*bc08sc00*
ID_PCI_SUBCLASS_FROM_DATABASE=PIC
pci:v*d*sv*sd*bc08sc00i00*
ID_PCI_INTERFACE_FROM_DATABASE=8259
pci:v*d*sv*sd*bc08sc00i01*
ID_PCI_INTERFACE_FROM_DATABASE=ISA PIC
pci:v*d*sv*sd*bc08sc00i02*
ID_PCI_INTERFACE_FROM_DATABASE=EISA PIC
pci:v*d*sv*sd*bc08sc00i10*
ID_PCI_INTERFACE_FROM_DATABASE=IO-APIC
pci:v*d*sv*sd*bc08sc00i20*
ID_PCI_INTERFACE_FROM_DATABASE=IO(X)-APIC
pci:v*d*sv*sd*bc08sc01*
ID_PCI_SUBCLASS_FROM_DATABASE=DMA controller
pci:v*d*sv*sd*bc08sc01i00*
ID_PCI_INTERFACE_FROM_DATABASE=8237
pci:v*d*sv*sd*bc08sc01i01*
ID_PCI_INTERFACE_FROM_DATABASE=ISA DMA
pci:v*d*sv*sd*bc08sc01i02*
ID_PCI_INTERFACE_FROM_DATABASE=EISA DMA
pci:v*d*sv*sd*bc08sc02*
ID_PCI_SUBCLASS_FROM_DATABASE=Timer
pci:v*d*sv*sd*bc08sc02i00*
ID_PCI_INTERFACE_FROM_DATABASE=8254
pci:v*d*sv*sd*bc08sc02i01*
ID_PCI_INTERFACE_FROM_DATABASE=ISA Timer
pci:v*d*sv*sd*bc08sc02i02*
ID_PCI_INTERFACE_FROM_DATABASE=EISA Timers
pci:v*d*sv*sd*bc08sc03*
ID_PCI_SUBCLASS_FROM_DATABASE=RTC
pci:v*d*sv*sd*bc08sc03i00*
ID_PCI_INTERFACE_FROM_DATABASE=Generic
pci:v*d*sv*sd*bc08sc03i01*
ID_PCI_INTERFACE_FROM_DATABASE=ISA RTC
pci:v*d*sv*sd*bc08sc04*
ID_PCI_SUBCLASS_FROM_DATABASE=PCI Hot-plug controller
pci:v*d*sv*sd*bc08sc05*
ID_PCI_SUBCLASS_FROM_DATABASE=SD Host controller
pci:v*d*sv*sd*bc08sc06*
ID_PCI_SUBCLASS_FROM_DATABASE=IOMMU
pci:v*d*sv*sd*bc08sc80*
ID_PCI_SUBCLASS_FROM_DATABASE=System peripheral
pci:v*d*sv*sd*bc09*
ID_PCI_CLASS_FROM_DATABASE=Input device controller
pci:v*d*sv*sd*bc09sc00*
ID_PCI_SUBCLASS_FROM_DATABASE=Keyboard controller
pci:v*d*sv*sd*bc09sc01*
ID_PCI_SUBCLASS_FROM_DATABASE=Digitizer Pen
pci:v*d*sv*sd*bc09sc02*
ID_PCI_SUBCLASS_FROM_DATABASE=Mouse controller
pci:v*d*sv*sd*bc09sc03*
ID_PCI_SUBCLASS_FROM_DATABASE=Scanner controller
pci:v*d*sv*sd*bc09sc04*
ID_PCI_SUBCLASS_FROM_DATABASE=Gameport controller
pci:v*d*sv*sd*bc09sc04i00*
ID_PCI_INTERFACE_FROM_DATABASE=Generic
pci:v*d*sv*sd*bc09sc04i10*
ID_PCI_INTERFACE_FROM_DATABASE=Extended
pci:v*d*sv*sd*bc09sc80*
ID_PCI_SUBCLASS_FROM_DATABASE=Input device controller
pci:v*d*sv*sd*bc0A*
ID_PCI_CLASS_FROM_DATABASE=Docking station
pci:v*d*sv*sd*bc0Asc00*
ID_PCI_SUBCLASS_FROM_DATABASE=Generic Docking Station
pci:v*d*sv*sd*bc0Asc80*
ID_PCI_SUBCLASS_FROM_DATABASE=Docking Station
pci:v*d*sv*sd*bc0B*
ID_PCI_CLASS_FROM_DATABASE=Processor
pci:v*d*sv*sd*bc0Bsc00*
ID_PCI_SUBCLASS_FROM_DATABASE=386
pci:v*d*sv*sd*bc0Bsc01*
ID_PCI_SUBCLASS_FROM_DATABASE=486
pci:v*d*sv*sd*bc0Bsc02*
ID_PCI_SUBCLASS_FROM_DATABASE=Pentium
pci:v*d*sv*sd*bc0Bsc10*
ID_PCI_SUBCLASS_FROM_DATABASE=Alpha
pci:v*d*sv*sd*bc0Bsc20*
ID_PCI_SUBCLASS_FROM_DATABASE=Power PC
pci:v*d*sv*sd*bc0Bsc30*
ID_PCI_SUBCLASS_FROM_DATABASE=MIPS
pci:v*d*sv*sd*bc0Bsc40*
ID_PCI_SUBCLASS_FROM_DATABASE=Co-processor
pci:v*d*sv*sd*bc0C*
ID_PCI_CLASS_FROM_DATABASE=Serial bus controller
pci:v*d*sv*sd*bc0Csc00*
ID_PCI_SUBCLASS_FROM_DATABASE=FireWire (IEEE 1394)
pci:v*d*sv*sd*bc0Csc00i00*
ID_PCI_INTERFACE_FROM_DATABASE=Generic
pci:v*d*sv*sd*bc0Csc00i10*
ID_PCI_INTERFACE_FROM_DATABASE=OHCI
pci:v*d*sv*sd*bc0Csc01*
ID_PCI_SUBCLASS_FROM_DATABASE=ACCESS Bus
pci:v*d*sv*sd*bc0Csc02*
ID_PCI_SUBCLASS_FROM_DATABASE=SSA
pci:v*d*sv*sd*bc0Csc03*
ID_PCI_SUBCLASS_FROM_DATABASE=USB controller
pci:v*d*sv*sd*bc0Csc03i00*
ID_PCI_INTERFACE_FROM_DATABASE=UHCI
pci:v*d*sv*sd*bc0Csc03i10*
ID_PCI_INTERFACE_FROM_DATABASE=OHCI
pci:v*d*sv*sd*bc0Csc03i20*
ID_PCI_INTERFACE_FROM_DATABASE=EHCI
pci:v*d*sv*sd*bc0Csc03i30*
ID_PCI_INTERFACE_FROM_DATABASE=XHCI
pci:v*d*sv*sd*bc0Csc03i80*
ID_PCI_INTERFACE_FROM_DATABASE=Unspecified
pci:v*d*sv*sd*bc0Csc03iFE*
ID_PCI_INTERFACE_FROM_DATABASE=USB Device
pci:v*d*sv*sd*bc0Csc04*
ID_PCI_SUBCLASS_FROM_DATABASE=Fibre Channel
pci:v*d*sv*sd*bc0Csc05*
ID_PCI_SUBCLASS_FROM_DATABASE=SMBus
pci:v*d*sv*sd*bc0Csc06*
ID_PCI_SUBCLASS_FROM_DATABASE=InfiniBand
pci:v*d*sv*sd*bc0Csc07*
ID_PCI_SUBCLASS_FROM_DATABASE=IPMI SMIC interface
pci:v*d*sv*sd*bc0Csc08*
ID_PCI_SUBCLASS_FROM_DATABASE=SERCOS interface
pci:v*d*sv*sd*bc0Csc09*
ID_PCI_SUBCLASS_FROM_DATABASE=CANBUS
pci:v*d*sv*sd*bc0D*
ID_PCI_CLASS_FROM_DATABASE=Wireless controller
pci:v*d*sv*sd*bc0Dsc00*
ID_PCI_SUBCLASS_FROM_DATABASE=IRDA controller
pci:v*d*sv*sd*bc0Dsc01*
ID_PCI_SUBCLASS_FROM_DATABASE=Consumer IR controller
pci:v*d*sv*sd*bc0Dsc10*
ID_PCI_SUBCLASS_FROM_DATABASE=RF controller
pci:v*d*sv*sd*bc0Dsc11*
ID_PCI_SUBCLASS_FROM_DATABASE=Bluetooth
pci:v*d*sv*sd*bc0Dsc12*
ID_PCI_SUBCLASS_FROM_DATABASE=Broadband
pci:v*d*sv*sd*bc0Dsc20*
ID_PCI_SUBCLASS_FROM_DATABASE=802.1a controller
pci:v*d*sv*sd*bc0Dsc21*
ID_PCI_SUBCLASS_FROM_DATABASE=802.1b controller
pci:v*d*sv*sd*bc0Dsc80*
ID_PCI_SUBCLASS_FROM_DATABASE=Wireless controller
pci:v*d*sv*sd*bc0E*
ID_PCI_CLASS_FROM_DATABASE=Intelligent controller
pci:v*d*sv*sd*bc0Esc00*
ID_PCI_SUBCLASS_FROM_DATABASE=I2O
pci:v*d*sv*sd*bc0F*
ID_PCI_CLASS_FROM_DATABASE=Satellite communications controller
pci:v*d*sv*sd*bc0Fsc01*
ID_PCI_SUBCLASS_FROM_DATABASE=Satellite TV controller
pci:v*d*sv*sd*bc0Fsc02*
ID_PCI_SUBCLASS_FROM_DATABASE=Satellite audio communication controller
pci:v*d*sv*sd*bc0Fsc03*
ID_PCI_SUBCLASS_FROM_DATABASE=Satellite voice communication controller
pci:v*d*sv*sd*bc0Fsc04*
ID_PCI_SUBCLASS_FROM_DATABASE=Satellite data communication controller
pci:v*d*sv*sd*bc10*
ID_PCI_CLASS_FROM_DATABASE=Encryption controller
pci:v*d*sv*sd*bc10sc00*
ID_PCI_SUBCLASS_FROM_DATABASE=Network and computing encryption device
pci:v*d*sv*sd*bc10sc10*
ID_PCI_SUBCLASS_FROM_DATABASE=Entertainment encryption device
pci:v*d*sv*sd*bc10sc80*
ID_PCI_SUBCLASS_FROM_DATABASE=Encryption controller
pci:v*d*sv*sd*bc11*
ID_PCI_CLASS_FROM_DATABASE=Signal processing controller
pci:v*d*sv*sd*bc11sc00*
ID_PCI_SUBCLASS_FROM_DATABASE=DPIO module
pci:v*d*sv*sd*bc11sc01*
ID_PCI_SUBCLASS_FROM_DATABASE=Performance counters
pci:v*d*sv*sd*bc11sc10*
ID_PCI_SUBCLASS_FROM_DATABASE=Communication synchronizer
pci:v*d*sv*sd*bc11sc20*
ID_PCI_SUBCLASS_FROM_DATABASE=Signal processing management
pci:v*d*sv*sd*bc11sc80*
ID_PCI_SUBCLASS_FROM_DATABASE=Signal processing controller
pci:v*d*sv*sd*bcFF*
ID_PCI_CLASS_FROM_DATABASE=Unassigned class

File diff suppressed because it is too large Load Diff

339
hwdb/20-usb-classes.hwdb Normal file
View File

@ -0,0 +1,339 @@
# This file is part of systemd.
#
# Data imported and updated from: http://www.linux-usb.org/usb.ids
usb:v*p*d*dc01*
ID_USB_CLASS_FROM_DATABASE=Audio
usb:v*p*d*dc01dsc01*
ID_USB_SUBCLASS_FROM_DATABASE=Control Device
usb:v*p*d*dc01dsc02*
ID_USB_SUBCLASS_FROM_DATABASE=Streaming
usb:v*p*d*dc01dsc03*
ID_USB_SUBCLASS_FROM_DATABASE=MIDI Streaming
usb:v*p*d*dc02*
ID_USB_CLASS_FROM_DATABASE=Communications
usb:v*p*d*dc02dsc01*
ID_USB_SUBCLASS_FROM_DATABASE=Direct Line
usb:v*p*d*dc02dsc02*
ID_USB_SUBCLASS_FROM_DATABASE=Abstract (modem)
usb:v*p*d*dc02dsc02dp01*
ID_USB_PROTOCOL_FROM_DATABASE=AT-commands (v.25ter)
usb:v*p*d*dc02dsc02dp02*
ID_USB_PROTOCOL_FROM_DATABASE=AT-commands (PCCA101)
usb:v*p*d*dc02dsc02dp03*
ID_USB_PROTOCOL_FROM_DATABASE=AT-commands (PCCA101 + wakeup)
usb:v*p*d*dc02dsc02dp04*
ID_USB_PROTOCOL_FROM_DATABASE=AT-commands (GSM)
usb:v*p*d*dc02dsc02dp05*
ID_USB_PROTOCOL_FROM_DATABASE=AT-commands (3G)
usb:v*p*d*dc02dsc02dp06*
ID_USB_PROTOCOL_FROM_DATABASE=AT-commands (CDMA)
usb:v*p*d*dc02dsc02dpFE*
ID_USB_PROTOCOL_FROM_DATABASE=Defined by command set descriptor
usb:v*p*d*dc02dsc02dpFF*
ID_USB_PROTOCOL_FROM_DATABASE=Vendor Specific (MSFT RNDIS?)
usb:v*p*d*dc02dsc03*
ID_USB_SUBCLASS_FROM_DATABASE=Telephone
usb:v*p*d*dc02dsc04*
ID_USB_SUBCLASS_FROM_DATABASE=Multi-Channel
usb:v*p*d*dc02dsc05*
ID_USB_SUBCLASS_FROM_DATABASE=CAPI Control
usb:v*p*d*dc02dsc06*
ID_USB_SUBCLASS_FROM_DATABASE=Ethernet Networking
usb:v*p*d*dc02dsc07*
ID_USB_SUBCLASS_FROM_DATABASE=ATM Networking
usb:v*p*d*dc02dsc08*
ID_USB_SUBCLASS_FROM_DATABASE=Wireless Handset Control
usb:v*p*d*dc02dsc09*
ID_USB_SUBCLASS_FROM_DATABASE=Device Management
usb:v*p*d*dc02dsc0A*
ID_USB_SUBCLASS_FROM_DATABASE=Mobile Direct Line
usb:v*p*d*dc02dsc0B*
ID_USB_SUBCLASS_FROM_DATABASE=OBEX
usb:v*p*d*dc02dsc0C*
ID_USB_SUBCLASS_FROM_DATABASE=Ethernet Emulation
usb:v*p*d*dc02dsc0Cdp07*
ID_USB_PROTOCOL_FROM_DATABASE=Ethernet Emulation (EEM)
usb:v*p*d*dc03*
ID_USB_CLASS_FROM_DATABASE=Human Interface Device
usb:v*p*d*dc03dsc00dp01*
ID_USB_PROTOCOL_FROM_DATABASE=Keyboard
usb:v*p*d*dc03dsc00dp02*
ID_USB_PROTOCOL_FROM_DATABASE=Mouse
usb:v*p*d*dc03dsc01*
ID_USB_SUBCLASS_FROM_DATABASE=Boot Interface Subclass
usb:v*p*d*dc03dsc01dp01*
ID_USB_PROTOCOL_FROM_DATABASE=Keyboard
usb:v*p*d*dc03dsc01dp02*
ID_USB_PROTOCOL_FROM_DATABASE=Mouse
usb:v*p*d*dc05*
ID_USB_CLASS_FROM_DATABASE=Physical Interface Device
usb:v*p*d*dc06*
ID_USB_CLASS_FROM_DATABASE=Imaging
usb:v*p*d*dc06dsc01*
ID_USB_SUBCLASS_FROM_DATABASE=Still Image Capture
usb:v*p*d*dc06dsc01dp01*
ID_USB_PROTOCOL_FROM_DATABASE=Picture Transfer Protocol (PIMA 15470)
usb:v*p*d*dc07*
ID_USB_CLASS_FROM_DATABASE=Printer
usb:v*p*d*dc07dsc01*
ID_USB_SUBCLASS_FROM_DATABASE=Printer
usb:v*p*d*dc07dsc01dp00*
ID_USB_PROTOCOL_FROM_DATABASE=Reserved/Undefined
usb:v*p*d*dc07dsc01dp01*
ID_USB_PROTOCOL_FROM_DATABASE=Unidirectional
usb:v*p*d*dc07dsc01dp02*
ID_USB_PROTOCOL_FROM_DATABASE=Bidirectional
usb:v*p*d*dc07dsc01dp03*
ID_USB_PROTOCOL_FROM_DATABASE=IEEE 1284.4 compatible bidirectional
usb:v*p*d*dc07dsc01dpFF*
ID_USB_PROTOCOL_FROM_DATABASE=Vendor Specific
usb:v*p*d*dc08*
ID_USB_CLASS_FROM_DATABASE=Mass Storage
usb:v*p*d*dc08dsc01*
ID_USB_SUBCLASS_FROM_DATABASE=RBC (typically Flash)
usb:v*p*d*dc08dsc01dp00*
ID_USB_PROTOCOL_FROM_DATABASE=Control/Bulk/Interrupt
usb:v*p*d*dc08dsc01dp01*
ID_USB_PROTOCOL_FROM_DATABASE=Control/Bulk
usb:v*p*d*dc08dsc01dp50*
ID_USB_PROTOCOL_FROM_DATABASE=Bulk-Only
usb:v*p*d*dc08dsc02*
ID_USB_SUBCLASS_FROM_DATABASE=SFF-8020i, MMC-2 (ATAPI)
usb:v*p*d*dc08dsc03*
ID_USB_SUBCLASS_FROM_DATABASE=QIC-157
usb:v*p*d*dc08dsc04*
ID_USB_SUBCLASS_FROM_DATABASE=Floppy (UFI)
usb:v*p*d*dc08dsc04dp00*
ID_USB_PROTOCOL_FROM_DATABASE=Control/Bulk/Interrupt
usb:v*p*d*dc08dsc04dp01*
ID_USB_PROTOCOL_FROM_DATABASE=Control/Bulk
usb:v*p*d*dc08dsc04dp50*
ID_USB_PROTOCOL_FROM_DATABASE=Bulk-Only
usb:v*p*d*dc08dsc05*
ID_USB_SUBCLASS_FROM_DATABASE=SFF-8070i
usb:v*p*d*dc08dsc06*
ID_USB_SUBCLASS_FROM_DATABASE=SCSI
usb:v*p*d*dc08dsc06dp00*
ID_USB_PROTOCOL_FROM_DATABASE=Control/Bulk/Interrupt
usb:v*p*d*dc08dsc06dp01*
ID_USB_PROTOCOL_FROM_DATABASE=Control/Bulk
usb:v*p*d*dc08dsc06dp50*
ID_USB_PROTOCOL_FROM_DATABASE=Bulk-Only
usb:v*p*d*dc09*
ID_USB_CLASS_FROM_DATABASE=Hub
usb:v*p*d*dc09dsc00dp00*
ID_USB_PROTOCOL_FROM_DATABASE=Full speed (or root) hub
usb:v*p*d*dc09dsc00dp01*
ID_USB_PROTOCOL_FROM_DATABASE=Single TT
usb:v*p*d*dc09dsc00dp02*
ID_USB_PROTOCOL_FROM_DATABASE=TT per port
usb:v*p*d*dc0A*
ID_USB_CLASS_FROM_DATABASE=CDC Data
usb:v*p*d*dc0Adsc00dp30*
ID_USB_PROTOCOL_FROM_DATABASE=I.430 ISDN BRI
usb:v*p*d*dc0Adsc00dp31*
ID_USB_PROTOCOL_FROM_DATABASE=HDLC
usb:v*p*d*dc0Adsc00dp32*
ID_USB_PROTOCOL_FROM_DATABASE=Transparent
usb:v*p*d*dc0Adsc00dp50*
ID_USB_PROTOCOL_FROM_DATABASE=Q.921M
usb:v*p*d*dc0Adsc00dp51*
ID_USB_PROTOCOL_FROM_DATABASE=Q.921
usb:v*p*d*dc0Adsc00dp52*
ID_USB_PROTOCOL_FROM_DATABASE=Q.921TM
usb:v*p*d*dc0Adsc00dp90*
ID_USB_PROTOCOL_FROM_DATABASE=V.42bis
usb:v*p*d*dc0Adsc00dp91*
ID_USB_PROTOCOL_FROM_DATABASE=Q.932 EuroISDN
usb:v*p*d*dc0Adsc00dp92*
ID_USB_PROTOCOL_FROM_DATABASE=V.120 V.24 rate ISDN
usb:v*p*d*dc0Adsc00dp93*
ID_USB_PROTOCOL_FROM_DATABASE=CAPI 2.0
usb:v*p*d*dc0Adsc00dpFD*
ID_USB_PROTOCOL_FROM_DATABASE=Host Based Driver
usb:v*p*d*dc0Adsc00dpFE*
ID_USB_PROTOCOL_FROM_DATABASE=CDC PUF
usb:v*p*d*dc0Adsc00dpFF*
ID_USB_PROTOCOL_FROM_DATABASE=Vendor specific
usb:v*p*d*dc0B*
ID_USB_CLASS_FROM_DATABASE=Chip/SmartCard
usb:v*p*d*dc0D*
ID_USB_CLASS_FROM_DATABASE=Content Security
usb:v*p*d*dc0E*
ID_USB_CLASS_FROM_DATABASE=Video
usb:v*p*d*dc0Edsc01*
ID_USB_SUBCLASS_FROM_DATABASE=Video Control
usb:v*p*d*dc0Edsc02*
ID_USB_SUBCLASS_FROM_DATABASE=Video Streaming
usb:v*p*d*dc0Edsc03*
ID_USB_SUBCLASS_FROM_DATABASE=Video Interface Collection
usb:v*p*d*dc58*
ID_USB_CLASS_FROM_DATABASE=Xbox
usb:v*p*d*dc58dsc42*
ID_USB_SUBCLASS_FROM_DATABASE=Controller
usb:v*p*d*dcDC*
ID_USB_CLASS_FROM_DATABASE=Diagnostic
usb:v*p*d*dcDCdsc01*
ID_USB_SUBCLASS_FROM_DATABASE=Reprogrammable Diagnostics
usb:v*p*d*dcDCdsc01dp01*
ID_USB_PROTOCOL_FROM_DATABASE=USB2 Compliance
usb:v*p*d*dcE0*
ID_USB_CLASS_FROM_DATABASE=Wireless
usb:v*p*d*dcE0dsc01*
ID_USB_SUBCLASS_FROM_DATABASE=Radio Frequency
usb:v*p*d*dcE0dsc01dp01*
ID_USB_PROTOCOL_FROM_DATABASE=Bluetooth
usb:v*p*d*dcE0dsc01dp02*
ID_USB_PROTOCOL_FROM_DATABASE=Ultra WideBand Radio Control
usb:v*p*d*dcE0dsc01dp03*
ID_USB_PROTOCOL_FROM_DATABASE=RNDIS
usb:v*p*d*dcE0dsc02*
ID_USB_SUBCLASS_FROM_DATABASE=Wireless USB Wire Adapter
usb:v*p*d*dcE0dsc02dp01*
ID_USB_PROTOCOL_FROM_DATABASE=Host Wire Adapter Control/Data Streaming
usb:v*p*d*dcE0dsc02dp02*
ID_USB_PROTOCOL_FROM_DATABASE=Device Wire Adapter Control/Data Streaming
usb:v*p*d*dcE0dsc02dp03*
ID_USB_PROTOCOL_FROM_DATABASE=Device Wire Adapter Isochronous Streaming
usb:v*p*d*dcEF*
ID_USB_CLASS_FROM_DATABASE=Miscellaneous Device
usb:v*p*d*dcEFdsc01dp01*
ID_USB_PROTOCOL_FROM_DATABASE=Microsoft ActiveSync
usb:v*p*d*dcEFdsc01dp02*
ID_USB_PROTOCOL_FROM_DATABASE=Palm Sync
usb:v*p*d*dcEFdsc02dp01*
ID_USB_PROTOCOL_FROM_DATABASE=Interface Association
usb:v*p*d*dcEFdsc02dp02*
ID_USB_PROTOCOL_FROM_DATABASE=Wire Adapter Multifunction Peripheral
usb:v*p*d*dcEFdsc03dp01*
ID_USB_PROTOCOL_FROM_DATABASE=Cable Based Association
usb:v*p*d*dcFE*
ID_USB_CLASS_FROM_DATABASE=Application Specific Interface
usb:v*p*d*dcFEdsc01*
ID_USB_SUBCLASS_FROM_DATABASE=Device Firmware Update
usb:v*p*d*dcFEdsc02*
ID_USB_SUBCLASS_FROM_DATABASE=IRDA Bridge
usb:v*p*d*dcFEdsc03*
ID_USB_SUBCLASS_FROM_DATABASE=Test and Measurement
usb:v*p*d*dcFEdsc03dp01*
ID_USB_PROTOCOL_FROM_DATABASE=TMC
usb:v*p*d*dcFEdsc03dp02*
ID_USB_PROTOCOL_FROM_DATABASE=USB488
usb:v*p*d*dcFF*
ID_USB_CLASS_FROM_DATABASE=Vendor Specific Class
usb:v*p*d*dcFFdscFF*
ID_USB_SUBCLASS_FROM_DATABASE=Vendor Specific Subclass
usb:v*p*d*dcFFdscFFdpFF*
ID_USB_PROTOCOL_FROM_DATABASE=Vendor Specific Protocol

File diff suppressed because it is too large Load Diff

12
hwdb/Makefile.am Normal file
View File

@ -0,0 +1,12 @@
ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS}
rootprefix=@rootprefix@
udevlibexecdir=$(rootprefix)/lib/udev
udevhwdbdir = $(udevlibexecdir)/hwdb.d
dist_udevhwdb_DATA = \
20-pci-vendor-product.hwdb \
20-pci-classes.hwdb \
20-usb-vendor-product.hwdb \
20-usb-classes.hwdb \
20-acpi-vendor.hwdb \
20-OUI.hwdb

239
hwdb/ids-update.pl Executable file
View File

@ -0,0 +1,239 @@
#!/usr/bin/perl
use strict;
use warnings;
sub usb_vendor {
my $vendor;
open(IN, "<", "usb.ids");
open(OUT, ">", "20-usb-vendor-product.hwdb");
print(OUT "# This file is part of systemd.\n" .
"#\n" .
"# Data imported and updated from: http://www.linux-usb.org/usb.ids\n");
while (my $line = <IN>) {
$line =~ s/\s+$//;
$line =~ m/^([0-9a-f]{4})\s*(.*)$/;
if (defined $1) {
$vendor = uc $1;
my $text = $2;
print(OUT "\n");
print(OUT "usb:v" . $vendor . "*\n");
print(OUT " ID_VENDOR_FROM_DATABASE=" . $text . "\n");
next;
}
$line =~ m/^\t([0-9a-f]{4})\s*(.*)$/;
if (defined $1) {
my $product = uc $1;
my $text = $2;
print(OUT "\n");
print(OUT "usb:v" . $vendor . "p" . $product . "*\n");
print(OUT " ID_PRODUCT_FROM_DATABASE=" . $text . "\n");
}
}
close(INP);
close(OUTP);
}
sub usb_classes {
my $class;
my $subclass;
my $protocol;
open(IN, "<", "usb.ids");
open(OUT, ">", "20-usb-classes.hwdb");
print(OUT "# This file is part of systemd.\n" .
"#\n" .
"# Data imported and updated from: http://www.linux-usb.org/usb.ids\n");
while (my $line = <IN>) {
$line =~ s/\s+$//;
$line =~ m/^C\ ([0-9a-f]{2})\s*(.*)$/;
if (defined $1) {
$class = uc $1;
if ($class =~ m/^00$/) {
next;
}
my $text = $2;
print(OUT "\n");
print(OUT "usb:v*p*d*dc" . $class . "*\n");
print(OUT " ID_USB_CLASS_FROM_DATABASE=" . $text . "\n");
next;
}
if (not defined $class) {
next;
} elsif ($line =~ m/^$/) {
last;
}
$line =~ m/^\t([0-9a-f]{2})\s*(.*)$/;
if (defined $1) {
$subclass = uc $1;
if ($subclass =~ m/^00$/) {
next;
}
my $text = $2;
if ($text =~ m/^(\?|None|Unused)$/) {
next;
}
print(OUT "\n");
print(OUT "usb:v*p*d*dc" . $class . "dsc" . $subclass . "*\n");
print(OUT " ID_USB_SUBCLASS_FROM_DATABASE=" . $text . "\n");
next;
}
$line =~ m/^\t\t([0-9a-f]{2})\s*(.*)$/;
if (defined $1) {
$protocol = uc $1;
my $text = $2;
if ($text =~ m/^(\?|None|Unused)$/) {
next;
}
print(OUT "\n");
print(OUT "usb:v*p*d*dc" . $class . "dsc" . $subclass . "dp" . $protocol . "*\n");
print(OUT " ID_USB_PROTOCOL_FROM_DATABASE=" . $text . "\n");
}
}
close(INP);
close(OUTP);
}
sub pci_vendor {
my $vendor;
my $device;
open(IN, "<", "usb.ids");
open(IN, "<", "pci.ids");
open(OUT, ">", "20-pci-vendor-product.hwdb");
print(OUT "# This file is part of systemd.\n" .
"#\n" .
"# Data imported and updated from: http://pci-ids.ucw.cz/v2.2/pci.ids\n");
while (my $line = <IN>) {
$line =~ s/\s+$//;
$line =~ m/^([0-9a-f]{4})\s*(.*)$/;
if (defined $1) {
$vendor = uc $1;
my $text = $2;
print(OUT "\n");
print(OUT "pci:v0000" . $vendor . "*\n");
print(OUT " ID_VENDOR_FROM_DATABASE=" . $text . "\n");
next;
}
$line =~ m/^\t([0-9a-f]{4})\s*(.*)$/;
if (defined $1) {
$device = uc $1;
my $text = $2;
print(OUT "\n");
print(OUT "pci:v0000" . $vendor . "d0000" . $device . "*\n");
print(OUT " ID_PRODUCT_FROM_DATABASE=" . $text . "\n");
next;
}
$line =~ m/^\t\t([0-9a-f]{4})\s*([0-9a-f]{4})\s*(.*)$/;
if (defined $1) {
my $sub_vendor = uc $1;
my $sub_device = uc $2;
my $text = $3;
print(OUT "\n");
print(OUT "pci:v0000" . $vendor . "d0000" . $device . "sv0000" . $sub_vendor . "sd0000" . $sub_device . "*\n");
print(OUT " ID_PRODUCT_FROM_DATABASE=" . $text . "\n");
}
}
close(INP);
close(OUTP);
}
sub pci_classes {
my $class;
my $subclass;
my $interface;
open(IN, "<", "pci.ids");
open(OUT, ">", "20-pci-classes.hwdb");
print(OUT "# This file is part of systemd.\n" .
"#\n" .
"# Data imported and updated from: http://pci-ids.ucw.cz/v2.2/pci.ids\n");
while (my $line = <IN>) {
$line =~ s/\s+$//;
$line =~ m/^C\ ([0-9a-f]{2})\s*(.*)$/;
if (defined $1) {
$class = uc $1;
my $text = $2;
print(OUT "\n");
print(OUT "pci:v*d*sv*sd*bc" . $class . "*\n");
print(OUT " ID_PCI_CLASS_FROM_DATABASE=" . $text . "\n");
next;
}
if (not defined $class) {
next;
} elsif ($line =~ m/^$/) {
last;
}
$line =~ m/^\t([0-9a-f]{2})\s*(.*)$/;
if (defined $1) {
$subclass = uc $1;
my $text = $2;
print(OUT "\n");
print(OUT "pci:v*d*sv*sd*bc" . $class . "sc" . $subclass . "*\n");
print(OUT " ID_PCI_SUBCLASS_FROM_DATABASE=" . $text . "\n");
next;
}
$line =~ m/^\t\t([0-9a-f]{2})\s*(.*)$/;
if (defined $1) {
$interface = uc $1;
my $text = $2;
print(OUT "\n");
print(OUT "pci:v*d*sv*sd*bc" . $class . "sc" . $subclass . "i" . $interface . "*\n");
print(OUT " ID_PCI_INTERFACE_FROM_DATABASE=" . $text . "\n");
}
}
close(INP);
close(OUTP);
}
sub oui {
open(IN, "<", "oui.txt");
open(OUT, ">", "20-OUI.hwdb");
print(OUT "# This file is part of systemd.\n" .
"#\n" .
"# Data imported and updated from: http://standards.ieee.org/develop/regauth/oui/oui.txt\n");
while (my $line = <IN>) {
$line =~ s/\s+$//;
$line =~ m/^([0-9A-F]{6})\s*\(base 16\)\s*(.*)$/;
if (defined $1) {
my $vendor = uc $1;
my $text = $2;
print(OUT "\n");
print(OUT "OUI:" . $vendor . "\n");
print(OUT " ID_OUI_FROM_DATABASE=" . $text . "\n");
}
}
close(INP);
close(OUTP);
}
usb_vendor();
usb_classes();
pci_vendor();
pci_classes();
oui();

View File

@ -0,0 +1,12 @@
ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS}
if ENABLE_KEYMAP
udevkeymapforcereldir = $(udevlibexecdir)/keymaps/force-release
dist_udevkeymapforcerel_DATA = \
dell-touchpad \
dell-xps \
hp-other \
samsung-other \
samsung-90x3a \
common-volume-keys
endif

View File

@ -0,0 +1,3 @@
0xa0 #mute
0xae #volume down
0xb0 #volume up

View File

@ -0,0 +1 @@
0x9E

View File

@ -0,0 +1 @@
0x8C

View File

@ -0,0 +1,3 @@
# list of scancodes (hex or decimal), optional comment
0xd8 # Touchpad off
0xd9 # Touchpad on

View File

@ -0,0 +1,6 @@
# list of scancodes (hex or decimal), optional comment
0xCE # Fn+F8 keyboard backlit up
0x8D # Fn+F7 keyboard backlit down
0x97 # Fn+F12 wifi on/off
0x96 # Fn+F1 performance mode (?)
0xD5 # Fn+F6 battery life extender

View File

@ -0,0 +1,10 @@
# list of scancodes (hex or decimal), optional comment
0x82 # Fn+F4 CRT/LCD
0x83 # Fn+F2 battery
0x84 # Fn+F5 backlight on/off
0x86 # Fn+F9 WLAN
0x88 # Fn-Up brightness up
0x89 # Fn-Down brightness down
0xB3 # Fn+F8 switch power mode (battery/dynamic/performance)
0xF7 # Fn+F10 Touchpad on
0xF9 # Fn+F10 Touchpad off

67
keymaps/Makefile.am Normal file
View File

@ -0,0 +1,67 @@
ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS}
if ENABLE_KEYMAP
udevkeymapdir = $(udevlibexecdir)/keymaps
dist_udevkeymap_DATA = \
acer \
acer-aspire_5720 \
acer-aspire_8930 \
acer-aspire_5920g \
acer-aspire_6920 \
acer-travelmate_c300 \
asus \
compaq-e_evo \
dell \
dell-latitude-xt2 \
everex-xt5000 \
fujitsu-amilo_li_2732 \
fujitsu-amilo_pa_2548 \
fujitsu-amilo_pro_edition_v3505 \
fujitsu-amilo_pro_v3205 \
fujitsu-amilo_si_1520 \
fujitsu-esprimo_mobile_v5 \
fujitsu-esprimo_mobile_v6 \
genius-slimstar-320 \
hewlett-packard \
hewlett-packard-2510p_2530p \
hewlett-packard-compaq_elitebook \
hewlett-packard-pavilion \
hewlett-packard-presario-2100 \
hewlett-packard-tablet \
hewlett-packard-tx2 \
hewlett-packard_elitebook-8440p \
ibm-thinkpad-usb-keyboard-trackpoint \
inventec-symphony_6.0_7.0 \
lenovo-3000 \
lenovo-ideapad \
lenovo-thinkpad-usb-keyboard-trackpoint \
lenovo-thinkpad_x6_tablet \
lenovo-thinkpad_x200_tablet \
lg-x110 \
logitech-wave \
logitech-wave-cordless \
logitech-wave-pro-cordless \
maxdata-pro_7000 \
medion-fid2060 \
medionnb-a555 \
micro-star \
module-asus-w3j \
module-ibm \
module-lenovo \
module-sony \
module-sony-old \
module-sony-vgn \
module-sony-vpc \
olpc-xo \
onkyo \
oqo-model2 \
samsung-other \
samsung-90x3a \
samsung-sq1us \
samsung-sx20s \
toshiba-satellite_a100 \
toshiba-satellite_a110 \
toshiba-satellite_m30x \
zepto-znote
endif

5
man/Makefile.am Normal file
View File

@ -0,0 +1,5 @@
ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS}
MANPAGES = \
udev.7 \
udevadm.8

31
rules/Makefile.am Normal file
View File

@ -0,0 +1,31 @@
ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS}
rootprefix=@rootprefix@
udevlibexecdir=$(rootprefix)/lib/udev
udevrulesdir = $(udevlibexecdir)/rules.d
dist_udevrules_DATA = \
99-systemd.rules \
42-usb-hid-pm.rules \
50-udev-default.rules \
60-cdrom_id.rules \
60-persistent-storage-tape.rules \
60-persistent-serial.rules \
60-persistent-input.rules \
60-persistent-alsa.rules \
60-persistent-storage.rules \
60-persistent-v4l.rules \
61-accelerometer.rules \
64-btrfs.rules \
75-net-description.rules \
75-probe_mtd.rules
75-tty-description.rules \
78-sound-card.rules \
80-drivers.rules \
95-udev-late.rules
if ENABLE_KEYMAP
dist_udevrules_DATA += \
95-keymap.rules \
95-keyboard-force-release.rules
endif

3
src/Makefile.am Normal file
View File

@ -0,0 +1,3 @@
ACLOCAL_AMFLAGS = -I m4
#SUBDIRS = libudev udev gudev test
SUBDIRS = libudev

167
src/gudev/Makefile.am Normal file
View File

@ -0,0 +1,167 @@
ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS}
if ENABLE_GUDEV
libgudev_includedir = \
$(includedir)/gudev-1.0/gudev
libgudev_include_HEADERS = \
gudev.h \
gudevenums.h \
gudevenumtypes.h \
gudevtypes.h \
gudevclient.h \
gudevdevice.h \
gudevenumerator.h
lib_LTLIBRARIES = \
libgudev-1.0.la
pkgconfiglibdir=$(libdir)/pkgconfig
pkgconfiglib_DATA = \
gudev-1.0.pc
CLEANFILES = \
gudev-1.0.pc
libgudev_1_0_la_SOURCES = \
gudevenums.h \
gudevenumtypes.h \
gudevenumtypes.h\
gudevtypes.h \
gudevclient.h \
gudevclient.c \
gudevdevice.h \
gudevdevice.c \
gudevenumerator.h \
gudevenumerator.c \
gudevprivate.h
nodist_libgudev_1_0_la_SOURCES = \
gudevmarshal.h \
gudevmarshal.c \
gudevenumtypes.h \
gudevenumtypes.c
BUILT_SOURCES = \
$(nodist_libgudev_1_0_la_SOURCES)
libgudev_1_0_la_CPPFLAGS = \
$(AM_CPPFLAGS) \
-I$(top_builddir)/src\
-I$(top_srcdir)/src\
-I$(top_builddir)/src/gudev \
-I$(top_srcdir)/src/gudev \
-D_POSIX_PTHREAD_SEMANTICS -D_REENTRANT \
-D_GUDEV_COMPILATION \
-DG_LOG_DOMAIN=\"GUdev\"
libgudev_1_0_la_CFLAGS = \
$(AM_CFLAGS) \
-fvisibility=default \
$(GLIB_CFLAGS)
libgudev_1_0_la_LIBADD = \
libudev.la \
$(GLIB_LIBS)
libgudev_1_0_la_LDFLAGS = \
$(AM_LDFLAGS) \
-version-info $(LIBGUDEV_CURRENT):$(LIBGUDEV_REVISION):$(LIBGUDEV_AGE) \
-export-dynamic -no-undefined \
-export-symbols-regex '^g_udev_.*'
gudevmarshal.h: gudevmarshal.list
$(AM_V_at)$(MKDIR_P) $(dir $@)
$(AM_V_GEN)glib-genmarshal $< --prefix=g_udev_marshal --header > $@
gudevmarshal.c: gudevmarshal.list
$(AM_V_at)$(MKDIR_P) $(dir $@)
$(AM_V_GEN)echo '#include "gudevmarshal.h"' > $@ && \
glib-genmarshal $< --prefix=g_udev_marshal --body >> $@
gudevenumtypes.%: gudevenumtypes.%.template gudevenums.h
$(AM_V_at)$(MKDIR_P) $(dir $@)
$(AM_V_GEN)glib-mkenums --template $^ > $@
if HAVE_INTROSPECTION
-include $(INTROSPECTION_MAKEFILE)
GUdev-1.0.gir: libgudev-1.0.la
GUdev_1_0_gir_INCLUDES = GObject-2.0
GUdev_1_0_gir_CFLAGS = \
$(INCLUDES) \
-D_GUDEV_COMPILATION \
-D_GUDEV_WORK_AROUND_DEV_T_BUG \
-I$(top_srcdir)/src \
-I$(top_builddir)/src \
-I$(top_srcdir)/src/gdev \
-I$(top_builddir)/src/gdev
GUdev_1_0_gir_LIBS = \
libgudev-1.0.la
GUdev_1_0_gir_SCANNERFLAGS = \
--pkg-export=gudev-1.0 \
--warn-all
GUdev_1_0_gir_FILES = \
gudev.h \
gudevtypes.h \
gudevenums.h \
gudevenumtypes.h \
gudevclient.h \
gudevdevice.h \
gudevenumerator.h \
gudevclient.c \
gudevdevice.c \
gudevenumerator.c
INTROSPECTION_GIRS = GUdev-1.0.gir
INTROSPECTION_SCANNER_ARGS = --c-include=gudev.h
girdir = $(datadir)/gir-1.0
gir_DATA = \
GUdev-1.0.gir
typelibsdir = $(libdir)/girepository-1.0
typelibs_DATA = \
GUdev-1.0.typelib
CLEANFILES += \
$(gir_DATA) $(typelibs_DATA)
endif # HAVE_INTROSPECTION
# move lib from $(libdir) to $(rootlibdir) and update devel link, if needed
libgudev-install-move-hook:
if test "$(libdir)" != "$(rootlibdir)"; then \
$(MKDIR_P) $(DESTDIR)$(rootlibdir) && \
so_img_name=$$(readlink $(DESTDIR)$(libdir)/libgudev-1.0.so) && \
so_img_rel_target_prefix=$$(echo $(libdir) | sed 's,\(^/\|\)[^/][^/]*,..,g') && \
ln -sf $$so_img_rel_target_prefix$(rootlibdir)/$$so_img_name $(DESTDIR)$(libdir)/libgudev-1.0.so && \
mv $(DESTDIR)$(libdir)/libgudev-1.0.so.* $(DESTDIR)$(rootlibdir); \
fi
libgudev-uninstall-move-hook:
rm -f $(DESTDIR)$(rootlibdir)/libgudev-1.0.so*
INSTALL_EXEC_HOOKS = \
libgudev-install-move-hook
UNINSTALL_EXEC_HOOKS = \
libgudev-uninstall-move-hook
endif
EXTRA_DIST = \
gudev-1.0.pc.in \
gudevmarshal.list \
gudevenumtypes.h.template \
gudevenumtypes.c.template \
gjs-example.js \
seed-example-enum.js \
seed-example.js

53
src/libudev/Makefile.am Normal file
View File

@ -0,0 +1,53 @@
ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS}
LIBUDEV_CURRENT=3
LIBUDEV_REVISION=0
LIBUDEV_AGE=2
lib_LTLIBRARIES = \
libudev.la
libudev_la_SOURCES =\
libudev-private.h \
libudev.c \
libudev-list.c \
libudev-util.c \
libudev-device.c \
libudev-enumerate.c \
libudev-monitor.c \
libudev-queue.c \
libudev-hwdb-def.h \
libudev-hwdb.c
libudev_la_CFLAGS = \
$(AM_CFLAGS) \
-fvisibility=hidden
libudev_la_LDFLAGS = \
$(AM_LDFLAGS) \
-version-info $(LIBUDEV_CURRENT):$(LIBUDEV_REVISION):$(LIBUDEV_AGE) \
-Wl,--version-script=libudev.sym
pkgconfiglibdir=$(libdir)/pkgconfig
pkgconfiglib_DATA = \
libudev.pc
EXTRA_DIST = \
libudev.pc.in \
libudev.sym
CLEANFILES = \
libudev.pc
noinst_LTLIBRARIES = \
libudev-private.la
libudev_private_la_SOURCES =\
$(libudev_la_SOURCES) \
libudev-device-private.c \
libudev-queue-private.c
libudev_private_la_CFLAGS = \
$(AM_CFLAGS) \
-fvisibility=default

21
src/test/Makefile.am Normal file
View File

@ -0,0 +1,21 @@
ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS}
noinst_PROGRAMS = \
test-libudev \
test-udev
test_libudev_SOURCES = \
test-libudev.c
test_libudev_LDADD = \
libudev.la
test_udev_SOURCES = \
src/test/test-udev.c
test_udev_LDADD = \
libudev-core.la \
$(BLKID_LIBS) \
$(KMOD_LIBS) \
$(SELINUX_LIBS)

233
src/udev/Makefile.am Normal file
View File

@ -0,0 +1,233 @@
ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS}
rootprefix=@rootprefix@
AM_CPPFLAGS = \
-include $(top_builddir)/config.h \
-DROOTPREFIX=\"$(rootprefix)\" \
-I $(top_srcdir)/src/libudev \
-I $(top_srcdir)/src/udev \
$(OUR_CPPFLAGS)
sbin_PROGRAMS = \
udevd \
udevadm
udevd_SOURCES = \
udevd.c
udevd_LDADD = \
libudev-core.la
udevadm_SOURCES = \
udevadm.c \
udevadm-info.c \
udevadm-control.c \
udevadm-monitor.c \
udevadm-hwdb.c \
udevadm-settle.c \
udevadm-trigger.c \
udevadm-test.c \
udevadm-test-builtin.c
udevadm_LDADD = \
libudev-core.la
noinst_LTLIBRARIES = \
libudev-core.la
libudev_core_la_SOURCES = \
udev.h \
udev-event.c \
udev-watch.c \
udev-node.c \
udev-rules.c \
udev-ctrl.c \
udev-builtin.c \
udev-builtin-blkid.c \
udev-builtin-btrfs.c \
udev-builtin-firmware.c \
udev-builtin-hwdb.c \
udev-builtin-input_id.c \
udev-builtin-kmod.c \
udev-builtin-net_id.c \
udev-builtin-path_id.c \
udev-builtin-usb_id.c
if HAVE_ACL
libudev_core_la_SOURCES += \
udev-builtin-uaccess.c
endif
libudev_core_la_CFLAGS = \
$(AM_CFLAGS) \
$(BLKID_CFLAGS) \
$(KMOD_CFLAGS)
libudev_core_la_LIBADD = \
libudev-private.la \
$(BLKID_LIBS) \
$(KMOD_LIBS)
libudev_core_la_CPPFLAGS = \
$(AM_CPPFLAGS) \
-DFIRMWARE_PATH="$(FIRMWARE_PATH)"
#
# Extras
#
udevconfdir = $(sysconfdir)/udev
dist_udevconf_DATA = \
udev.conf
sharepkgconfigdir = $(datadir)/pkgconfig
sharepkgconfig_DATA = \
udev.pc
EXTRA_DIST = \
udev.pc.in
CLEANFILES = \
udev.pc
# ------------------------------------------------------------------------------
# ------------------------------------------------------------------------------
udevlibexecdir=$(rootprefix)/lib/udev
udevhomedir = $(udevlibexecdir)
udevlibexec_PROGRAMS =
# ------------------------------------------------------------------------------
# Helper programs below
#
ata_id_SOURCES = \
ata_id/ata_id.c
ata_id_LDADD = \
libudev-private.la
udevlibexec_PROGRAMS += \
ata_id
# ------------------------------------------------------------------------------
cdrom_id_SOURCES = \
cdrom_id/cdrom_id.c
cdrom_id_LDADD = \
libudev.la
udevlibexec_PROGRAMS += \
cdrom_id
# ------------------------------------------------------------------------------
collect_SOURCES = \
collect/collect.c
collect_LDADD = \
libudev-private.la
udevlibexec_PROGRAMS += \
collect
# ------------------------------------------------------------------------------
scsi_id_SOURCES =\
scsi_id/scsi_id.c \
scsi_id/scsi_serial.c \
scsi_id/scsi.h \
scsi_id/scsi_id.h
scsi_id_LDADD = \
libudev-private.la
udevlibexec_PROGRAMS += \
scsi_id
EXTRA_DIST += \
scsi_id/README
# ------------------------------------------------------------------------------
v4l_id_SOURCES = \
v4l_id/v4l_id.c
v4l_id_LDADD = \
libudev.la
udevlibexec_PROGRAMS += \
v4l_id
# ------------------------------------------------------------------------------
accelerometer_SOURCES = \
accelerometer/accelerometer.c
accelerometer_LDADD = \
libudev.la -lm
udevlibexec_PROGRAMS += \
accelerometer
# ------------------------------------------------------------------------------
if ENABLE_KEYMAP
keymap_SOURCES = \
keymap/keymap.c
keymap_CPPFLAGS = \
$(AM_CPPFLAGS) -I keymap
nodist_keymap_SOURCES = \
keymap/keys-from-name.h \
keymap/keys-to-name.h
BUILT_SOURCES = \
$(nodist_keymap_SOURCES)
udevlibexec_PROGRAMS += \
keymap
dist_doc_DATA = \
keymap/README.keymap.txt
dist_udevhome_SCRIPTS = \
keymap/findkeyboards \
keymap/keyboard-force-release.sh
TESTS = \
keymap/check-keymaps.sh
CLEANFILES += \
keymap/keys.txt \
keymap/keys-from-name.gperf \
keymap/keyboard-force-release.sh
keymap/keys.txt: Makefile
$(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-9]/ { if ($$2 != "KEY_MAX") { print $$2 } }' | sed 's/^KEY_COFFEE$$/KEY_SCREENLOCK/' > $@
keymap/keys-from-name.gperf: keymap/keys.txt Makefile
$(AM_V_GEN)$(AWK) 'BEGIN{ print "struct key { const char* name; unsigned short id; };"; print "%null-strings"; print "%%";} { print $$1 ", " $$1 }' < $< > $@
keymap/keys-from-name.h: keymap/keys-from-name.gperf Makefile
$(AM_V_GEN)$(GPERF) -L ANSI-C -t --ignore-case -N lookup_key -H hash_key_name -p -C < $< > $@
keymap/keys-to-name.h: keymap/keys.txt Makefile
$(AM_V_GEN)$(AWK) 'BEGIN{ print "const char* const key_names[KEY_CNT] = { "} { print "[" $$1 "] = \"" $$1 "\"," } END{print "};"}' < $< > $@
endif
EXTRA_DIST += \
keymap/check-keymaps.sh \
keymap/keyboard-force-release.sh.in
# ------------------------------------------------------------------------------
mtd_probe_SOURCES = \
mtd_probe/mtd_probe.c \
mtd_probe/mtd_probe.h \
mtd_probe/probe_smartmedia.c
mtd_probe_CPPFLAGS = \
$(AM_CPPFLAGS)
udevlibexec_PROGRAMS += \
mtd_probe

24
test/Makefile.am Normal file
View File

@ -0,0 +1,24 @@
ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS}
TESTS = \
udev-test.pl \
rules-test.sh
check_DATA = \
test/sys
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 = \
sys.tar.xz \
udev-test.pl \
rules-test.sh \
rule-syntax-check.py