1include ../common.mak
2include $(SRCBASE)/.config
3
4CFLAGS += -Os -Wall $(EXTRACFLAGS) -fPIC
5CFLAGS += -I. -I$(TOP)/shared -I$(SRCBASE)/include
6ifneq ($(RTCONFIG_BCMARM),y)
7CFLAGS += -I$(TOP)/kernel_header/include
8else
9CFLAGS += -I$(LINUXDIR)/include
10CFLAGS += -D__EXPORTED_HEADERS__
11endif
12
13ifeq ($(RTCONFIG_SHP),y)
14CFLAGS += -DSHP
15endif
16
17ifeq ($(RTCONFIG_RALINK),y)
18CFLAGS += -I./sysdeps/ralink -I$(TOP)/wireless_tools/ -DWE_NOLIBM 
19endif
20
21ifeq ($(RTCONFIG_QCA),y)
22CFLAGS += -I./sysdeps/qca -I$(TOP)/wireless_tools/ -DWE_NOLIBM
23endif
24
25ifeq ($(RTCONFIG_BCMWL6),y)
26CFLAGS += -I$(SRCBASE)/shared/bcmwifi/include
27CFLAGS += -I$(SRCBASE)/common/include
28ifeq ($(RTCONFIG_BCM7)$(RTCONFIG_HSPOT),y)
29CFLAGS += ${WLAN_StdIncPathA}
30endif
31else
32CFLAGS += -I$(SRCBASE)/shared
33endif
34
35ifeq ($(RTCONFIG_QTN),y)
36CFLAGS += -I$(TOP)/libqcsapi_client -I$(TOP)/httpd -I./sysdeps/qtn
37LDFLAGS += -L$(TOP)/libqcsapi_client -lqcsapi_client
38endif
39
40ifeq ($(RTCONFIG_BCMSMP),y)
41CFLAGS += -DSMP
42endif
43
44ifeq ($(RTCONFIG_5301X),y)
45CFLAGS += -DBCM5301X
46endif
47
48include $(SRCBASE)/.config
49
50ifeq ($(RTCONFIG_4352_5G),y)
51CFLAGS += -DBCM4352
52endif
53
54ifeq (2_6_36,$(LINUX_VERSION))
55CFLAGS += -DAUTOFW_PORT_DEPRECATED
56endif
57
58CFLAGS += -DTRAFFIC_MGMT
59
60ifeq ($(RTCONFIG_BCM7)$(RTCONFIG_HSPOT),y)
61CFLAGS += -DD11AC_IOTYPES
62endif
63
64OBJS = shutils.o linux_timer.o defaults.o model.o rtstate.o boardapi.o
65OBJS += misc.o version.o files.o strings.o process.o 
66OBJS += bin_sem_asus.o semaphore.o pids.o notify_rc.o discover.o
67OBJS += base64.o
68OBJS += nvparse.o
69ifeq ($(RTCONFIG_BCM7),y)
70OBJS += et_linux.o bcmwifi_channels.o
71else ifeq ($(RTCONFIG_HSPOT),y)
72OBJS += bcmwifi_channels.o
73endif
74ifeq ($(RTCONFIG_BCM_7114),y)
75OBJS += confmtd_utils.o
76ifeq ($(RTCONFIG_GMAC3),y)
77OBJS += et_linux.o
78endif
79endif
80
81ifeq ($(RTCONFIG_RALINK),y)
82OBJS += $(TOP)/wireless_tools/iwlib.o
83OBJS += flash_mtd.o api-ralink.o
84ifeq ($(RTCONFIG_RALINK_RT3052),y)
85OBJS += ra3052.o
86endif
87ifeq ($(RTN14U)$(RTAC52U)$(RTAC51U)$(RTN11P)$(RTN300)$(RTN54U)$(RTAC1200HP)$(RTN56UB1)$(RTN56UB2)$(RTAC54U),y)
88CFLAGS += -DRA_ESW
89OBJS += mt7620.o
90else
91OBJS += rtkswitch.o
92endif
93
94else ifeq ($(RTCONFIG_QCA),y)
95# Qualcomm Atheros
96OBJS += $(TOP)/wireless_tools/iwlib.o
97OBJS += flash_mtd.o api-qca.o qca8337.o
98else
99# Broadcom
100OBJS += wl.o wl_linux.o
101OBJS += broadcom.o api-broadcom.o
102ifeq ($(RTCONFIG_DSL_TCLINUX),y)
103OBJS += api-tclinux.o
104endif
105ifeq ($(RTCONFIG_EXT_RTL8365MB),y)
106CFLAGS += -I$(LINUXDIR)/drivers/char/rtl8365mb
107OBJS += rtl_8365mb.o
108endif
109ifeq ($(RTCONFIG_EXT_RTL8370MB),y)
110CFLAGS += -I$(LINUXDIR)/drivers/char/rtl8365mb
111OBJS += rtl_8365mb.o
112endif
113endif
114
115ifeq ($(RTCONFIG_USB),y)
116OBJS += usb.o
117OBJS += $(TOP)/busybox/util-linux/volume_id/ext.o
118OBJS += $(TOP)/busybox/util-linux/volume_id/util2.o
119OBJS += $(TOP)/busybox/util-linux/volume_id/fat.o
120OBJS += $(TOP)/busybox/util-linux/volume_id/ntfs.o
121OBJS += $(TOP)/busybox/util-linux/volume_id/linux_swap.o
122OBJS += $(if $(HFS),$(TOP)/busybox/util-linux/volume_id/hfs.o)
123ifeq ($(RTCONFIG_USB_MODEM),y)
124OBJS += at_cmd.o
125endif
126endif
127
128ifeq ($(RTCONFIG_BCMARM),y)
129OBJS += ifaddrs.o
130endif
131
132ifeq ($(RTCONFIG_QTN),y)
133OBJS += web-qtn.o
134OBJS += rpc_raw.o
135OBJS += rpc_raw_clnt.o
136#OBJS += find_host_addr.o
137endif
138
139ifeq ($(RTCONFIG_BLINK_LED),y)
140CFLAGS	+= -I$(TOP)/bled
141OBJS	+= bled.o
142endif
143
144ifeq ($(RTCONFIG_QCA_PLC_UTILS),y)
145OBJS	+= plc_utils.o
146endif
147
148ifeq ($(RTCONFIG_TCODE),y)
149OBJS    += tcode.o
150endif
151
152ifeq ($(RTCONFIG_BCM5301X_TRAFFIC_MONITOR),y)
153OBJS    += private.o
154endif
155
156vpath %.c sysdeps $(SRCBASE)/shared/ $(WLAN_ComponentSrcDirs)
157ifeq ($(RTCONFIG_RALINK),y)
158vpath %.c sysdeps/ralink
159else ifeq ($(RTCONFIG_QCA),y)
160vpath %.c sysdeps/qca
161else ifeq ($(RTCONFIG_QTN),y)
162vpath %.c sysdeps sysdeps/broadcom sysdeps/qtn $(SRCBASE)/shared/ $(SRCBASE)/shared/bcmwifi/src $(WLAN_StdSrcDirsA) $(WLAN_ComponentSrcDirs) $(TOP)/libqcsapi_client/qcsapi_rpc_common/client  $(TOP)/libqcsapi_client/qcsapi_rpc_common/common
163else
164vpath %.c sysdeps/broadcom  $(SRCBASE)/shared/bcmwifi/src
165endif
166
167all: libshared.so libshared.a
168
169ifeq ($(CONFIG_BCMWL5),y)
170OBJS += wlif_utils.o UdpLib.o bcmutils.o
171OBJS += bcmwifi_channels.o
172endif
173
174libshared.so: $(OBJS)
175	@echo " [shared] LD $@"
176	@$(LD) $(LDFLAGS) -shared -o $@ $^
177
178	$(SIZECHECK)
179	$(CPTMP)
180
181libshared.a: $(OBJS)
182	@echo " [shared] AR $@"
183	@rm -f $@
184	@$(AR) cruv $@ $^
185
186
187install: all
188	@echo " [shared] Installing as $(INSTALLDIR)/usr/lib/libshared.so"
189	@install -d $(INSTALLDIR)/usr/lib
190	@install -m 755 libshared.so $(INSTALLDIR)/usr/lib
191	@$(STRIP) $(INSTALLDIR)/usr/lib/libshared.so
192
193
194clean:
195	rm -f *.o *.so *.a .*.depend sysdeps/*.o sysdeps/broadcom/*.o sysdeps/ralink/*.o sysdeps/qtn/*.o
196
197ifeq ($(RTCONFIG_TCODE),y)
198ifneq ($(wildcard ./prebuild/tcode.o),)
199tcode.o:
200	@-cp -f ./prebuild/tcode.o .
201endif
202endif
203
204ifeq ($(RTCONFIG_BCM5301X_TRAFFIC_MONITOR),y)
205ifneq ($(wildcard ./prebuild/private.o),)
206private.o:
207	@-cp -f ./prebuild/private.o .
208endif
209endif
210
211%.o: %.c .%.depend
212	@echo " [shared] CC $@"
213	@$(CC) $(CFLAGS) -o $@ -c $<
214
215.depend: $(OBJS:%.o=%.c)
216	@$(CC) $(CFLAGS) -M $^ > .depend
217
218.%.depend: %.c
219	@$(CC) $(CFLAGS) -M $< > $@
220
221#-include $(OBJS:%.o=.%.depend)
222
223