2 # Generic portion of the Broadcom wl driver makefile
4 # input: O_TARGET, CONFIG_WL_CONF and wl_suffix
7 # $Id: wl_generic.mk,v 1.10 2011-01-21 22:12:09 $
10 REBUILD_WL_MODULE
=$(shell if
[ -d
"$(src)/$(SRCBASE_OFFSET)/wl/sys" -a
"$(REUSE_PREBUILT_WL)" != "1" ]; then echo
1; else echo
0; fi
)
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
14 ifeq ($(REBUILD_WL_MODULE
),1)
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
)
23 WLCONFFILE
:= $(strip $(subst ",,$(CONFIG_WL_CONF)))
24 WLCFGDIR := $(src)/$(SRCBASE_OFFSET)/wl/config
26 # define OS flag to pick up wl osl file from wl.mk
34 include $(WLCFGDIR)/$(WLCONFFILE)
35 # Disable ROUTER_COMA in ARM router for now.
39 include $(WLCFGDIR)/wl.mk
42 WLAN_ComponentsInUse := bcmwifi clm ppr
43 include $(src)/$(SRCBASE_OFFSET)/makefiles/WLAN_Common.mk
46 ifeq ($(WLFILES_SRC),)
47 $(error WLFILES_SRC is undefined in $(WLCFGDIR)/$(WLCONFFILE))
52 $(call WLAN_GenClmCompilerRule,$(src)/$(SRCBASE_OFFSET)/wl/clm/src,$(src)/$(SRCBASE_OFFSET))
55 # need -I. to pick up wlconf.h in build directory
57 ifeq ($(CONFIG_WL_ALL_PASSIVE_ON),y)
58 EXTRA_CFLAGS += -DWL_ALL_PASSIVE_ON -DWL_ALL_PASSIVE
60 ifeq ($(CONFIG_WL_ALL_PASSIVE_RUNTIME),y)
61 EXTRA_CFLAGS += -DWL_ALL_PASSIVE
64 ifeq ($(CONFIG_CACHE_L310),y)
65 EXTRA_CFLAGS += -DWL_PL310_WAR
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
70 ifneq ("$(CONFIG_CC_OPTIMIZE_FOR_SIZE
)","y
")
71 EXTRA_CFLAGS += -finline-limit=2048
74 # include path for dpsta.h
75 EXTRA_CFLAGS += -I$(src)/$(SRCBASE_OFFSET)/router/dpsta
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
81 WLFILES_SRC := $(filter-out src/wl/phy/%,$(WLFILES_SRC))
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)))))
87 # wl-objs is for linking to wl.o
88 $(TARGET)-objs := $(WLCONF_O) $(WL_OBJS)
89 obj-$(CONFIG_WL) := $(TARGET).o
91 else # SRCBASE/wl/sys doesn't exist
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/wl.o
96 obj-$(CONFIG_WL) := $(TARGET).o
98 ifeq ("$(CONFIG_WL_USBAP
)","y
")
99 wl_high-objs := $(SRCBASE_OFFSET)/wl/linux/wl_high.o
107 UPDATESH := $(WLCFGDIR)/diffupdate.sh
109 WLTUNEFILE ?= wltunable_lx_router.h
111 $(obj)/$(WLCONF_O): $(obj)/$(WLCONF_H) FORCE
113 $(obj)/$(WLCONF_H): $(WLCFGDIR)/$(WLTUNEFILE) FORCE
114 [ ! -f $@ ] || chmod +w $@
115 @echo "check and update config file
"
116 @echo $(if $(VLIST),"VLIST
= $(VLIST
)")
117 @echo "CONFIG_WL_CONF
= $(CONFIG_WL_CONF
)"
118 @echo "WLTUNEFILE
= $(WLTUNEFILE
)"
120 $(UPDATESH) wltemp $@
124 clean-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)