diff options
Diffstat (limited to 'hifi/xaf/hifi-dpf/build_hikey/common.mk')
-rw-r--r-- | hifi/xaf/hifi-dpf/build_hikey/common.mk | 156 |
1 files changed, 156 insertions, 0 deletions
diff --git a/hifi/xaf/hifi-dpf/build_hikey/common.mk b/hifi/xaf/hifi-dpf/build_hikey/common.mk new file mode 100644 index 00000000..ef4429ea --- /dev/null +++ b/hifi/xaf/hifi-dpf/build_hikey/common.mk @@ -0,0 +1,156 @@ +# +# Copyright (C) 2018 Cadence Design Systems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining +# a copy of this software and associated documentation files (the +# "Software"), to use this Software with Cadence processor cores only and +# not with any other processors and platforms, subject to +# the following conditions: +# +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +# + +QUIET = +MAPFILE = map_$(CODEC_NAME).txt +LDSCRIPT = ldscript_$(CODEC_NAME).txt +SYMFILE = symbols_$(CODEC_NAME).txt +ELFTOBIN = $(ROOTDIR)/build_hikey/tools/elftobin.sh + +ifeq ($(CPU), gcc) + S = / + AR = ar + OBJCOPY = objcopy + CC = gcc + CXX = g++ + CFLAGS += -fno-exceptions -DCSTUB=1 + CFLAGS += -ffloat-store + CFLAGS += -DHIFI3_CSTUB + RM = rm -f + RM_R = rm -rf + MKPATH = mkdir -p + CP = cp -f + INCLUDES += \ + -I$(ROOTDIR)/test/include +else + AR = xt-ar $(XTCORE) + OBJCOPY = xt-objcopy $(XTCORE) + CC = xt-xcc $(XTCORE) + CXX = xt-xc++ $(XTCORE) + ISS = xt-run $(XTCORE) + CONFIGDIR := $(shell $(ISS) --show-config=config) + include $(CONFIGDIR)/misc/hostenv.mk + #CFLAGS += -Wall + #CFLAGS += -Werror + #CFLAGS += -mno-mul16 -mno-mul32 -mno-div32 -fsigned-char -fno-exceptions -mlongcalls -INLINE:requested -mcoproc -fno-zero-initialized-in-bss + CFLAGS += -mlongcalls -mtext-section-literals + ASMFLAGS += -mlongcalls +endif + +OBJDIR = objs$(S)$(CODEC_NAME) +LIBDIR = $(ROOTDIR)$(S)lib + +OBJ_LIBO2OBJS = $(addprefix $(OBJDIR)/,$(LIBO2OBJS)) +OBJ_LIBOSOBJS = $(addprefix $(OBJDIR)/,$(LIBOSOBJS)) +OBJ_LIBO2CPPOBJS = $(addprefix $(OBJDIR)/,$(LIBO2CPPOBJS)) +OBJ_LIBOSCPPOBJS = $(addprefix $(OBJDIR)/,$(LIBOSCPPOBJS)) +OBJ_LIBASMOBJS = $(addprefix $(OBJDIR)/,$(LIBASMOBJS)) + +TEMPOBJ = temp.o + +ifeq ($(CPU), gcc) + LIBOBJ = $(OBJDIR)/xgcc_$(CODEC_NAME).o + LIB = xgcc_$(CODEC_NAME).img +else + LIBOBJ = $(OBJDIR)/xa_$(CODEC_NAME).o + LIB = xa_$(CODEC_NAME).img +endif + +CFLAGS += \ + $(EXTRA_CFLAGS) $(EXTRA_CFLAGS2) + + +ifeq ($(DEBUG),1) + NOSTRIP = 1 + OPT_O2 = -O0 -g + OPT_OS = -O0 -g + CFLAGS += -DDEBUG +else +ifeq ($(CPU), gcc) + OPT_O2 = -O2 -g + OPT_OS = -O2 -g +else + #OPT_O2 = -O3 -LNO:simd + OPT_O2 = -g -O2 + OPT_OS = -Os +endif +endif + +OPT_ASM = -g -Wa,--gdwarf-2 + + +all: $(OBJDIR) $(LIB) +$(CODEC_NAME): $(OBJDIR) $(LIB) + +install: $(LIB) + @echo "Installing $(LIB)" + $(QUIET) -$(MKPATH) "$(LIBDIR)" + $(QUIET) $(CP) $(LIB) "$(LIBDIR)" + +$(OBJDIR): + $(QUIET) -$(MKPATH) $@ + +ifeq ($(NOSTRIP), 1) +$(LIBOBJ): $(OBJ_LIBO2OBJS) $(OBJ_LIBOSOBJS) $(OBJ_LIBO2CPPOBJS) $(OBJ_LIBOSCPPOBJS) $(OBJ_LIBASMOBJS) $(PLUGINLIBS) + @echo "Linking Objects" + $(QUIET) $(CXX) -c $(OPT_O2) $(CFLAGS) -o $@ $^ \ + -Wl,-Map,$(MAPFILE) --no-standard-libraries \ + $(LDFLAGS) $(EXTRA_LDFLAGS) +else +$(LIBOBJ): $(OBJ_LIBO2OBJS) $(OBJ_LIBOSOBJS) $(OBJ_LIBO2CPPOBJS) $(OBJ_LIBOSCPPOBJS) $(OBJ_LIBASMOBJS) $(PLUGINLIBS) + @echo "Linking Objects" + $(QUIET) $(CXX) -c $(OPT_O2) $(CFLAGS) -o $@ $^ \ + -Wl,-Map,$(MAPFILE) --no-standard-libraries \ + -Wl,--retain-symbols-file,$(SYMFILE) \ + $(IPA_FLAGS) $(LDFLAGS) $(EXTRA_LDFLAGS) + $(QUIET) $(OBJCOPY) --keep-global-symbols=$(SYMFILE) $@ $(TEMPOBJ) + $(QUIET) $(OBJCOPY) --strip-unneeded $(TEMPOBJ) $@ + $(QUIET) -$(RM) $(TEMPOBJ) +endif + + +$(OBJ_LIBO2OBJS): $(OBJDIR)/%.o: %.c + @echo "Compiling $<" + $(QUIET) $(CC) -o $@ $(OPT_O2) $(CFLAGS) $(INCLUDES) -c $< + +$(OBJ_LIBOSOBJS): $(OBJDIR)/%.o: %.c + @echo "Compiling $<" + $(QUIET) $(CC) -o $@ $(OPT_OS) $(CFLAGS) $(INCLUDES) -c $< + +$(OBJ_LIBO2CPPOBJS): $(OBJDIR)/%.o: %.cpp + @echo "Compiling $<" + $(QUIET) $(CXX) -o $@ $(OPT_O2) $(CFLAGS) $(INCLUDES) -c $< + +$(OBJ_LIBOSCPPOBJS): $(OBJDIR)/%.o: %.cpp + @echo "Compiling $<" + $(QUIET) $(CXX) -o $@ $(OPT_OS) $(CFLAGS) $(INCLUDES) -c $< + +$(OBJ_LIBASMOBJS): $(OBJDIR)/%.o: %.S + @echo "Compiling $<" + $(QUIET) $(CC) -o $@ $(OPT_ASM) $(ASMFLAGS) $(INCLUDES) -c $< + +$(LIB): %.img: $(OBJDIR)/%.o + @echo "Creating Library $@" + $(ELFTOBIN) $< $@ + +clean: + -$(RM) $(LIB) $(MAPFILE) + -$(RM_R) $(OBJDIR) $(LIBDIR) |