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