3 # Set the optimisation level - this should be set to 0, 1, 2, 3 or s (s for size).
\r
6 ###############################################################################
\r
7 # List the directories that contain files to be built.
\r
8 ###############################################################################
\r
10 # These two directories contain the FreeRTOS.org kernel source files.
\r
11 FREERTOS_SOURCE_DIR=./../../../Source
\r
12 PORT_SOURCE_DIR=./../../../Source/portable/GCC/ColdFire_V2
\r
14 # This directory contains the standard demo files that get included in every
\r
15 # FreeRTOS.org demo. They define tasks that demonstrate the API usage and
\r
16 # test the FreeRTOS.org port.
\r
17 COMMON_DEMO_SOURCE_DIR=./../../Common/Minimal
\r
19 # This directory contains the modified uIP code
\r
20 FREERTOS_uIP_DIR=./../../Common/ethernet/FreeRTOS-uIP
\r
22 VPATH= $(FREERTOS_SOURCE_DIR) : \
\r
23 $(PORT_SOURCE_DIR) : \
\r
24 $(COMMON_DEMO_SOURCE_DIR) : \
\r
25 $(FREERTOS_SOURCE_DIR)/portable/MemMang : \
\r
26 $(FREERTOS_uIP_DIR) : \
\r
33 ###############################################################################
\r
34 # Define a few constants to be used during the build.
\r
35 ###############################################################################
\r
39 LINKER_SCRIPT=m52235evb-rom-hosted.ld
\r
40 SREC_FILENAME=RTOSDemo.s19
\r
41 ELF_FILENAME=RTOSDemo.elf
\r
44 OBJCOPY=m68K-elf-objcopy
\r
47 ###############################################################################
\r
48 # List the files to include in the build. These files will be located from the
\r
49 # VPATH defined above.
\r
50 ###############################################################################
\r
52 # The FreeRTOS.org source files.
\r
53 FreeRTOS_OBJS= $(OUTPUT_DIR)/portasm.o \
\r
54 $(OUTPUT_DIR)/port.o \
\r
55 $(OUTPUT_DIR)/list.o \
\r
56 $(OUTPUT_DIR)/tasks.o \
\r
57 $(OUTPUT_DIR)/queue.o \
\r
58 $(OUTPUT_DIR)/heap_1.o
\r
60 # The demo app source files, including the basic WEB server.
\r
61 Demo_OBJS= $(OUTPUT_DIR)/main.o \
\r
62 $(OUTPUT_DIR)/ParTest.o \
\r
63 $(OUTPUT_DIR)/flash.o \
\r
64 $(OUTPUT_DIR)/FreeRTOS_Tick_Setup.o \
\r
65 $(OUTPUT_DIR)/BlockQ.o \
\r
66 $(OUTPUT_DIR)/PollQ.o \
\r
67 $(OUTPUT_DIR)/semtest.o \
\r
68 $(OUTPUT_DIR)/GenQTest.o \
\r
69 $(OUTPUT_DIR)/QPeek.o \
\r
70 $(OUTPUT_DIR)/FEC.o \
\r
71 $(OUTPUT_DIR)/blocktim.o \
\r
72 $(OUTPUT_DIR)/recmutex.o \
\r
73 $(OUTPUT_DIR)/printf-stdarg.o
\r
75 HTTP_OBJS= $(OUTPUT_DIR)/uIP_Task.o \
\r
76 $(OUTPUT_DIR)/httpd.o \
\r
77 $(OUTPUT_DIR)/httpd-cgi.o \
\r
78 $(OUTPUT_DIR)/httpd-fs.o \
\r
79 $(OUTPUT_DIR)/http-strings.o
\r
82 uIP_OBJS= $(OUTPUT_DIR)/timer.o \
\r
83 $(OUTPUT_DIR)/uip.o \
\r
84 $(OUTPUT_DIR)/uip_arp.o \
\r
85 $(OUTPUT_DIR)/uiplib.o \
\r
86 $(OUTPUT_DIR)/uip-split.o \
\r
87 $(OUTPUT_DIR)/psock.o
\r
89 OBJS = $(Demo_OBJS) $(FreeRTOS_OBJS) $(uIP_OBJS) $(HTTP_OBJS)
\r
91 C_DEPS = $(OBJS:.o=.d)
\r
93 INCLUDE_PATHS= -I./webserver \
\r
94 -I"$(FREERTOS_uIP_DIR)" \
\r
95 -I"$(FREERTOS_SOURCE_DIR)/include" \
\r
97 -I"$(COMMON_DEMO_SOURCE_DIR)/../include" \
\r
98 -I"$(PORT_SOURCE_DIR)" \
\r
102 CFLAGS= $(INCLUDE_PATHS) \
\r
103 -D COLDFIRE_V2_GCC \
\r
104 -D PACK_STRUCT_END=__attribute\(\(packed\)\) \
\r
105 -D ALIGN_STRUCT_END=__attribute\(\(aligned\(4\)\)\) \
\r
107 -D bktPRIMARY_PRIORITY=4 \
\r
108 -D bktSECONDARY_PRIORITY=3 \
\r
109 -fno-strict-aliasing \
\r
115 -ffunction-sections \
\r
117 -fmessage-length=0 \
\r
123 -MF"$(@:%.o=%.d)" \
\r
128 --register-prefix-optional \
\r
133 # Add inputs and outputs from these tool invocations to the build variables
\r
136 all: $(OUTPUT_DIR)/$(SREC_FILENAME)
\r
138 # Tool invocations
\r
139 $(OUTPUT_DIR)/$(SREC_FILENAME): $(OUTPUT_DIR)/$(ELF_FILENAME)
\r
140 $(OBJCOPY) $(OUTPUT_DIR)/$(ELF_FILENAME) -O srec $(OUTPUT_DIR)/$(SREC_FILENAME)
\r
142 $(OUTPUT_DIR)/$(ELF_FILENAME): $(OBJS)
\r
143 $(CC) -nostartfiles --gc-sections -Xlinker -Map=$(OUTPUT_DIR)/output.map -mcpu=$(CPU) -T $(LINKER_SCRIPT) -o"$(OUTPUT_DIR)/$(ELF_FILENAME)" $(OBJS) $(USER_OBJS) $(LIBS)
\r
145 $(OUTPUT_DIR)/%.o: %.c Makefile
\r
146 $(CC) $(CFLAGS) -o"$@" "$<"
\r
148 $(OUTPUT_DIR)/%.o: %.S
\r
149 $(AS) $(ASFLAGS) -o"$@" "$<"
\r
153 -$(RM) $(OBJS) $(C_DEPS) $(EXECUTABLES) $(OUTPUT_DIR)/$(ELF_FILENAME) $(OUTPUT_DIR)/$(SREC_FILENAME)
\r
157 # The rule to create the target directory
\r
160 @mkdir $(OUTPUT_DIR)
\r
163 .PHONY: all clean dependents
\r
164 .SECONDARY: post-build
\r
166 -include $(wildcard $(OUTPUT_DIR)/*.d) __dummy__
\r