1#============================================================================ 2# Name: 3# $(TARGET).MAK 4# 5# Description: 6# Makefile to build the $(TARGET) downloadable module. 7# 8# The following nmake targets are available in this makefile: 9# 10# all - make .elf and .mod image files (default) 11# clean - delete object directory and image files 12# filename.o - make object file 13# 14# The above targets can be made with the following command: 15# 16# nmake /f $(TARGET).mak [target] 17# 18# Assumptions: 19# 1. The environment variable ADSHOME is set to the root directory of the 20# arm tools. 21# 2. The version of ADS is 1.2 or above. 22# 23# Notes: 24# None. 25# 26# 27# Copyright � 2000-2003 QUALCOMM Incorporated. 28# All Rights Reserved. 29# QUALCOMM Proprietary/GTDR 30# 31#---------------------------------------------------------------------------- 32#============================================================================ 33BREW_HOME =$(BREWDIR) 34ARM_HOME =$(ARMHOME) 35TARGET =D:\DB7588~1.BRE\BUILD_~1\bdb_brew 36LIST OF OBJECT FILES 37APP_INCLUDES = -I ..\build_brew -I .. 38 39#------------------------------------------------------------------------------- 40# Target file name and type definitions 41#------------------------------------------------------------------------------- 42 43EXETYPE = elf # Target image file format 44MODULE = mod # Downloadable module extension 45 46#------------------------------------------------------------------------------- 47# Target compile time symbol definitions 48# 49# Tells the SDK source stuffs that we're building a dynamic app. 50#------------------------------------------------------------------------------- 51 52DYNAPP = -DDYNAMIC_APP 53 54 55#------------------------------------------------------------------------------- 56# Software tool and environment definitions 57#------------------------------------------------------------------------------- 58 59AEESRCPATH = $(BREW_HOME)\src 60AEEINCPATH = $(BREW_HOME)\inc 61 62ARMBIN = $(ARM_HOME)\bin # ARM ADS application directory 63ARMINC = $(ARM_HOME)\include # ARM ADS include file directory 64ARMLIB = $(ARM_HOME)\lib # ARM ADS library directory 65 66ARMCC = $(ARMBIN)\armcc # ARM ADS ARM 32-bit inst. set ANSI C compiler 67LD = $(ARMBIN)\armlink # ARM ADS linker 68HEXTOOL = $(ARMBIN)\fromelf # ARM ADS utility to create hex file from image 69 70OBJ_CMD = -o # Command line option to specify output filename 71 72#------------------------------------------------------------------------------- 73# Processor architecture options 74#------------------------------------------------------------------------------- 75 76CPU = -cpu ARM7TDMI # ARM7TDMI target processor 77 78#------------------------------------------------------------------------------- 79# ARM Procedure Call Standard (APCS) options 80#------------------------------------------------------------------------------- 81 82ROPI = ropi # Read-Only(code) Position independence 83INTERWRK = interwork # Allow ARM-Thumb interworking 84 85APCS = -apcs /$(ROPI)/$(INTERWRK)/norwpi 86 87#------------------------------------------------------------------------------- 88# Additional compile time error checking options 89#------------------------------------------------------------------------------- 90 91CHK = -fa # Check for data flow anomolies 92 93#------------------------------------------------------------------------------- 94# Compiler output options 95#------------------------------------------------------------------------------- 96 97OUT = -c # Object file output only 98 99#------------------------------------------------------------------------------- 100# Compiler/assembler debug options 101#------------------------------------------------------------------------------- 102 103DBG = -g # Enable debug 104 105#------------------------------------------------------------------------------- 106# Compiler optimization options 107#------------------------------------------------------------------------------- 108 109OPT = -Ospace -O2 # Full compiler optimization for space 110 111#------------------------------------------------------------------------------- 112# Compiler code generation options 113#------------------------------------------------------------------------------- 114 115END = -littleend # Compile for little endian memory architecture 116ZA = -zo # LDR may only access 32-bit aligned addresses 117 118CODE = $(END) $(ZA) 119 120 121#------------------------------------------------------------------------------- 122# Include file search path options 123#------------------------------------------------------------------------------- 124 125INC = -I. -I$(AEEINCPATH) $(APP_INCLUDES) 126 127 128#------------------------------------------------------------------------------- 129# Compiler pragma emulation options 130#------------------------------------------------------------------------------- 131 132 133#------------------------------------------------------------------------------- 134# Linker options 135#------------------------------------------------------------------------------- 136 137LINK_CMD = -o #Command line option to specify output file 138 #on linking 139 140ROPILINK = -ropi #Link image as Read-Only Position Independent 141 142LINK_ORDER = -first AEEMod_Load 143 144#------------------------------------------------------------------------------- 145# HEXTOOL options 146#------------------------------------------------------------------------------- 147 148BINFORMAT = -bin 149 150 151#------------------------------------------------------------------------------- 152# Compiler flag definitions 153#------------------------------------------------------------------------------- 154NO_WARNING= -W 155 156CFLAGS0 = $(OUT) $(DYNAPP) $(CPU) $(APCS) $(CODE) $(CHK) $(DBG) 157CFLAGS = $(NO_WARNING) $(CFLAGS0) $(OPT) 158 159#------------------------------------------------------------------------------- 160# Linker flag definitions 161#------------------------------------------------------------------------------- 162 163# the -entry flag is not really needed, but it keeps the linker from reporting 164# warning L6305W (no entry point). The address 165LFLAGS = $(ROPILINK) -rwpi -entry 0x8000# 166 167#---------------------------------------------------------------------------- 168# Default target 169#---------------------------------------------------------------------------- 170 171all : $(TARGET).$(MODULE) 172 173#---------------------------------------------------------------------------- 174# Clean target 175#---------------------------------------------------------------------------- 176 177# The object subdirectory, target image file, and target hex file are deleted. 178 179clean : 180 @echo --------------------------------------------------------------- 181 @echo CLEAN 182 -del /f $(OBJS) 183 -del /f $(TARGET).$(EXETYPE) 184 -del /f $(TARGET).$(MODULE) 185 @echo --------------------------------------------------------------- 186 187#============================================================================ 188# DEFAULT SUFFIX RULES 189#============================================================================ 190 191# The following are the default suffix rules used to compile all objects that 192# are not specifically included in one of the module specific rules defined 193# in the next section. 194 195# The following macros are used to specify the output object file, MSG_FILE 196# symbol definition and input source file on the compile line in the rules 197# defined below. 198 199SRC_FILE = $(@F:.o=.c) # Input source file specification 200OBJ_FILE = $(OBJ_CMD) $(@F) # Output object file specification 201 202.SUFFIXES : 203.SUFFIXES : .o .dep .c 204 205#-------------------------------------------------------------------------- 206# C code inference rules 207#---------------------------------------------------------------------------- 208 209.c.o: 210 @echo --------------------------------------------------------------- 211 @echo OBJECT $(@F) 212 $(ARMCC) $(CFLAGS) $(INC) $(OBJ_FILE) $(SRC_FILE) 213 @echo --------------------------------------------------------------- 214 215.c.mix: 216 @echo --------------------------------------------------------------- 217 @echo OBJECT $(@F) 218 $(ARMCC) -S -fs $(CFLAGS) $(INC) $(OBJ_FILE) $< 219 @echo --------------------------------------------------------------- 220 221 222{$(AEESRCPATH)}.c.o: 223 @echo --------------------------------------------------------------- 224 @echo OBJECT $(@F) 225 $(ARMCC) $(CFLAGS) $(INC) $(OBJ_FILE) $(AEESRCPATH)\$(SRC_FILE) 226 @echo --------------------------------------------------------------- 227 228 229#=============================================================================== 230# MODULE SPECIFIC RULES 231#=============================================================================== 232 233APP_OBJS = $(OBJS) 234 235 236#---------------------------------------------------------------------------- 237# Lib file targets 238#---------------------------------------------------------------------------- 239 240$(TARGET).$(MODULE) : $(TARGET).$(EXETYPE) 241 @echo --------------------------------------------------------------- 242 @echo TARGET $@ 243 $(HEXTOOL) $(TARGET).$(EXETYPE) $(BINFORMAT) $(TARGET).$(MODULE) 244 245$(TARGET).$(EXETYPE) : $(APP_OBJS) 246 @echo --------------------------------------------------------------- 247 @echo TARGET $@ 248 $(LD) $(LINK_CMD) $(TARGET).$(EXETYPE) $(LFLAGS) $(APP_OBJS) $(LINK_ORDER) 249 250#---------------------------------------------------------------------------- 251# Applet Specific Rules 252#---------------------------------------------------------------------------- 253 254 255RULE1 = ..\clib 256{$(RULE1)}.c.o: 257 @echo --------------------------------------------------------------- 258 @echo OBJECT $(@F) 259 $(ARMCC) $(CFLAGS) $(INC) $(OBJ_FILE) $(RULE1)\$(SRC_FILE) 260 @echo --------------------------------------------------------------- 261 262 263RULE2 = ..\btree 264{$(RULE2)}.c.o: 265 @echo --------------------------------------------------------------- 266 @echo OBJECT $(@F) 267 $(ARMCC) $(CFLAGS) $(INC) $(OBJ_FILE) $(RULE2)\$(SRC_FILE) 268 @echo --------------------------------------------------------------- 269 270 271RULE3 = ..\db 272{$(RULE3)}.c.o: 273 @echo --------------------------------------------------------------- 274 @echo OBJECT $(@F) 275 $(ARMCC) $(CFLAGS) $(INC) $(OBJ_FILE) $(RULE3)\$(SRC_FILE) 276 @echo --------------------------------------------------------------- 277 278 279RULE4 = ..\common 280{$(RULE4)}.c.o: 281 @echo --------------------------------------------------------------- 282 @echo OBJECT $(@F) 283 $(ARMCC) $(CFLAGS) $(INC) $(OBJ_FILE) $(RULE4)\$(SRC_FILE) 284 @echo --------------------------------------------------------------- 285 286 287RULE5 = ..\os_brew 288{$(RULE5)}.c.o: 289 @echo --------------------------------------------------------------- 290 @echo OBJECT $(@F) 291 $(ARMCC) $(CFLAGS) $(INC) $(OBJ_FILE) $(RULE5)\$(SRC_FILE) 292 @echo --------------------------------------------------------------- 293 294 295RULE6 = ..\env 296{$(RULE6)}.c.o: 297 @echo --------------------------------------------------------------- 298 @echo OBJECT $(@F) 299 $(ARMCC) $(CFLAGS) $(INC) $(OBJ_FILE) $(RULE6)\$(SRC_FILE) 300 @echo --------------------------------------------------------------- 301 302 303RULE7 = ..\dbreg 304{$(RULE7)}.c.o: 305 @echo --------------------------------------------------------------- 306 @echo OBJECT $(@F) 307 $(ARMCC) $(CFLAGS) $(INC) $(OBJ_FILE) $(RULE7)\$(SRC_FILE) 308 @echo --------------------------------------------------------------- 309 310 311RULE8 = ..\fileops 312{$(RULE8)}.c.o: 313 @echo --------------------------------------------------------------- 314 @echo OBJECT $(@F) 315 $(ARMCC) $(CFLAGS) $(INC) $(OBJ_FILE) $(RULE8)\$(SRC_FILE) 316 @echo --------------------------------------------------------------- 317 318 319RULE9 = ..\hash 320{$(RULE9)}.c.o: 321 @echo --------------------------------------------------------------- 322 @echo OBJECT $(@F) 323 $(ARMCC) $(CFLAGS) $(INC) $(OBJ_FILE) $(RULE9)\$(SRC_FILE) 324 @echo --------------------------------------------------------------- 325 326 327RULE10 = ..\hmac 328{$(RULE10)}.c.o: 329 @echo --------------------------------------------------------------- 330 @echo OBJECT $(@F) 331 $(ARMCC) $(CFLAGS) $(INC) $(OBJ_FILE) $(RULE10)\$(SRC_FILE) 332 @echo --------------------------------------------------------------- 333 334 335RULE11 = ..\lock 336{$(RULE11)}.c.o: 337 @echo --------------------------------------------------------------- 338 @echo OBJECT $(@F) 339 $(ARMCC) $(CFLAGS) $(INC) $(OBJ_FILE) $(RULE11)\$(SRC_FILE) 340 @echo --------------------------------------------------------------- 341 342 343RULE12 = ..\log 344{$(RULE12)}.c.o: 345 @echo --------------------------------------------------------------- 346 @echo OBJECT $(@F) 347 $(ARMCC) $(CFLAGS) $(INC) $(OBJ_FILE) $(RULE12)\$(SRC_FILE) 348 @echo --------------------------------------------------------------- 349 350 351RULE13 = ..\mp 352{$(RULE13)}.c.o: 353 @echo --------------------------------------------------------------- 354 @echo OBJECT $(@F) 355 $(ARMCC) $(CFLAGS) $(INC) $(OBJ_FILE) $(RULE13)\$(SRC_FILE) 356 @echo --------------------------------------------------------------- 357 358 359RULE14 = ..\mutex 360{$(RULE14)}.c.o: 361 @echo --------------------------------------------------------------- 362 @echo OBJECT $(@F) 363 $(ARMCC) $(CFLAGS) $(INC) $(OBJ_FILE) $(RULE14)\$(SRC_FILE) 364 @echo --------------------------------------------------------------- 365 366 367RULE15 = ..\os 368{$(RULE15)}.c.o: 369 @echo --------------------------------------------------------------- 370 @echo OBJECT $(@F) 371 $(ARMCC) $(CFLAGS) $(INC) $(OBJ_FILE) $(RULE15)\$(SRC_FILE) 372 @echo --------------------------------------------------------------- 373 374 375RULE16 = ..\qam 376{$(RULE16)}.c.o: 377 @echo --------------------------------------------------------------- 378 @echo OBJECT $(@F) 379 $(ARMCC) $(CFLAGS) $(INC) $(OBJ_FILE) $(RULE16)\$(SRC_FILE) 380 @echo --------------------------------------------------------------- 381 382 383RULE17 = ..\rep 384{$(RULE17)}.c.o: 385 @echo --------------------------------------------------------------- 386 @echo OBJECT $(@F) 387 $(ARMCC) $(CFLAGS) $(INC) $(OBJ_FILE) $(RULE17)\$(SRC_FILE) 388 @echo --------------------------------------------------------------- 389 390 391RULE18 = ..\txn 392{$(RULE18)}.c.o: 393 @echo --------------------------------------------------------------- 394 @echo OBJECT $(@F) 395 $(ARMCC) $(CFLAGS) $(INC) $(OBJ_FILE) $(RULE18)\$(SRC_FILE) 396 @echo --------------------------------------------------------------- 397 398 399RULE19 = ..\xa 400{$(RULE19)}.c.o: 401 @echo --------------------------------------------------------------- 402 @echo OBJECT $(@F) 403 $(ARMCC) $(CFLAGS) $(INC) $(OBJ_FILE) $(RULE19)\$(SRC_FILE) 404 @echo --------------------------------------------------------------- 405RULE20 = ..\bdbread 406{$(RULE20)}.c.o: 407 @echo --------------------------------------------------------------- 408 @echo OBJECT $(@F) 409 $(ARMCC) $(CFLAGS) $(INC) $(OBJ_FILE) $(RULE20)\$(SRC_FILE) 410 @echo --------------------------------------------------------------- 411 412# -------------------------------------------- 413# DEPENDENCY LIST, DO NOT EDIT BELOW THIS LINE 414# -------------------------------------------- 415 416bdbread.o : ..\bdbread\bdbread.c 417AEEModGen.o : ..\bdbread\AEEModGen.c 418AEEAppGen.o : ..\bdbread\AEEAppGen.c 419