From: Felix Fietkau Date: Thu, 20 Aug 2009 17:13:50 +0000 (-0700) Subject: Increase speed of compat-wireless build - CONFIG_COMPAT_WIRELESS_* changes X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=9c12a114881e8e60745a1cedc049b180ef9c3b77;p=openwrt%2Fstaging%2Fblogic.git Increase speed of compat-wireless build - CONFIG_COMPAT_WIRELESS_* changes $(shell) calls are pretty expensive in makefiles, avoid so many calls by doing them only once to set the CONFIG_COMPAT_WIRELESS_* variables and then using these to check the kernel version later in config.mk This speeds up the compat-wireless build process. Signed-off-by: Felix Fietkau Signed-off-by: Luis R. Rodriguez --- diff --git a/config.mk b/config.mk index 4fb2ab28a3b2..b482b681e0bd 100644 --- a/config.mk +++ b/config.mk @@ -17,15 +17,19 @@ ifeq ($(CONFIG_MAC80211),y) $(error "ERROR: you have MAC80211 compiled into the kernel, CONFIG_MAC80211=y, as such you cannot replace its mac80211 driver. You need this set to CONFIG_MAC80211=m. If you are using Fedora upgrade your kernel as later version should this set as modular. For further information on Fedora see https://bugzilla.redhat.com/show_bug.cgi?id=470143. If you are using your own kernel recompile it and make mac80211 modular") endif + # We will warn when you don't have MQ support or NET_SCHED enabled. # # We could consider just quiting if MQ and NET_SCHED is disabled # as I suspect all users of this package want 802.11e (WME) and # 802.11n (HT) support. -ifeq ($(shell test -e $(KLIB_BUILD)/Makefile && echo yes),yes) -KERNEL_SUBLEVEL = $(shell $(MAKE) -C $(KLIB_BUILD) kernelversion | sed -n 's/^2\.6\.\([0-9]\+\).*/\1/p') +ifneq ($(wildcard $(KLIB_BUILD)/Makefile),) +COMPAT_LATEST_VERSION = 32 +KERNEL_SUBLEVEL := $(shell $(MAKE) -C $(KLIB_BUILD) kernelversion | sed -n 's/^2\.6\.\([0-9]\+\).*/\1/p') +COMPAT_VERSIONS := $(shell I=$(COMPAT_LATEST_VERSION); while [ "$$I" -gt $(KERNEL_SUBLEVEL) ]; do echo $$I; I=$$(($$I - 1)); done) +$(foreach ver,$(COMPAT_VERSIONS),$(eval CONFIG_COMPAT_WIRELESS_$(ver)=y)) -ifeq ($(shell test $(KERNEL_SUBLEVEL) -lt 25 && echo yes),yes) +ifdef CONFIG_COMPAT_WIRELESS_25 $(error "ERROR: You should use compat-wireless-2.6-old for older kernels, this one is for kernels >= 2.6.25") endif @@ -34,56 +38,10 @@ $(error "ERROR: your kernel has CONFIG_CFG80211=y, you should have it CONFIG_CFG endif -# Compat wireless compat-2.6.2x.c files gets selected here - -ifeq ($(shell test $(KERNEL_SUBLEVEL) -le 21 && echo yes),yes) -CONFIG_COMPAT_WIRELESS_22=y -endif - -ifeq ($(shell test $(KERNEL_SUBLEVEL) -le 22 && echo yes),yes) -CONFIG_COMPAT_WIRELESS_23=y -endif - -ifeq ($(shell test $(KERNEL_SUBLEVEL) -le 23 && echo yes),yes) -CONFIG_COMPAT_WIRELESS_24=y -endif - -ifeq ($(shell test $(KERNEL_SUBLEVEL) -le 24 && echo yes),yes) -CONFIG_COMPAT_WIRELESS_25=y -endif - -ifeq ($(shell test $(KERNEL_SUBLEVEL) -le 25 && echo yes),yes) -CONFIG_COMPAT_WIRELESS_26=y -endif - -ifeq ($(shell test $(KERNEL_SUBLEVEL) -le 26 && echo yes),yes) -CONFIG_COMPAT_WIRELESS_27=y -endif - -ifeq ($(shell test $(KERNEL_SUBLEVEL) -le 27 && echo yes),yes) -CONFIG_COMPAT_WIRELESS_28=y -endif - -ifeq ($(shell test $(KERNEL_SUBLEVEL) -le 28 && echo yes),yes) -CONFIG_COMPAT_WIRELESS_29=y -endif - -ifeq ($(shell test $(KERNEL_SUBLEVEL) -le 29 && echo yes),yes) -CONFIG_COMPAT_WIRELESS_30=y -endif - -ifeq ($(shell test $(KERNEL_SUBLEVEL) -le 30 && echo yes),yes) -CONFIG_COMPAT_WIRELESS_31=y -endif - -ifeq ($(shell test $(KERNEL_SUBLEVEL) -le 31 && echo yes),yes) -CONFIG_COMPAT_WIRELESS_32=y -endif - # 2.6.27 has FTRACE_DYNAMIC borked, so we will complain if # you have it enabled, otherwise you will very likely run into # a kernel panic. -ifeq ($(shell test $(KERNEL_SUBLEVEL) -eq 27 && echo yes),yes) +ifeq ($(KERNEL_SUBLEVEL),27) ifeq ($(CONFIG_DYNAMIC_FTRACE),y) $(error "ERROR: Your 2.6.27 kernel has CONFIG_DYNAMIC_FTRACE, please upgrade your distribution kernel as newer ones should not have this enabled (and if so report a bug) or remove this warning if you know what you are doing") endif @@ -291,7 +249,7 @@ endif ifneq ($(CONFIG_PCMCIA),) -ifeq ($(shell test $(KERNEL_SUBLEVEL) -le 26 && echo yes),yes) +ifdef CONFIG_COMPAT_WIRELESS_27 CONFIG_LIBERTAS=n CONFIG_LIBERTAS_CS=n else @@ -327,7 +285,7 @@ CONFIG_RTL8187=m CONFIG_AT76C50X_USB=m -ifeq ($(shell test $(KERNEL_SUBLEVEL) -ge 28 && echo yes),yes) +ifndef CONFIG_COMPAT_WIRELESS_28 CONFIG_AR9170_USB=m CONFIG_AR9170_LEDS=y endif @@ -343,7 +301,7 @@ CONFIG_RT73USB=m NEED_RT2X00_FIRMWARE=y endif -ifeq ($(shell test $(KERNEL_SUBLEVEL) -le 26 && echo yes),yes) +ifdef CONFIG_COMPAT_WIRELESS_27 CONFIG_LIBERTAS_THINFIRM_USB=n CONFIG_LIBERTAS_USB=n NEED_LIBERTAS=n @@ -360,7 +318,7 @@ ifneq ($(CONFIG_SPI_MASTER),) CONFIG_WL1251=m CONFIG_P54_SPI=m -ifeq ($(shell test $(KERNEL_SUBLEVEL) -le 26 && echo yes),yes) +ifdef CONFIG_COMPAT_WIRELESS_27 CONFIG_LIBERTAS_SPI=n NEED_LIBERTAS=n else @@ -372,7 +330,7 @@ endif # end of SPI driver list ifneq ($(CONFIG_MMC),) -ifeq ($(shell test $(KERNEL_SUBLEVEL) -le 26 && echo yes),yes) +ifdef CONFIG_COMPAT_WIRELESS_27 CONFIG_LIBERTAS_SDIO=n NEED_LIBERTAS=n else @@ -382,7 +340,7 @@ endif # Activate iwmc3200wifi support only on kernel >= 2.6.29. # iwmc3200wifi uses new netdev_ops api no supported by old kernel. -ifeq ($(shell test $(KERNEL_SUBLEVEL) -ge 29 && echo yes),yes) +ifndef CONFIG_COMPAT_WIRELESS_29 CONFIG_IWM=m # CONFIG_IWM_DEBUG=y endif @@ -425,7 +383,7 @@ CONFIG_SSB=m CONFIG_SSB_SPROM=y # CONFIG_SSB_DEBUG=y -ifeq ($(shell test $(KERNEL_SUBLEVEL) -le 26 && echo yes),yes) +ifdef CONFIG_COMPAT_WIRELESS_27 CONFIG_LIBERTAS=n else ifeq ($(NEED_LIBERTAS),y) @@ -437,7 +395,7 @@ endif # We need the backported rfkill module on kernel < 2.6.31. # In more recent kernel versions use the in kernel rfkill module. -ifeq ($(shell test $(KERNEL_SUBLEVEL) -le 30 && echo yes),yes) +ifdef CONFIG_COMPAT_WIRELESS_31 CONFIG_RFKILL_BACKPORT=m CONFIG_RFKILL_BACKPORT_LEDS=y CONFIG_RFKILL_BACKPORT_INPUT=y