]> git.sur5r.net Git - freertos/blob - Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/Makefile
git-svn-id: https://svn.code.sf.net/p/freertos/code/trunk@569 1d2547de-c912-0410...
[freertos] / Demo / ColdFire_MCF52233_Eclipse / RTOSDemo / Makefile
1 RM := rm -rf\r
2 \r
3 # Set the optimisation level - this should be set to 0, 1, 2, 3 or s (s for size).\r
4 OPTIM=0\r
5 \r
6 ###############################################################################\r
7 # List the directories that contain files to be built.\r
8 ###############################################################################\r
9 \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
13 \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
18 \r
19 # This directory contains the modified uIP code\r
20 FREERTOS_uIP_DIR=./../../Common/ethernet/FreeRTOS-uIP\r
21 \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
27                         . : \\r
28                         ./webserver : \\r
29                         ./ParTest : \\r
30                         ./serial\r
31 \r
32 \r
33 ###############################################################################\r
34 # Define a few constants to be used during the build.\r
35 ###############################################################################\r
36 \r
37 OUTPUT_DIR=./bin\r
38 CPU=52235\r
39 LINKER_SCRIPT=m52235evb-rom-hosted.ld\r
40 SREC_FILENAME=RTOSDemo.s19\r
41 ELF_FILENAME=RTOSDemo.elf\r
42 CC=m68k-elf-gcc\r
43 AS=m68K-elf-as\r
44 OBJCOPY=m68K-elf-objcopy\r
45 \r
46 \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
51 \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
59 \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
74 \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
80 \r
81 # uIP source files\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
88 \r
89 OBJS = $(Demo_OBJS) $(FreeRTOS_OBJS) $(uIP_OBJS) $(HTTP_OBJS)\r
90                         \r
91 C_DEPS = $(OBJS:.o=.d)\r
92 \r
93 INCLUDE_PATHS=  -I./webserver \\r
94                                 -I"$(FREERTOS_uIP_DIR)" \\r
95                                 -I"$(FREERTOS_SOURCE_DIR)/include" \\r
96                                 -I"include" \\r
97                                 -I"$(COMMON_DEMO_SOURCE_DIR)/../include" \\r
98                                 -I"$(PORT_SOURCE_DIR)" \\r
99                                 -I./MCF5223x \\r
100                                 -I.\r
101 \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
106                         -O$(OPTIM) \\r
107                         -D bktPRIMARY_PRIORITY=4 \\r
108                         -D bktSECONDARY_PRIORITY=3 \\r
109                         -fno-strict-aliasing \\r
110                         -g3 \\r
111                         -gdwarf-2 \\r
112                         -Wall \\r
113                         -Wextra \\r
114                         -c \\r
115                         -ffunction-sections \\r
116                         -fdata-sections \\r
117                         -fmessage-length=0 \\r
118                         -funsigned-char \\r
119                         -Wextra \\r
120                         -mcpu=$(CPU) \\r
121                         -MMD \\r
122                         -MP \\r
123                         -MF"$(@:%.o=%.d)" \\r
124                         -MT"$(@:%.o=%.d)"\r
125 \r
126 ASFLAGS=        -m52235 \\r
127                         -g3 \\r
128                         --register-prefix-optional \\r
129             --bitwise-or\r
130 \r
131 LIBS=\r
132 \r
133 # Add inputs and outputs from these tool invocations to the build variables \r
134 \r
135 # All Target\r
136 all: $(OUTPUT_DIR)/$(SREC_FILENAME)\r
137 \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
141 \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
144 \r
145 $(OUTPUT_DIR)/%.o: %.c Makefile\r
146         $(CC) $(CFLAGS) -o"$@" "$<"\r
147 \r
148 $(OUTPUT_DIR)/%.o: %.S\r
149         $(AS) $(ASFLAGS) -o"$@" "$<"\r
150 \r
151 # Other Targets\r
152 clean:\r
153         -$(RM) $(OBJS) $(C_DEPS) $(EXECUTABLES) $(OUTPUT_DIR)/$(ELF_FILENAME) $(OUTPUT_DIR)/$(SREC_FILENAME)\r
154         -@echo ' '\r
155 \r
156 #\r
157 # The rule to create the target directory\r
158 #\r
159 $(OUTPUT_DIR):\r
160         @mkdir $(OUTPUT_DIR)\r
161 \r
162 \r
163 .PHONY: all clean dependents\r
164 .SECONDARY: post-build\r
165 \r
166 -include $(wildcard $(OUTPUT_DIR)/*.d) __dummy__\r
167 \r