| ### Makefile to build the FreeRTOS library ### |
| |
| # Build target (options: sim, board) |
| |
| TARGET = sim |
| SMALL = |
| |
| # Tools |
| |
| CC = xt-xcc |
| AS = xt-xcc |
| AR = xt-ar |
| XT_CORE = $(patsubst %-params,%,$(notdir $(shell xt-xcc --show-config=core))) |
| CONFIGDIR = $(shell xt-xcc --show-config=config) |
| |
| # For platform-specific commands |
| |
| include $(CONFIGDIR)/misc/hostenv.mk |
| |
| # Source code and build locations |
| |
| SRCROOT = $(subst /,$(S),$(CURDIR)) |
| TSTROOT = $(abspath $(SRCROOT)$(S)..$(S)..$(S)..$(S)..$(S)..$(S)demos$(S)cadence$(S)sim$(SMALL)) |
| BLDROOT = $(TSTROOT)$(S)build |
| BLDDIR = $(BLDROOT)$(S)$(XT_CORE) |
| |
| FR_SRCDIR = $(abspath $(SRCROOT)$(S)..$(S)..$(S)..) |
| FR_SRCDIR2 = $(FR_SRCDIR)$(S)portable$(S)MemMang |
| XT_SRCDIR = $(SRCROOT) |
| |
| vpath %.c $(FR_SRCDIR) $(FR_SRCDIR2) $(XT_SRCDIR) |
| vpath %.S $(XT_SRCDIR) |
| |
| # File lists |
| |
| FR_C_FILES = $(notdir $(wildcard $(FR_SRCDIR)/*.c)) $(notdir $(wildcard $(FR_SRCDIR2)/*.c)) |
| XT_C_FILES = $(notdir $(wildcard $(XT_SRCDIR)/*.c)) |
| XT_S_FILES = $(notdir $(wildcard $(XT_SRCDIR)/*.S)) |
| |
| # List of all .o files that will go into the library |
| |
| LIB_C_O = $(patsubst %.c,%.o,$(XT_C_FILES) $(FR_C_FILES)) |
| LIB_S_O = $(patsubst %.S,%.o,$(XT_S_FILES)) |
| LIB_O_LIST = $(addprefix $(BLDDIR)/,$(LIB_C_O) $(LIB_S_O)) |
| |
| # Output files |
| |
| OSLIB = $(BLDDIR)$(S)libfreertos.a |
| |
| # Build options |
| |
| ifeq ($(TARGET),sim) |
| DFLAGS = -DXT_SIMULATOR |
| endif |
| ifeq ($(TARGET),board) |
| DFLAGS = -DXT_BOARD |
| endif |
| |
| IFLAGS = \ |
| -I$(FR_SRCDIR)$(S)..$(S)include -I$(FR_SRCDIR)$(S)..$(S)include$(S)private \ |
| -I$(XT_SRCDIR) -I$(TSTROOT)$(S)common$(S)config_files -I$(BLDDIR) |
| |
| CFLAGS = -O2 -g |
| CCFLAGS = $(CFLAGS) -Wall -mno-coproc -mlongcalls -ffunction-sections -mno-l32r-flix $(DFLAGS) |
| ASFLAGS = $(CCFLAGS) |
| |
| # Include dependency rules (generated using -MD) |
| |
| -include $(wildcard $(BLDDIR)/*.d) |
| |
| # Targets |
| |
| all : mkdir $(OSLIB) |
| |
| mkdir : $(BLDDIR)/.mkdir |
| |
| $(BLDDIR)/.mkdir : |
| @$(MKPATH) $(BLDDIR) |
| @echo "" > $@ |
| -$(CP) $(CONFIGDIR)/xtensa-elf/include/sys/reent.h $(BLDDIR)/reent.h |
| |
| $(OSLIB) : $(LIB_O_LIST) |
| $(AR) -rs $@ $^ |
| |
| $(BLDDIR)/%.o : %.c |
| $(CC) $(CCFLAGS) $(IFLAGS) -MD -MF $(subst .o,.d,$@) -c -o $@ $< |
| |
| $(BLDDIR)/%.o : %.S |
| $(CC) $(ASFLAGS) $(IFLAGS) -MD -MF $(subst .o,.d,$@) -c -o $@ $< |
| |
| clean : |
| $(RM_R) $(BLDDIR) |
| |
| clean_all : |
| $(RM_R) $(BLDROOT) |
| |
| .PHONY : all mkdir clean clean_all |