| |
| ## |
| ## |
| ## Application Make Flags |
| ## |
| ## |
| |
| # |
| # Statically link the CU |
| # |
| STATIC_LIB ?= y |
| |
| # |
| # Rebuild the supplicant |
| # |
| BUILD_SUPPL ?= n |
| |
| # |
| # Supplicant |
| # |
| SUPPL ?= ANDROID |
| |
| # |
| # XCC |
| # |
| XCC ?= n |
| #ifeq ($(XCC),y) |
| # SUPPL = DEVICESCAPE |
| #endif |
| |
| # |
| # FW |
| # |
| FW ?= 1273 |
| |
| # |
| # Full Async Mode |
| # |
| FULL_ASYNC ?= n |
| |
| # |
| # Build bmtrace performance tool |
| # |
| BMTRACE ?= n |
| |
| # |
| # Full Async Mode |
| # |
| USE_IRQ_ACTIVE_HIGH ?= n |
| |
| # |
| # bus test-driver |
| # |
| TEST ?= n |
| |
| # |
| # Eth Support |
| # |
| ETH_SUPPORT ?= n |
| |
| # |
| # Debug |
| # |
| DEBUG ?= y |
| |
| ## |
| ## |
| ## 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 |
| else |
| include $(DK_ROOT)/stad/build/linux/common.inc |
| endif |
| |
| # |
| # Location and filename of the driver .lib file. |
| # |
| DRIVER_LIB_DIR = $(DK_ROOT)/stad/build/linux |
| DRIVER_LIB = $(DRIVER_LIB_DIR)/libestadrv.a |
| |
| # |
| # Location and filename of the OS .lib file. |
| # |
| OS_COMMON_DIR = $(DK_ROOT)/platforms/os/common/build/linux |
| OS_COMMON = $(OS_COMMON_DIR)/libuadrv.a |
| |
| # |
| # Location and filename of the linux OS object file. |
| # |
| OS_LINUX_DIR = $(DK_ROOT)/platforms/os/linux/build |
| OS_LINUX = $(OS_LINUX_DIR)/tiwlan_drv_stub.o |
| OS_AUXILIARY_LIBS = ../$(DRIVER_LIB)\ ../$(OS_COMMON) |
| |
| # |
| # Location and filename of the wlan user-mode programs root directory. |
| # |
| WLAN_CUDK_DIR = $(DK_ROOT)/CUDK |
| |
| # |
| # Location and filename of the wlan configuraion utility CLI program. |
| # |
| WLAN_CU_CLI_DIR = $(DK_ROOT)/CUDK/configurationutility |
| WLAN_CU_CLI = $(WLAN_CUDK_DIR)/output/wlan_cu |
| |
| # |
| # Location and filename of the wlan logger utility program. |
| # |
| WLAN_LOGGER_DIR = $(DK_ROOT)/CUDK/logger |
| WLAN_LOGGER = $(WLAN_CUDK_DIR)/output/wlan_logger |
| |
| # |
| # Location and filename of the WLAN loader utility |
| # |
| WLAN_LOADER_DIR = $(DK_ROOT)/CUDK/tiwlan_loader/ |
| WLAN_LOADER = $(WLAN_CUDK_DIR)/output/tiwlan_loader |
| |
| # |
| # Location and filename of the Linux Wireless Tools |
| # |
| |
| #LINUX_WIRELESS_TOOLS_DIR = $(DK_ROOT)/CUDK/wireless_tools |
| #LINUX_WIRELESS_TOOLS = $(LINUX_WIRELESS_TOOLS_DIR)/iwconfig |
| |
| # |
| # The location of the supplicant depending on whether or not we rebuild it. |
| # |
| SUPPLICANT = $(WLAN_CUDK_DIR)/output/wpa_supplicant |
| |
| # |
| # The combined linux module file. |
| # |
| OUTPUT_DIR = $(DK_ROOT)/platforms/os/linux |
| OUTPUT_FILE = $(OUTPUT_DIR)/tiwlan_drv.ko |
| |
| ## |
| ## |
| ## Build process |
| ## |
| ## |
| |
| #ifneq ($(KERNELRELEASE),) |
| |
| |
| ## |
| ## |
| ## This is the kernel build phase - set the appropriate arguments |
| ## |
| ## |
| |
| # |
| # Intermediate object name - this should be renamed to the desired object name |
| # after the kernel makefile finishes its work. |
| # |
| # obj-m = linux.o |
| |
| # |
| # List of object files the kernel makefile needs to compile. |
| # |
| # linux-y = $(DRIVER_LIB) $(OS_COMMON) $(OS_LINUX) |
| |
| |
| #else # ifneq ($(KERNELRELEASE),) |
| |
| |
| ## |
| ## |
| ## This is the regular build phase - act according to the make actions |
| ## |
| ## |
| |
| # |
| # The location of the kernel makefile |
| # |
| KERNEL_DIR ?= |
| |
| # |
| # Dont use the original mkfs.jffs2 on TI's servers (voice.img won't work) |
| # |
| MAKEJFFS2 ?= /apps/crosstool/bin/mkfs.jffs2 |
| |
| # |
| # Used to check if the necessary packages are present. |
| # |
| HAVE_NONGPL = $(wildcard $(DRIVER_LIB_DIR)/Makefile) |
| HAVE_GPL = $(wildcard $(OS_LINUX_DIR)/Makefile) |
| # |
| # Combines all the three components to create the driver. |
| # |
| HOST_PLATFORM ?= *UNDEFINED* |
| ifeq "$(HOST_PLATFORM)" "omap2430" |
| TARGET = apps.tar |
| endif |
| ifeq "$(HOST_PLATFORM)" "omap3430" |
| TARGET = apps.tar |
| endif |
| ifeq "$(HOST_PLATFORM)" "zoom2" |
| TARGET = apps.tar |
| endif |
| ifeq "$(HOST_PLATFORM)" "zoom1" |
| TARGET = apps.tar |
| endif |
| ifeq "$(HOST_PLATFORM)" "sholes" |
| TARGET = apps.tar |
| endif |
| # |
| .PHONY: all |
| all: verifypackages .depend $(TARGET) |
| help: |
| @echo |
| @echo 'In order to select host platform one of the scripts: omap2430_env.tcsh or omap3430_env.tcsh must be run:' |
| @echo 'source omap2430_env.tcsh' |
| @echo 'or' |
| @echo 'source omap3430_env.tcsh' |
| @echo |
| @echo Default Compilation: |
| @echo ==================== |
| @echo HOST_PLATFORM = $(HOST_PLATFORM) // omap2430 or omap3430 |
| @echo DEBUG = $(DEBUG) // Include debug prints and statistics |
| @echo INTR = $(INTR) |
| @echo WSPI = $(WSPI) |
| @echo XCC = $(XCC) |
| @echo SUPPL = $(SUPPL) // WPA or DEVICESCAPE |
| @echo FPGA1273 = $(FPGA1273) // FPGA device support |
| @echo FULL_ASYNC = $(FULL_ASYNC) // Use only Asynchronous bus transactions |
| @echo USE_IRQ_ACTIVE_HIGH = $(USE_IRQ_ACTIVE_HIGH) // Use IRQ polarity high |
| @echo TEST = $(TEST) // Build also the bus test-driver |
| @echo BMTRACE = $(BMTRACE) // Build also the bmtrace performance tool |
| @echo TARGET = $(TARGET) |
| @echo ETH_SUPPORT = $(ETH_SUPPORT) |
| @echo |
| @echo EXTRA CFLAGS = $(EXTRA_CFLAGS) |
| @echo |
| # |
| # Create the images |
| # |
| .PHONY: suppl.img voice.img apps.img apps.tar $(BUS_DRV) |
| MODULES_LIST = tiwlan_drv.ko |
| TAR_FILE = $(HOST_PLATFORM)Binaries.tar |
| |
| apps.tar: apps |
| ifeq ($(STRIP),y) |
| @echo stripping... |
| cd $(OUTPUT_DIR) && $(CROSS_COMPILE)strip -g --strip-unneeded $(MODULES_LIST) |
| # cd $(DK_ROOT)/external_drivers/$(HOST_PLATFORM)/Linux/$(BUS_DRV) && $(CROSS_COMPILE)strip -g $(BUS_DRIVER_MODULE) |
| endif |
| |
| |
| |
| apps.img: apps |
| mkcramfs apps apps.cram |
| mkimgti -t data -o apps.img apps.cram |
| |
| apps: $(OUTPUT_FILE) |
| # rm -f $(OUTPUT_DIR)/$(BUS_DRV_REMOVE).ko $(OUTPUT_DIR)/$(BUS_DRV_REMOVE)_test |
| # cp -f $(DK_ROOT)/external_drivers/$(HOST_PLATFORM)/Linux/$(BUS_DRV)/$(BUS_DRIVER_MODULE) $(OUTPUT_DIR) |
| |
| voice.img: |
| $(MAKEJFFS2) -l -r voice -e 0x10000 -o voice.jffs2 |
| mkimgti -t data -o voice.img voice.jffs2 |
| |
| suppl.img: |
| ifeq ($(BUILD_SUPPL),y) |
| cp -f $(SUPPLICANT) . |
| endif |
| mkcramfs suppl suppl.cram |
| mkimgti -t data -o suppl.img suppl.cram |
| |
| # |
| # Recursively cleans the driver, OS, bus and CLI files |
| # |
| .PHONY: clean |
| clean: |
| $(MAKE) -C $(DRIVER_LIB_DIR) CROSS_COMPILE=$(CROSS_COMPILE) DEBUG=$(DEBUG) BUILD_SUPPL=$(BUILD_SUPPL) SUPPL=$(SUPPL) WSPI=$(WSPI) INTR=$(INTR) XCC=$(XCC) INFO=$(INFO) STATIC_LIB=$(STATIC_LIB) clean |
| $(MAKE) -C $(OS_COMMON_DIR) CROSS_COMPILE=$(CROSS_COMPILE) DEBUG=$(DEBUG) BUILD_SUPPL=$(BUILD_SUPPL) SUPPL=$(SUPPL) WSPI=$(WSPI) INTR=$(INTR) XCC=$(XCC) INFO=$(INFO) STATIC_LIB=$(STATIC_LIB) clean |
| $(MAKE) -C $(OS_LINUX_DIR) CROSS_COMPILE=$(CROSS_COMPILE) DEBUG=$(DEBUG) BUILD_SUPPL=$(BUILD_SUPPL) SUPPL=$(SUPPL) WSPI=$(WSPI) INTR=$(INTR) XCC=$(XCC) INFO=$(INFO) STATIC_LIB=$(STATIC_LIB) clean |
| # $(MAKE) -C $(DK_ROOT)/external_drivers/$(HOST_PLATFORM)/Linux/$(BUS_DRV) ARCH=$(ARCH) CROSS_COMPILE=$(CROSS_COMPILE) KERNEL_DIR=$(KERNEL_DIR) OUTPUT_DIR=$(shell pwd)/$(OUTPUT_DIR) clean |
| # $(MAKE) -C $(WLAN_CUDK_DIR) CROSS_COMPILE=$(CROSS_COMPILE) BUILD_SUPPL=$(BUILD_SUPPL) SUPPL=$(SUPPL) XCC=$(XCC) clean |
| # $(MAKE) -C $(WLAN_CU_CLI_DIR) CROSS_COMPILE=$(CROSS_COMPILE) BUILD_SUPPL=$(BUILD_SUPPL) SUPPL=$(SUPPL) XCC=$(XCC) cleanall |
| # $(MAKE) -C $(WLAN_LOADER_DIR) CROSS_COMPILE=$(CROSS_COMPILE) BUILD_SUPPL=$(BUILD_SUPPL) SUPPL=$(SUPPL) XCC=$(XCC) clean |
| # $(MAKE) -C $(LINUX_WIRELESS_TOOLS_DIR) CROSS_COMPILE=$(CROSS_COMPILE) BUILD_SUPPL=$(BUILD_SUPPL) SUPPL=$(SUPPL) XCC=$(XCC) clean |
| # $(MAKE) -C $(DBG_MDL) ARCH=$(ARCH) CROSS_COMPILE=$(CROSS_COMPILE) KERNEL_DIR=$(KERNEL_DIR) clean |
| |
| # @rm -f suppl.* apps.* voice.* |
| # @rm -f *spi*.ko sdio.ko |
| # @rm -f $(OUTPUT_DIR)/wlan_cu |
| @rm -f $(OUTPUT_DIR)/tiwlan_drv.ko |
| # @rm -f wpa_supplicant |
| # @rm -f $(FW_IMAGE_DEST_FILE) |
| # @rm -rf *.o *.a \.*.o.cmd *~ *.~* core .depend dep |
| |
| # @rm -f tiwlan_drv.ko $(OUTPUT_DIR)/gwsi_drv.o $(OUTPUT_DIR)/debug_tools.o |
| # @rm -rf $(OUTPUT_DIR)/iwconfig apps/iwlist $(OUTPUT_DIR)/iwevent |
| |
| # in order to remove all .*.o.cmd |
| @find ../../../. -type f -print | grep .o.cmd | xargs rm -f |
| # in order to remove all *.order and *.symvers |
| @find ../../../. -type f -print | grep .order | xargs rm -f |
| @find ../../../. -type f -print | grep .symvers | xargs rm -f |
| # in order to remove Module.markers file |
| @find ../../../. -type f -print | grep Module.markers | xargs rm -f |
| # in order to remove the binaries tar |
| # @rm -rf $(TAR_FILE) |
| |
| |
| # |
| # Verifies that all necessary packages are present. |
| # |
| .PHONY: verifypackages |
| verifypackages: |
| ifeq ($(strip $(HAVE_GPL)),) |
| @echo "*** The GPL package does not seem to be present. You will need both the" |
| @echo "*** GPL package and the Non GPL package to execute this makefile." |
| exit 1 |
| endif |
| |
| ifeq ($(strip $(HAVE_NONGPL)),) |
| @echo "*** The Non GPL package does not seem to be present. You will need both the" |
| @echo "*** GPL package and the Non GPL package to execute this makefile." |
| exit 1 |
| endif |
| |
| |
| # Builds the WSPI or SDIO driver |
| # |
| $(BUS_DRV): |
| $(MAKE) -C $(DK_ROOT)/external_drivers/$(HOST_PLATFORM)/Linux/$(BUS_DRV) ARCH=arm CROSS_COMPILE=$(CROSS_COMPILE) KERNEL_DIR=$(KERNEL_DIR) OUTPUT_DIR=$(shell pwd)/$(OUTPUT_DIR) all |
| |
| |
| # |
| # Causes the driver and the configuration utility object files to get rebuilt |
| # |
| .depend: |
| rm -f $(OUTPUT_FILE) $(DRIVER_LIB) $(OS_COMMON) $(OS_LINUX) $(WLAN_CU_CLI) $(WLAN_LOADER) $(WLAN_LOGGER) |
| |
| |
| # |
| # Build the configuration utility; optionally rebuilds the supplicant |
| # |
| #$(SUPPLICANT): $(WLAN_CU_CLI) |
| |
| .PHONY: CU_DK |
| CU_DK: |
| # $(MAKE) -C $(WLAN_CUDK_DIR) CROSS_COMPILE=$(CROSS_COMPILE) DEBUG=$(DEBUG) BUILD_SUPPL=$(BUILD_SUPPL) SUPPL=$(SUPPL) XCC=$(XCC) STATIC_LIB=$(STATIC_LIB) SG=$(SG) ETH_SUPPORT=$(ETH_SUPPORT) |
| |
| #$(WLAN_CU_CLI): |
| # $(MAKE) -C $(WLAN_CU_CLI_DIR) CROSS_COMPILE=$(CROSS_COMPILE) DEBUG=$(DEBUG) BUILD_SUPPL=$(BUILD_SUPPL) SUPPL=$(SUPPL) XCC=$(XCC) STATIC_LIB=$(STATIC_LIB) SG=$(SG) |
| |
| #$(LINUX_WIRELESS_TOOLS): |
| # $(MAKE) -C $(LINUX_WIRELESS_TOOLS_DIR) CROSS_COMPILE=$(CROSS_COMPILE) |
| |
| #$(WLAN_LOADER): |
| # $(MAKE) -C $(WLAN_LOADER_DIR) CROSS_COMPILE=$(CROSS_COMPILE) DEBUG=$(DEBUG) XCC=$(XCC) STATIC_LIB=$(STATIC_LIB) SG=$(SG) |
| |
| |
| # |
| # Recursively builds the driver lib file |
| # |
| $(DRIVER_LIB): |
| $(MAKE) -C $(DRIVER_LIB_DIR) CROSS_COMPILE=$(CROSS_COMPILE) DEBUG=$(DEBUG) BUILD_SUPPL=$(BUILD_SUPPL) SUPPL=$(SUPPL) WSPI=$(WSPI) INTR=$(INTR) XCC=$(XCC) INFO=$(INFO) STATIC_LIB=$(STATIC_LIB) |
| |
| |
| # |
| # Recursively builds the OS lib file |
| # |
| $(OS_COMMON): |
| $(MAKE) -C $(OS_COMMON_DIR) CROSS_COMPILE=$(CROSS_COMPILE) DEBUG=$(DEBUG) BUILD_SUPPL=$(BUILD_SUPPL) SUPPL=$(SUPPL) WSPI=$(WSPI) INTR=$(INTR) XCC=$(XCC) INFO=$(INFO) STATIC_LIB=$(STATIC_LIB) OS_AUXILIARY_LIBS+=../../$(DRIVER_LIB) |
| |
| |
| # |
| # Recursively builds the linux OS stub object file |
| # |
| $(OS_LINUX): |
| $(MAKE) -C $(OS_LINUX_DIR) CROSS_COMPILE=$(CROSS_COMPILE) DEBUG=$(DEBUG) BUILD_SUPPL=$(BUILD_SUPPL) SUPPL=$(SUPPL) WSPI=$(WSPI) INTR=$(INTR) XCC=$(XCC) INFO=$(INFO) STATIC_LIB=$(STATIC_LIB) OS_AUXILIARY_LIBS+=../$(DRIVER_LIB) OS_AUXILIARY_LIBS+=../$(OS_COMMON) |
| |
| |
| # |
| # Recursively builds the driver object file |
| # |
| $(OUTPUT_FILE): $(DRIVER_LIB) $(OS_COMMON) $(OS_LINUX) |
| mv $(OS_LINUX) $(OUTPUT_FILE) |
| |
| .PHONY: link |
| link: |
| $(MAKE) -C $(KERNEL_DIR) M=`pwd` ARCH=arm CROSS_COMPILE=$(CROSS_COMPILE) modules |
| mv tiwlan_drv.ko $(OUTPUT_FILE) |
| |
| |
| # |
| # Builds the debug module object file |
| # |
| #$(DBG_MDL)/debug_module.ko: |
| # $(MAKE) -C $(DBG_MDL) KERNEL_DIR=$(KERNEL_DIR) |
| # mv $(DBG_MDL)/debug_module.ko $(OUTPUT_DIR)/debug_tools.o |
| |
| |
| # |
| # Not in use? |
| # |
| TAGS: $(SRCS) |
| { find ${DK_ROOT}/common -name '*.h' -print ; \ |
| find . -name '*.h' -print ; } | etags - |
| etags -a $(SRCS) |
| |
| CTAGS: $(SRCS) |
| find ${DK_ROOT} -iname '*.[ch]' -print | ctags --c++-types=+px --excmd=pattern -L - |
| |
| |
| #endif # ifneq ($(KERNELRELEASE),) |