| # |
| # GNUmakefile for dhd/exe |
| # |
| # Copyright (c) 2000, Broadcom Corp. |
| # $Id: GNUmakefile,v 1.27 2010-09-13 14:20:34 $ |
| |
| WLAN_ComponentsInUse := bcmwifi |
| include ../../makefiles/WLAN_Common.mk |
| SRCBASE := $(WLAN_SrcBaseR) |
| |
| UNAME = $(shell uname) |
| |
| #----------------------------------------------------------------- |
| # Windows build |
| # 1) windows, don't include Makerules due to all: conflict |
| |
| ifeq ($(findstring CYGWIN,$(UNAME)),CYGWIN) |
| |
| include ../../GNUmakefile.inc |
| |
| else # UNAME |
| |
| # 2) not windows, need to include first to pick up TARGETENV dependent vars |
| include $(SRCBASE)/Makerules |
| |
| CFLAGS += $(EXTRA_PLATFORM_CFLAGS) |
| |
| # use nl80211 for driver access (ioctl replacement) |
| ifdef NL80211 |
| CFLAGS += -DNL80211 |
| endif |
| |
| #ifdef BCMWPA2 |
| CFLAGS += -DBCMWPA2 |
| #endif |
| # Always include pktgen commands in the application |
| CFLAGS += -DSDTEST |
| #ifndef OEM_ANDROID |
| CFLAGS += -DBCMSPI |
| #endif |
| |
| #ifdef WLCNT |
| CFLAGS += -DWLCNT |
| #endif |
| |
| |
| CFLAGS += -DWLBTAMP |
| CFLAGS += -DWLPFN -DLINUX -g -I$(SRCBASE)/wl/exe |
| |
| vpath %.c $(SRCBASE)/shared $(SRCBASE)/wl/exe $(WLAN_StdSrcDirsR) $(WLAN_ComponentSrcDirsR) |
| |
| #----------------------------------------------------------------- |
| # Linux build |
| # |
| # This should be one of values recognized in src/Makerules |
| |
| # Change to the new dhd driver trunk build structure as discussed |
| # by the build team |
| ifeq ($(BUILD_TAG),TRUNK) |
| |
| # $(TARGETARCH) is set based on TARGETENV in src/Makerules.* files |
| DHD_OBJS := $(TARGETARCH)/dhdu.o $(TARGETARCH)/dhdu_linux.o $(TARGETARCH)/bcmutils.o $(TARGETARCH)/bcmwifi_channels.o $(TARGETARCH)/wlu_client_shared.o $(TARGETARCH)/wlu_pipe_linux.o $(TARGETARCH)/wlu_pipe.o $(TARGETARCH)/miniopt.o $(TARGETARCH)/bcm_app_utils.o $(TARGETARCH)/ucode_download.o $(TARGETARCH)/wlu_common.o |
| DHD_EXE := $(TARGETARCH)/dhd |
| |
| include netlink.inc |
| |
| all: $(DHD_EXE) |
| |
| clean: |
| rm -fr $(DHD_EXE) $(DHD_OBJS) $(TARGETARCH) |
| |
| $(DHD_EXE): $(DHD_OBJS) |
| $(CC) $(LDFLAGS) -o $@ $^ $(LIBS) |
| |
| $(TARGETARCH)/%.o: %.c |
| @mkdir -p $(TARGETARCH) |
| $(CC) -c $(CFLAGS) -DRWL_SOCKET -DRWL_WIFI -DRWL_DONGLE -o $@ $^ |
| |
| else # BUILD_TAG |
| |
| # Preserve the old build structure for other components that still haven't not |
| # changed to the new build structure, once everyone moved to the new structure |
| # , we can remove the whole else BUILD_TAG code |
| |
| ifneq ($(findstring $(TARGETENV), "linux linuxmips linuxmips_be linuxarm linuxarm_le android android_ndk_r6b"),) |
| # $(TARGETARCH) is set based on TARGETENV in src/Makerules.* files |
| DHD_OBJS := dhdu.o dhdu_linux.o bcmutils.o bcmwifi_channels.o wlu_client_shared.o wlu_pipe_linux.o wlu_pipe.o miniopt.o bcm_app_utils.o ucode_download.o wlu_common.o |
| DHD_EXE := dhd |
| DHD_OBJS := $(DHD_OBJS:%.o=%.o) |
| |
| include netlink.inc |
| |
| ifeq ($(findstring $(TARGETARCH), "x86 x86_mmx"),) |
| DHD_EXE := $(DHD_EXE)$(TARGETARCH) |
| DHD_OBJS := $(DHD_OBJS:%.o=$(TARGETARCH)/%.o) |
| endif |
| |
| all: $(DHD_EXE) |
| |
| clean: |
| rm -fr $(DHD_EXE) $(DHD_OBJS) $(TARGETARCH) |
| |
| $(DHD_EXE): $(DHD_OBJS) |
| $(CC) $(LDFLAGS) -o $@ $^ $(LIBS) |
| |
| # net_priv target is for building the dhd with NET_ADMIN privilege (i.e. to avoid running as root) |
| # note: The 'setcap' command is availble from the libcap2-bin package |
| # note: linux kernel < 2.6.33 doesn't support Security File Capabilities by default |
| net_priv: $(DHD_EXE) |
| sudo setcap CAP_NET_ADMIN=eip $^ |
| |
| %.o: %.c |
| $(CC) -c $(CFLAGS) -DRWL_SOCKET -DRWL_WIFI -DRWL_DONGLE -o $@ $^ |
| |
| |
| ifeq ($(findstring $(TARGETARCH), "x86 x86_mmx"),) |
| $(TARGETARCH)/%.o: %.c |
| @mkdir -p $(TARGETARCH) |
| $(CC) -c $(CFLAGS) -DRWL_SOCKET -DRWL_WIFI -DRWL_DONGLE -o $@ $^ |
| endif |
| |
| endif # TARGETENV linux |
| |
| endif # BUILD_TAG |
| |
| .PHONY: all clean net_priv |
| |
| endif # UNAME |