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;
+}