# # Copyright (C) 2007-2009 OpenWrt.org # # This is free software, licensed under the GNU General Public License v2. # See /LICENSE for more information. ifeq ($(TARGET_BUILD),1) PKG_BUILD_DIR:=$(LINUX_DIR) endif ifneq ($(filter host-refresh refresh,$(MAKECMDGOALS)),) override QUILT=1 override HOST_QUILT=1 endif ifneq ($(PKG_BUILD_DIR),) QUILT?=$(if $(wildcard $(PKG_BUILD_DIR)/.quilt_used),y) ifneq ($(QUILT),) STAMP_CHECKED:=$(PKG_BUILD_DIR)/.quilt_checked override CONFIG_AUTOREBUILD= override CONFIG_AUTOREMOVE= quilt-check: $(STAMP_CHECKED) endif endif ifneq ($(HOST_BUILD_DIR),) HOST_QUILT?=$(if $(findstring command,$(origin QUILT)),$(QUILT),$(if $(wildcard $(HOST_BUILD_DIR)/.quilt_used),y)) ifneq ($(HOST_QUILT),) HOST_STAMP_CHECKED:=$(HOST_BUILD_DIR)/.quilt_checked override CONFIG_AUTOREBUILD= override CONFIG_AUTOREMOVE= host-quilt-check: $(HOST_STAMP_CHECKED) endif endif ifneq ($(if $(DUMP),1,$(__quilt_inc)),1) __quilt_inc:=1 PATCH_DIR?=./patches FILES_DIR?=./files HOST_PATCH_DIR?=$(PATCH_DIR) HOST_FILES_DIR?=$(FILES_DIR) QUILT_CMD:=quilt --quiltrc=- define filter_series sed -e s,\\\#.*,, $(1) | grep -E \[a-zA-Z0-9\] endef define PatchDir/Quilt @mkdir -p "$(1)/patches$(if $(3),/$(patsubst %/,%,$(3)))" @if [ -s "$(2)/series" ]; then \ mkdir -p "$(1)/patches/$(3)"; \ cp "$(2)/series" "$(1)/patches/$(3)"; \ fi @for patch in $$$$( (cd "$(2)" && if [ -f series ]; then $(call filter_series,series); else ls | sort; fi; ) 2>/dev/null ); do ( \ cp "$(2)/$$$$patch" "$(1)/patches/$(3)"; \ echo "$(3)$$$$patch" >> "$(1)/patches/series"; \ ); done $(if $(3),@echo $(3) >> "$(1)/patches/.subdirs") endef define PatchDir/Default @if [ -d "$(2)" ] && [ "$$$$(ls $(2) | wc -l)" -gt 0 ]; then \ export PATCH="$(PATCH)"; \ if [ -s "$(2)/series" ]; then \ $(call filter_series,$(2)/series) | xargs -n1 \ $(KPATCH) "$(1)" "$(2)"; \ else \ $(KPATCH) "$(1)" "$(2)"; \ fi; \ fi endef define PatchDir $(call PatchDir/$(if $(strip $(QUILT)),Quilt,Default),$(strip $(1)),$(strip $(2)),$(strip $(3))) endef define HostPatchDir $(call PatchDir/$(if $(strip $(HOST_QUILT)),Quilt,Default),$(strip $(1)),$(strip $(2)),$(strip $(3))) endef define Host/Patch/Default $(if $(HOST_QUILT),rm -rf $(HOST_BUILD_DIR)/patches; mkdir -p $(HOST_BUILD_DIR)/patches) $(call HostPatchDir,$(HOST_BUILD_DIR),$(HOST_PATCH_DIR),) $(if $(HOST_QUILT),touch $(HOST_BUILD_DIR)/.quilt_used) endef define Build/Patch/Default $(if $(QUILT),rm -rf $(PKG_BUILD_DIR)/patches; mkdir -p $(PKG_BUILD_DIR)/patches) $(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_DIR),) $(if $(QUILT),touch $(PKG_BUILD_DIR)/.quilt_used) endef kernel_files=$(foreach fdir,$(GENERIC_FILES_DIR) $(FILES_DIR),$(fdir)/.) define Kernel/Patch/Default $(if $(QUILT),rm -rf $(LINUX_DIR)/patches; mkdir -p $(LINUX_DIR)/patches) $(if $(kernel_files),$(CP) $(kernel_files) $(LINUX_DIR)/) find $(LINUX_DIR)/ -name \*.rej -or -name \*.orig | $(XARGS) rm -f if [ -d $(GENERIC_PLATFORM_DIR)/patches$(if $(wildcard $(GENERIC_PLATFORM_DIR)/patches-$(KERNEL_PATCHVER)),-$(KERNEL_PATCHVER)) ]; then \ echo "generic patches directory is present. please move your patches to the pending directory" ; \ exit 1; \ fi $(call PatchDir,$(LINUX_DIR),$(GENERIC_BACKPORT_DIR),generic-backport/) $(call PatchDir,$(LINUX_DIR),$(GENERIC_PATCH_DIR),generic/) $(call PatchDir,$(LINUX_DIR),$(GENERIC_HACK_DIR),generic-hack/) $(call PatchDir,$(LINUX_DIR),$(PATCH_DIR),platform/) endef define Quilt/RefreshDir mkdir -p $(2) -rm -f $(2)/* 2>/dev/null >/dev/null @( \ for patch in $$$$($(if $(3),grep "^$(3)",cat) $(1)/patches/series | awk '{print $$$$1}'); do \ $(CP) -v "$(1)/patches/$$$$patch" $(2); \ done; \ ) endef define Quilt/Refresh/Host $(call Quilt/RefreshDir,$(HOST_BUILD_DIR),$(PATCH_DIR)) endef define Quilt/Refresh/Package $(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(PATCH_DIR)) endef define Quilt/Refresh/Kernel @[ -z "$$(grep -v '^generic/' $(PKG_BUILD_DIR)/patches/series | grep -v '^platform/')" ] || { \ echo "All kernel patches must start with either generic/ or platform/"; \ false; \ } $(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(GENERIC_BACKPORT_DIR),generic-backport/) $(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(GENERIC_PATCH_DIR),generic/) $(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(GENERIC_HACK_DIR),generic-hack/) $(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(PATCH_DIR),platform/) endef define Quilt/Template $($(2)STAMP_CONFIGURED): $($(2)STAMP_CHECKED) $(if $(NO_RECONFIGURE),$($(2)STAMP_BUILT),$($(2)STAMP_CONFIGURED)): FORCE $($(2)STAMP_CHECKED): $($(2)STAMP_PREPARED) if [ -s "$(1)/patches/series" ]; then \ (cd "$(1)"; \ if $(QUILT_CMD) next >/dev/null 2>&1; then \ $(QUILT_CMD) push -a; \ else \ $(QUILT_CMD) top >/dev/null 2>&1; \ fi \ ); \ fi touch "$$@" $(3)quilt-check: $($(2)STAMP_PREPARED) FORCE @[ -f "$(1)/.quilt_used" ] || { \ echo "The source directory was not unpacked using quilt. Please rebuild with QUILT=1"; \ false; \ } @[ -f "$(1)/patches/series" ] || { \ echo "The source directory contains no quilt patches."; \ false; \ } @[ -n "$$$$(ls $(1)/patches/series)" -o \ "$$$$(cat $(1)/patches/series | mkhash md5)" = "$$(sort $(1)/patches/series | mkhash md5)" ] || { \ echo "The patches are not sorted in the right order. Please fix."; \ false; \ } $(3)refresh: $(3)quilt-check @cd "$(1)"; $(QUILT_CMD) pop -a -f >/dev/null 2>/dev/null @cd "$(1)"; while $(QUILT_CMD) next 2>/dev/null >/dev/null && $(QUILT_CMD) push; do \ QUILT_DIFF_OPTS="-p" $(QUILT_CMD) refresh -p ab --no-index --no-timestamps; \ done; ! $(QUILT_CMD) next 2>/dev/null >/dev/null $(Quilt/Refresh/$(4)) $(3)update: $(3)quilt-check $(Quilt/Refresh/$(4)) endef Build/Quilt=$(call Quilt/Template,$(PKG_BUILD_DIR),,,$(if $(TARGET_BUILD),Kernel,Package)) Host/Quilt=$(call Quilt/Template,$(HOST_BUILD_DIR),HOST_,host-,Host) endif >62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209
#
# Copyright (C) 2006-2013 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
INPUT_MODULES_MENU:=Input modules
define KernelPackage/hid
SUBMENU:=$(INPUT_MODULES_MENU)
TITLE:=HID Devices
DEPENDS:=+kmod-input-core +kmod-input-evdev
KCONFIG:=CONFIG_HID CONFIG_HIDRAW=y CONFIG_HID_BATTERY_STRENGTH=y
FILES:=$(LINUX_DIR)/drivers/hid/hid.ko
AUTOLOAD:=$(call AutoLoad,61,hid)
endef
define KernelPackage/hid/description
Kernel modules for HID devices
endef
$(eval $(call KernelPackage,hid))
define KernelPackage/hid-generic
SUBMENU:=$(INPUT_MODULES_MENU)
TITLE:=Generic HID device support
DEPENDS:=+kmod-hid
KCONFIG:=CONFIG_HID_GENERIC
FILES:=$(LINUX_DIR)/drivers/hid/hid-generic.ko
AUTOLOAD:=$(call AutoProbe,hid-generic)
endef
define KernelPackage/hid/description
Kernel modules for generic HID device (e.g. keyboards and mice) support
endef
$(eval $(call KernelPackage,hid-generic))
define KernelPackage/input-core
SUBMENU:=$(INPUT_MODULES_MENU)
TITLE:=Input device core
KCONFIG:=CONFIG_INPUT
FILES:=$(LINUX_DIR)/drivers/input/input-core.ko
endef
define KernelPackage/input-core/description
Kernel modules for support of input device
endef
$(eval $(call KernelPackage,input-core))
define KernelPackage/input-evdev
SUBMENU:=$(INPUT_MODULES_MENU)
TITLE:=Input event device
DEPENDS:=+kmod-input-core
KCONFIG:=CONFIG_INPUT_EVDEV
FILES:=$(LINUX_DIR)/drivers/input/evdev.ko
AUTOLOAD:=$(call AutoLoad,60,evdev)
endef
define KernelPackage/input-evdev/description
Kernel modules for support of input device events
endef
$(eval $(call KernelPackage,input-evdev))
define KernelPackage/input-gpio-keys
SUBMENU:=$(INPUT_MODULES_MENU)
TITLE:=GPIO key support
DEPENDS:= @GPIO_SUPPORT +kmod-input-core
KCONFIG:= \
CONFIG_KEYBOARD_GPIO \
CONFIG_INPUT_KEYBOARD=y
FILES:=$(LINUX_DIR)/drivers/input/keyboard/gpio_keys.ko
AUTOLOAD:=$(call AutoProbe,gpio_keys)
endef
define KernelPackage/input-gpio-keys/description
This driver implements support for buttons connected
to GPIO pins of various CPUs (and some other chips).
See also gpio-button-hotplug which is an alternative, lower overhead
implementation that generates uevents instead of kernel input events.
endef
$(eval $(call KernelPackage,input-gpio-keys))
define KernelPackage/input-gpio-keys-polled
SUBMENU:=$(INPUT_MODULES_MENU)
TITLE:=Polled GPIO key support
DEPENDS:=@GPIO_SUPPORT +kmod-input-polldev
KCONFIG:= \
CONFIG_KEYBOARD_GPIO_POLLED \
CONFIG_INPUT_KEYBOARD=y
FILES:=$(LINUX_DIR)/drivers/input/keyboard/gpio_keys_polled.ko
AUTOLOAD:=$(call AutoProbe,gpio_keys_polled,1)
endef
define KernelPackage/input-gpio-keys-polled/description
Kernel module for support polled GPIO keys input device
See also gpio-button-hotplug which is an alternative, lower overhead
implementation that generates uevents instead of kernel input events.
endef
$(eval $(call KernelPackage,input-gpio-keys-polled))
define KernelPackage/input-gpio-encoder
SUBMENU:=$(INPUT_MODULES_MENU)
TITLE:=GPIO rotay encoder
DEPENDS:=@GPIO_SUPPORT +kmod-input-core
KCONFIG:=CONFIG_INPUT_GPIO_ROTARY_ENCODER
FILES:=$(LINUX_DIR)/drivers/input/misc/rotary_encoder.ko
AUTOLOAD:=$(call AutoProbe,rotary_encoder)
endef
define KernelPackage/gpio-encoder/description
Kernel module to use rotary encoders connected to GPIO pins
endef
$(eval $(call KernelPackage,input-gpio-encoder))
define KernelPackage/input-joydev
SUBMENU:=$(INPUT_MODULES_MENU)
TITLE:=Joystick device support
DEPENDS:=+kmod-input-core
KCONFIG:=CONFIG_INPUT_JOYDEV
FILES:=$(LINUX_DIR)/drivers/input/joydev.ko
AUTOLOAD:=$(call AutoProbe,joydev)
endef
define KernelPackage/input-joydev/description
Kernel module for joystick support
endef
$(eval $(call KernelPackage,input-joydev))
define KernelPackage/input-polldev
SUBMENU:=$(INPUT_MODULES_MENU)
TITLE:=Polled Input device support
DEPENDS:=+kmod-input-core
KCONFIG:=CONFIG_INPUT_POLLDEV
FILES:=$(LINUX_DIR)/drivers/input/input-polldev.ko
endef
define KernelPackage/input-polldev/description
Kernel module for support of polled input devices
endef
$(eval $(call KernelPackage,input-polldev))
define KernelPackage/input-matrixkmap
SUBMENU:=$(INPUT_MODULES_MENU)
TITLE:=Input matrix devices support
DEPENDS:=+kmod-input-core
KCONFIG:=CONFIG_INPUT_MATRIXKMAP
FILES:=$(LINUX_DIR)/drivers/input/matrix-keymap.ko
AUTOLOAD:=$(call AutoProbe,matrix-keymap)
endef
define KernelPackage/input-matrix/description
Kernel module support for input matrix devices
endef
$(eval $(call KernelPackage,input-matrixkmap))
define KernelPackage/keyboard-imx
SUBMENU:=$(INPUT_MODULES_MENU)
TITLE:=IMX keypad support
DEPENDS:=@(TARGET_mxs||TARGET_imx6) +kmod-input-matrixkmap
KCONFIG:= \
CONFIG_KEYBOARD_IMX \
CONFIG_INPUT_KEYBOARD=y
FILES:=$(LINUX_DIR)/drivers/input/keyboard/imx_keypad.ko
AUTOLOAD:=$(call AutoProbe,imx_keypad)
endef
define KernelPackage/keyboard-imx/description
Enable support for IMX keypad port.
endef
$(eval $(call KernelPackage,keyboard-imx))
define KernelPackage/input-uinput
SUBMENU:=$(INPUT_MODULES_MENU)
TITLE:=user input module
DEPENDS:=+kmod-input-core
KCONFIG:= \
CONFIG_INPUT_MISC=y \
CONFIG_INPUT_UINPUT
FILES:=$(LINUX_DIR)/drivers/input/misc/uinput.ko
AUTOLOAD:=$(call AutoProbe,uinput)
endef
define KernelPackage/input-uinput/description
user input modules needed for bluez
endef
$(eval $(call KernelPackage,input-uinput))