Home | History | Annotate | Download | only in linux
      1 
      2 ##
      3 ##
      4 ## Application Make Flags
      5 ##
      6 ##
      7 
      8 #
      9 # Statically link the CU
     10 #
     11 STATIC_LIB ?= y
     12 
     13 #
     14 # Rebuild the supplicant
     15 #
     16 BUILD_SUPPL ?= n
     17 
     18 #
     19 # Supplicant
     20 # 
     21 SUPPL ?= ANDROID
     22 
     23 #
     24 # XCC
     25 # 
     26 XCC ?= n
     27 #ifeq ($(XCC),y)
     28 #	SUPPL = DEVICESCAPE
     29 #endif
     30 
     31 #
     32 # FW
     33 # 
     34 FW ?= 1273
     35 
     36 #
     37 # Full Async Mode
     38 # 
     39 FULL_ASYNC ?= n
     40 
     41 #
     42 # Build bmtrace performance tool
     43 # 
     44 BMTRACE ?= n
     45 
     46 #
     47 # Full Async Mode
     48 # 
     49 USE_IRQ_ACTIVE_HIGH ?= n
     50 
     51 #
     52 # bus test-driver
     53 #
     54 TEST ?= n
     55 
     56 #
     57 # Eth Support
     58 #
     59 ETH_SUPPORT ?= n
     60 
     61 #
     62 # Debug
     63 #
     64 DEBUG ?= y
     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 ##
    148 ## Build process
    149 ##
    150 ##
    151 
    152 #ifneq ($(KERNELRELEASE),)
    153 
    154 
    155 ##
    156 ##
    157 ## This is the kernel build phase - set the appropriate arguments
    158 ##
    159 ##
    160 
    161 #
    162 # Intermediate object name - this should be renamed to the desired object name
    163 # after the kernel makefile finishes its work.
    164 #
    165 #       obj-m = linux.o
    166 
    167 #
    168 # List of object files the kernel makefile needs to compile.
    169 #
    170 #       linux-y = $(DRIVER_LIB) $(OS_COMMON) $(OS_LINUX)
    171 
    172 
    173 #else   # ifneq ($(KERNELRELEASE),)
    174 
    175 
    176 ##
    177 ##
    178 ## This is the regular build phase - act according to the make actions
    179 ##
    180 ##
    181 
    182 #
    183 # The location of the kernel makefile
    184 #
    185 KERNEL_DIR ?= 
    186 
    187 #
    188 # Dont use the original mkfs.jffs2 on TI's servers (voice.img won't work)
    189 #
    190 MAKEJFFS2 ?= /apps/crosstool/bin/mkfs.jffs2
    191 
    192 #
    193 # Used to check if the necessary packages are present.
    194 #
    195 HAVE_NONGPL = $(wildcard $(DRIVER_LIB_DIR)/Makefile)
    196 HAVE_GPL = $(wildcard $(OS_LINUX_DIR)/Makefile)
    197 #
    198 # Combines all the three components to create the driver.
    199 #
    200 HOST_PLATFORM ?= *UNDEFINED*
    201 ifeq "$(HOST_PLATFORM)" "omap2430"
    202 TARGET = apps.tar
    203 endif
    204 ifeq "$(HOST_PLATFORM)" "omap3430"
    205 TARGET = apps.tar
    206 endif
    207 ifeq "$(HOST_PLATFORM)" "zoom2"
    208 TARGET = apps.tar
    209 endif
    210 ifeq "$(HOST_PLATFORM)" "zoom1"
    211 TARGET = apps.tar
    212 endif
    213 ifeq "$(HOST_PLATFORM)" "sholes"
    214 TARGET = apps.tar
    215 endif
    216 #
    217 .PHONY: all
    218 all: verifypackages .depend $(TARGET)
    219 help:
    220 	@echo 
    221 	@echo 'In order to select host platform one of the scripts: omap2430_env.tcsh or omap3430_env.tcsh must be run:'
    222 	@echo 'source omap2430_env.tcsh'
    223 	@echo 'or'
    224 	@echo 'source omap3430_env.tcsh'
    225 	@echo
    226 	@echo Default Compilation:
    227 	@echo ====================
    228 	@echo HOST_PLATFORM = $(HOST_PLATFORM)  // omap2430 or omap3430
    229 	@echo DEBUG = $(DEBUG) 			// Include debug prints and statistics
    230 	@echo INTR = $(INTR) 
    231 	@echo WSPI = $(WSPI) 
    232 	@echo XCC  = $(XCC) 
    233 	@echo SUPPL  = $(SUPPL) 		// WPA or DEVICESCAPE
    234 	@echo FPGA1273 = $(FPGA1273)		// FPGA device support
    235 	@echo FULL_ASYNC = $(FULL_ASYNC)     	// Use only Asynchronous bus transactions
    236 	@echo USE_IRQ_ACTIVE_HIGH = $(USE_IRQ_ACTIVE_HIGH)      // Use IRQ polarity high
    237 	@echo TEST = $(TEST)		     	// Build also the bus test-driver
    238 	@echo BMTRACE = $(BMTRACE)		// Build also the bmtrace performance tool
    239 	@echo TARGET  = $(TARGET)
    240 	@echo ETH_SUPPORT = $(ETH_SUPPORT)
    241 	@echo
    242 	@echo EXTRA CFLAGS  = $(EXTRA_CFLAGS)
    243 	@echo
    244 #
    245 # Create the images
    246 #
    247 .PHONY: suppl.img voice.img apps.img apps.tar $(BUS_DRV)
    248 MODULES_LIST = tiwlan_drv.ko
    249 TAR_FILE = $(HOST_PLATFORM)Binaries.tar
    250 
    251 apps.tar: apps
    252 ifeq ($(STRIP),y)
    253 	@echo stripping...
    254 	cd $(OUTPUT_DIR) && $(CROSS_COMPILE)strip -g --strip-unneeded $(MODULES_LIST)
    255 #	cd $(DK_ROOT)/external_drivers/$(HOST_PLATFORM)/Linux/$(BUS_DRV) && $(CROSS_COMPILE)strip -g $(BUS_DRIVER_MODULE)
    256 endif
    257 
    258 
    259 
    260 apps.img: apps
    261 	mkcramfs apps apps.cram
    262 	mkimgti -t data -o apps.img apps.cram
    263 
    264 apps: $(OUTPUT_FILE)
    265 #	rm -f $(OUTPUT_DIR)/$(BUS_DRV_REMOVE).ko $(OUTPUT_DIR)/$(BUS_DRV_REMOVE)_test
    266 #	cp -f $(DK_ROOT)/external_drivers/$(HOST_PLATFORM)/Linux/$(BUS_DRV)/$(BUS_DRIVER_MODULE) $(OUTPUT_DIR)
    267 
    268 voice.img: 
    269 	$(MAKEJFFS2) -l -r voice -e 0x10000 -o voice.jffs2
    270 	mkimgti -t data -o voice.img voice.jffs2
    271 
    272 suppl.img:
    273 ifeq ($(BUILD_SUPPL),y) 
    274 	cp -f $(SUPPLICANT) .
    275 endif
    276 	mkcramfs suppl suppl.cram
    277 	mkimgti -t data -o suppl.img suppl.cram
    278 
    279 #
    280 # Recursively cleans the driver, OS, bus and CLI files
    281 #
    282 .PHONY: clean
    283 clean:
    284 	$(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
    285 	$(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
    286 	$(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
    287 #	$(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
    288 #	$(MAKE) -C $(WLAN_CUDK_DIR) CROSS_COMPILE=$(CROSS_COMPILE) BUILD_SUPPL=$(BUILD_SUPPL) SUPPL=$(SUPPL) XCC=$(XCC) clean
    289 #       $(MAKE) -C $(WLAN_CU_CLI_DIR) CROSS_COMPILE=$(CROSS_COMPILE) BUILD_SUPPL=$(BUILD_SUPPL) SUPPL=$(SUPPL) XCC=$(XCC) cleanall
    290 #       $(MAKE) -C $(WLAN_LOADER_DIR) CROSS_COMPILE=$(CROSS_COMPILE) BUILD_SUPPL=$(BUILD_SUPPL) SUPPL=$(SUPPL) XCC=$(XCC) clean
    291 #       $(MAKE) -C $(LINUX_WIRELESS_TOOLS_DIR) CROSS_COMPILE=$(CROSS_COMPILE) BUILD_SUPPL=$(BUILD_SUPPL) SUPPL=$(SUPPL) XCC=$(XCC) clean
    292 #       $(MAKE) -C $(DBG_MDL) ARCH=$(ARCH) CROSS_COMPILE=$(CROSS_COMPILE) KERNEL_DIR=$(KERNEL_DIR) clean
    293 
    294 #	@rm -f suppl.* apps.* voice.*
    295 #	@rm -f *spi*.ko sdio.ko
    296 #	@rm -f $(OUTPUT_DIR)/wlan_cu
    297 	@rm -f $(OUTPUT_DIR)/tiwlan_drv.ko 
    298 #	@rm -f wpa_supplicant 
    299 #	@rm -f $(FW_IMAGE_DEST_FILE)
    300 #	@rm -rf *.o *.a \.*.o.cmd *~ *.~* core .depend dep
    301 
    302 #       @rm -f tiwlan_drv.ko $(OUTPUT_DIR)/gwsi_drv.o $(OUTPUT_DIR)/debug_tools.o
    303 #       @rm -rf $(OUTPUT_DIR)/iwconfig apps/iwlist $(OUTPUT_DIR)/iwevent
    304 
    305 # in order to remove all .*.o.cmd 
    306 	@find ../../../. -type f -print | grep .o.cmd | xargs rm -f
    307 # in order to remove all *.order and *.symvers
    308 	@find ../../../. -type f -print | grep .order | xargs rm -f
    309 	@find ../../../. -type f -print | grep .symvers | xargs rm -f
    310 # in order to remove Module.markers file
    311 	@find ../../../. -type f -print | grep Module.markers | xargs rm -f
    312 # in order to remove the binaries tar
    313 #	@rm -rf $(TAR_FILE)
    314 
    315 
    316 #
    317 # Verifies that all necessary packages are present.
    318 #
    319 .PHONY: verifypackages
    320 verifypackages:
    321 ifeq ($(strip $(HAVE_GPL)),)
    322 	@echo "*** The GPL package does not seem to be present. You will need both the"
    323 	@echo "*** GPL package and the Non GPL package to execute this makefile."
    324 	exit 1
    325 endif
    326 
    327 ifeq ($(strip $(HAVE_NONGPL)),)
    328 	@echo "*** The Non GPL package does not seem to be present. You will need both the"
    329 	@echo "*** GPL package and the Non GPL package to execute this makefile."
    330 	exit 1
    331 endif
    332 
    333 
    334 # Builds the WSPI or SDIO driver
    335 #
    336 $(BUS_DRV):
    337 	$(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
    338 
    339 
    340 #
    341 # Causes the driver and the configuration utility object files to get rebuilt
    342 #
    343 .depend:
    344 	rm -f $(OUTPUT_FILE) $(DRIVER_LIB) $(OS_COMMON) $(OS_LINUX) $(WLAN_CU_CLI) $(WLAN_LOADER) $(WLAN_LOGGER)
    345 
    346 
    347 #
    348 # Build the configuration utility; optionally rebuilds the supplicant
    349 #
    350 #$(SUPPLICANT): $(WLAN_CU_CLI)
    351 
    352 .PHONY: CU_DK
    353 CU_DK:
    354 #	$(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)
    355 
    356 #$(WLAN_CU_CLI):
    357 #        $(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)
    358 
    359 #$(LINUX_WIRELESS_TOOLS):
    360 #       $(MAKE) -C $(LINUX_WIRELESS_TOOLS_DIR) CROSS_COMPILE=$(CROSS_COMPILE)
    361 
    362 #$(WLAN_LOADER):
    363 #        $(MAKE) -C $(WLAN_LOADER_DIR) CROSS_COMPILE=$(CROSS_COMPILE) DEBUG=$(DEBUG) XCC=$(XCC) STATIC_LIB=$(STATIC_LIB) SG=$(SG)
    364 
    365 
    366 #
    367 # Recursively builds the driver lib file
    368 #
    369 $(DRIVER_LIB):
    370 	$(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)
    371 
    372 
    373 #
    374 # Recursively builds the OS lib file
    375 #
    376 $(OS_COMMON):
    377 	$(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)
    378 
    379 
    380 #
    381 # Recursively builds the linux OS stub object file
    382 #
    383 $(OS_LINUX):
    384 	$(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)
    385 
    386 
    387 #
    388 # Recursively builds the driver object file
    389 #
    390 $(OUTPUT_FILE): $(DRIVER_LIB) $(OS_COMMON) $(OS_LINUX)
    391 	mv $(OS_LINUX) $(OUTPUT_FILE)
    392 
    393 .PHONY: link
    394 link:
    395 	$(MAKE) -C $(KERNEL_DIR) M=`pwd` ARCH=arm CROSS_COMPILE=$(CROSS_COMPILE) modules
    396 	mv tiwlan_drv.ko $(OUTPUT_FILE)
    397 
    398 
    399 #
    400 # Builds the debug module object file
    401 #
    402 #$(DBG_MDL)/debug_module.ko:
    403 #       $(MAKE) -C $(DBG_MDL) KERNEL_DIR=$(KERNEL_DIR) 
    404 #       mv $(DBG_MDL)/debug_module.ko $(OUTPUT_DIR)/debug_tools.o
    405 
    406 
    407 #
    408 # Not in use?
    409 #
    410 TAGS: $(SRCS)
    411 	{ find ${DK_ROOT}/common -name '*.h' -print ; \
    412 	  find . -name '*.h' -print ; } | etags -
    413 	  etags -a $(SRCS)
    414 
    415 CTAGS: $(SRCS)
    416 	find ${DK_ROOT} -iname '*.[ch]' -print | ctags --c++-types=+px --excmd=pattern -L -
    417 
    418 
    419 #endif  # ifneq ($(KERNELRELEASE),)
    420