Baseline update from LYNQ_SDK_ASR_T108_V05.03.01.00(kernel build error.)
Change-Id: I56fc72cd096e82c589920026553170e5cb9692eb
diff --git a/mbtk/mbtk_toolchain_config/Build.defines b/mbtk/mbtk_toolchain_config/Build.defines
new file mode 100755
index 0000000..a7c78ba
--- /dev/null
+++ b/mbtk/mbtk_toolchain_config/Build.defines
@@ -0,0 +1,43 @@
+# Common make definitions, customized for each platform
+
+# Definitions required in all program directories to compile and link
+# C programs using gcc.
+
+INC_DIR += $(addprefix -I, $(MBTK_INC_DIR))
+
+LIB_DIR += $(addprefix -L, $(MBTK_LIB_DIR))
+
+LIBS += $(addprefix -l, $(MBTK_LIBS))
+
+CFLAGS += $(MBTK_CFLAGS)
+
+ifeq ($(MBTK_BUILD_LIB), Y)
+CFLAGS += -shared -Wl,-shared,-Bsymbolic
+endif
+
+DEFINE += $(addprefix -D, $(MBTK_DEFINE))
+
+LOCAL_SRC_FILES := $(foreach dir,$(MBTK_SRC_DIR),$(wildcard $(dir)/*.c)) $(foreach dir,$(MBTK_SRC_DIR),$(wildcard $(dir)/*.cpp))
+
+OBJS = $(patsubst %.c, %.o, $(patsubst %.cpp, %.o, $(LOCAL_SRC_FILES)))
+$(info OBJS = $(OBJS))
+
+ifeq ($(MBTK_BUILD_LIB), Y)
+dtarget := $(OUT_DIR)/lib/lib$(MBTK_PROJECT_NAME).so
+else
+dtarget := $(OUT_DIR)/bin/$(MBTK_PROJECT_NAME)
+endif
+
+all: $(dtarget)
+
+$(dtarget): $(OBJS)
+ $(CC) $(CFLAGS) $(LIB_DIR) $(LIBS) $(OBJS) -o $@
+
+%.o:%.c
+ $(CC) $(CFLAGS) $(INC_DIR) $(DEFINE) -c $< -o $@
+
+%.o:%.cpp
+ $(CC) $(CFLAGS) $(INC_DIR) $(DEFINE) -c $< -o $@
+
+clean:
+ rm -f $(OBJS) $(dtarget)
\ No newline at end of file
diff --git a/mbtk/mbtk_toolchain_config/Make.defines b/mbtk/mbtk_toolchain_config/Make.defines
new file mode 100755
index 0000000..4d6a1df
--- /dev/null
+++ b/mbtk/mbtk_toolchain_config/Make.defines
@@ -0,0 +1,65 @@
+# Common make definitions, customized for each platform
+
+# Definitions required in all program directories to compile and link
+# C programs using gcc.
+
+# static / shared
+BUILD_LIB_TYPE = shared
+
+ROOT = $(BUILD_ROOT)
+OUT_DIR = $(ROOT)/out
+BUILD_TOOLCHAIN_DIR = $(ROOT)/toolchain
+LOCAL_PATH=.
+
+export STAGING_DIR=
+
+CC=$(BUILD_TOOLCHAIN_DIR)/bin/arm-openwrt-linux-gnueabi-gcc
+AR=$(BUILD_TOOLCHAIN_DIR)/bin/arm-openwrt-linux-gnueabi-ar
+
+MAKE=make
+
+$(info BUILD_LIB_TYPE=$(BUILD_LIB_TYPE))
+$(info ROOT=$(ROOT))
+$(info CC=$(CC))
+$(info AR=$(AR))
+
+# -Werror=non-virtual-dtor
+#CFLAGS= --sysroot=$(BUILD_TOOLCHAIN_DIR) -Os -pipe -rdynamic -march=armv7-a -mtune=cortex-a7 -mfpu=neon-vfpv4 -fno-caller-saves -fhonour-copts -Wno-error=unused-but-set-variable -mfloat-abi=hard -fno-exceptions -Wno-multichar -ffunction-sections -fdata-sections -funwind-tables -Wa,--noexecstack -fno-short-enums -no-canonical-prefixes -fno-canonical-system-headers -mfpu=neon -fno-builtin-sin -fno-strict-volatile-bitfields -Wno-psabi -mthumb-interwork -fmessage-length=0 -W -Wall -Wno-unused -Winit-self -Wpointer-arith -g -Wstrict-aliasing=2 -fgcse-after-reload -frerun-cse-after-loop -frename-registers -mthumb -fomit-frame-pointer -fno-strict-aliasing -Werror=format-security -Werror=return-type -Werror=address -Werror=sequence-point -ffunction-sections -Wl,--gc-sections -Wl,--no-undefined -Wno-sign-compare -Wno-pointer-arith
+CFLAGS_DEF = --sysroot=$(BUILD_TOOLCHAIN_DIR) -Os -pipe -rdynamic -march=armv7-a -mtune=cortex-a7 -mfpu=neon-vfpv4 -Wall -Werror -g
+
+CFLAGS_IGNORE_WARN = --sysroot=$(BUILD_TOOLCHAIN_DIR) -Os -pipe -rdynamic -march=armv7-a -mtune=cortex-a7 -mfpu=neon-vfpv4 -fno-caller-saves -fhonour-copts -Wno-error=unused-but-set-variable -mfloat-abi=hard -fno-exceptions -Wno-multichar -ffunction-sections -fdata-sections -funwind-tables -Wa,--noexecstack -fno-short-enums -no-canonical-prefixes -fno-canonical-system-headers -mfpu=neon -fno-builtin-sin -fno-strict-volatile-bitfields -Wno-psabi -mthumb-interwork -fmessage-length=0 -W -Wall -Wno-unused -Winit-self -Wpointer-arith -g -Wstrict-aliasing=2 -fgcse-after-reload -frerun-cse-after-loop -frename-registers -mthumb -fomit-frame-pointer -fno-strict-aliasing -Werror=format-security -Werror=return-type -Werror=address -Werror=sequence-point -ffunction-sections -Wl,--gc-sections -Wl,--no-undefined -Wno-sign-compare -Wno-pointer-arith
+
+AWK=awk
+
+#CFLAGS += -Wno-error=format-truncation -Wno-error=format-overflow= -Wno-error=stringop-overread -Wno-error=deprecated-declarations
+
+CFLAGS=$(CFLAGS_IGNORE_WARN)
+
+INC_DIR = \
+ -I$(LOCAL_PATH)/ \
+ -I$(BUILD_ROOT)/mbtk/include \
+ -I$(BUILD_ROOT)/mbtk/include/mbtk \
+ -I$(BUILD_ROOT)/mbtk/include/lynq \
+ -I$(BUILD_ROOT)/mbtk/include/mqtt \
+ -I$(BUILD_ROOT)/mbtk/include/ql_v2
+
+# -DCONFIG_AB_SYSTEM
+DEFINE = \
+ -DMBTK_SUPPORT \
+ -DMARVELL_EXTENDED \
+ -DPXA1826_AUDIO \
+ -D__USE_GNU \
+ -DNOT_DROPPED_FLAGS_TEST \
+ -DNDEBUG \
+ -UDEBUG \
+ -D_FORTIFY_SOURCE=2 \
+ -D_GNU_SOURCE
+
+# -L$(OUT_DIR)/lib
+LIB_DIR = \
+ -L$(BUILD_ROOT)/mbtk/lib
+
+LIBS = -lpthread -lstdc++
+
+# Common temp files to delete from each directory.
+TEMPFILES=core core.* *.o temp.* *.out
diff --git a/mbtk/mbtk_toolchain_config/Makefile b/mbtk/mbtk_toolchain_config/Makefile
new file mode 100755
index 0000000..58b0270
--- /dev/null
+++ b/mbtk/mbtk_toolchain_config/Makefile
@@ -0,0 +1,50 @@
+BUILD_ROOT = $(shell pwd)
+include Make.defines
+
+#DIRS = helloworld test_ql
+include config
+
+# (cd $$i && echo "making $$i" && $(MAKE))
+all:
+ @echo ROOT=$(ROOT)
+ @echo CC=$(CC)
+ @echo OUT_DIR=$(OUT_DIR)
+ @rm -rf $(OUT_DIR)
+ @ [ ! -d out/bin ] && mkdir -p out/bin
+ @ [ ! -d out/lib ] && mkdir -p out/lib
+ @for i in $(MBTK_BUILD_DIRS); do \
+ if [ -d $$i ];then \
+ ($(MAKE) -C $$i) || exit 1; \
+ fi \
+ done
+ @echo "Success"
+
+clean:
+ @for i in $(MBTK_BUILD_DIRS); do \
+ (cd $$i && echo "Cleaning $$i" && $(MAKE) clean) || exit 1; \
+ done
+ rm -rf $(OUT_DIR)
+
+
+#SUBDIRS := $(wildcard */)
+#SUBDIRS_WITH_MAKEFILES := $(foreach dir,$(SUBDIRS),$(if $(wildcard $(dir)Makefile),$(dir),))
+#
+#all:
+# @echo $(ROOT)
+# @echo $(CC)
+# @echo $(OUT_DIR)
+# @rm -rf $(OUT_DIR)
+# @ [ ! -d out/bin ] && mkdir -p out/bin
+# @ [ ! -d out/lib ] && mkdir -p out/lib
+# @echo DIR=$(SUBDIRS_WITH_MAKEFILES)
+# @for dir in $(SUBDIRS_WITH_MAKEFILES); do \
+# echo "Building $$dir"; \
+# $(MAKE) -C $$dir || exit 1; \
+# done
+#
+#clean:
+# @echo DIR=$(SUBDIRS_WITH_MAKEFILES)
+# @for i in $(SUBDIRS_WITH_MAKEFILES); do \
+# (cd $$i && echo "Cleaning $$i" && $(MAKE) clean) || exit 1; \
+# done
+# rm -rf $(OUT_DIR)
\ No newline at end of file
diff --git a/mbtk/mbtk_toolchain_config/ReadMe.txt b/mbtk/mbtk_toolchain_config/ReadMe.txt
new file mode 100755
index 0000000..1130180
--- /dev/null
+++ b/mbtk/mbtk_toolchain_config/ReadMe.txt
@@ -0,0 +1,13 @@
+说明:
+1、把需要编译的工程放在目录 mbtk_toolchain 下面,可以放置多个工程;
+2、配置需要编译的工程目录:
+ 修改文件 config 中的变量 MBTK_BUILD_DIRS,指定要编译的工程目录,注意:如果工程存在依赖关系,请将被依赖的工程放在前面;
+3、在要编译的工程目录下创建文件 Makefile,可直接从 bin_test/lib_test 中复制;
+4、修改 Makefile ,具体见 bin_test/lib_test 中的 Makefile;
+5、执行 make 命令编译,要clean可执行: make clean
+6、编译成功后,如果是可执行文件位于 out/bin ;如果是库文件位于 out/lib
+
+
+注:平台库文件 ql_lib/lynq_lib 是开源的,代码分别位于SDK的 mbtk/libql_lib_v2_rilv2 和 mbtk/liblynq_lib_rilv2,如果修改了这部分代码可能需要重新生成编译工具链。
+ 在SDK中编译完成后可执行如下命令生成上述编译工具链 : ./build.sh toolchain
+
diff --git a/mbtk/mbtk_toolchain_config/bin_test/Makefile b/mbtk/mbtk_toolchain_config/bin_test/Makefile
new file mode 100755
index 0000000..f49a76d
--- /dev/null
+++ b/mbtk/mbtk_toolchain_config/bin_test/Makefile
@@ -0,0 +1,33 @@
+BUILD_ROOT = $(shell pwd)/..
+include $(BUILD_ROOT)/Make.defines
+LOCAL_PATH=$(shell pwd)
+
+#####################################################################
+
+# 工程名(编译后生成文件名)
+MBTK_PROJECT_NAME=bin_test
+
+# 编译库文件或可执行文件(Y/N),N为编译可执行文件
+MBTK_BUILD_LIB=N
+
+# 指定代码路径,用空格分隔(不支持子目录)
+MBTK_SRC_DIR=$(LOCAL_PATH)/src
+
+# 指定依赖的头文件目录,用空格分隔
+MBTK_INC_DIR=$(LOCAL_PATH)/inc $(BUILD_ROOT)/lib_test/inc
+
+# 指定依赖的库文件目录,用空格分隔
+MBTK_LIB_DIR=$(BUILD_ROOT)/out/lib
+
+# 指定依赖的库文件,用空格分隔
+MBTK_LIBS=mbtk_lib ql_lib lib_test
+
+# 指定额外的编译选项,用空格分隔
+MBTK_CFLAGS=
+
+# 指定需要添加的宏,用空格分隔,如 MBTK_TEST_SUPPORT
+MBTK_DEFINE=
+
+
+######################################################################
+include $(BUILD_ROOT)/Build.defines
diff --git a/mbtk/mbtk_toolchain_config/bin_test/inc/helloworld.h b/mbtk/mbtk_toolchain_config/bin_test/inc/helloworld.h
new file mode 100755
index 0000000..3ba512c
--- /dev/null
+++ b/mbtk/mbtk_toolchain_config/bin_test/inc/helloworld.h
@@ -0,0 +1,6 @@
+#ifndef _HELLO_WORLD_H
+#define _HELLO_WORLD_H
+
+#define HELLO_WORLD "Hello World!"
+
+#endif /* _HELLO_WORLD_H */
\ No newline at end of file
diff --git a/mbtk/mbtk_toolchain_config/bin_test/src/main.c b/mbtk/mbtk_toolchain_config/bin_test/src/main.c
new file mode 100755
index 0000000..40f73f5
--- /dev/null
+++ b/mbtk/mbtk_toolchain_config/bin_test/src/main.c
@@ -0,0 +1,11 @@
+#include <stdio.h>
+
+#include "helloworld.h"
+#include "lib_test.h"
+
+int main(int argc, char *argv[])
+{
+ printf("%s\n", HELLO_WORLD);
+
+ return test_at("ATI");
+}
\ No newline at end of file
diff --git a/mbtk/mbtk_toolchain_config/config b/mbtk/mbtk_toolchain_config/config
new file mode 100755
index 0000000..5f9e5ac
--- /dev/null
+++ b/mbtk/mbtk_toolchain_config/config
@@ -0,0 +1,2 @@
+# 指定需要编译的工程,如果工程存在依赖关系,请将被依赖的工程放在前面。
+MBTK_BUILD_DIRS = lib_test bin_test
diff --git a/mbtk/mbtk_toolchain_config/lib_test/Makefile b/mbtk/mbtk_toolchain_config/lib_test/Makefile
new file mode 100755
index 0000000..aa76930
--- /dev/null
+++ b/mbtk/mbtk_toolchain_config/lib_test/Makefile
@@ -0,0 +1,33 @@
+BUILD_ROOT = $(shell pwd)/..
+include $(BUILD_ROOT)/Make.defines
+LOCAL_PATH=$(shell pwd)
+
+#####################################################################
+
+# 工程名(编译后生成文件名)
+MBTK_PROJECT_NAME=lib_test
+
+# 编译库文件或可执行文件(Y/N),N为编译可执行文件
+MBTK_BUILD_LIB=Y
+
+# 指定代码路径,用空格分隔(不支持子目录)
+MBTK_SRC_DIR=$(LOCAL_PATH)/src
+
+# 指定依赖的头文件目录,用空格分隔
+MBTK_INC_DIR=$(LOCAL_PATH)/inc
+
+# 指定依赖的库文件目录,用空格分隔
+MBTK_LIB_DIR=
+
+# 指定依赖的库文件,用空格分隔
+MBTK_LIBS=mbtk_lib ql_lib
+
+# 指定额外的编译选项,用空格分隔
+MBTK_CFLAGS=
+
+# 指定需要添加的宏,用空格分隔,如 MBTK_TEST_SUPPORT
+MBTK_DEFINE=
+
+
+######################################################################
+include $(BUILD_ROOT)/Build.defines
diff --git a/mbtk/mbtk_toolchain_config/lib_test/inc/lib_test.h b/mbtk/mbtk_toolchain_config/lib_test/inc/lib_test.h
new file mode 100755
index 0000000..ddb17b2
--- /dev/null
+++ b/mbtk/mbtk_toolchain_config/lib_test/inc/lib_test.h
@@ -0,0 +1,6 @@
+#ifndef _LIB_TEST_H
+#define _LIB_TEST_H
+
+int test_at(const char *argv);
+
+#endif /* _LIB_TEST_H */
\ No newline at end of file
diff --git a/mbtk/mbtk_toolchain_config/lib_test/src/lib_test.c b/mbtk/mbtk_toolchain_config/lib_test/src/lib_test.c
new file mode 100755
index 0000000..460582c
--- /dev/null
+++ b/mbtk/mbtk_toolchain_config/lib_test/src/lib_test.c
@@ -0,0 +1,25 @@
+#include <stdio.h>
+#include "ql_atc.h"
+
+int test_at(char *argv)
+{
+ if(ql_atc_init()) {
+ printf("ql_atc_init() fail.\n");
+ return -1;
+ }
+
+ char resp[1024];
+ if(ql_atc_send(argv, resp, sizeof(resp))) {
+ printf("ql_atc_send() fail.\n");
+ return -1;
+ }
+
+ if(ql_atc_deinit()) {
+ printf("ql_atc_deinit() fail.\n");
+ return -1;
+ }
+
+ printf("RSP : %s\n", resp);
+
+ return 0;
+}