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