1#
2# Miscellaneous utilities Makefile
3#
4# Copyright (C) 2009, Broadcom Corporation
5# All Rights Reserved.
6# 
7# THIS SOFTWARE IS OFFERED "AS IS", AND BROADCOM GRANTS NO WARRANTIES OF ANY
8# KIND, EXPRESS OR IMPLIED, BY STATUTE, COMMUNICATION OR OTHERWISE. BROADCOM
9# SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS
10# FOR A SPECIFIC PURPOSE OR NONINFRINGEMENT CONCERNING THIS SOFTWARE.
11#
12# $Id: Makefile 361287 2012-10-08 00:28:04Z $
13#
14
15include ../common.mak
16
17WLU_OBJS := wlu.o wlu_cmd.o wlu_iov.o wlu_linux.o bcmutils.o bcmwifi_channels.o wlu_client_shared.o wlu_pipe.o wlu_pipe_linux.o miniopt.o bcm_app_utils.o
18ifeq ($(RTCONFIG_BCMWL6),y)
19WLU_OBJS += wlu_rates_matrix.o wlc_ppr.o
20endif
21ifneq ($(wildcard $(SRCBASE)/wl/exe/wlu_common.c),)
22WLU_OBJS += wlu_common.o
23endif
24ifeq ($(RTCONFIG_BCMWL6),y)
25WLU_OBJS += wlc_clm_data.o
26endif
27
28ifeq ($(RWL),1)
29WL_OBJS := $(WLU_OBJS)
30SERVER_OBJS := wlu_server_linux.o wlu_pipe_linux.o wlu_pipe.o wlu_server_shared.o shellproc_linux.o
31APUT_OBJS := wfa_apcmdproc.o wfa_apcmdlib.o wfa_apcs.o wfa_apcmdresp.o wfa_apcmdvalid.o wfa_apcmdtbls.o wfa_apcmdcvt.o wfa_val2str.o wfa_apdiy.o wfa_sock.o wfa_aput_all.o
32
33SOCKET_OBJS := $(SERVER_OBJS:%.o=socket/%.o)
34WIFI_OBJS := $(SERVER_OBJS:%.o=wifi/%.o)
35WL_OBJS := $(WL_OBJS:%.o=wl_obj/%.o) 
36WFA_APUT_OBJS := $(APUT_OBJS:%.o=aput/%.o)
37
38SERVER_SOCKET  := wl_server_socket
39SERVER_WIFI  := wl_server_wifi
40WFA_APUT_ALL := wfa_aput_all
41WL_EXE  := wl
42endif
43
44CFLAGS += -s -I$(SRCBASE)/include
45ifneq ($(RTCONFIG_BCMWL6),y)
46CFLAGS += -I$(TOP)/shared -I$(TOP)/nvram
47endif
48CFLAGS += $(if $(WLAN_ComponentIncPath),$(WLAN_ComponentIncPath),$(addprefix -I,$(wildcard $(SRCBASE)/shared/bcmwifi/src)))
49#ifeq ($(CONFIG_RTR_OPTIMIZE_SIZE),y)
50ifeq ($(SFP),y)
51CFLAGS  += -Os
52CFLAGS  += -ffunction-sections -fdata-sections
53LDFLAGS += -ffunction-sections -fdata-sections -Wl,--gc-sections
54else
55CFLAGS  += -O2
56endif
57CFLAGS += -DBCMINTERNAL -DBCMDBG
58ifneq ($(RTCONFIG_BCMWL6),y)
59LDFLAGS += -L$(TOP)/nvram -L$(INSTALLDIR)/nvram/usr/lib -lnvram
60LDFLAGS += -L$(TOP)/shared -L$(INSTALLDIR)/shared/usr/lib -lshared
61endif
62
63#UTILS := mii-tool robocfg ttcp
64#ifneq ($(CONFIG_LINUX26),y)
65#CFLAGS += -U CONFIG_NVRAM_SIZE
66#endif
67
68CFLAGS += -DLINUX -I$(SRCBASE)/wl/exe
69ifeq ($(RTCONFIG_BCMWL6), y)
70CFLAGS += -I$(SRCBASE)/wl/olpc/include -I$(SRCBASE)/wl/ppr/include
71endif
72
73# Use newer 11ac ratespec for wl command line
74CFLAGS += -DD11AC_IOTYPES -DPPR_API
75
76#ifdef WLCNT
77CFLAGS += -DWLCNT
78#endif
79
80ifeq ($(CONFIG_TRAFFIC_MGMT),y)
81CFLAGS += -DTRAFFIC_MGMT
82endif
83
84vpath %.c $(SRCBASE)/tools/misc
85ifeq ($(RTCONFIG_BCMWL6),y)
86vpath %.c $(SRCBASE)/shared/bcmwifi/src $(SRCBASE)/wl/ppr/src
87endif
88
89ifneq ($(wildcard $(SRCBASE)/et/linux/et.c),)
90UTILS += et
91vpath %.c $(SRCBASE)/et/linux
92endif
93
94ifneq ($(wildcard $(SRCBASE)/wl/exe),)
95CFLAGS += -I$(SRCBASE)/wl/exe
96UTILS += wl
97vpath %.c $(SRCBASE)/wl/exe $(SRCBASE)/wl/clm/src $(SRCBASE)/shared
98endif
99
100ifeq ($(RWL),1)
101ifeq ($(BUILD_WFA_APUT),1)
102ifneq ($(wildcard $(SRCBASE)/router/aput),)
103CFLAGS += -I$(SRCBASE)/router/aput
104UTILS += $(WFA_APUT_ALL)
105vpath %.c $(SRCBASE)/router/aput
106endif
107endif
108
109ifneq ($(wildcard $(SRCBASE)/wl/exe),)
110UTILS += $(SERVER_SOCKET)
111vpath %.c $(SRCBASE)/wl/exe $(SRCBASE)/shared
112endif
113
114ifneq ($(wildcard $(SRCBASE)/wl/exe),)
115UTILS += $(SERVER_WIFI)
116vpath %.c $(SRCBASE)/wl/exe $(SRCBASE)/shared
117endif
118endif
119
120ifeq ($(RTCONFIG_5301X),y)
121CFLAGS += -DBCM5301X
122endif
123UTILS += robocfg
124
125all: $(UTILS)
126
127ifeq ($(wildcard $(SRCBASE)/wl/exe/*.c),)
128wl:
129	-cp -f $(SRCBASE)/wl/exe/prebuilt/wl wl
130else
131wl: $(WLU_OBJS)
132	$(CC) $^ -o $@ $(LDFLAGS)
133endif
134
135ifeq ($(RWL),1)
136$(WFA_APUT_ALL): $(WFA_APUT_OBJS)
137	$(CC) $(LDFLAGS) -o $@ $^ 
138
139aput/%.o: %.c
140	@mkdir -p aput
141	$(CC) -c $(CFLAGS) -o $@ $^
142$(SERVER_SOCKET): $(SOCKET_OBJS)
143	$(CC) $(LDFLAGS) -o $@ $^ 
144
145socket/%.o: %.c
146	@mkdir -p socket
147	$(CC) -c $(CFLAGS) -DRWL_SOCKET -o $@ $^
148
149$(SERVER_WIFI): $(WIFI_OBJS)
150	$(CC) $(LDFLAGS) -o $@ $^
151
152wifi/%.o: %.c
153	@mkdir -p wifi
154	$(CC) -c $(CFLAGS) -DRWL_WIFI -o $@ $^
155endif
156
157mii-tool: mii-tool.c mii.h
158
159ifeq ($(wildcard $(SRCBASE)/router/utils/robocfg.c),)
160robocfg:
161	-cp -f $(SRCBASE)/wl/exe/prebuilt/robocfg robocfg
162else
163robocfg: robocfg.c etc53xx.h
164endif
165
166ttcp: epi_ttcp.c
167	$(CC) $(CFLAGS) -o $@ $^
168
169clean:
170	rm -f *.o *~ $(UTILS)
171	rm -rf socket wifi epi_ttcp
172
173install: all
174	install -d $(INSTALLDIR)/usr/sbin
175	install $(UTILS) $(INSTALLDIR)/usr/sbin
176	$(STRIP) $(foreach file,$(UTILS),$(INSTALLDIR)/usr/sbin/$(file))
177