summaryrefslogtreecommitdiff
path: root/hifi/xaf/hifi-dpf/build_hikey/common.mk
diff options
context:
space:
mode:
Diffstat (limited to 'hifi/xaf/hifi-dpf/build_hikey/common.mk')
-rw-r--r--hifi/xaf/hifi-dpf/build_hikey/common.mk156
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)