1 2 3 ## 4 ## 5 ## Make Flags 6 ## 7 ## 8 9 NO_ARCH_STRCMP ?= y 10 NO_USERMODE_WORKAROUND ?= n 11 MEM_ALLOC_TRACE ?= n 12 STACK_PROFILING_ON ?= n 13 14 ## 15 ## 16 ## File lists and locations 17 ## 18 ## 19 20 # 21 # DK_ROOT must be set prior to including common.inc 22 # 23 DK_ROOT = ../../../.. 24 25 # 26 # Includes common definitions and source file list 27 # 28 ifneq ($(KERNELRELEASE),) 29 include $(M)/$(DK_ROOT)/stad/build/linux/common.inc 30 include $(M)/$(DK_ROOT)/platforms/os/linux/build/os_sources.inc 31 else 32 include $(DK_ROOT)/stad/build/linux/common.inc 33 include $(DK_ROOT)/platforms/os/linux/build/os_sources.inc 34 endif 35 36 37 # 38 # List of linux OS files needed to be compiled 39 # 40 OS_SRCS = \ 41 $(DK_ROOT)/platforms/os/linux/src/WlanDrvIf.c \ 42 $(DK_ROOT)/platforms/os/linux/src/osapi.c \ 43 $(DK_ROOT)/platforms/os/linux/src/osmemapi.c \ 44 $(DK_ROOT)/platforms/os/linux/src/osRgstry_parser.c \ 45 $(DK_ROOT)/platforms/os/linux/src/ipc_k.c \ 46 $(DK_ROOT)/platforms/os/linux/src/WlanDrvWext.c \ 47 $(DK_ROOT)/platforms/os/linux/src/CmdInterpretWext.c \ 48 $(DK_ROOT)/platforms/os/linux/src/RxBuf.c \ 49 $(DK_ROOT)/platforms/hw/linux/host_platform.c \ 50 $(DK_ROOT)/external_drivers/sdio/linux/SdioDrv.c 51 # $(DK_ROOT)/platforms/hw/host_platform_$(HOST_PLATFORM)/linux/host_platform.c 52 53 ifeq ($(STACK_PROFILING_ON),y) 54 OS_SRCS += $(DK_ROOT)/platforms/os/linux/src/stack_profile.c 55 EXTRA_CFLAGS += -D STACK_PROFILE 56 endif 57 58 ifeq ($(NO_ARCH_STRCMP),y) 59 OS_SRCS += $(DK_ROOT)/platforms/os/linux/src/string.c 60 endif 61 62 OS_INCS = $(DK_ROOT)/platforms/os/linux/inc $(DK_ROOT)/platforms/os/linux/src $(DK_ROOT)/platforms/os/common/inc 63 #OS_INCS += $(DK_ROOT)/stad/src/core/EvHandler $(DK_ROOT)/Test $(DK_ROOT)/platforms/hw/host_platform_$(HOST_PLATFORM)/linux 64 OS_INCS += $(DK_ROOT)/stad/src/core/EvHandler $(DK_ROOT)/Test $(DK_ROOT)/platforms/hw/linux 65 66 ifeq ($(WSPI),y) 67 OS_SRCS += $(DK_ROOT)/platforms/hw/host_platform_$(HOST_PLATFORM)/linux/WspiAdapter.c 68 OS_INCS += $(EXT_DRV)/$(HOST_PLATFORM)/Linux/spi 69 endif 70 71 ifeq ($(WSPI),n) 72 # OS_SRCS += $(DK_ROOT)/platforms/hw/host_platform_$(HOST_PLATFORM)/linux/SdioAdapter.c 73 # OS_INCS += $(EXT_DRV)/$(HOST_PLATFORM)/Linux/sdio 74 OS_SRCS += $(DK_ROOT)/platforms/hw/linux/SdioAdapter.c 75 OS_INCS += $(EXT_DRV)/sdio/linux 76 endif 77 78 OS_OBJS = $(patsubst %.c, %.o, $(OS_SRCS)) 79 80 # 81 # OS include paths required for compilation. 82 # 83 84 85 # 86 # Firmware 87 # 88 FW_SRCS = ./firmware.c ./radio.c 89 FW_OBJS = $(patsubst %.c, %.o, $(FW_SRCS)) 90 ifeq "$(FW)" "1273" 91 FW_IMAGE = $(DK_ROOT)/fw/Latest/Fw1273.bin 92 else 93 FW_IMAGE = $(DK_ROOT)/fw/Latest/Fw1251rc1.bin 94 endif 95 RAD_IMAGE = $(DK_ROOT)/fw/Latest/nvs_map.bin 96 97 98 # 99 # Location and filename of the linux OS stub object file created by this makefile. 100 # 101 OUTPUT_DIR = $(DK_ROOT)/platforms/os/linux/build 102 OUTPUT_FILE = $(OUTPUT_DIR)/tiwlan_drv_stub.o 103 OUTPUT_LIB = $(OUTPUT_DIR)/tiwlan_drv_stub.a 104 105 106 107 108 109 ## 110 ## 111 ## Compilation Directives 112 ## 113 ## 114 ifeq ($(NO_USERMODE_WORKAROUND),y) 115 EXTRA_CFLAGS += -D NO_USERMODE_WORKAROUND 116 endif 117 118 ifeq ($(POLLING_MODE),y) 119 EXTRA_CFLAGS += -D TIWLAN_OMAP1610_IRQ=0 120 endif 121 122 ifeq ($(MEM_ALLOC_TRACE),y) 123 EXTRA_CFLAGS += -D TI_MEM_ALLOC_TRACE 124 endif 125 126 127 128 129 130 ## 131 ## 132 ## Build process 133 ## 134 ## 135 136 ifneq ($(KERNELRELEASE),) 137 138 139 ## 140 ## 141 ## This is the kernel build phase - set the appropriate arguments 142 ## 143 ## 144 145 # 146 # Adds the current directory as a prefix to all include directories. 147 # 148 EXTRA_CFLAGS += $(addprefix -I$(M)/, $(OS_DK_INCS) $(OS_INCS)) 149 150 # 151 # Intermediate object name - this should be renamed to the desired object name 152 # after the kernel makefile finishes its work. 153 # 154 obj-m = tiwlan_drv.o 155 # 156 # List of object files the kernel makefile needs to compile. 157 # 158 tiwlan_drv-y = $(OS_OBJS) $(OS_AUXILIARY_LIBS) 159 160 161 else # ifneq ($(KERNELRELEASE),) 162 163 164 ## 165 ## 166 ## This is the regular build phase - act according to the make actions 167 ## 168 ## 169 170 # 171 # The location of the kernel makefile 172 # 173 KERNEL_DIR ?= $(KERNEL_DIR) 174 175 176 # 177 # Build the linux OS stub object file 178 # 179 .PHONY: all 180 all: .depend $(OUTPUT_DIR) $(OUTPUT_FILE) 181 182 # 183 # Prints variables 184 # 185 .PHONY: help 186 help: 187 @echo Default Compilation: PLATFORM=$(PLATFORM) DEBUG=$(DEBUG) INTR=$(INTR) WSPI=$(WSPI) XCC=$(XCC) EXTRA CFLAGS: $(EXTRA_CFLAGS) 188 189 190 # 191 # Recursively cleans the linux OS stub object files 192 # 193 .PHONY: clean 194 clean: 195 $(MAKE) -C $(KERNEL_DIR) M=`pwd` ARCH=arm CROSS_COMPILE=$(CROSS_COMPILE) clean 196 @rm -f *.o *.a .*.o.cmd *~ *.~* core .depend dep $(OS_OBJS) $(FW_SRCS) $(FW_OBJS) 197 198 199 # 200 # Causes the linux OS stub object file to get rebuilt 201 # 202 .depend: 203 rm -f $(OUTPUT_FILE) 204 205 # 206 # Make sure the output directory exists 207 # 208 $(OUTPUT_DIR): 209 mkdir -p $(OUTPUT_DIR) 210 211 # 212 # Recursively builds the linux OS stub object file 213 # 214 $(OUTPUT_FILE): 215 $(MAKE) -C $(KERNEL_DIR) M=`pwd` ARCH=arm CROSS_COMPILE=$(CROSS_COMPILE) modules 216 $(CROSS_COMPILE)$(AR) rcs $(OUTPUT_LIB) $(OS_OBJS) 217 mv tiwlan_drv.ko $(OUTPUT_FILE) 218 219 220 # 221 # Handles firmware image and radio module for when firmware is statically linked 222 # 223 $(BIN2C): $(BIN2C).c 224 gcc $^ -o $@ 225 226 firmware.c: $(FW_IMAGE) $(BIN2C) 227 $(BIN2C) $< tiwlan_fwimage > $@ 228 229 radio.c: $(RAD_IMAGE) $(BIN2C) 230 $(BIN2C) $< tiwlan_radimage > $@ 231 232 233 endif # ifneq ($(KERNELRELEASE),) 234 235