allow coexistance of N build and AC build.
[tomato.git] / release / src-rt-6.x / linux / linux-2.6 / drivers / net / wl / wl_generic.mk
blob8e590a7d76e941d836d21233d4c7224985c14e8f
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 include $(WLCFGDIR)/$(WLCONFFILE)
36 include $(WLCFGDIR)/wl.mk
38 ifeq ($(WLCLMAPI),1)
39 WLAN_ComponentsInUse := bcmwifi clm
40 include $(src)/$(SRCBASE)/makefiles/WLAN_Common.mk
41 endif
43 ifeq ($(WLFILES_SRC),)
44 $(error WLFILES_SRC is undefined in $(WLCFGDIR)/$(WLCONFFILE))
45 endif
47 ifeq ($(WLCLMAPI),1)
48 $(call WLAN_GenClmCompilerRule,$(src)/$(SRCBASE)/wl/clm/src,$(src)/$(SRCBASE),--ccrev all)
49 endif
51 # need -I. to pick up wlconf.h in build directory
53 ifeq ($(CONFIG_WL_ALL_PASSIVE_ON),y)
54 EXTRA_CFLAGS += -DWL_ALL_PASSIVE_ON -DWL_ALL_PASSIVE
55 else
56 ifeq ($(CONFIG_WL_ALL_PASSIVE_RUNTIME),y)
57 EXTRA_CFLAGS += -DWL_ALL_PASSIVE
58 endif
59 endif
60 EXTRA_CFLAGS += -DDMA $(WLFLAGS) -I$(src) -I$(src)/.. -I$(src)/$(SRCBASE)/wl/linux \
61 -I$(src)/$(SRCBASE)/wl/sys $(WLAN_ComponentIncPath) -Werror
63 ifneq ("$(CONFIG_CC_OPTIMIZE_FOR_SIZE)","y")
64 EXTRA_CFLAGS += -finline-limit=2048
65 endif
67 # include path for dpsta.h
68 EXTRA_CFLAGS += -I$(src)/$(SRCBASE)/router/dpsta
70 # Build the phy source files iff -DPHY_HAL is present.
71 ifneq ($(findstring PHY_HAL,$(WLFLAGS)),)
72 EXTRA_CFLAGS += -I$(src)/$(SRCBASE)/wl/phy
73 else
74 WLFILES_SRC := $(filter-out src/wl/phy/%,$(WLFILES_SRC))
75 endif
77 # The paths in WLFILES_SRC need a bit of adjustment.
78 WL_OBJS := $(sort $(patsubst %.c,%.o,$(addprefix $(SRCBASE)/,$(patsubst src/%,%,$(WLFILES_SRC)))))
80 # wl-objs is for linking to wl.o
81 $(TARGET)-objs := $(WLCONF_O) $(WL_OBJS)
82 obj-$(CONFIG_WL) := $(TARGET).o
84 else # SRCBASE/wl/sys doesn't exist
86 # Otherwise, assume prebuilt object module(s) in src/wl/linux directory
87 prebuilt := wl_$(wl_suffix).o
88 $(TARGET)-objs := $(SRCBASE)/wl/linux/$(prebuilt)
89 obj-$(CONFIG_WL) := $(TARGET).o
91 ifeq ("$(CONFIG_WL_USBAP)","y")
92 wl_high-objs := $(SRCBASE)/wl/linux/wl_high.o
93 obj-m += wl_high.o
94 endif
95 endif
98 #WL_CONF_H: wlconf.h
100 UPDATESH := $(WLCFGDIR)/diffupdate.sh
102 WLTUNEFILE ?= wltunable_lx_router.h
104 $(obj)/$(WLCONF_O): $(obj)/$(WLCONF_H) FORCE
106 $(obj)/$(WLCONF_H): $(WLCFGDIR)/$(WLTUNEFILE) FORCE
107 [ ! -f $@ ] || chmod +w $@
108 @echo "check and update config file"
109 @echo $(if $(VLIST),"VLIST = $(VLIST)")
110 @echo "CONFIG_WL_CONF = $(CONFIG_WL_CONF)"
111 @echo "WLTUNEFILE = $(WLTUNEFILE)"
112 cp $< wltemp
113 $(UPDATESH) wltemp $@
115 FORCE:
117 clean-files += $(SRCBASE)/wl/sys/*.o $(SRCBASE)/wl/phy/*.o $(SRCBASE)/wl/sys/.*.*.cmd $(SRCBASE)/wl/phy/.*.*.cmd $(WLCONF_H) $(WLCONF_O)