Home | History | Annotate | Download | only in linux
      1 
      2 ##
      3 ##
      4 ## Application Make Flags
      5 ##
      6 ##
      7 
      8 #
      9 # Host platform
     10 #
     11 HOST_PLATFORM ?= zoom2
     12 
     13 #
     14 # Statically link the CU
     15 #
     16 STATIC_LIB ?= y
     17 
     18 #
     19 # Rebuild the supplicant
     20 #
     21 BUILD_SUPPL ?= y
     22 
     23 #
     24 # Supplicant
     25 # 
     26 SUPPL ?= ANDROID
     27 
     28 #
     29 # XCC
     30 # 
     31 XCC ?= n
     32 #ifeq ($(XCC),y)
     33 #	SUPPL = DEVICESCAPE
     34 #endif
     35 
     36 #
     37 # FW
     38 # 
     39 FW ?= 1273
     40 
     41 #
     42 # Full Async Mode
     43 # 
     44 FULL_ASYNC ?= n
     45 
     46 #
     47 # Build bmtrace performance tool
     48 # 
     49 BMTRACE ?= n
     50 
     51 #
     52 # Full Async Mode
     53 # 
     54 USE_IRQ_ACTIVE_HIGH ?= n
     55 
     56 #
     57 # Eth Support
     58 #
     59 ETH_SUPPORT ?= n
     60 
     61 #
     62 # Debug
     63 #
     64 DEBUG ?= n
     65 
     66 ##
     67 ##
     68 ## File lists and locations
     69 ##
     70 ##
     71 
     72 #
     73 # DK_ROOT must be set prior to including common.inc
     74 #
     75 DK_ROOT = ../../..
     76 
     77 #
     78 # Includes common definitions and source file list
     79 #
     80 ifneq ($(KERNELRELEASE),)
     81     include $(M)/$(DK_ROOT)/stad/build/linux/common.inc
     82 else
     83     include $(DK_ROOT)/stad/build/linux/common.inc
     84 endif
     85 
     86 #
     87 # Location and filename of the driver .lib file.
     88 #
     89 DRIVER_LIB_DIR = $(DK_ROOT)/stad/build/linux
     90 DRIVER_LIB = $(DRIVER_LIB_DIR)/libestadrv.a
     91 
     92 #
     93 # Location and filename of the OS .lib file.
     94 #
     95 OS_COMMON_DIR = $(DK_ROOT)/platforms/os/common/build/linux
     96 OS_COMMON = $(OS_COMMON_DIR)/libuadrv.a
     97 
     98 #
     99 # Location and filename of the linux OS object file.
    100 #
    101 OS_LINUX_DIR = $(DK_ROOT)/platforms/os/linux/build
    102 OS_LINUX = $(OS_LINUX_DIR)/tiwlan_drv_stub.o
    103 OS_AUXILIARY_LIBS = ../$(DRIVER_LIB)\ ../$(OS_COMMON)
    104 
    105 #
    106 # Location and filename of the wlan user-mode programs root directory.
    107 #
    108 WLAN_CUDK_DIR = $(DK_ROOT)/CUDK
    109 
    110 #
    111 # Location and filename of the wlan configuraion utility CLI program.
    112 #
    113 WLAN_CU_CLI_DIR = $(DK_ROOT)/CUDK/configurationutility
    114 WLAN_CU_CLI = $(WLAN_CUDK_DIR)/output/wlan_cu
    115 
    116 #
    117 # Location and filename of the wlan logger utility program.
    118 #
    119 WLAN_LOGGER_DIR = $(DK_ROOT)/CUDK/logger
    120 WLAN_LOGGER = $(WLAN_CUDK_DIR)/output/wlan_logger
    121 
    122 #
    123 # Location and filename of the WLAN loader utility
    124 #
    125 WLAN_LOADER_DIR = $(DK_ROOT)/CUDK/tiwlan_loader/
    126 WLAN_LOADER = $(WLAN_CUDK_DIR)/output/tiwlan_loader
    127 
    128 #
    129 # Location and filename of the Linux Wireless Tools
    130 #
    131 
    132 #LINUX_WIRELESS_TOOLS_DIR = $(DK_ROOT)/CUDK/wireless_tools
    133 #LINUX_WIRELESS_TOOLS = $(LINUX_WIRELESS_TOOLS_DIR)/iwconfig
    134 
    135 #
    136 # The location of the supplicant depending on whether or not we rebuild it.
    137 #
    138 SUPPLICANT = $(WLAN_CUDK_DIR)/output/wpa_supplicant
    139 
    140 #
    141 # The combined linux module file.
    142 #
    143 OUTPUT_DIR = $(DK_ROOT)/platforms/os/linux
    144 OUTPUT_FILE = $(OUTPUT_DIR)/tiwlan_drv.ko
    145 
    146 #
    147 # Firmware
    148 #
    149 ifeq "$(FW)" "1273"
    150 	ifeq "$(FPGA1273)" "y"
    151 	FW_IMAGE ?= $(DK_ROOT)/fw/Latest/Fw1273_FPGA.bin
    152 	else
    153 	FW_IMAGE ?= $(DK_ROOT)/fw/Latest/Fw1273_CHIP.bin
    154 	endif
    155 else
    156 FW_IMAGE ?= $(DK_ROOT)/fw/Latest/Fw1251r1c.bin
    157 endif
    158 
    159 FW_IMAGE_DEST_FILE ?= $(OUTPUT_DIR)/firmware.bin
    160 
    161 ##
    162 ##
    163 ## Build process
    164 ##
    165 ##
    166 
    167 #ifneq ($(KERNELRELEASE),)
    168 
    169 
    170 ##
    171 ##
    172 ## This is the kernel build phase - set the appropriate arguments
    173 ##
    174 ##
    175 
    176 #
    177 # Intermediate object name - this should be renamed to the desired object name
    178 # after the kernel makefile finishes its work.
    179 #
    180 #       obj-m = linux.o
    181 
    182 #
    183 # List of object files the kernel makefile needs to compile.
    184 #
    185 #       linux-y = $(DRIVER_LIB) $(OS_COMMON) $(OS_LINUX)
    186 
    187 
    188 #else   # ifneq ($(KERNELRELEASE),)
    189 
    190 
    191 ##
    192 ##
    193 ## This is the regular build phase - act according to the make actions
    194 ##
    195 ##
    196 
    197 #
    198 # The location of the kernel makefile
    199 #
    200 KERNEL_DIR ?= 
    201 
    202 #
    203 # Dont use the original mkfs.jffs2 on TI's servers (voice.img won't work)
    204 #
    205 MAKEJFFS2 ?= /apps/crosstool/bin/mkfs.jffs2
    206 
    207 #
    208 # Used to check if the necessary packages are present.
    209 #
    210 HAVE_NONGPL = $(wildcard $(DRIVER_LIB_DIR)/Makefile)
    211 HAVE_GPL = $(wildcard $(OS_LINUX_DIR)/Makefile)
    212 #
    213 # Combines all the three components to create the driver.
    214 #
    215 HOST_PLATFORM ?= *UNDEFINED*
    216 ifeq "$(HOST_PLATFORM)" "omap2430"
    217 TARGET = apps.tar
    218 endif
    219 ifeq "$(HOST_PLATFORM)" "omap3430"
    220 TARGET = apps.tar
    221 endif
    222 ifeq "$(HOST_PLATFORM)" "zoom2"
    223 TARGET = apps.tar
    224 endif
    225 ifeq "$(HOST_PLATFORM)" "zoom1"
    226 TARGET = apps.tar
    227 endif
    228 ifeq "$(HOST_PLATFORM)" "*UNDEFINED*"
    229 TARGET = help
    230 endif
    231 #
    232 .PHONY: all
    233 all: verifypackages .depend $(TARGET)
    234 help:
    235 	@echo 
    236 	@echo 'In order to select host platform one of the scripts: omap2430_env.tcsh or omap3430_env.tcsh must be run:'
    237 	@echo 'source omap2430_env.tcsh'
    238 	@echo 'or'
    239 	@echo 'source omap3430_env.tcsh'
    240 	@echo
    241 	@echo Default Compilation:
    242 	@echo ====================
    243 	@echo HOST_PLATFORM = $(HOST_PLATFORM)  // omap2430 or omap3430
    244 	@echo DEBUG = $(DEBUG) 			// Include debug prints and statistics
    245 	@echo INTR = $(INTR) 
    246 	@echo WSPI = $(WSPI) 
    247 	@echo XCC  = $(XCC) 
    248 	@echo SUPPL  = $(SUPPL) 		// WPA or DEVICESCAPE
    249 	@echo FPGA1273 = $(FPGA1273)		// FPGA device support
    250 	@echo FULL_ASYNC = $(FULL_ASYNC)     	// Use only Asynchronous bus transactions
    251 	@echo USE_IRQ_ACTIVE_HIGH = $(USE_IRQ_ACTIVE_HIGH)      // Use IRQ polarity high
    252 	@echo BMTRACE = $(BMTRACE)      // Build also the bmtrace performance tool
    253 	@echo TARGET  = $(TARGET)
    254 	@echo ETH_SUPPORT = $(ETH_SUPPORT)
    255 	@echo
    256 	@echo EXTRA CFLAGS  = $(EXTRA_CFLAGS)
    257 	@echo
    258 #
    259 # Create the images
    260 #
    261 .PHONY: suppl.img voice.img apps.img apps.tar $(BUS_DRV)
    262 MODULES_LIST = tiwlan_drv.ko
    263 IMAGES_AND_FILES = dhcpcd wfa_dut dotnet_personal_test.cer dotnet_personal_test.pem dotnet_root.cer wpa_supplicant_wpa_tls.txt
    264 TAR_FILE = $(HOST_PLATFORM)Binaries.tar
    265 
    266 apps.tar: apps
    267 ifeq ($(STRIP),y)
    268 	@echo stripping...
    269 	cd $(OUTPUT_DIR) && $(CROSS_COMPILE)strip -g --strip-unneeded $(MODULES_LIST)
    270 #	cd $(DK_ROOT)/external_drivers/$(HOST_PLATFORM)/Linux/$(BUS_DRV) && $(CROSS_COMPILE)strip -g $(BUS_DRIVER_MODULE)
    271 endif
    272 #	tar Ccvf $(OUTPUT_DIR)  $(TAR_FILE) $(MODULES_LIST) tiwlan_loader
    273 #	tar Crvf $(DK_ROOT)/external_drivers/$(HOST_PLATFORM)/Linux/$(BUS_DRV) $(TAR_FILE) $(BUS_DRIVER_MODULE)
    274 #	tar Crvf . $(TAR_FILE) tiwlan.ini wpa_supplicant.txt
    275 #	tar Crvf images/$(HOST_PLATFORM) $(TAR_FILE) ${IMAGES_AND_FILES}
    276 
    277 
    278 
    279 apps.img: apps
    280 	mkcramfs apps apps.cram
    281 	mkimgti -t data -o apps.img apps.cram
    282 
    283 apps: $(OUTPUT_FILE)
    284 #	rm -f $(OUTPUT_DIR)/$(BUS_DRV_REMOVE).ko $(OUTPUT_DIR)/$(BUS_DRV_REMOVE)_test
    285 #	cp -f $(WLAN_CU_CLI) $(OUTPUT_DIR)
    286 #	cp -f $(WLAN_LOADER) $(OUTPUT_DIR)
    287 
    288 voice.img: 
    289 	$(MAKEJFFS2) -l -r voice -e 0x10000 -o voice.jffs2
    290 	mkimgti -t data -o voice.img voice.jffs2
    291 
    292 suppl.img:
    293 ifeq ($(BUILD_SUPPL),y) 
    294 	cp -f $(SUPPLICANT) .
    295 endif
    296 	mkcramfs suppl suppl.cram
    297 	mkimgti -t data -o suppl.img suppl.cram
    298 
    299 #
    300 # Recursively cleans the driver, OS, bus and CLI files
    301 #
    302 .PHONY: clean
    303 clean:
    304 	$(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
    305 	$(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
    306 	$(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
    307 #	$(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
    308 #	$(MAKE) -C $(WLAN_CUDK_DIR) CROSS_COMPILE=$(CROSS_COMPILE) BUILD_SUPPL=$(BUILD_SUPPL) SUPPL=$(SUPPL) XCC=$(XCC) clean
    309 #       $(MAKE) -C $(WLAN_CU_CLI_DIR) CROSS_COMPILE=$(CROSS_COMPILE) BUILD_SUPPL=$(BUILD_SUPPL) SUPPL=$(SUPPL) XCC=$(XCC) cleanall
    310 #       $(MAKE) -C $(WLAN_LOADER_DIR) CROSS_COMPILE=$(CROSS_COMPILE) BUILD_SUPPL=$(BUILD_SUPPL) SUPPL=$(SUPPL) XCC=$(XCC) clean
    311 #       $(MAKE) -C $(LINUX_WIRELESS_TOOLS_DIR) CROSS_COMPILE=$(CROSS_COMPILE) BUILD_SUPPL=$(BUILD_SUPPL) SUPPL=$(SUPPL) XCC=$(XCC) clean
    312 #       $(MAKE) -C $(DBG_MDL) ARCH=$(ARCH) CROSS_COMPILE=$(CROSS_COMPILE) KERNEL_DIR=$(KERNEL_DIR) clean
    313 
    314 #	@rm -f suppl.* apps.* voice.*
    315 #	@rm -f *spi*.ko sdio.ko
    316 #	@rm -f $(OUTPUT_DIR)/wlan_cu
    317 	@rm -f $(OUTPUT_DIR)/tiwlan_drv.ko 
    318 #	@rm -f $(OUTPUT_DIR)/wlan_logger $(OUTPUT_DIR)/tiwlan_drv.ko 
    319 #	@rm -f wpa_supplicant 
    320 #	@rm -f $(FW_IMAGE_DEST_FILE)
    321 #	@rm -rf *.o *.a \.*.o.cmd *~ *.~* core .depend dep
    322 #	@rm -rf $(OUTPUT_DIR)/tiwlan_loader
    323 
    324 #       @rm -f tiwlan_drv.ko $(OUTPUT_DIR)/gwsi_drv.o $(OUTPUT_DIR)/debug_tools.o
    325 #       @rm -rf $(OUTPUT_DIR)/iwconfig apps/iwlist $(OUTPUT_DIR)/iwevent
    326 
    327 # in order to remove all .*.o.cmd 
    328 	@find ../../../. -type f -print | grep .o.cmd | xargs rm -f
    329 # in order to remove all *.order and *.symvers
    330 	@find ../../../. -type f -print | grep .order | xargs rm -f
    331 	@find ../../../. -type f -print | grep .symvers | xargs rm -f
    332 # in order to remove the binaries tar
    333 	@rm -rf $(TAR_FILE)
    334 
    335 
    336 #
    337 # Verifies that all necessary packages are present.
    338 #
    339 .PHONY: verifypackages
    340 verifypackages:
    341 ifeq ($(strip $(HAVE_GPL)),)
    342 	@echo "*** The GPL package does not seem to be present. You will need both the"
    343 	@echo "*** GPL package and the Non GPL package to execute this makefile."
    344 	exit 1
    345 endif
    346 
    347 ifeq ($(strip $(HAVE_NONGPL)),)
    348 	@echo "*** The Non GPL package does not seem to be present. You will need both the"
    349 	@echo "*** GPL package and the Non GPL package to execute this makefile."
    350 	exit 1
    351 endif
    352 
    353 
    354 # Builds the WSPI or SDIO driver
    355 #
    356 $(BUS_DRV):
    357 	$(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
    358 
    359 
    360 #
    361 # Causes the driver and the configuration utility object files to get rebuilt
    362 #
    363 .depend:
    364 	rm -f $(OUTPUT_FILE) $(DRIVER_LIB) $(OS_COMMON) $(OS_LINUX) $(WLAN_CU_CLI) $(WLAN_LOADER) $(WLAN_LOGGER)
    365 
    366 
    367 #
    368 # Build the configuration utility; optionally rebuilds the supplicant
    369 #
    370 $(SUPPLICANT): $(WLAN_CU_CLI)
    371 
    372 .PHONY: CU_DK
    373 CU_DK:
    374 	$(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)
    375 
    376 #$(WLAN_CU_CLI):
    377 #        $(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)
    378 
    379 #$(LINUX_WIRELESS_TOOLS):
    380 #       $(MAKE) -C $(LINUX_WIRELESS_TOOLS_DIR) CROSS_COMPILE=$(CROSS_COMPILE)
    381 
    382 #$(WLAN_LOADER):
    383 #        $(MAKE) -C $(WLAN_LOADER_DIR) CROSS_COMPILE=$(CROSS_COMPILE) DEBUG=$(DEBUG) XCC=$(XCC) STATIC_LIB=$(STATIC_LIB) SG=$(SG)
    384 
    385 
    386 #
    387 # Recursively builds the driver lib file
    388 #
    389 $(DRIVER_LIB):
    390 	$(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)
    391 
    392 
    393 #
    394 # Recursively builds the OS lib file
    395 #
    396 $(OS_COMMON):
    397 	$(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)
    398 
    399 
    400 #
    401 # Recursively builds the linux OS stub object file
    402 #
    403 $(OS_LINUX):
    404 	$(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)
    405 
    406 
    407 #
    408 # Recursively builds the driver object file
    409 #
    410 $(OUTPUT_FILE): $(DRIVER_LIB) $(OS_COMMON) $(OS_LINUX)
    411 	mv $(OS_LINUX) $(OUTPUT_FILE)
    412 
    413 .PHONY: link
    414 link:
    415 	$(MAKE) -C $(KERNEL_DIR) M=`pwd` ARCH=arm CROSS_COMPILE=$(CROSS_COMPILE) modules
    416 	mv tiwlan_drv.ko $(OUTPUT_FILE)
    417 
    418 
    419 #
    420 # Builds the debug module object file
    421 #
    422 #$(DBG_MDL)/debug_module.ko:
    423 #       $(MAKE) -C $(DBG_MDL) KERNEL_DIR=$(KERNEL_DIR) 
    424 #       mv $(DBG_MDL)/debug_module.ko $(OUTPUT_DIR)/debug_tools.o
    425 
    426 
    427 #
    428 # Not in use?
    429 #
    430 TAGS: $(SRCS)
    431 	{ find ${DK_ROOT}/common -name '*.h' -print ; \
    432 	  find . -name '*.h' -print ; } | etags -
    433 	  etags -a $(SRCS)
    434 
    435 CTAGS: $(SRCS)
    436 	find ${DK_ROOT} -iname '*.[ch]' -print | ctags --c++-types=+px --excmd=pattern -L -
    437 
    438 
    439 #endif  # ifneq ($(KERNELRELEASE),)
    440