]> git.sur5r.net Git - freertos/blob - FreeRTOS/Source/portable/ThirdParty/XCC/Xtensa/Makefile
Add Xtensa port
[freertos] / FreeRTOS / Source / portable / ThirdParty / XCC / Xtensa / Makefile
1 ### Makefile to build the FreeRTOS library ###\r
2 \r
3 # Build target (options: sim, board)\r
4 \r
5 TARGET      = sim\r
6 SMALL       =\r
7 \r
8 # Tools\r
9 \r
10 CC          = xt-xcc\r
11 AS          = xt-xcc\r
12 AR          = xt-ar\r
13 XT_CORE     = $(patsubst %-params,%,$(notdir $(shell xt-xcc --show-config=core)))\r
14 CONFIGDIR   = $(shell xt-xcc --show-config=config)\r
15 \r
16 # For platform-specific commands\r
17 \r
18 include $(CONFIGDIR)/misc/hostenv.mk\r
19 \r
20 # Source code and build locations\r
21 \r
22 SRCROOT     = $(subst /,$(S),$(CURDIR))\r
23 TSTROOT     = $(abspath $(SRCROOT)$(S)..$(S)..$(S)..$(S)..$(S)..$(S)demos$(S)cadence$(S)sim$(SMALL))\r
24 BLDROOT     = $(TSTROOT)$(S)build\r
25 BLDDIR      = $(BLDROOT)$(S)$(XT_CORE)\r
26 \r
27 FR_SRCDIR   = $(abspath $(SRCROOT)$(S)..$(S)..$(S)..)\r
28 FR_SRCDIR2  = $(FR_SRCDIR)$(S)portable$(S)MemMang\r
29 XT_SRCDIR   = $(SRCROOT)\r
30 \r
31 vpath %.c $(FR_SRCDIR) $(FR_SRCDIR2) $(XT_SRCDIR)\r
32 vpath %.S $(XT_SRCDIR)\r
33 \r
34 # File lists\r
35 \r
36 FR_C_FILES  = $(notdir $(wildcard $(FR_SRCDIR)/*.c)) $(notdir $(wildcard $(FR_SRCDIR2)/*.c))\r
37 XT_C_FILES  = $(notdir $(wildcard $(XT_SRCDIR)/*.c))\r
38 XT_S_FILES  = $(notdir $(wildcard $(XT_SRCDIR)/*.S))\r
39 \r
40 # List of all .o files that will go into the library\r
41 \r
42 LIB_C_O     = $(patsubst %.c,%.o,$(XT_C_FILES) $(FR_C_FILES))\r
43 LIB_S_O     = $(patsubst %.S,%.o,$(XT_S_FILES))\r
44 LIB_O_LIST  = $(addprefix $(BLDDIR)/,$(LIB_C_O) $(LIB_S_O))\r
45 \r
46 # Output files\r
47 \r
48 OSLIB       = $(BLDDIR)$(S)libfreertos.a\r
49 \r
50 # Build options\r
51 \r
52 ifeq ($(TARGET),sim)\r
53 DFLAGS      = -DXT_SIMULATOR\r
54 endif\r
55 ifeq ($(TARGET),board)\r
56 DFLAGS      = -DXT_BOARD\r
57 endif\r
58 \r
59 IFLAGS      = \\r
60   -I$(FR_SRCDIR)$(S)..$(S)include -I$(FR_SRCDIR)$(S)..$(S)include$(S)private \\r
61   -I$(XT_SRCDIR) -I$(TSTROOT)$(S)common$(S)config_files -I$(BLDDIR)\r
62 \r
63 CFLAGS      = -O2 -g\r
64 CCFLAGS     = $(CFLAGS) -Wall -mno-coproc -mlongcalls -ffunction-sections -mno-l32r-flix $(DFLAGS)\r
65 ASFLAGS     = $(CCFLAGS)\r
66 \r
67 # Include dependency rules (generated using -MD)\r
68 \r
69 -include $(wildcard $(BLDDIR)/*.d)\r
70 \r
71 # Targets\r
72 \r
73 all : mkdir $(OSLIB)\r
74 \r
75 mkdir : $(BLDDIR)/.mkdir\r
76 \r
77 $(BLDDIR)/.mkdir :\r
78         @$(MKPATH) $(BLDDIR)\r
79         @echo "" > $@\r
80         -$(CP) $(CONFIGDIR)/xtensa-elf/include/sys/reent.h $(BLDDIR)/reent.h\r
81 \r
82 $(OSLIB) : $(LIB_O_LIST)\r
83         $(AR) -rs $@ $^\r
84 \r
85 $(BLDDIR)/%.o : %.c\r
86         $(CC) $(CCFLAGS) $(IFLAGS) -MD -MF $(subst .o,.d,$@) -c -o $@ $<\r
87 \r
88 $(BLDDIR)/%.o : %.S\r
89         $(CC) $(ASFLAGS) $(IFLAGS) -MD -MF $(subst .o,.d,$@) -c -o $@ $<\r
90 \r
91 clean :\r
92         $(RM_R) $(BLDDIR)\r
93 \r
94 clean_all :\r
95         $(RM_R) $(BLDROOT)\r
96 \r
97 .PHONY : all mkdir clean clean_all\r
98 \r