## ## ## Make Flags ## ## NO_ARCH_STRCMP ?= y NO_USERMODE_WORKAROUND ?= n MEM_ALLOC_TRACE ?= n STACK_PROFILING_ON ?= n ## ## ## File lists and locations ## ## # # DK_ROOT must be set prior to including common.inc # DK_ROOT = ../../../.. # # Includes common definitions and source file list # ifneq ($(KERNELRELEASE),) include $(M)/$(DK_ROOT)/stad/build/linux/common.inc include $(M)/$(DK_ROOT)/platforms/os/linux/build/os_sources.inc else include $(DK_ROOT)/stad/build/linux/common.inc include $(DK_ROOT)/platforms/os/linux/build/os_sources.inc endif # # List of linux OS files needed to be compiled # OS_SRCS = \ $(DK_ROOT)/platforms/os/linux/src/WlanDrvIf.c \ $(DK_ROOT)/platforms/os/linux/src/osapi.c \ $(DK_ROOT)/platforms/os/linux/src/osmemapi.c \ $(DK_ROOT)/platforms/os/linux/src/osRgstry_parser.c \ $(DK_ROOT)/platforms/os/linux/src/ipc_k.c \ $(DK_ROOT)/platforms/os/linux/src/WlanDrvWext.c \ $(DK_ROOT)/platforms/os/linux/src/CmdInterpretWext.c \ $(DK_ROOT)/platforms/os/linux/src/RxBuf.c \ $(DK_ROOT)/platforms/hw/linux/host_platform.c \ $(DK_ROOT)/external_drivers/sdio/linux/SdioDrv.c # $(DK_ROOT)/external_drivers/$(HOST_PLATFORM)/Linux/sdio/SdioDrv.c # $(DK_ROOT)/platforms/hw/host_platform_$(HOST_PLATFORM)/linux/host_platform.c ifeq ($(STACK_PROFILING_ON),y) OS_SRCS += $(DK_ROOT)/platforms/os/linux/src/stack_profile.c EXTRA_CFLAGS += -D STACK_PROFILE endif ifeq ($(NO_ARCH_STRCMP),y) OS_SRCS += $(DK_ROOT)/platforms/os/linux/src/string.c endif OS_INCS = $(DK_ROOT)/platforms/os/linux/inc $(DK_ROOT)/platforms/os/linux/src $(DK_ROOT)/platforms/os/common/inc #OS_INCS += $(DK_ROOT)/stad/src/core/EvHandler $(DK_ROOT)/Test $(DK_ROOT)/platforms/hw/host_platform_$(HOST_PLATFORM)/linux OS_INCS += $(DK_ROOT)/stad/src/core/EvHandler $(DK_ROOT)/Test $(DK_ROOT)/platforms/hw/linux ifeq ($(WSPI),y) OS_SRCS += $(DK_ROOT)/platforms/hw/host_platform_$(HOST_PLATFORM)/linux/WspiAdapter.c OS_INCS += $(EXT_DRV)/$(HOST_PLATFORM)/Linux/spi endif ifeq ($(WSPI),n) # OS_SRCS += $(DK_ROOT)/platforms/hw/host_platform_$(HOST_PLATFORM)/linux/SdioAdapter.c # OS_INCS += $(EXT_DRV)/$(HOST_PLATFORM)/Linux/sdio OS_SRCS += $(DK_ROOT)/platforms/hw/linux/SdioAdapter.c OS_INCS += $(EXT_DRV)/sdio/linux endif OS_OBJS = $(patsubst %.c, %.o, $(OS_SRCS)) # # OS include paths required for compilation. # # # Firmware # FW_SRCS = ./firmware.c ./radio.c FW_OBJS = $(patsubst %.c, %.o, $(FW_SRCS)) ifeq "$(FW)" "1273" FW_IMAGE = $(DK_ROOT)/fw/Latest/Fw1273.bin else FW_IMAGE = $(DK_ROOT)/fw/Latest/Fw1251rc1.bin endif RAD_IMAGE = $(DK_ROOT)/fw/Latest/nvs_map.bin # # Location and filename of the linux OS stub object file created by this makefile. # OUTPUT_DIR = $(DK_ROOT)/platforms/os/linux/build OUTPUT_FILE = $(OUTPUT_DIR)/tiwlan_drv_stub.o OUTPUT_LIB = $(OUTPUT_DIR)/tiwlan_drv_stub.a ## ## ## Compilation Directives ## ## ifeq ($(NO_USERMODE_WORKAROUND),y) EXTRA_CFLAGS += -D NO_USERMODE_WORKAROUND endif ifeq ($(POLLING_MODE),y) EXTRA_CFLAGS += -D TIWLAN_OMAP1610_IRQ=0 endif ifeq ($(MEM_ALLOC_TRACE),y) EXTRA_CFLAGS += -D TI_MEM_ALLOC_TRACE endif ## ## ## Build process ## ## ifneq ($(KERNELRELEASE),) ## ## ## This is the kernel build phase - set the appropriate arguments ## ## # # Adds the current directory as a prefix to all include directories. # EXTRA_CFLAGS += $(addprefix -I$(M)/, $(OS_DK_INCS) $(OS_INCS)) # # Intermediate object name - this should be renamed to the desired object name # after the kernel makefile finishes its work. # obj-m = tiwlan_drv.o # # List of object files the kernel makefile needs to compile. # tiwlan_drv-y = $(OS_OBJS) $(OS_AUXILIARY_LIBS) else # ifneq ($(KERNELRELEASE),) ## ## ## This is the regular build phase - act according to the make actions ## ## # # The location of the kernel makefile # KERNEL_DIR ?= $(KERNEL_DIR) # # Build the linux OS stub object file # .PHONY: all all: .depend $(OUTPUT_DIR) $(OUTPUT_FILE) # # Prints variables # .PHONY: help help: @echo Default Compilation: PLATFORM=$(PLATFORM) DEBUG=$(DEBUG) INTR=$(INTR) WSPI=$(WSPI) XCC=$(XCC) EXTRA CFLAGS: $(EXTRA_CFLAGS) # # Recursively cleans the linux OS stub object files # .PHONY: clean clean: $(MAKE) -C $(KERNEL_DIR) M=`pwd` ARCH=arm CROSS_COMPILE=$(CROSS_COMPILE) clean @rm -f *.o *.a .*.o.cmd *~ *.~* core .depend dep $(OS_OBJS) $(FW_SRCS) $(FW_OBJS) # # Causes the linux OS stub object file to get rebuilt # .depend: rm -f $(OUTPUT_FILE) # # Make sure the output directory exists # $(OUTPUT_DIR): mkdir -p $(OUTPUT_DIR) # # Recursively builds the linux OS stub object file # $(OUTPUT_FILE): $(MAKE) -C $(KERNEL_DIR) M=`pwd` ARCH=arm CROSS_COMPILE=$(CROSS_COMPILE) modules $(CROSS_COMPILE)$(AR) rcs $(OUTPUT_LIB) $(OS_OBJS) mv tiwlan_drv.ko $(OUTPUT_FILE) # # Handles firmware image and radio module for when firmware is statically linked # $(BIN2C): $(BIN2C).c gcc $^ -o $@ firmware.c: $(FW_IMAGE) $(BIN2C) $(BIN2C) $< tiwlan_fwimage > $@ radio.c: $(RAD_IMAGE) $(BIN2C) $(BIN2C) $< tiwlan_radimage > $@ endif # ifneq ($(KERNELRELEASE),)