OSDN Git Service

net: wireless: wl: refine the rules
authorChih-Wei Huang <cwhuang@linux.org.tw>
Thu, 13 Apr 2017 10:19:42 +0000 (18:19 +0800)
committerChih-Wei Huang <cwhuang@linux.org.tw>
Thu, 13 Apr 2017 10:19:42 +0000 (18:19 +0800)
The original rules put the 32-bit and 64-bit object files in the
same directory. Thus building a different arch will always trigger
re-building. It's not good.

Put 32-bit and 64-bit files in different directories so they won't
conflict with each other.

drivers/net/wireless/wl/.gitignore
drivers/net/wireless/wl/build.mk
drivers/net/wireless/wl/wl.patch

index 56cce60..7985847 100644 (file)
@@ -1,15 +1,16 @@
 # parts of build/core/tasks/kernel.mk
 
 WL_ENABLED := $(if $(wildcard $(WL_PATH)),$(shell grep ^CONFIG_WL=[my] $(KERNEL_CONFIG_FILE)))
-WL_ARCH_CHANGED := $(if $(shell file $(WL_PATH)/lib/wlc_hybrid.o_shipped | grep -s $(if $(filter x86,$(TARGET_KERNEL_ARCH)),80386,x86-64)),,FORCE)
 WL_SRC := $(WL_PATH)/hybrid-v35$(if $(filter x86,$(TARGET_KERNEL_ARCH)),,_64)-nodebug-pcoem-6_30_223_271.tar.gz
+WL_LIB := $(WL_PATH)/lib$(if $(filter x86,$(TARGET_KERNEL_ARCH)),32,64)
 $(WL_SRC):
        @echo Downloading $(@F)...
-       $(hide) curl https://docs.broadcom.com/docs-and-downloads/docs/linux_sta/$(@F) > $@
+       $(hide) curl -k https://docs.broadcom.com/docs-and-downloads/docs/linux_sta/$(@F) > $@
 
-$(WL_PATH)/Makefile : $(WL_SRC) $(wildcard $(WL_PATH)/*.patch) $(WL_ARCH_CHANGED) $(KERNEL_ARCH_CHANGED)
-       $(hide) tar zxf $< -C $(@D) --overwrite && \
+$(WL_LIB): $(WL_SRC) $(wildcard $(WL_PATH)/*.patch)
+       $(hide) tar zxf $< -C $(@D) --overwrite -m && \
+               rm -rf $@ && mv $(@D)/lib $@ && touch $@ && \
                patch -p5 -d $(@D) -i wl.patch && \
                patch -p1 -d $(@D) -i linux-recent.patch
 
-$(INSTALLED_KERNEL_TARGET): $(if $(WL_ENABLED),$(WL_PATH)/Makefile)
+$(INSTALLED_KERNEL_TARGET): $(if $(WL_ENABLED),$(WL_LIB))
index 74c04d8..b9d6196 100644 (file)
@@ -5,7 +5,7 @@
  #EXTRA_CFLAGS       += -DBCMDBG_ASSERT
  
 -EXTRA_LDFLAGS      := $(src)/lib/wlc_hybrid.o_shipped
-+EXTRA_LDFLAGS      := $(srctree)/$(src)/lib/wlc_hybrid.o_shipped
++EXTRA_LDFLAGS      := $(srctree)/$(src)/lib$(if $(CONFIG_64BIT),64,32)/wlc_hybrid.o_shipped
  
  KBASE              ?= /lib/modules/`uname -r`
  KBUILD_DIR         ?= $(KBASE)/build