1# 2# Generic portion of the Broadcom wl driver makefile 3# 4# input: O_TARGET, CONFIG_WL_CONF and wl_suffix 5# output: obj-m, obj-y 6# 7# $Id: wl_generic.mk,v 1.10 2011-01-21 22:12:09 $ 8# 9 10REBUILD_WL_MODULE=$(shell if [ -d "$(src)/$(SRCBASE_OFFSET)/wl/sys" -a "$(REUSE_PREBUILT_WL)" != "1" ]; then echo 1; else echo 0; fi) 11 12# If source directory (src/wl/sys) exists and REUSE_PREBUILT_WL is undefined, 13# then build inside $(SRCBASE_OFFSET)/wl/sys, otherwise use pre-builts 14ifeq ($(REBUILD_WL_MODULE),1) 15 16 # Get the source files and flags from the specified config file 17 # (Remove config's string quotes before trying to use the file) 18 ifeq ($(CONFIG_WL_CONF),) 19 $(error var_vlist($(VLIST)) var_config_wl_use($(shell env|grep CONFIG_WL_USE))) 20 $(error CONFIG_WL_CONF is undefined) 21 endif 22 23 WLCONFFILE := $(strip $(subst ",,$(CONFIG_WL_CONF))) 24 WLCFGDIR := $(src)/$(SRCBASE_OFFSET)/wl/config 25 26 # define OS flag to pick up wl osl file from wl.mk 27 WLLX=1 28 ifdef CONFIG_PLC 29 PLC=1 30 endif 31 ifdef CONFIG_DPSTA 32 DPSTA=1 33 endif 34 include $(WLCFGDIR)/$(WLCONFFILE) 35 # Disable ROUTER_COMA in ARM router for now. 36ifeq ($(ARCH), arm) 37 ROUTER_COMA=0 38endif 39 include $(WLCFGDIR)/wl.mk 40 41 ifeq ($(WLCLMAPI),1) 42 WLAN_ComponentsInUse := bcmwifi clm ppr olpc 43 include $(src)/$(SRCBASE_OFFSET)/makefiles/WLAN_Common.mk 44 endif 45 46 ifeq ($(WLFILES_SRC),) 47 $(error WLFILES_SRC is undefined in $(WLCFGDIR)/$(WLCONFFILE)) 48 endif 49 50 ifeq ($(WLCLMAPI),1) 51 CLM_TYPE ?= router 52 $(call WLAN_GenClmCompilerRule,$(src)/$(SRCBASE_OFFSET)/wl/clm/src,$(src)/$(SRCBASE_OFFSET)) 53 endif 54 55 # need -I. to pick up wlconf.h in build directory 56 57 ifeq ($(CONFIG_WL_ALL_PASSIVE_ON),y) 58 EXTRA_CFLAGS += -DWL_ALL_PASSIVE_ON -DWL_ALL_PASSIVE 59 else 60 ifeq ($(CONFIG_WL_ALL_PASSIVE_RUNTIME),y) 61 EXTRA_CFLAGS += -DWL_ALL_PASSIVE 62 endif 63 endif 64 ifeq ($(CONFIG_CACHE_L310),y) 65 EXTRA_CFLAGS += -DWL_PL310_WAR 66 endif 67 EXTRA_CFLAGS += -DDMA $(WLFLAGS) -I$(src) -I$(src)/.. -I$(src)/$(SRCBASE_OFFSET)/wl/linux \ 68 -I$(src)/$(SRCBASE_OFFSET)/wl/sys $(WLAN_ComponentIncPath) -Werror 69 70 ifneq ("$(CONFIG_CC_OPTIMIZE_FOR_SIZE)","y") 71 EXTRA_CFLAGS += -finline-limit=2048 72 endif 73 74 # include path for dpsta.h 75 EXTRA_CFLAGS += -I$(src)/$(SRCBASE_OFFSET)/router/dpsta 76 77 # Build the phy source files iff -DPHY_HAL is present. 78 ifneq ($(findstring PHY_HAL,$(WLFLAGS)),) 79 EXTRA_CFLAGS += -I$(src)/$(SRCBASE_OFFSET)/wl/phy 80 else 81 WLFILES_SRC := $(filter-out src/wl/phy/%,$(WLFILES_SRC)) 82 endif 83 84 # The paths in WLFILES_SRC need a bit of adjustment. 85 WL_OBJS := $(sort $(patsubst %.c,%.o,$(addprefix $(SRCBASE_OFFSET)/,$(patsubst src/%,%,$(WLFILES_SRC))))) 86 87 # wl-objs is for linking to wl.o 88 $(TARGET)-objs := $(WLCONF_O) $(WL_OBJS) 89 obj-$(CONFIG_WL) := $(TARGET).o 90 91else # SRCBASE/wl/sys doesn't exist 92 93 # Otherwise, assume prebuilt object module(s) in src/wl/linux directory 94 prebuilt := wl_$(wl_suffix).o 95 $(TARGET)-objs := $(SRCBASE_OFFSET)/wl/linux/$(prebuilt) 96 obj-$(CONFIG_WL) := $(TARGET).o 97 98 ifeq ("$(CONFIG_WL_USBAP)","y") 99 wl_high-objs := $(SRCBASE_OFFSET)/wl/linux/wl_high.o 100 obj-m += wl_high.o 101 endif 102endif 103 104 105clean-files += $(SRCBASE_OFFSET)/wl/sys/*.o $(SRCBASE_OFFSET)/wl/phy/*.o $(SRCBASE_OFFSET)/wl/ppr/src/*.o $(SRCBASE_OFFSET)/wl/sys/.*.*.cmd $(SRCBASE_OFFSET)/wl/phy/.*.*.cmd $(SRCBASE_OFFSET)/bcmcrypto/.*.*.cmd $(SRCBASE_OFFSET)/wl/clm/src/*.o $(SRCBASE_OFFSET)/wl/clm/src/.*.*.cmd $(SRCBASE_OFFSET)/shared/bcmwifi/src/.*.*.cmd $(SRCBASE_OFFSET)/shared/bcmwifi/src/.*.*.cmd $(WLCONF_H) $(WLCONF_O) 106