| ### 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 | |