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