1
0
mirror of https://github.com/systemd/systemd.git synced 2025-02-04 21:47:31 +03:00

configure: allow to enable/disable extras individually

- remove gobject introspection switch
      - disable hid2hci by default (moved to bluez)
      - disable action-modeswitch by default (will move to usb_modeswitch)
      - disable edd_id by default (problems with disk signatures)
      - disable legacy floppy by default (no more nasty device node hacks by default)
This commit is contained in:
Kay Sievers 2011-04-29 14:27:11 +02:00
parent 829f6902fe
commit d5d6a7f304
4 changed files with 252 additions and 157 deletions

28
INSTALL
View File

@ -27,9 +27,24 @@ All options:
--with-selinux
Link against SELinux libraries to set the expected context
for created files.
--disable-extras
Disable the build of all extras which have larger external
dependencies like glib, libacl, libusb, ...
--disable-rule_generator
Disable persistent network, cdrom naming support.
--disable-hwdb
Disable hardware database support
--disable-udev_acl
Disable local user acl permissions support.
--disable-gudev
Disable Gobject libudev support.
--disable-keymap
Disable keymap fixup support.
--enable-floppy
Enable legacy floppy support.
--enable-edd
Enable disk edd support.
--enable-hid2hci
Enable bluetooth hid to hci switch.
--enable-action_modeswitch
Enable action modeswitch support.
The options used in a RPM spec file usually look like:
%configure \
@ -47,13 +62,12 @@ other location will break other packages, who rightfully expect
the /lib/udev/ directory, to install their rule helper and udev
rule files.
It is recommended to use the /lib/udev/devices/ directory to place
It is possible to use the /lib/udev/devices/ directory to place
device nodes, directories and symlinks, which are copied to /dev/
at every bootup. That way, nodes for devices which can not be
detected automatically, or are activated on-demand by opening the
pre-existing device node, will be available.
Default udev rules and persistent device naming rules are required
Default udev rules and persistent device naming rules may be required
by other software that depends on the data udev collects from the
devices, and should therefore be installed by default with every udev
installation.
devices.

View File

@ -25,11 +25,12 @@ DISTCHECK_CONFIGURE_FLAGS = \
--with-systemdsystemunitdir=$$dc_install_base/$(systemdsystemunitdir)
CLEANFILES =
BUILT_SOURCES =
INSTALL_EXEC_HOOKS =
INSTALL_DATA_HOOKS =
UNINSTALL_EXEC_HOOKS =
DISTCHECK_HOOKS =
dist_libexec_SCRIPTS =
# ------------------------------------------------------------------------------
# libudev
@ -211,20 +212,6 @@ udev_test_udev_SOURCES = \
udev/test-udev.c
udev_test_udev_LDADD = libudev/libudev-private.la
# ------------------------------------------------------------------------------
# rule_generator - persistent network and optical device rule generator
# ------------------------------------------------------------------------------
dist_libexec_SCRIPTS = \
extras/rule_generator/write_cd_rules \
extras/rule_generator/write_net_rules
udevhomedir = $(libexecdir)
dist_udevhome_DATA = extras/rule_generator/rule_generator.functions
dist_udevrules_DATA += \
extras/rule_generator/75-cd-aliases-generator.rules \
extras/rule_generator/75-persistent-net-generator.rules
# ------------------------------------------------------------------------------
# firmware - firmware loading
# ------------------------------------------------------------------------------
@ -256,22 +243,6 @@ extras_collect_collect_SOURCES = extras/collect/collect.c
extras_collect_collect_LDADD = libudev/libudev-private.la
libexec_PROGRAMS += extras/collect/collect
# ------------------------------------------------------------------------------
# edd_id - BIOS EDD block device match
# ------------------------------------------------------------------------------
extras_edd_id_edd_id_SOURCES = extras/edd_id/edd_id.c
extras_edd_id_edd_id_LDADD = libudev/libudev-private.la
libexec_PROGRAMS += extras/edd_id/edd_id
dist_udevrules_DATA += extras/edd_id/61-persistent-storage-edd.rules
# ------------------------------------------------------------------------------
# create_floppy_devices - historical floppy kernel device nodes (/dev/fd0h1440, ...)
# ------------------------------------------------------------------------------
extras_floppy_create_floppy_devices_SOURCES = extras/floppy/create_floppy_devices.c
extras_floppy_create_floppy_devices_LDADD = libudev/libudev-private.la
libexec_PROGRAMS += extras/floppy/create_floppy_devices
dist_udevrules_DATA += extras/floppy/60-floppy.rules
# ------------------------------------------------------------------------------
# input_id - import input device class
# ------------------------------------------------------------------------------
@ -313,20 +284,75 @@ extras_v4l_id_v4l_id_LDADD = libudev/libudev-private.la
libexec_PROGRAMS += extras/v4l_id/v4l_id
dist_udevrules_DATA += extras/v4l_id/60-persistent-v4l.rules
# ------------------------------------------------------------------------------
# mtd_probe - autoloads FTL module for mtd devices
# ------------------------------------------------------------------------------
extras_mtd_probe_mtd_probe_SOURCES = \
extras/mtd_probe/mtd_probe.c \
extras/mtd_probe/mtd_probe.h \
extras/mtd_probe/probe_smartmedia.c
extras_mtd_probe_mtd_probe_CPPFLAGS = $(AM_CPPFLAGS)
dist_udevrules_DATA += extras/mtd_probe/75-probe_mtd.rules
libexec_PROGRAMS += extras/mtd_probe/mtd_probe
# ------------------------------------------------------------------------------
# qemu -- qemu/kvm guest tweaks
# ------------------------------------------------------------------------------
dist_udevrules_DATA += extras/qemu/42-qemu-usb.rules
if ENABLE_EXTRAS
if ENABLE_RULE_GENERATOR
# ------------------------------------------------------------------------------
# conditional extras (need glib, libusb, libacl, ...)
# rule_generator - persistent network and optical device rule generator
# ------------------------------------------------------------------------------
dist_libexec_SCRIPTS += \
extras/rule_generator/write_cd_rules \
extras/rule_generator/write_net_rules
udevhomedir = $(libexecdir)
dist_udevhome_DATA = extras/rule_generator/rule_generator.functions
dist_udevrules_DATA += \
extras/rule_generator/75-cd-aliases-generator.rules \
extras/rule_generator/75-persistent-net-generator.rules
endif
if ENABLE_HWDB
# ------------------------------------------------------------------------------
# usb/pci-db - read vendor/device string database
# ------------------------------------------------------------------------------
extras_usb_db_usb_db_SOURCES = extras/usb-db/usb-db.c
extras_usb_db_usb_db_CPPFLAGS = $(AM_CPPFLAGS) -DUSB_DATABASE=\"$(USB_DATABASE)\" -DBUILD_FOR_USB
extras_usb_db_usb_db_LDADD = libudev/libudev-private.la
libexec_PROGRAMS += extras/usb-db/usb-db
dist_udevrules_DATA += \
rules/rules.d/75-net-description.rules \
rules/rules.d/75-tty-description.rules \
rules/rules.d/78-sound-card.rules
extras_usb_db_pci_db_SOURCES = extras/usb-db/usb-db.c
extras_usb_db_pci_db_CPPFLAGS = $(AM_CPPFLAGS) -DPCI_DATABASE=\"$(PCI_DATABASE)\" -DBUILD_FOR_PCI
extras_usb_db_pci_db_LDADD = libudev/libudev-private.la
libexec_PROGRAMS += extras/usb-db/pci-db
endif
if ENABLE_UDEV_ACL
# ------------------------------------------------------------------------------
# udev_acl - apply ACLs for users with local forground sessions
# ------------------------------------------------------------------------------
extras_udev_acl_udev_acl_SOURCES = extras/udev-acl/udev-acl.c
extras_udev_acl_udev_acl_CPPFLAGS = $(AM_CPPFLAGS) $(GLIB_CFLAGS)
extras_udev_acl_udev_acl_LDADD = libudev/libudev-private.la -lacl $(GLIB_LIBS)
dist_udevrules_DATA += extras/udev-acl/70-acl.rules
libexec_PROGRAMS += extras/udev-acl/udev-acl
udevacl-install-hook:
mkdir -p $(DESTDIR)$(prefix)/lib/ConsoleKit/run-seat.d
ln -sf $(libexecdir)/udev-acl $(DESTDIR)$(prefix)/lib/ConsoleKit/run-seat.d/udev-acl.ck
INSTALL_EXEC_HOOKS += udevacl-install-hook
endif
if ENABLE_GUDEV
# ------------------------------------------------------------------------------
# GUdev - libudev gobject interface
# ------------------------------------------------------------------------------
@ -367,7 +393,7 @@ dist_extras_gudev_libgudev_1_0_la_SOURCES = \
extras/gudev/gudevmarshal.c \
extras/gudev/gudevenumtypes.h \
extras/gudev/gudevenumtypes.c
BUILT_SOURCES = $(dist_extras_gudev_libgudev_1_0_la_SOURCES)
BUILT_SOURCES += $(dist_extras_gudev_libgudev_1_0_la_SOURCES)
extras_gudev_libgudev_1_0_la_CPPFLAGS = \
$(AM_CPPFLAGS) \
@ -407,7 +433,6 @@ extras/gudev/gudevenumtypes.c: extras/gudev/gudevenumtypes.c.template extras/gud
$(AM_V_GEN)glib-mkenums --template $^ > \
$@.tmp && mv $@.tmp $@
if ENABLE_INTROSPECTION
extras/gudev/GUdev-1.0.gir: extras/gudev/libgudev-1.0.la $(G_IR_SCANNER) Makefile.am
$(AM_V_GEN)PKG_CONFIG_PATH=$(top_builddir)/data:$$PKG_CONFIG_PATH \
LD_LIBRARY_PATH=$(top_builddir)/extras/gudev:$$LD_LIBRARY_PATH \
@ -445,7 +470,6 @@ typelibsdir = $(GIRTYPELIBDIR)
typelibs_DATA = extras/gudev/GUdev-1.0.typelib
CLEANFILES += $(gir_DATA) $(typelibs_DATA)
endif # ENABLE_INTROSPECTION
# move lib from $(libdir) to $(rootlib_execdir) and update devel link, if needed
libgudev-install-move-hook:
@ -462,79 +486,9 @@ libgudev-uninstall-move-hook:
INSTALL_EXEC_HOOKS += libgudev-install-move-hook
UNINSTALL_EXEC_HOOKS += libgudev-uninstall-move-hook
endif
# ------------------------------------------------------------------------------
# Bluetooth HID devices with special magic to switch the device
# ------------------------------------------------------------------------------
extras_hid2hci_hid2hci_SOURCES = extras/hid2hci/hid2hci.c
extras_hid2hci_hid2hci_CPPFLAGS = $(AM_CPPFLAGS) $(LIBUSB_CFLAGS)
extras_hid2hci_hid2hci_LDADD = libudev/libudev-private.la $(LIBUSB_LIBS)
dist_udevrules_DATA += extras/hid2hci/70-hid2hci.rules
libexec_PROGRAMS += extras/hid2hci/hid2hci
# ------------------------------------------------------------------------------
# udev_acl - apply ACLs for users with local forground sessions
# ------------------------------------------------------------------------------
extras_udev_acl_udev_acl_SOURCES = extras/udev-acl/udev-acl.c
extras_udev_acl_udev_acl_CPPFLAGS = $(AM_CPPFLAGS) $(GLIB_CFLAGS)
extras_udev_acl_udev_acl_LDADD = libudev/libudev-private.la -lacl $(GLIB_LIBS)
dist_udevrules_DATA += extras/udev-acl/70-acl.rules
libexec_PROGRAMS += extras/udev-acl/udev-acl
udevacl-install-hook:
mkdir -p $(DESTDIR)$(prefix)/lib/ConsoleKit/run-seat.d
ln -sf $(libexecdir)/udev-acl $(DESTDIR)$(prefix)/lib/ConsoleKit/run-seat.d/udev-acl.ck
INSTALL_EXEC_HOOKS += udevacl-install-hook
# ------------------------------------------------------------------------------
# usb-db - read USB vendor/device string database
# ------------------------------------------------------------------------------
extras_usb_db_usb_db_SOURCES = extras/usb-db/usb-db.c
extras_usb_db_usb_db_CPPFLAGS = $(AM_CPPFLAGS) -DUSB_DATABASE=\"$(USB_DATABASE)\" -DBUILD_FOR_USB
extras_usb_db_usb_db_LDADD = libudev/libudev-private.la
libexec_PROGRAMS += extras/usb-db/usb-db
# ------------------------------------------------------------------------------
# pci-db - read PCI vendor/device string database
# ------------------------------------------------------------------------------
extras_usb_db_pci_db_SOURCES = extras/usb-db/usb-db.c
extras_usb_db_pci_db_CPPFLAGS = $(AM_CPPFLAGS) -DPCI_DATABASE=\"$(PCI_DATABASE)\" -DBUILD_FOR_PCI
extras_usb_db_pci_db_LDADD = libudev/libudev-private.la
libexec_PROGRAMS += extras/usb-db/pci-db
# ------------------------------------------------------------------------------
# mobile-action-modeswitch - switch Mobile Action cables into serial mode
# ------------------------------------------------------------------------------
extras_mobile_action_modeswitch_mobile_action_modeswitch_SOURCES =\
extras/mobile-action-modeswitch/mobile-action-modeswitch.c \
extras/mobile-action-modeswitch/utils.c \
extras/mobile-action-modeswitch/utils.h \
extras/mobile-action-modeswitch/ma8280p_us.c \
extras/mobile-action-modeswitch/ma8280p_us.h
extras_mobile_action_modeswitch_mobile_action_modeswitch_CPPFLAGS = $(AM_CPPFLAGS) $(LIBUSB_CFLAGS)
extras_mobile_action_modeswitch_mobile_action_modeswitch_LDADD = libudev/libudev-private.la $(LIBUSB_LIBS)
dist_udevrules_DATA += \
extras/mobile-action-modeswitch/61-mobile-action.rules
libexec_PROGRAMS += extras/mobile-action-modeswitch/mobile-action-modeswitch
# ------------------------------------------------------------------------------
# mtd_probe - autoloads FTL module for mtd devices
# ------------------------------------------------------------------------------
extras_mtd_probe_mtd_probe_SOURCES = \
extras/mtd_probe/mtd_probe.c \
extras/mtd_probe/mtd_probe.h \
extras/mtd_probe/probe_smartmedia.c
extras_mtd_probe_mtd_probe_CPPFLAGS = $(AM_CPPFLAGS)
dist_udevrules_DATA += extras/mtd_probe/75-probe_mtd.rules
libexec_PROGRAMS += extras/mtd_probe/mtd_probe
if ENABLE_KEYMAP
# ------------------------------------------------------------------------------
# keymap - map custom hardware's multimedia keys
# ------------------------------------------------------------------------------
@ -552,7 +506,6 @@ libexec_PROGRAMS += extras/keymap/keymap
dist_libexec_SCRIPTS += extras/keymap/findkeyboards
dist_libexec_SCRIPTS += extras/keymap/keyboard-force-release.sh
dist_doc_DATA = extras/keymap/README.keymap.txt
CLEANFILES += \
extras/keymap/keys.txt \
extras/keymap/keys-from-name.gperf
@ -638,8 +591,55 @@ extras/keymap/keys-to-name.h: extras/keymap/keys.txt Makefile
keymaps-distcheck-hook: extras/keymap/keys.txt
$(top_srcdir)/extras/keymap/check-keymaps.sh $(top_srcdir) $^
DISTCHECK_HOOKS += keymaps-distcheck-hook
endif
endif # ENABLE_EXTRAS
if ENABLE_FLOPPY
# ------------------------------------------------------------------------------
# create_floppy_devices - historical floppy kernel device nodes (/dev/fd0h1440, ...)
# ------------------------------------------------------------------------------
extras_floppy_create_floppy_devices_SOURCES = extras/floppy/create_floppy_devices.c
extras_floppy_create_floppy_devices_LDADD = libudev/libudev-private.la
libexec_PROGRAMS += extras/floppy/create_floppy_devices
dist_udevrules_DATA += extras/floppy/60-floppy.rules
endif
if ENABLE_EDD
# ------------------------------------------------------------------------------
# edd_id - create /dev/disk/by-id/edd-* links for BIOS EDD data
# ------------------------------------------------------------------------------
extras_edd_id_edd_id_SOURCES = extras/edd_id/edd_id.c
extras_edd_id_edd_id_LDADD = libudev/libudev-private.la
libexec_PROGRAMS += extras/edd_id/edd_id
dist_udevrules_DATA += extras/edd_id/61-persistent-storage-edd.rules
endif
if ENABLE_HID2HCI
# ------------------------------------------------------------------------------
# Bluetooth HID devices with special magic to switch the device
# ------------------------------------------------------------------------------
extras_hid2hci_hid2hci_SOURCES = extras/hid2hci/hid2hci.c
extras_hid2hci_hid2hci_CPPFLAGS = $(AM_CPPFLAGS) $(LIBUSB_CFLAGS)
extras_hid2hci_hid2hci_LDADD = libudev/libudev-private.la $(LIBUSB_LIBS)
dist_udevrules_DATA += extras/hid2hci/70-hid2hci.rules
libexec_PROGRAMS += extras/hid2hci/hid2hci
endif
if ENABLE_ACTION_MODESWITCH
# ------------------------------------------------------------------------------
# mobile-action-modeswitch - switch Mobile Action cables into serial mode
# ------------------------------------------------------------------------------
extras_mobile_action_modeswitch_mobile_action_modeswitch_SOURCES =\
extras/mobile-action-modeswitch/mobile-action-modeswitch.c \
extras/mobile-action-modeswitch/utils.c \
extras/mobile-action-modeswitch/utils.h \
extras/mobile-action-modeswitch/ma8280p_us.c \
extras/mobile-action-modeswitch/ma8280p_us.h
extras_mobile_action_modeswitch_mobile_action_modeswitch_CPPFLAGS = $(AM_CPPFLAGS) $(LIBUSB_CFLAGS)
extras_mobile_action_modeswitch_mobile_action_modeswitch_LDADD = libudev/libudev-private.la $(LIBUSB_LIBS)
dist_udevrules_DATA += \
extras/mobile-action-modeswitch/61-mobile-action.rules
libexec_PROGRAMS += extras/mobile-action-modeswitch/mobile-action-modeswitch
endif
# ------------------------------------------------------------------------------
# install, uninstall, clean hooks

7
README
View File

@ -51,9 +51,9 @@ Requirements:
these group names with only the rootfs mounted and while no network is
available.
- The 'udev extras' has the following dependencies:
- Some udev extras have external dependencies like:
libacl, libglib2, libusb, usbutils, pciutils, and gperf.
These dependencies can be disabled with the --disable-extras configure option.
All these extras can be disabled with configure options.
Setup:
- At bootup, the /dev directory should get the 'devtmpfs' filesystem
@ -90,7 +90,8 @@ Operation:
http://www.kernel.org/pub/linux/utils/kernel/hotplug/libudev/
http://www.kernel.org/pub/linux/utils/kernel/hotplug/gudev/
For more details about udev and udev rules, see the udev(7) man page.
For more details about udev and udev rules, see the udev man pages:
http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev/
Please direct any comment/question to the linux-hotplug mailing list at:
linux-hotplug@vger.kernel.org

View File

@ -54,8 +54,7 @@ AC_ARG_WITH(firmware-path,
[], [with_firmware_path="/lib/firmware/updates:/lib/firmware"])
OLD_IFS=$IFS
IFS=:
for i in $with_firmware_path
do
for i in $with_firmware_path; do
if test "x${FIRMWARE_PATH}" = "x"; then
FIRMWARE_PATH="\\\"${i}/\\\""
else
@ -69,38 +68,34 @@ AC_ARG_WITH([systemdsystemunitdir],
AS_HELP_STRING([--with-systemdsystemunitdir=DIR], [Directory for systemd service files]),
[], [with_systemdsystemunitdir=$($PKG_CONFIG --variable=systemdsystemunitdir systemd)])
if test "x$with_systemdsystemunitdir" != xno; then
AC_SUBST([systemdsystemunitdir], [$with_systemdsystemunitdir])
AC_SUBST([systemdsystemunitdir], [$with_systemdsystemunitdir])
fi
AM_CONDITIONAL(WITH_SYSTEMD, [test -n "$with_systemdsystemunitdir" -a "x$with_systemdsystemunitdir" != xno ])
AC_ARG_ENABLE([extras],
AS_HELP_STRING([--disable-extras], [disable extras with external dependencies]),
[], [enable_extras=yes])
if test "x$enable_extras" = xyes; then
AC_PATH_PROG([GPERF], [gperf])
if test -z "$GPERF"; then
AC_MSG_ERROR([gperf is needed])
fi
PKG_CHECK_MODULES([GLIB], [glib-2.0 >= 2.22.0 gobject-2.0 >= 2.22.0])
AC_SUBST([GLIB_CFLAGS])
AC_SUBST([GLIB_LIBS])
AC_CHECK_LIB([acl], [acl_init], [:], AC_MSG_ERROR([libacl not found]))
AC_CHECK_HEADER([acl/libacl.h], [:], AC_MSG_ERROR([libacl header not found]))
PKG_CHECK_MODULES(LIBUSB, libusb >= 0.1.12)
AC_SUBST(LIBUSB_CFLAGS)
AC_SUBST(LIBUSB_LIBS)
PKG_CHECK_MODULES(USBUTILS, usbutils >= 0.82)
AC_SUBST([USB_DATABASE], [$($PKG_CONFIG --variable=usbids usbutils)])
# ------------------------------------------------------------------------------
# rule_generator - persistent network and optical device rule generator
# ------------------------------------------------------------------------------
AC_ARG_ENABLE([hwdb],
AS_HELP_STRING([--disable-rule_generator], [disable persistent network, cdrom support]),
[], [enable_rule_generator=yes])
AM_CONDITIONAL([ENABLE_RULE_GENERATOR], [test "x$enable_rule_genarator" = xyes])
# ------------------------------------------------------------------------------
# usb/pci-db - read vendor/device string database
# ------------------------------------------------------------------------------
AC_ARG_ENABLE([hwdb],
AS_HELP_STRING([--disable-hwdb], [disable hardware database support]),
[], [enable_hwdb=yes])
if test "x$enable_hwdb" = xyes; then
if test "x$cross_compiling" = "xno" ; then
AC_CHECK_FILES([/usr/share/pci.ids], [pciids=/usr/share/pci.ids])
AC_CHECK_FILES([/usr/share/hwdata/pci.ids], [pciids=/usr/share/hwdata/pci.ids])
AC_CHECK_FILES([/usr/share/misc/pci.ids], [pciids=/usr/share/misc/pci.ids])
fi
PKG_CHECK_MODULES(USBUTILS, usbutils >= 0.82)
AC_SUBST([USB_DATABASE], [$($PKG_CONFIG --variable=usbids usbutils)])
AC_ARG_WITH(pci-ids-path,
[AS_HELP_STRING([--with-pci-ids-path=DIR], [Path to pci.ids file])],
[PCI_DATABASE=${withval}],
@ -112,25 +107,103 @@ if test "x$enable_extras" = xyes; then
AC_MSG_CHECKING([for PCI database location])
AC_MSG_RESULT([$PCI_DATABASE])
AC_SUBST(PCI_DATABASE)
AC_CHECK_HEADER([linux/input.h], [:], AC_MSG_ERROR([kernel headers not found]))
AC_SUBST([INCLUDE_PREFIX], [$(echo '#include <linux/input.h>' | eval $ac_cpp -E - | sed -n '/linux\/input.h/ {s:.*"\(.*\)/linux/input.h".*:\1:; p; q}')])
fi
AM_CONDITIONAL([ENABLE_EXTRAS], [test "x$enable_extras" = xyes])
AM_CONDITIONAL([ENABLE_HWDB], [test "x$enable_hwdb" = xyes])
# ------------------------------------------------------------------------------
# udev_acl - apply ACLs for users with local forground sessions
# ------------------------------------------------------------------------------
AC_ARG_ENABLE([udev_acl],
AS_HELP_STRING([--disable-udev_acl], [disable local user acl permissions support]),
[], [enable_udev_acl=yes])
if test "x$enable_udev_acl" = xyes; then
AC_CHECK_LIB([acl], [acl_init], [:], AC_MSG_ERROR([libacl not found]))
AC_CHECK_HEADER([acl/libacl.h], [:], AC_MSG_ERROR([libacl header not found]))
PKG_CHECK_MODULES([GLIB], [glib-2.0 >= 2.22.0 gobject-2.0 >= 2.22.0])
AC_SUBST([GLIB_CFLAGS])
AC_SUBST([GLIB_LIBS])
fi
AM_CONDITIONAL([ENABLE_UDEV_ACL], [test "x$enable_udev_acl" = xyes])
# ------------------------------------------------------------------------------
# GUdev - libudev gobject interface
# ------------------------------------------------------------------------------
AC_ARG_ENABLE([gudev],
AS_HELP_STRING([--disable-gudev], [disable Gobject libudev support]),
[], [enable_gudev=yes])
if test "x$enable_gudev" = xyes; then
PKG_CHECK_MODULES([GLIB], [glib-2.0 >= 2.22.0 gobject-2.0 >= 2.22.0])
AC_SUBST([GLIB_CFLAGS])
AC_SUBST([GLIB_LIBS])
AC_ARG_ENABLE([introspection],
AS_HELP_STRING([--disable-introspection], [disable GObject introspection]),
[], [enable_introspection=yes])
if test "x$enable_introspection" = xyes; then
PKG_CHECK_MODULES([INTROSPECTION], [gobject-introspection-1.0 >= 0.6.2])
AC_DEFINE([ENABLE_INTROSPECTION], [1], [enable GObject introspection support])
AC_SUBST([G_IR_SCANNER], [$($PKG_CONFIG --variable=g_ir_scanner gobject-introspection-1.0)])
AC_SUBST([G_IR_COMPILER], [$($PKG_CONFIG --variable=g_ir_compiler gobject-introspection-1.0)])
AC_SUBST([G_IR_GENERATE], [$($PKG_CONFIG --variable=g_ir_generate gobject-introspection-1.0)])
AC_SUBST([GIRDIR], [$($PKG_CONFIG --define-variable=datadir=${datadir} --variable=girdir gobject-introspection-1.0)])
AC_SUBST([GIRTYPELIBDIR], [$($PKG_CONFIG --define-variable=libdir=${libdir} --variable=typelibdir gobject-introspection-1.0)])
fi
AM_CONDITIONAL([ENABLE_INTROSPECTION], [test "x$enable_introspection" = xyes])
AM_CONDITIONAL([ENABLE_GUDEV], [test "x$enable_gudev" = xyes])
# ------------------------------------------------------------------------------
# keymap - map custom hardware's multimedia keys
# ------------------------------------------------------------------------------
AC_ARG_ENABLE([keymap],
AS_HELP_STRING([--disable-keymap], [disable keymap fixup support]),
[], [enable_keymap=yes])
if test "x$enable_keymap" = xyes; then
AC_PATH_PROG([GPERF], [gperf])
if test -z "$GPERF"; then
AC_MSG_ERROR([gperf is needed])
fi
AC_CHECK_HEADER([linux/input.h], [:], AC_MSG_ERROR([kernel headers not found]))
AC_SUBST([INCLUDE_PREFIX], [$(echo '#include <linux/input.h>' | eval $ac_cpp -E - | sed -n '/linux\/input.h/ {s:.*"\(.*\)/linux/input.h".*:\1:; p; q}')])
fi
AM_CONDITIONAL([ENABLE_KEYMAP], [test "x$enable_keymap" = xyes])
# ------------------------------------------------------------------------------
# create_floppy_devices - historical floppy kernel device nodes (/dev/fd0h1440, ...)
# ------------------------------------------------------------------------------
AC_ARG_ENABLE([floppy],
AS_HELP_STRING([--enable-floppy], [enable legacy floppy support]),
[], [enable_floppy=no])
AM_CONDITIONAL([ENABLE_FLOPPY], [test "x$enable_floppy" = xyes])
# ------------------------------------------------------------------------------
# edd_id - create /dev/disk/by-id/edd-* links for BIOS EDD data
# ------------------------------------------------------------------------------
AC_ARG_ENABLE([edd],
AS_HELP_STRING([--enable-edd], [enable disk edd support]),
[], [enable_edd=no])
AM_CONDITIONAL([ENABLE_EDD], [test "x$enable_edd" = xyes])
# ------------------------------------------------------------------------------
# Bluetooth HID devices with special magic to switch the device
# ------------------------------------------------------------------------------
AC_ARG_ENABLE([hid2hci],
AS_HELP_STRING([--enable-hid2hci], [enable bluetooth hid to hci switch]),
[], [enable_hid2hci=no])
if test "x$enable_hid2hci" = xyes; then
PKG_CHECK_MODULES(LIBUSB, libusb >= 0.1.12)
AC_SUBST(LIBUSB_CFLAGS)
AC_SUBST(LIBUSB_LIBS)
fi
AM_CONDITIONAL([ENABLE_HID2HCI], [test "x$enable_hid2hci" = xyes])
# ------------------------------------------------------------------------------
# mobile-action-modeswitch - switch Mobile Action cables into serial mode
# ------------------------------------------------------------------------------
AC_ARG_ENABLE([ACTION_MODESWITCH],
AS_HELP_STRING([--enable-action_modeswitch], [enable action modeswitch support]),
[], [enable_action_modeswitch=no])
if test "x$enable_action_modeswitch" = xyes; then
PKG_CHECK_MODULES(LIBUSB, libusb >= 0.1.12)
AC_SUBST(LIBUSB_CFLAGS)
AC_SUBST(LIBUSB_LIBS)
fi
AM_CONDITIONAL([ENABLE_ACTION_MODESWITCH], [test "x$enable_action_modeswitch" = xyes])
AC_CONFIG_HEADERS(config.h)
AC_CONFIG_FILES([
@ -175,8 +248,15 @@ AC_MSG_RESULT([
cflags: ${CFLAGS}
ldflags: ${LDFLAGS}
extras: ${enable_extras}
gintrospection: ${enable_introspection}
rule_generator: ${enable_rule_generator}
hwdb: ${enable_hwdb}
udev_acl: ${enable_udev_acl}
gudev: ${enable_gudev}
keymap: ${enable_keymap}
floppy: ${enable_floppy}
edd: ${enable_edd}
hid2hci: ${enable_hid2hci}
action_modeswitch: ${enable_action_modeswitch}
usb.ids: ${USB_DATABASE}
pci.ids: ${PCI_DATABASE}