summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYury G. Kudryashov <urkud.urkud@gmail.com>2010-04-16 09:38:32 +0400
committerKay Sievers <kay.sievers@vrfy.org>2010-04-20 07:02:58 +0200
commit4101ce14b3f6646f3468f6a489d87d057aab7163 (patch)
treea965db872ee17c1b1bc62239789bd093ac97e19b
parentd5a4ca9dfe235ed410c684e4e7499984a55f3b05 (diff)
configure.ac: ddd --with-firmware-path option
In NixOS we need to use non-standard firmware path: we have no /lib.
-rw-r--r--Makefile.am1
-rw-r--r--configure.ac21
-rw-r--r--extras/firmware/firmware.c5
3 files changed, 23 insertions, 4 deletions
diff --git a/Makefile.am b/Makefile.am
index 076db8c9e7..7403949cf3 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -194,6 +194,7 @@ dist_udevrules_DATA += \
# ------------------------------------------------------------------------------
extras_firmware_firmware_SOURCES = extras/firmware/firmware.c
extras_firmware_firmware_LDADD = libudev/libudev-private.la
+extras_firmware_firmware_CPPFLAGS = $(AM_CPPFLAGS) -DFIRMWARE_PATH="$(FIRMWARE_PATH)"
dist_udevrules_DATA += extras/firmware/50-firmware.rules
libexec_PROGRAMS = extras/firmware/firmware
diff --git a/configure.ac b/configure.ac
index 492fa02242..cce70d1178 100644
--- a/configure.ac
+++ b/configure.ac
@@ -82,6 +82,26 @@ if test "x$enable_extras" = xyes; then
fi])
AC_SUBST(PCI_DATABASE)
+ AC_ARG_WITH(firmware-path,
+ AS_HELP_STRING([--with-firmware-path=DIR[[[:DIR[...]]]]],
+ [Firmware search path (default=/lib/firmware/updates:/lib/firmware)]),
+ [],
+ [with_firmware_path="/lib/fimware/updates:/lib/fimware"]
+ )
+ OLD_IFS=$IFS
+ IFS=:
+ for i in $with_firmware_path
+ do
+ if test "x${FIRMWARE_PATH}" = "x"
+ then
+ FIRMWARE_PATH="\\\"${i}/\\\""
+ else
+ FIRMWARE_PATH="${FIRMWARE_PATH}, \\\"${i}/\\\""
+ fi
+ done
+ IFS=$OLD_IFS
+ AC_SUBST([FIRMWARE_PATH], [$FIRMWARE_PATH])
+
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
@@ -144,6 +164,7 @@ AC_MSG_RESULT([
usb.ids: ${USB_DATABASE}
pci.ids: ${PCI_DATABASE}
+ firmware path: ${FIRMWARE_PATH}
xsltproc: ${XSLTPROC}
gperf: ${GPERF}
diff --git a/extras/firmware/firmware.c b/extras/firmware/firmware.c
index 92f0918c6f..76593bad30 100644
--- a/extras/firmware/firmware.c
+++ b/extras/firmware/firmware.c
@@ -79,10 +79,7 @@ int main(int argc, char **argv)
{ "help", no_argument, NULL, 'h' },
{}
};
- static const char *searchpath[] = {
- "/lib/firmware/updates/",
- "/lib/firmware/"
- };
+ static const char *searchpath[] = { FIRMWARE_PATH };
char fwencpath[UTIL_PATH_SIZE];
char misspath[UTIL_PATH_SIZE];
char loadpath[UTIL_PATH_SIZE];