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 382640 2013-02-03 04:35:49Z $
13#
14
15include $(SRCBASE)/router/.config
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 wlu_rates_matrix.o wlc_ppr.o
18ifneq ($(wildcard $(SRCBASE)/wl/exe/wlu_common.c),)
19WLU_OBJS += wlu_common.o
20endif
21WLU_OBJS += wlc_clm_data.o
22
23ifeq ($(RWL),1)
24WL_OBJS := $(WLU_OBJS)
25SERVER_OBJS := wlu_server_linux.o wlu_pipe_linux.o wlu_pipe.o wlu_server_shared.o shellproc_linux.o
26APUT_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
27
28SOCKET_OBJS := $(SERVER_OBJS:%.o=socket/%.o)
29WIFI_OBJS := $(SERVER_OBJS:%.o=wifi/%.o)
30WL_OBJS := $(WL_OBJS:%.o=wl_obj/%.o) 
31WFA_APUT_OBJS := $(APUT_OBJS:%.o=aput/%.o)
32
33SERVER_SOCKET  := wl_server_socket
34SERVER_WIFI  := wl_server_wifi
35WFA_APUT_ALL := wfa_aput_all
36WL_EXE  := wl
37endif
38
39UTILS := epi_ttcp
40CFLAGS += -s -I$(SRCBASE)/include -I$(SRCBASE)/common/include
41CFLAGS += $(if $(WLAN_ComponentIncPath),$(WLAN_ComponentIncPath),$(addprefix -I,$(wildcard $(SRCBASE)/shared/bcmwifi/include)))
42ifeq ($(CONFIG_RTR_OPTIMIZE_SIZE),y)
43CFLAGS  += -Os
44else
45CFLAGS  += -O2
46endif
47CFLAGS += -DBCMINTERNAL -DBCMDBG
48
49CFLAGS += -DLINUX -I$(SRCBASE)/wl/exe
50
51# Use newer 11ac ratespec for wl command line
52CFLAGS += -DD11AC_IOTYPES -DPPR_API
53
54#ifdef WLCNT
55CFLAGS += -DWLCNT
56#endif
57
58ifeq ($(CONFIG_TRAFFIC_MGMT),y)
59CFLAGS += -DTRAFFIC_MGMT
60endif
61
62vpath %.c $(SRCBASE)/tools/misc $(WLAN_ComponentSrcDirs)
63
64ifneq ($(wildcard $(SRCBASE)/et/linux/et.c),)
65UTILS += et
66vpath %.c $(SRCBASE)/et/linux
67endif
68
69ifneq ($(wildcard $(SRCBASE)/wl/exe),)
70CFLAGS += -I$(SRCBASE)/wl/exe
71UTILS += wl
72vpath %.c $(SRCBASE)/wl/exe $(SRCBASE)/wl/clm/src $(SRCBASE)/shared
73endif
74
75ifeq ($(RWL),1)
76ifeq ($(BUILD_WFA_APUT),1)
77ifneq ($(wildcard $(SRCBASE)/router/aput),)
78CFLAGS += -I$(SRCBASE)/router/aput
79UTILS += $(WFA_APUT_ALL)
80vpath %.c $(SRCBASE)/router/aput
81endif
82endif
83
84ifneq ($(wildcard $(SRCBASE)/wl/exe),)
85UTILS += $(SERVER_SOCKET)
86vpath %.c $(SRCBASE)/wl/exe $(SRCBASE)/shared
87endif
88
89ifneq ($(wildcard $(SRCBASE)/wl/exe),)
90UTILS += $(SERVER_WIFI)
91vpath %.c $(SRCBASE)/wl/exe $(SRCBASE)/shared
92endif
93endif
94
95ifeq ($(RTCONFIG_5301X),y)
96CFLAGS += -DBCM5301X
97endif
98UTILS += robocfg
99
100all: $(UTILS)
101
102ifeq ($(wildcard $(SRCBASE)/wl/exe/*.c),)
103wl:
104	-cp -f $(SRCBASE)/wl/exe/prebuilt/wl wl
105else
106wl: $(WLU_OBJS)
107	$(CC) $^ -o $@ $(LDFLAGS)
108endif
109
110ifeq ($(RWL),1)
111$(WFA_APUT_ALL): $(WFA_APUT_OBJS)
112	$(CC) $(LDFLAGS) -o $@ $^ 
113
114aput/%.o: %.c
115	@mkdir -p aput
116	$(CC) -c $(CFLAGS) -o $@ $^
117$(SERVER_SOCKET): $(SOCKET_OBJS)
118	$(CC) $(LDFLAGS) -o $@ $^ 
119
120socket/%.o: %.c
121	@mkdir -p socket
122	$(CC) -c $(CFLAGS) -DRWL_SOCKET -o $@ $^
123
124$(SERVER_WIFI): $(WIFI_OBJS)
125	$(CC) $(LDFLAGS) -o $@ $^
126
127wifi/%.o: %.c
128	@mkdir -p wifi
129	$(CC) -c $(CFLAGS) -DRWL_WIFI -o $@ $^
130endif
131
132ifeq ($(wildcard $(SRCBASE)/router/utils/robocfg.c),)
133robocfg:
134	-cp -f $(SRCBASE)/wl/exe/prebuilt/robocfg robocfg
135else
136robocfg: robocfg.c etc53xx.h
137endif
138
139clean:
140	rm -f *.o *~ $(UTILS)
141	rm -rf socket wifi
142
143install: all
144	install -d $(INSTALLDIR)/usr/sbin
145	install $(UTILS) $(INSTALLDIR)/usr/sbin
146	$(STRIP) $(foreach file,$(UTILS),$(INSTALLDIR)/usr/sbin/$(file))
147