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)/wl/sys" -a "$(REUSE_PREBUILT_WL)" != "1" ]; then echo 1; else echo 0; fi)
13 # If source directory (src/wl/sys) exists and REUSE_PREBUILT_WL is undefined,
14 # then build inside $(SRCBASE)/wl/sys, otherwise use pre-builts
15 ifeq ($(REBUILD_WL_MODULE
),1)
17 # Get the source files and flags from the specified config file
18 # (Remove config's string quotes before trying to use the file)
19 ifeq ($(CONFIG_WL_CONF
),)
20 $(error var_vlist
($(VLIST
)) var_config_wl_use
($(shell env|grep CONFIG_WL_USE
)))
21 $(error CONFIG_WL_CONF is undefined
)
24 WLCONFFILE
:= $(strip $(subst ",,$(CONFIG_WL_CONF)))
25 WLCFGDIR := $(src)/$(SRCBASE)/wl/config
27 # define OS flag to pick up wl osl file from wl.mk
36 include $(WLCFGDIR)/$(WLCONFFILE)
37 include $(WLCFGDIR)/wl.mk
40 WLAN_ComponentsInUse := bcmwifi clm
41 include $(src)/$(SRCBASE)/makefiles/WLAN_Common.mk
44 ifeq ($(WLFILES_SRC),)
45 $(error WLFILES_SRC is undefined in $(WLCFGDIR)/$(WLCONFFILE))
49 $(call WLAN_GenClmCompilerRule,$(src)/$(SRCBASE)/wl/clm/src,$(src)/$(SRCBASE),--ccrev all)
50 clean-files += $(SRCBASE)/wl/clm/src/wlc_clm_data.c
53 # need -I. to pick up wlconf.h in build directory
55 ifeq ($(CONFIG_WL_ALL_PASSIVE_ON),y)
56 EXTRA_CFLAGS += -DWL_ALL_PASSIVE_ON -DWL_ALL_PASSIVE
58 ifeq ($(CONFIG_WL_ALL_PASSIVE_RUNTIME),y)
59 EXTRA_CFLAGS += -DWL_ALL_PASSIVE
62 EXTRA_CFLAGS += -DDMA $(WLFLAGS) -I$(src) -I$(src)/.. -I$(src)/$(SRCBASE)/wl/linux \
63 -I$(src)/$(SRCBASE)/wl/sys $(WLAN_ComponentIncPath) -Werror
65 ifneq ("$(CONFIG_CC_OPTIMIZE_FOR_SIZE
)","y
")
66 EXTRA_CFLAGS += -finline-limit=2048
69 # include path for dpsta.h
70 EXTRA_CFLAGS += -I$(src)/$(SRCBASE)/router/dpsta
72 # Build the phy source files iff -DPHY_HAL is present.
73 ifneq ($(findstring PHY_HAL,$(WLFLAGS)),)
74 EXTRA_CFLAGS += -I$(src)/$(SRCBASE)/wl/phy
76 WLFILES_SRC := $(filter-out src/wl/phy/%,$(WLFILES_SRC))
79 # The paths in WLFILES_SRC need a bit of adjustment.
80 WL_OBJS := $(sort $(patsubst %.c,%.o,$(addprefix $(SRCBASE)/,$(patsubst src/%,%,$(WLFILES_SRC)))))
82 # wl-objs is for linking to wl.o
83 $(TARGET)-objs := $(WLCONF_O) $(WL_OBJS)
84 obj-$(CONFIG_WL) := $(TARGET).o
86 else # SRCBASE/wl/sys doesn't exist
88 # Otherwise, assume prebuilt object module(s) in src/wl/linux directory
89 prebuilt := wl_$(wl_suffix).o
90 $(TARGET)-objs := $(SRCBASE)/wl/linux/$(prebuilt)
91 obj-$(CONFIG_WL) := $(TARGET).o
93 ifeq ("$(CONFIG_WL_USBAP
)","y
")
94 wl_high-objs := $(SRCBASE)/wl/linux/wl_high.o
102 UPDATESH := $(WLCFGDIR)/diffupdate.sh
104 WLTUNEFILE ?= wltunable_lx_router.h
106 $(obj)/$(WLCONF_O): $(obj)/$(WLCONF_H) FORCE
108 $(obj)/$(WLCONF_H): $(WLCFGDIR)/$(WLTUNEFILE) FORCE
109 [ ! -f $@ ] || chmod +w $@
110 @echo "check and update config file
"
111 @echo $(if $(VLIST),"VLIST
= $(VLIST
)")
112 @echo "CONFIG_WL_CONF
= $(CONFIG_WL_CONF
)"
113 @echo "WLTUNEFILE
= $(WLTUNEFILE
)"
115 $(UPDATESH) wltemp $@
119 clean-files += $(SRCBASE)/wl/sys/*.o $(SRCBASE)/wl/phy/*.o $(SRCBASE)/wl/sys/.*.*.cmd $(SRCBASE)/wl/phy/.*.*.cmd $(WLCONF_H) $(WLCONF_O)