blob: 901f2cacf81fb1cf053924ae99f08e6491aeef8f [file] [log] [blame]
#
# GNUmakefile for dhd/exe
# (Basically a copy of wl/exe linux portion.)
#
# Copyright (C) 1999-2010, Broadcom Corporation
#
# Unless you and Broadcom execute a separate written software license
# agreement governing use of this software, this software is licensed to you
# under the terms of the GNU General Public License version 2 (the "GPL"),
# available at http://www.broadcom.com/licenses/GPLv2.php, with the
# following added to such license:
#
# As a special exception, the copyright holders of this software give you
# permission to link this software with independent modules, and to copy and
# distribute the resulting executable under terms of your choice, provided that
# you also meet, for each linked independent module, the terms and conditions of
# the license of that module. An independent module is a module which is not
# derived from this software. The special exception does not apply to any
# modifications of the software.
#
# Notwithstanding the above, under no circumstances may you combine this
# software in any way with any other Broadcom software provided under a license
# other than the GPL, without Broadcom's express prior written consent.
#
# $Id: GNUmakefile,v 1.9.24.4.2.4 2009/03/04 03:53:29 Exp $
SRCBASE = ../..
UNAME = $(shell uname)
#-----------------------------------------------------------
# Windows build
# 1) windows, don't include Makerules due to all: conflict
ifeq ($(findstring CYGWIN,$(UNAME)),CYGWIN)
SRCFILE =
include ../../GNUmakefile.inc
else # UNAME
# 2) not windows, need to include first to pick up TARGETENV dependent vars
include $(SRCBASE)/Makerules
# Always include pktgen commands in the application
CFLAGS += -DSDTEST
CFLAGS += -DBCMSPI
#-----------------------------------------------------------
# Linux build
#
ifneq ($(findstring $(TARGETENV), "linux linuxmips linuxmips_be linuxarm linuxarm_le linuxarm_omap android"),)
# $(TARGETARCH) is set based on TARGETENV in src/Makerules.* files
DHD_OBJS := dhdu.o dhdu_linux.o bcmutils.o miniopt.o
DHD_EXE := dhd
ifneq ($(findstring x86,$(TARGETARCH)),x86)
DHD_EXE := $(DHD_EXE)$(TARGETARCH)
DHD_OBJS := $(DHD_OBJS:%.o=$(TARGETARCH)/%.o)
endif
# extra warnings
CFLAGS += -Wextra $(CUSTOM_FLAGS)
ifeq ($(TARGETENV), linuxarm_omap)
CFLAGS += -DBGBRD
endif
vpath %.c $(SRCBASE)/shared
all: $(DHD_EXE)
$(DHD_EXE): $(DHD_OBJS)
$(CC) $(LDFLAGS) -o $@ $^
$(TARGETARCH)/%.o: %.c
@mkdir -p $(TARGETARCH)
$(CC) -c $(CFLAGS) -o $@ $^
clean:
@rm -rf $(TARGETARCH)
rm -f $(DHD_EXE) *.o
rm -rf build
endif # linux
#-----------------------------------------------------------
# MacOS
#
ifeq ($(TARGETENV), macos)
DHD_EXE := dhd_macos
BUILD := xcodebuild
PROJECT := dhd.xcodeproj
PROJTGT := dhd
all: $(DHD_EXE)
# Executable is located in build/Debug/dhd
dhd_macos:
$(BUILD) -project $(PROJECT) -target $(PROJTGT) -configuration Debug build
clean:
rm -f $(DHD_EXE) *.o
rm -rf build
endif # macos
.PHONY: all clean
endif # UNAME