K2.6 patches and update.
[tomato.git] / release / src-rt / linux / linux-2.6 / drivers / net / wl / wl_generic.mk
blob7bffd34158edcf408b51ee3d82846bc6b233680e
2 # Generic portion of the Broadcom wl driver makefile
4 # input: O_TARGET, CONFIG_WL_CONF and wl_suffix
5 # output: obj-m, obj-y
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)
11 REBUILD_WL_MODULE=0
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)
22 endif
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
28 WLLX=1
29 ifdef CONFIG_PLC
30 PLC=1
31 endif
32 ifdef CONFIG_DPSTA
33 DPSTA=1
34 endif
35 PKTC=1
36 include $(WLCFGDIR)/$(WLCONFFILE)
37 include $(WLCFGDIR)/wl.mk
39 ifeq ($(WLCLMAPI),1)
40 WLAN_ComponentsInUse := bcmwifi clm
41 include $(src)/$(SRCBASE)/makefiles/WLAN_Common.mk
42 endif
44 ifeq ($(WLFILES_SRC),)
45 $(error WLFILES_SRC is undefined in $(WLCFGDIR)/$(WLCONFFILE))
46 endif
48 ifeq ($(WLCLMAPI),1)
49 $(call WLAN_GenClmCompilerRule,$(src)/$(SRCBASE)/wl/clm/src,$(src)/$(SRCBASE),--ccrev all)
50 clean-files += $(SRCBASE)/wl/clm/src/wlc_clm_data.c
51 endif
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
57 else
58 ifeq ($(CONFIG_WL_ALL_PASSIVE_RUNTIME),y)
59 EXTRA_CFLAGS += -DWL_ALL_PASSIVE
60 endif
61 endif
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
67 endif
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
75 else
76 WLFILES_SRC := $(filter-out src/wl/phy/%,$(WLFILES_SRC))
77 endif
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
95 obj-m += wl_high.o
96 endif
97 endif
100 #WL_CONF_H: wlconf.h
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)"
114 cp $< wltemp
115 $(UPDATESH) wltemp $@
117 FORCE:
119 clean-files += $(SRCBASE)/wl/sys/*.o $(SRCBASE)/wl/phy/*.o $(SRCBASE)/wl/sys/.*.*.cmd $(SRCBASE)/wl/phy/.*.*.cmd $(WLCONF_H) $(WLCONF_O)