Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Kernel Liteos A
提交
c26ca519
K
Kernel Liteos A
项目概览
OpenHarmony
/
Kernel Liteos A
大约 2 年 前同步成功
通知
475
Star
414
Fork
55
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
4
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
K
Kernel Liteos A
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
4
Issue
4
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
c26ca519
编写于
8月 30, 2021
作者:
O
openharmony_ci
提交者:
Gitee
8月 30, 2021
浏览文件
操作
浏览文件
下载
差异文件
!579 优化构建脚本
Merge pull request !579 from Caoruihong/optimize_build_scripts
上级
7cb2ad67
df35eb51
变更
24
隐藏空白更改
内联
并排
Showing
24 changed file
with
421 addition
and
394 deletion
+421
-394
BUILD.gn
BUILD.gn
+120
-95
Kconfig
Kconfig
+43
-20
Makefile
Makefile
+19
-10
apps/Makefile
apps/Makefile
+4
-10
apps/app.mk
apps/app.mk
+12
-1
apps/config.mk
apps/config.mk
+17
-17
apps/shell/Makefile
apps/shell/Makefile
+5
-9
apps/shell/include/show.h
apps/shell/include/show.h
+3
-3
apps/tftp/Makefile
apps/tftp/Makefile
+3
-6
arch/arm/BUILD.gn
arch/arm/BUILD.gn
+2
-9
arch/arm/arm.mk
arch/arm/arm.mk
+5
-9
arch/arm/arm/Makefile
arch/arm/arm/Makefile
+1
-1
arch/arm/arm/src/los_hw.c
arch/arm/arm/src/los_hw.c
+2
-2
bsd/Makefile
bsd/Makefile
+2
-2
config.mk
config.mk
+8
-0
kernel/extended/vdso/usr/BUILD.gn
kernel/extended/vdso/usr/BUILD.gn
+3
-12
kernel/extended/vdso/usr/Makefile
kernel/extended/vdso/usr/Makefile
+2
-6
kernel/user/BUILD.gn
kernel/user/BUILD.gn
+1
-2
kernel/user/Makefile
kernel/user/Makefile
+8
-9
lib/libc/Makefile
lib/libc/Makefile
+0
-1
liteos.gni
liteos.gni
+10
-0
platform/BUILD.gn
platform/BUILD.gn
+0
-1
tools/build/mk/los_config.mk
tools/build/mk/los_config.mk
+37
-40
tools/build/mk/module.mk
tools/build/mk/module.mk
+114
-129
未找到文件。
BUILD.gn
浏览文件 @
c26ca519
...
@@ -84,7 +84,7 @@ exec_script("//build/lite/run_shell_cmd.py",
...
@@ -84,7 +84,7 @@ exec_script("//build/lite/run_shell_cmd.py",
" --file-list kconfig_files.txt" +
" --file-list kconfig_files.txt" +
" --env-list kconfig_env.txt" +
" --env-list kconfig_env.txt" +
" --config-out config.gni",
" --config-out config.gni",
])
]
, "", [ liteos_config_file ]
)
import("liteos.gni")
import("liteos.gni")
...
@@ -126,6 +126,19 @@ config("arch_config") {
...
@@ -126,6 +126,19 @@ config("arch_config") {
cflags = liteos_arch_cflags
cflags = liteos_arch_cflags
asmflags = cflags
asmflags = cflags
ldflags = cflags
ldflags = cflags
if (defined(LOSCFG_ARCH_ARM_AARCH32)) {
if (!defined(LOSCFG_COMPILER_CLANG_LLVM)) {
cflags += ["-mthumb-interwork"]
}
}
if (defined(LOSCFG_THUMB)) {
cflags += [ "-mthumb" ]
if (defined(LOSCFG_COMPILER_CLANG_LLVM)) {
cflags += [ "-mimplicit-it=thumb" ]
} else {
cflags += [ "-Wa,-mimplicit-it=thumb" ]
}
}
}
}
config("as_objs_libc_flags") {
config("as_objs_libc_flags") {
...
@@ -141,133 +154,111 @@ config("as_objs_libc_flags") {
...
@@ -141,133 +154,111 @@ config("as_objs_libc_flags") {
}
}
}
}
config("std
_include
") {
config("std
inc_config
") {
std_include = exec_script("//build/lite/run_shell_cmd.py", [ "$cc -print-file-name=include" ], "trim string")
std_include = exec_script("//build/lite/run_shell_cmd.py", [ "$cc -print-file-name=include" ], "trim string")
cflags = [
cflags = [
"-isystem",
"-isystem",
std_include,
std_include,
]
]
cflags += [ "-nostdinc" ]
asmflags = cflags
asmflags = cflags
}
}
config("public") {
config("ssp_config") {
configs = [
cflags = []
"arch:public",
if (defined(LOSCFG_CC_STACKPROTECTOR_ALL)) {
"platform:public",
cflags += [ "-fstack-protector-all" ]
"kernel:public",
} else if (defined(LOSCFG_CC_STACKPROTECTOR_STRONG)) {
"compat:public",
cflags += [ "-fstack-protector-strong" ]
"bsd:public",
} else if (defined(LOSCFG_CC_STACKPROTECTOR)) {
"fs:public",
cflags += [
"drivers:public",
"-fstack-protector",
"security:public",
"--param",
"net:public",
"ssp-buffer-size=4",
"shell:public",
]
"lib:public",
} else {
]
cflags += [ "-fno-stack-protector" ]
configs += [
"$HDFTOPDIR:public",
"//drivers/liteos:public",
]
if (HAVE_DEVICE_SDK) {
configs += [ "$device_path:public" ]
}
}
asmflags = cflags
}
}
config("los_nostdinc") {
config("optimize_config") {
cflags = [ "-nostdinc" ]
cflags = []
}
if (defined(LOSCFG_COMPILE_DEBUG)) {
cflags += [
config("los_nostdlib") {
"-g",
ldflags = [ "-nostdlib" ]
"-gdwarf-2",
]
optimization_cflag = "-O0"
}
if (defined(LOSCFG_COMPILE_OPTIMIZE)) {
optimization_cflag = "-O2"
}
if (defined(LOSCFG_COMPILE_OPTIMIZE_SIZE)) {
if (defined(LOSCFG_COMPILER_CLANG_LLVM)) {
optimization_cflag = "-Oz"
} else {
optimization_cflag = "-Os"
}
cflags += [ "-flto" ]
}
cflags += [ optimization_cflag ]
asmflags = cflags
}
}
config("
los_common
") {
config("
kconfig_config
") {
cflags = [
cflags = [
"-imacros",
"-imacros",
"$LITEOS_MENUCONFIG_H",
"$LITEOS_MENUCONFIG_H",
]
]
asmflags = cflags
}
config("warn_config") {
cflags = [
"-Wall",
"-Werror",
"-Wpointer-arith",
"-Wstrict-prototypes",
"-Winvalid-pch",
"-Wno-address-of-packed-member",
]
if (defined(LOSCFG_QUICK_START)) {
cflags -= [ "-Werror" ]
}
asmflags = cflags
}
config("dialect_config") {
cflags_c = [ "-std=c99" ]
cflags_cc = [ "-std=c++11" ]
}
config("misc_config") {
defines = [ "__LITEOS__" ]
defines = [ "__LITEOS__" ]
if (!defined(LOSCFG_DEBUG_VERSION)) {
if (!defined(LOSCFG_DEBUG_VERSION)) {
defines += [ "NDEBUG" ]
defines += [ "NDEBUG" ]
}
}
cflags_c = [ "-std=c99" ]
cflags = [
cflags += [
"-fno-pic",
"-fno-pic",
"-fno-builtin",
"-fno-builtin",
"-Wall",
"-Werror",
"-fms-extensions",
"-fms-extensions",
"-Wno-address-of-packed-member",
"-fno-strict-aliasing",
"-fno-strict-aliasing",
"-fno-common",
"-fno-common",
"-fsigned-char",
"-fsigned-char",
"-Wpointer-arith",
"-Wstrict-prototypes",
"-Winvalid-pch",
"-ffunction-sections",
"-ffunction-sections",
"-fdata-sections",
"-fdata-sections",
"-fno-exceptions",
"-fno-exceptions",
"-fno-omit-frame-pointer",
"-fno-omit-frame-pointer",
"-fno-short-enums",
"-fno-short-enums",
"-mno-unaligned-access",
]
]
if (defined(LOSCFG_QUICK_START)) {
cflags -= [ "-Werror" ]
}
if (defined(LOSCFG_COMPILE_DEBUG)) {
cflags += [
"-O0",
"-g",
"-gdwarf-2",
]
} else {
if (defined(LOSCFG_COMPILER_CLANG_LLVM)) {
cflags += [
"-Oz",
"-flto",
]
} else {
cflags += [ "-O2" ]
}
}
if (defined(LOSCFG_CC_STACKPROTECTOR_ALL)) {
cflags += [ "-fstack-protector-all" ]
} else if (defined(LOSCFG_CC_STACKPROTECTOR_STRONG)) {
cflags += [ "-fstack-protector-strong" ]
} else if (defined(LOSCFG_CC_STACKPROTECTOR)) {
cflags += [
"-fstack-protector",
"--param",
"ssp-buffer-size=4",
]
} else {
cflags += [ "-fno-stack-protector" ]
}
if (!defined(LOSCFG_COMPILER_CLANG_LLVM)) {
if (!defined(LOSCFG_COMPILER_CLANG_LLVM)) {
cflags += [ "-fno-aggressive-loop-optimizations" ]
cflags += [ "-fno-aggressive-loop-optimizations" ]
if (!defined(LOSCFG_ARCH_ARM_AARCH64)) {
cflags += [
"-mno-unaligned-access",
"-mthumb-interwork",
]
}
}
if (defined(LOSCFG_THUMB)) {
cflags += [ "-mthumb" ]
if (defined(LOSCFG_COMPILER_CLANG_LLVM)) {
cflags += [ "-mimplicit-it=thumb" ]
} else {
cflags += [ "-Wa,-mimplicit-it=thumb" ]
}
}
}
asmflags = cflags
asmflags = cflags
...
@@ -275,11 +266,14 @@ config("los_common") {
...
@@ -275,11 +266,14 @@ config("los_common") {
config("los_config") {
config("los_config") {
configs = [
configs = [
":los_common",
":arch_config",
":arch_config",
":los_nostdinc",
":kconfig_config",
":los_nostdlib",
":stdinc_config",
":std_include",
":dialect_config",
":optimize_config",
":ssp_config",
":warn_config",
":misc_config",
]
]
}
}
...
@@ -290,6 +284,7 @@ executable("liteos") {
...
@@ -290,6 +284,7 @@ executable("liteos") {
ldflags = [
ldflags = [
"-static",
"-static",
"-nostdlib",
"-Wl,--gc-sections",
"-Wl,--gc-sections",
"-Wl,-Map=$liteos_name.map",
"-Wl,-Map=$liteos_name.map",
"-Wl,--no-eh-frame-hdr",
"-Wl,--no-eh-frame-hdr",
...
@@ -299,15 +294,20 @@ executable("liteos") {
...
@@ -299,15 +294,20 @@ executable("liteos") {
libs = [ libgcc ]
libs = [ libgcc ]
if (defined(LOSCFG_COMPILER_CLANG_LLVM)) {
if (defined(LOSCFG_COMPILER_CLANG_LLVM)) {
ldflags += [ "-Wl,-T" + rebase_path("tools/build/liteos_llvm.ld", root_build_dir) ]
ldflags += [ "-Wl,-T" + rebase_path("tools/build/liteos_llvm.ld", root_build_dir) ]
inputs = [ "tools/build/liteos_llvm.ld" ]
} else {
} else {
ldflags += [ "-Wl,-T" + rebase_path("tools/build/liteos.ld", root_build_dir) ]
ldflags += [ "-Wl,-T" + rebase_path("tools/build/liteos.ld", root_build_dir) ]
ldflags += [ "-Wl,-nostartfiles" ]
ldflags += [ "-Wl,-nostartfiles" ]
inputs = [ "tools/build/liteos.ld" ]
}
}
inputs += [ "$root_out_dir/board.ld" ]
output_dir = target_out_dir
output_dir = target_out_dir
output_name = liteos_name
output_name = liteos_name
deps = [
deps = [
"platform:board.ld",
":modules",
":modules",
]
]
}
}
...
@@ -330,6 +330,31 @@ build_ext_component("build_kernel_image") {
...
@@ -330,6 +330,31 @@ build_ext_component("build_kernel_image") {
command += " && sh -c '$objdump -d $liteos_name >$liteos_name.asm'"
command += " && sh -c '$objdump -d $liteos_name >$liteos_name.asm'"
}
}
config("public") {
configs = [
"arch:public",
"platform:public",
"kernel:public",
"compat:public",
"bsd:public",
"fs:public",
"drivers:public",
"security:public",
"net:public",
"shell:public",
"lib:public",
]
configs += [
"$HDFTOPDIR:public",
"//drivers/liteos:public",
]
if (HAVE_DEVICE_SDK) {
configs += [ "$device_path:public" ]
}
}
group("modules") {
group("modules") {
deps = [
deps = [
"arch",
"arch",
...
@@ -347,7 +372,7 @@ group("modules") {
...
@@ -347,7 +372,7 @@ group("modules") {
]
]
deps += [
deps += [
"$HDFTOPDIR"
,
HDFTOPDIR
,
"//drivers/liteos",
"//drivers/liteos",
]
]
...
...
Kconfig
浏览文件 @
c26ca519
...
@@ -26,27 +26,56 @@
...
@@ -26,27 +26,56 @@
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
#
# For a description of the syntax of this configuration file,
# see extra/config/Kconfig-language.txt
#
mainmenu "Huawei LiteOS Configuration"
mainmenu "Huawei LiteOS Configuration"
menu "Compiler"
menu "Compiler"
choice
choice
prompt "
LiteOS_Compiler_T
ype"
prompt "
Compiler t
ype"
default COMPILER_CLANG_LLVM
default COMPILER_CLANG_LLVM
help
help
Enable arm-himix100 or aarch64-himix100 or compiler.
Choose compiler type.
config COMPILER_GCC
bool "GCC"
config COMPILER_HIMIX_32
config CROSS_COMPILE
bool "arm-linux-ohoseabi"
string "GCC cross-compile toolchain prefix"
depends on COMPILER_GCC
default "arm-linux-ohoseabi-" if ARCH_ARM_AARCH32
config COMPILER_CLANG_LLVM
config COMPILER_CLANG_LLVM
bool "clang-llvm"
bool "Clang"
config LLVM_TARGET
string "Clang LLVM target"
depends on COMPILER_CLANG_LLVM
default "arm-liteos" if ARCH_ARM_AARCH32
endchoice
endchoice
config COMPILE_DEBUG
bool "Enable debug options"
default n
help
Answer Y to add -g option in compile command.
config COMPILE_OPTIMIZE
bool "Enable code optimization options"
default y
help
Answer Y to add optimization options for efficient code.
The final binary size will be smaller and execute faster.
But the debugging experience may be worst somehow.
config COMPILE_OPTIMIZE_SIZE
bool "Enable code size optimization options" if COMPILE_OPTIMIZE
default y
help
Answer Y to add optimization options for small code size.
The final binary size will be smaller.
But the compile time may be much longer.
endmenu
endmenu
menu "Platform"
menu "Platform"
...
@@ -123,11 +152,11 @@ source "net/Kconfig"
...
@@ -123,11 +152,11 @@ source "net/Kconfig"
######################## config options of debug ########################
######################## config options of debug ########################
menu "Debug"
menu "Debug"
config
COMPILE_DEBUG
config
GDB
bool "Enable
GCC -g Option
"
bool "Enable
gdb functions
"
default n
default n
help
help
Answer Y to
add -g option in gcc command. But the LiteOS size will be much larger
.
Answer Y to
enable gdb functions
.
config PLATFORM_ADAPT
config PLATFORM_ADAPT
bool "Enable Os_adapt"
bool "Enable Os_adapt"
...
@@ -164,16 +193,10 @@ config ENABLE_MAGICKEY
...
@@ -164,16 +193,10 @@ config ENABLE_MAGICKEY
config THUMB
config THUMB
bool "Enable Thumb"
bool "Enable Thumb"
default n
default n
select INTERWORK_THUMB
depends on ARCH_ARM
help
help
Answer Y to build thumb version. This will make LiteOS smaller.
Answer Y to build thumb version. This will make LiteOS smaller.
config INTERWORK_THUMB
bool "Enable interwork Thumb" if THUMB
default n
help
Answer Y to enable interwork thumb.
config PLATFORM_DVFS
config PLATFORM_DVFS
bool "Enable Dvfs"
bool "Enable Dvfs"
default n
default n
...
...
Makefile
浏览文件 @
c26ca519
...
@@ -60,7 +60,7 @@ CONFIG ?= $(PRODUCT_PATH)/kernel_configs/debug$(tee).config
...
@@ -60,7 +60,7 @@ CONFIG ?= $(PRODUCT_PATH)/kernel_configs/debug$(tee).config
endif
endif
KCONFIG_CONFIG
?=
$(CONFIG)
KCONFIG_CONFIG
?=
$(CONFIG)
SYSROOT_PATH
?=
$(
LITEOSTOPDIR)
/../../prebuilts/lite
/sysroot
SYSROOT_PATH
?=
$(
OUT)
/sysroot
LITEOS_MENUCONFIG_H
?=
$(LITEOSTOPDIR)
/config.h
LITEOS_MENUCONFIG_H
?=
$(LITEOSTOPDIR)
/config.h
LITEOS_CONFIG_FILE
?=
$(LITEOSTOPDIR)
/.config
LITEOS_CONFIG_FILE
?=
$(LITEOSTOPDIR)
/.config
...
@@ -95,7 +95,6 @@ ROOTFS_DIR = $(OUT)/rootfs
...
@@ -95,7 +95,6 @@ ROOTFS_DIR = $(OUT)/rootfs
ROOTFS_ZIP
=
$(OUT)
/rootfs.zip
ROOTFS_ZIP
=
$(OUT)
/rootfs.zip
define
HELP
=
define
HELP
=
-------------------------------------------------------
Usage
:
make [TARGET]... [PARAMETER=VALUE]...
Usage
:
make [TARGET]... [PARAMETER=VALUE]...
Targets
:
Targets
:
...
@@ -116,7 +115,6 @@ Parameters:
...
@@ -116,7 +115,6 @@ Parameters:
RELEASE
:
boolean value(1 or y for true)
,
build release version
RELEASE
:
boolean value(1 or y for true)
,
build release version
CONFIG
:
kernel config file to be use
CONFIG
:
kernel config file to be use
args
:
arguments for xxconfig command
args
:
arguments for xxconfig command
-------------------------------------------------------
endef
endef
export
HELP
export
HELP
...
@@ -126,11 +124,21 @@ help:
...
@@ -126,11 +124,21 @@ help:
$(HIDE)
echo
"
$$
HELP"
$(HIDE)
echo
"
$$
HELP"
sysroot
:
sysroot
:
$(HIDE)
echo
"sysroot:"
$(
abspath
$(SYSROOT_PATH)
)
ifeq
($(LOSCFG_COMPILER_CLANG_LLVM), y)
ifeq
($(LOSCFG_COMPILER_CLANG_LLVM), y)
ifeq
($(wildcard $(SYSROOT_PATH)/usr/include/$(LLVM_TARGET)/),)
ifeq
($(origin SYSROOT_PATH),file)
$(HIDE)$(MAKE)
-C
$(SYSROOT_PATH)
/build
TARGETS
=
liteos_a_user
$(HIDE)
mkdir
-p
$(SYSROOT_PATH)
/build
&&
cd
$(SYSROOT_PATH)
/build
&&
\
ln
-snf
$(LITEOSTOPDIR)
/../../prebuilts/lite/sysroot/build/Makefile
&&
\
$(MAKE)
TARGETS
=
liteos_a_user
\
ARCH
=
$(ARCH)
\
TARGET
=
$(LOSCFG_LLVM_TARGET)
\
ARCH_CFLAGS
=
"
$(LITEOS_CORE_COPTS)
-w"
\
TOPDIR
=
"
$(LITEOSTOPDIR)
/../.."
\
SYSROOTDIR
=
"
$(SYSROOT_PATH)
"
\
CLANG
=
"
$(LITEOS_COMPILER_PATH)
clang"
\
BUILD_ALL_MULTILIB
=
false
\
BUILD_DEBUG
=
$(
if
$(
patsubst
y,,
$(
or
$(RELEASE:1=y)
,n
))
,true,false
)
endif
endif
$(HIDE)
echo
"sysroot:"
$(
abspath
$(SYSROOT_PATH)
)
endif
endif
$(KCONFIG_CMDS)
:
$(KCONFIG_CMDS)
:
...
@@ -142,7 +150,7 @@ $(LITEOS_CONFIG_FILE): $(KCONFIG_CONFIG)
...
@@ -142,7 +150,7 @@ $(LITEOS_CONFIG_FILE): $(KCONFIG_CONFIG)
update_config
:
update_config
:
$(HIDE)
test
-f
"
$(CONFIG)
"
&&
cp
-v
"
$(CONFIG)
"
.config
&&
menuconfig
&&
savedefconfig
--out
"
$(CONFIG)
"
$(HIDE)
test
-f
"
$(CONFIG)
"
&&
cp
-v
"
$(CONFIG)
"
.config
&&
menuconfig
&&
savedefconfig
--out
"
$(CONFIG)
"
$(LITEOS_LIBS_TARGET)
:
$(LITEOS_LIBS_TARGET)
:
sysroot
$(HIDE)
for
dir
in
$(LIB_SUBDIRS)
;
do
$(MAKE)
-C
$$
dir
all
||
exit
1
;
done
$(HIDE)
for
dir
in
$(LIB_SUBDIRS)
;
do
$(MAKE)
-C
$$
dir
all
||
exit
1
;
done
$(LITEOS_TARGET)
:
$(OUT)/$(LITEOS_TARGET)
$(LITEOS_TARGET)
:
$(OUT)/$(LITEOS_TARGET)
...
@@ -167,14 +175,14 @@ $(OUT)/$(LITEOS_TARGET).asm: $(OUT)/$(LITEOS_TARGET)
...
@@ -167,14 +175,14 @@ $(OUT)/$(LITEOS_TARGET).asm: $(OUT)/$(LITEOS_TARGET)
$(OUT)/$(LITEOS_TARGET).size
:
$(OUT)/$(LITEOS_TARGET)
$(OUT)/$(LITEOS_TARGET).size
:
$(OUT)/$(LITEOS_TARGET)
$(NM)
-S
--size-sort
$<
>
$@
$(NM)
-S
--size-sort
$<
>
$@
$(APPS)
:
$(APPS)
:
sysroot
$(HIDE)$(MAKE)
-C
apps all
$(HIDE)$(MAKE)
-C
apps all
$(ROOTFS)
:
$(APPS)
$(ROOTFS)
:
$(APPS)
$(HIDE)
mkdir
-p
$(OUT)
/musl
$(HIDE)
mkdir
-p
$(OUT)
/musl
ifeq
($(LOSCFG_COMPILER_CLANG_LLVM), y)
ifeq
($(LOSCFG_COMPILER_CLANG_LLVM), y)
$(HIDE)
cp
-fp
$$
(
$(CC)
--target
=
$(LLVM_TARGET)
--sysroot
=
$(SYSROOT_PATH)
$(LITEOS_CFLAGS)
-print-file-name
=
libc.so
)
$(OUT)
/musl
$(HIDE)
cp
-fp
$$
(
$(CC)
$(LITEOS_CFLAGS)
-print-file-name
=
libc.so
)
$(OUT)
/musl
$(HIDE)
cp
-fp
$$
(
$(GPP)
--target
=
$(LLVM_TARGET)
--sysroot
=
$(SYSROOT_PATH)
$(LITEOS_CXXFLAGS)
-print-file-name
=
libc++.so
)
$(OUT)
/musl
$(HIDE)
cp
-fp
$$
(
$(GPP)
$(LITEOS_CXXFLAGS)
-print-file-name
=
libc++.so
)
$(OUT)
/musl
else
else
$(HIDE)
cp
-fp
$$
(
$(CC)
$(LITEOS_CFLAGS)
-print-file-name
=
libc.so
)
$(OUT)
/musl
$(HIDE)
cp
-fp
$$
(
$(CC)
$(LITEOS_CFLAGS)
-print-file-name
=
libc.so
)
$(OUT)
/musl
$(HIDE)
cp
-fp
$$
(
$(CC)
$(LITEOS_CFLAGS)
-print-file-name
=
libgcc_s.so.1
)
$(OUT)
/musl
$(HIDE)
cp
-fp
$$
(
$(CC)
$(LITEOS_CFLAGS)
-print-file-name
=
libgcc_s.so.1
)
$(OUT)
/musl
...
@@ -189,6 +197,7 @@ endif
...
@@ -189,6 +197,7 @@ endif
$(HIDE)
cd
$(ROOTFS_DIR)
/..
&&
zip
-r
$(ROOTFS_ZIP)
$(ROOTFS)
$(HIDE)
cd
$(ROOTFS_DIR)
/..
&&
zip
-r
$(ROOTFS_ZIP)
$(ROOTFS)
clean
:
clean
:
$(HIDE)
if
[
-d
$(SYSROOT_PATH)
/build
]
;
then
$(MAKE)
-C
$(SYSROOT_PATH)
/build clean
;
fi
$(HIDE)
for
dir
in
$(LIB_SUBDIRS)
apps
;
do
$(MAKE)
-C
$$
dir
clean
||
exit
1
;
done
$(HIDE)
for
dir
in
$(LIB_SUBDIRS)
apps
;
do
$(MAKE)
-C
$$
dir
clean
||
exit
1
;
done
$(HIDE)$(RM)
$(LITEOS_MENUCONFIG_H)
$(HIDE)$(RM)
$(LITEOS_MENUCONFIG_H)
$(HIDE)
echo
"clean
$(LOSCFG_PLATFORM)
finish"
$(HIDE)
echo
"clean
$(LOSCFG_PLATFORM)
finish"
...
...
apps/Makefile
浏览文件 @
c26ca519
...
@@ -34,20 +34,14 @@ export APPSTOPDIR
...
@@ -34,20 +34,14 @@ export APPSTOPDIR
include
$(APPSTOPDIR)/config.mk
include
$(APPSTOPDIR)/config.mk
HIDE
:=
@
all
:
APPS
:=
app
all
:
$(APPS)
# Make
$(APPS)
:
ifneq
($(APP_SUBDIRS), )
ifneq
($(APP_SUBDIRS), )
$(HIDE)
for
dir
in
$(APP_SUBDIRS)
;
do
$(MAKE)
-C
$$
dir
||
exit
1
;
done
$(HIDE)
for
dir
in
$(APP_SUBDIRS)
;
do
$(MAKE)
-C
$$
dir
all
||
exit
1
;
done
endif
endif
clean
:
clean
:
ifneq
($(APP_SUBDIRS), )
ifneq
($(APP_SUBDIRS), )
$(HIDE)
for
dir
in
$(APP_SUBDIRS)
;
do
$(MAKE)
-C
$$
dir
clean
;
done
$(HIDE)
for
dir
in
$(APP_SUBDIRS)
;
do
$(MAKE)
-C
$$
dir
clean
||
exit
1
;
done
endif
endif
.PHONY
:
all
$(APPS)
clean
.PHONY
:
all clean
apps/app.mk
浏览文件 @
c26ca519
...
@@ -52,6 +52,17 @@ LOCAL_CPPGCH := $(patsubst %.h,%.h.gch,$(LOCAL_CPPHS))
...
@@ -52,6 +52,17 @@ LOCAL_CPPGCH := $(patsubst %.h,%.h.gch,$(LOCAL_CPPHS))
all
:
$(APP)
all
:
$(APP)
define
ECHO
=
ifeq
($$(HIDE),@)
_$(1)
:=
$
(
$(1)
)
$(1)
=
echo
"
$(1)
"
$
$(
patsubst
$
$(OUT)
/%,%,
$$
@
)
&&
$$
(
_
$(1)
)
endif
endef
$(foreach
cmd,CC
GPP
AS,$(eval
$(call
ECHO,$(cmd))))
LOCAL_FLAGS
+=
-MD
-MP
-include
$(LOCAL_OBJS:%.o=%.d)
$(LOCAL_COBJS)
:
$(OBJOUT)/%.o: %.c
$(LOCAL_COBJS)
:
$(OBJOUT)/%.o: %.c
$(HIDE)$(OBJ_MKDIR)
$(HIDE)$(OBJ_MKDIR)
$(HIDE)$(CC)
$(CFLAGS)
$(LOCAL_FLAGS)
$(LOCAL_CFLAGS)
-c
$<
-o
$@
$(HIDE)$(CC)
$(CFLAGS)
$(LOCAL_FLAGS)
$(LOCAL_CFLAGS)
-c
$<
-o
$@
...
@@ -83,7 +94,7 @@ LOCAL_GCH := $(LOCAL_CGCH) $(LOCAL_CPPGCH)
...
@@ -83,7 +94,7 @@ LOCAL_GCH := $(LOCAL_CGCH) $(LOCAL_CPPGCH)
$(LOCAL_OBJS)
:
$(LOCAL_GCH)
$(LOCAL_OBJS)
:
$(LOCAL_GCH)
$(APP)
:
$(LOCAL_OBJS)
$(APP)
:
$(LOCAL_OBJS)
$(HIDE)$(OBJ_MKDIR)
$(HIDE)$(OBJ_MKDIR)
$(HIDE)$(GPP)
$(LDFLAGS)
$^
-o
$@
$(HIDE)$(GPP)
$(LDFLAGS)
-o
$@
$^
clean
:
clean
:
$(HIDE)$(RM)
$(APP)
$(OBJOUT)
$(LOCAL_GCH)
*
.bak
*
~
$(HIDE)$(RM)
$(APP)
$(OBJOUT)
$(LOCAL_GCH)
*
.bak
*
~
...
...
apps/config.mk
浏览文件 @
c26ca519
...
@@ -29,25 +29,16 @@
...
@@ -29,25 +29,16 @@
include
$(LITEOSTOPDIR)/config.mk
include
$(LITEOSTOPDIR)/config.mk
ifeq
($(LOSCFG_COMPILER_CLANG_LLVM), y)
LLVM_SYSROOT
:=
--sysroot
=
$(SYSROOT_PATH)
endif
# common flags config
# common flags config
BASE_OPTS
:=
-D_FORTIFY_SOURCE
=
2
-D_GNU_SOURCE
BASE_OPTS
:=
-D_FORTIFY_SOURCE
=
2
-D_GNU_SOURCE
$(LITEOS_GCOV_OPTS)
BASE_OPTS
+=
-ffunction-sections
-fdata-sections
-fno-omit-frame-pointer
-fno-common
-fno-strict-aliasing
BASE_OPTS
+=
-fstack-protector-strong
-Wall
-Werror
-flto
BASE_OPTS
+=
$(LITEOS_CORE_COPTS)
$(LLVM_EXTRA_OPTS)
$(LLVM_SYSROOT)
$(LITEOS_GCOV_OPTS)
ifeq
($(LOSCFG_COMPILER_CLANG_LLVM), y)
ASFLAGS
:=
OPTMIZE_OPTS
=
-Oz
CFLAGS
:=
$(LITEOS_COPTS)
$(BASE_OPTS)
-fPIE
else
CXXFLAGS
:=
$(LITEOS_CXXOPTS)
$(BASE_OPTS)
-fPIE
OPTMIZE_OPTS
=
-O2
LDFLAGS
:=
$(LITEOS_CORE_COPTS)
-pie
-Wl
,-z,relro,-z,now
-O2
endif
CFLAGS
:=
-std
=
c99
-fPIE
-fno-exceptions
$(BASE_OPTS)
$(OPTMIZE_OPTS)
CFLAGS
:=
$(
filter-out
-fno-pic
-fno-builtin
-nostdinc
-nostdlib
,
$(CFLAGS)
)
CXXFLAGS
:=
-std
=
c++11
-fPIE
-fexceptions
-fpermissive
-frtti
$(BASE_OPTS)
$(OPTMIZE_OPTS)
CXXFLAGS
:=
$(
filter-out
-fno-pic
-fno-builtin
-nostdinc
-nostdlib
-nostdinc
++,
$(CXXFLAGS)
)
LDFLAGS
:=
-pie
-Wl
,-z,relro,-z,now
-O2
$(BASE_OPTS)
$(LLVM_EXTRA_LD_OPTS)
# alias variable config
# alias variable config
HIDE
:=
@
HIDE
:=
@
...
@@ -57,9 +48,9 @@ CP := cp -rf
...
@@ -57,9 +48,9 @@ CP := cp -rf
MV
:=
mv
-f
MV
:=
mv
-f
APP
:=
$(APPSTOPDIR)
/app.mk
APP
:=
$(APPSTOPDIR)
/app.mk
APP_SUBDIRS
:=
##build modules config##
##build modules config##
APP_SUBDIRS
:=
ifeq
($(LOSCFG_SHELL), y)
ifeq
($(LOSCFG_SHELL), y)
APP_SUBDIRS
+=
shell
APP_SUBDIRS
+=
shell
...
@@ -74,3 +65,12 @@ endif
...
@@ -74,3 +65,12 @@ endif
ifeq
($(LOSCFG_NET_LWIP_SACK_TFTP), y)
ifeq
($(LOSCFG_NET_LWIP_SACK_TFTP), y)
APP_SUBDIRS
+=
tftp
APP_SUBDIRS
+=
tftp
endif
endif
# clear all local variables
LOCAL_FLAGS
:=
LOCAL_CFLAGS
:=
LOCAL_CPPFLAGS
:=
LOCAL_ASFLAGS
:=
LOCAL_SRCS
:=
LOCAL_CHS
:=
LOCAL_CPPHS
:=
apps/shell/Makefile
浏览文件 @
c26ca519
...
@@ -31,18 +31,14 @@ include $(APPSTOPDIR)/config.mk
...
@@ -31,18 +31,14 @@ include $(APPSTOPDIR)/config.mk
APP_NAME
:=
$(
notdir
$(
shell
pwd
))
APP_NAME
:=
$(
notdir
$(
shell
pwd
))
SECUREC_
INCLUDE
:=
$(LITEOSTHIRDPARTY)
/bounds_checking_function/include
SECUREC_
DIR
:=
$(LITEOSTHIRDPARTY)
/bounds_checking_function
LOCAL_SRCS
=
$(
wildcard
src/main.c
)
\
LOCAL_SRCS
=
$(
wildcard
src/
*
.c
builtin
/
*
.c
)
$(wildcard
src/shcmd.c)\
LOCAL_SRCS
+=
$(
wildcard
$(SECUREC_DIR)
/src/
*
.c
)
$(wildcard
src/shmsg.c)\
$(wildcard
src/shcmdparse.c)\
$(wildcard
builtin/cd.c)
LOCAL_SRCS
+=
$(
wildcard
$(LITEOSTHIRDPARTY)
/bounds_checking_function/src/
*
.c
)
LOCAL_INCLUDE
:=
\
LOCAL_INCLUDE
:=
\
-I
include
/
\
-I
include
\
-I
$(SECUREC_
INCLUDE)\
-I
$(SECUREC_
DIR)/include
LOCAL_FLAGS
+=
$(LOCAL_INCLUDE)
LOCAL_FLAGS
+=
$(LOCAL_INCLUDE)
...
...
apps/shell/include/show.h
浏览文件 @
c26ca519
...
@@ -42,10 +42,10 @@ extern "C" {
...
@@ -42,10 +42,10 @@ extern "C" {
#endif
/* __cplusplus */
#endif
/* __cplusplus */
#endif
/* __cplusplus */
#endif
/* __cplusplus */
extern
char
*
OsShellGetWorkingDirtectory
();
extern
char
*
OsShellGetWorkingDirtectory
(
void
);
extern
unsigned
int
OsShellInit
();
extern
unsigned
int
OsShellInit
(
void
);
extern
int
OsShellDeinit
(
ShellCB
*
shellCB
);
extern
int
OsShellDeinit
(
ShellCB
*
shellCB
);
extern
ShellCB
*
OsGetShellCb
();
extern
ShellCB
*
OsGetShellCb
(
void
);
#ifdef __cplusplus
#ifdef __cplusplus
#if __cplusplus
#if __cplusplus
...
...
apps/tftp/Makefile
浏览文件 @
c26ca519
...
@@ -34,14 +34,11 @@ APP_NAME := $(notdir $(shell pwd))
...
@@ -34,14 +34,11 @@ APP_NAME := $(notdir $(shell pwd))
SECUREC_DIR
:=
$(LITEOSTHIRDPARTY)
/bounds_checking_function
SECUREC_DIR
:=
$(LITEOSTHIRDPARTY)
/bounds_checking_function
LOCAL_SRCS
=
$(
wildcard
src/
*
.c
)
LOCAL_SRCS
=
$(
wildcard
src/
*
.c
)
LOCAL_SRCS
+=
$(
wildcard
$(SECUREC_DIR)
/src/strncpy_s.c
)
LOCAL_SRCS
+=
$(
wildcard
$(SECUREC_DIR)
/src/
*
.c
)
LOCAL_SRCS
+=
$(
wildcard
$(SECUREC_DIR)
/src/memcpy_s.c
)
LOCAL_SRCS
+=
$(
wildcard
$(SECUREC_DIR)
/src/memset_s.c
)
LOCAL_SRCS
+=
$(
wildcard
$(SECUREC_DIR)
/src/strncat_s.c
)
LOCAL_INCLUDE
:=
\
LOCAL_INCLUDE
:=
\
-I
include
/
\
-I
include
\
-I
$(SECUREC_DIR)/include
/\
-I
$(SECUREC_DIR)/include
LOCAL_FLAGS
+=
$(LOCAL_INCLUDE)
LOCAL_FLAGS
+=
$(LOCAL_INCLUDE)
...
...
arch/arm/BUILD.gn
浏览文件 @
c26ca519
...
@@ -31,17 +31,10 @@ import("//kernel/liteos_a/liteos.gni")
...
@@ -31,17 +31,10 @@ import("//kernel/liteos_a/liteos.gni")
group("arm") {
group("arm") {
deps = [ "gic" ]
deps = [ "gic" ]
if (defined(LOSCFG_ARCH_ARM_AARCH32)) {
deps += [ ARCH ]
deps += [ "arm" ]
}
}
}
config("public") {
config("public") {
include_dirs = [ "include" ]
include_dirs = [ "include" ]
configs = []
configs = [ "$ARCH:public" ]
if (defined(LOSCFG_ARCH_ARM_AARCH32)) {
configs += [ "arm:public" ]
} else if (defined(LOSCFG_ARCH_ARM_AARCH64)) {
configs += [ "aarch64:public" ]
}
}
}
arch/arm/arm.mk
浏览文件 @
c26ca519
...
@@ -36,15 +36,15 @@ LOSCFG_ARCH_FPU_STRIP := $(subst $\",,$(LOSCFG_ARCH_FPU))
...
@@ -36,15 +36,15 @@ LOSCFG_ARCH_FPU_STRIP := $(subst $\",,$(LOSCFG_ARCH_FPU))
LOSCFG_ARCH_FPU
=
$(LOSCFG_ARCH_FPU_STRIP)
LOSCFG_ARCH_FPU
=
$(LOSCFG_ARCH_FPU_STRIP)
ifeq
($(LOSCFG_ARCH_ARM_AARCH32), y)
ifeq
($(LOSCFG_ARCH_ARM_AARCH32), y)
LITEOS_ARCH_ARM
:=
arm
ARCH
:=
arm
else
ifeq
($(LOSCFG_ARCH_ARM_AARCH64), y)
else
ifeq
($(LOSCFG_ARCH_ARM_AARCH64), y)
LITEOS_ARCH_ARM
:=
ARCH
:=
aarch64
endif
endif
LITEOS_BASELIB
+=
-l
$(LOSCFG_ARCH_CPU)
LITEOS_BASELIB
+=
-l
$(LOSCFG_ARCH_CPU)
LITEOS_BASELIB
+=
-lgic
LITEOS_BASELIB
+=
-lgic
LIB_SUBDIRS
+=
arch
/arm/
$(
LITEOS_ARCH_ARM
)
LIB_SUBDIRS
+=
arch
/arm/
$(
ARCH
)
LIB_SUBDIRS
+=
arch
/arm/gic
LIB_SUBDIRS
+=
arch
/arm/gic
# CPU compile options
# CPU compile options
...
@@ -70,8 +70,8 @@ LITEOS_ASOPTS += $(LITEOS_CPU_OPTS)
...
@@ -70,8 +70,8 @@ LITEOS_ASOPTS += $(LITEOS_CPU_OPTS)
LITEOS_CXXOPTS_BASE
+=
$(LITEOS_CORE_COPTS)
LITEOS_CXXOPTS_BASE
+=
$(LITEOS_CORE_COPTS)
ARCH_INCLUDE
:=
-I
$(LITEOSTOPDIR)
/arch/arm/include
\
ARCH_INCLUDE
:=
-I
$(LITEOSTOPDIR)
/arch/arm/include
\
-I
$(LITEOSTOPDIR)
/arch/arm/
$(
LITEOS_ARCH_ARM
)
/include
\
-I
$(LITEOSTOPDIR)
/arch/arm/
$(
ARCH
)
/include
\
-I
$(LITEOSTOPDIR)
/arch/arm/
$(
LITEOS_ARCH_ARM
)
/src/include
-I
$(LITEOSTOPDIR)
/arch/arm/
$(
ARCH
)
/src/include
LITEOS_PLATFORM_INCLUDE
+=
$(ARCH_INCLUDE)
LITEOS_PLATFORM_INCLUDE
+=
$(ARCH_INCLUDE)
...
@@ -84,10 +84,6 @@ else ifeq ($(LOSCFG_ARCH_FPU_VFP_D32), y)
...
@@ -84,10 +84,6 @@ else ifeq ($(LOSCFG_ARCH_FPU_VFP_D32), y)
LITEOS_CMACRO
+=
-DLOSCFG_ARCH_FPU_VFP_D32
LITEOS_CMACRO
+=
-DLOSCFG_ARCH_FPU_VFP_D32
endif
endif
# extra definition for other module
LITEOS_CPU_TYPE
=
$(LOSCFG_ARCH_CPU)
LITEOS_ARM_ARCH
:=
-march
=
$(
subst
$
\"
,,
$(LOSCFG_ARCH_ARM_VER)
)
# linux style macros
# linux style macros
LINUX_ARCH_$(LOSCFG_ARCH_ARM_V7A)
=
-D__LINUX_ARM_ARCH__
=
7
LINUX_ARCH_$(LOSCFG_ARCH_ARM_V7A)
=
-D__LINUX_ARM_ARCH__
=
7
LINUX_ARCH_$(LOSCFG_ARCH_ARM_V7R)
=
-D__LINUX_ARM_ARCH__
=
7
LINUX_ARCH_$(LOSCFG_ARCH_ARM_V7R)
=
-D__LINUX_ARM_ARCH__
=
7
...
...
arch/arm/arm/Makefile
浏览文件 @
c26ca519
...
@@ -38,7 +38,7 @@ LOCAL_INCLUDE := \
...
@@ -38,7 +38,7 @@ LOCAL_INCLUDE := \
-I
$(LITEOSTOPDIR)
/kernel/extended/dynload/include
\
-I
$(LITEOSTOPDIR)
/kernel/extended/dynload/include
\
-I
$(LITEOSTOPDIR)
/arch/arm/arm/include
\
-I
$(LITEOSTOPDIR)
/arch/arm/arm/include
\
ifeq
($(L
ITEOS_ARM_ARCH), -march=armv7-a
)
ifeq
($(L
OSCFG_ARCH_ARM_VER), "armv7-a"
)
LOCAL_SRCS
+=
$(
wildcard
src/armv7a/
*
.S
)
LOCAL_SRCS
+=
$(
wildcard
src/armv7a/
*
.S
)
endif
endif
...
...
arch/arm/arm/src/los_hw.c
浏览文件 @
c26ca519
...
@@ -85,7 +85,7 @@ LITE_OS_SEC_TEXT_INIT VOID *OsTaskStackInit(UINT32 taskID, UINT32 stackSize, VOI
...
@@ -85,7 +85,7 @@ LITE_OS_SEC_TEXT_INIT VOID *OsTaskStackInit(UINT32 taskID, UINT32 stackSize, VOI
taskContext
->
LR
=
(
UINTPTR
)
OsTaskExit
;
/* LR should be kept, to distinguish it's THUMB or ARM instruction */
taskContext
->
LR
=
(
UINTPTR
)
OsTaskExit
;
/* LR should be kept, to distinguish it's THUMB or ARM instruction */
taskContext
->
R0
=
taskID
;
/* R0 */
taskContext
->
R0
=
taskID
;
/* R0 */
#ifdef LOSCFG_
INTERWORK_
THUMB
#ifdef LOSCFG_THUMB
taskContext
->
regCPSR
=
PSR_MODE_SVC_THUMB
;
/* CPSR (Enable IRQ and FIQ interrupts, THUMNB-mode) */
taskContext
->
regCPSR
=
PSR_MODE_SVC_THUMB
;
/* CPSR (Enable IRQ and FIQ interrupts, THUMNB-mode) */
#else
#else
taskContext
->
regCPSR
=
PSR_MODE_SVC_ARM
;
/* CPSR (Enable IRQ and FIQ interrupts, ARM-mode) */
taskContext
->
regCPSR
=
PSR_MODE_SVC_ARM
;
/* CPSR (Enable IRQ and FIQ interrupts, ARM-mode) */
...
@@ -123,7 +123,7 @@ LITE_OS_SEC_TEXT_INIT VOID OsUserTaskStackInit(TaskContext *context, UINTPTR tas
...
@@ -123,7 +123,7 @@ LITE_OS_SEC_TEXT_INIT VOID OsUserTaskStackInit(TaskContext *context, UINTPTR tas
{
{
LOS_ASSERT
(
context
!=
NULL
);
LOS_ASSERT
(
context
!=
NULL
);
#ifdef LOSCFG_
INTERWORK_
THUMB
#ifdef LOSCFG_THUMB
context
->
regCPSR
=
PSR_MODE_USR_THUMB
;
context
->
regCPSR
=
PSR_MODE_USR_THUMB
;
#else
#else
context
->
regCPSR
=
PSR_MODE_USR_ARM
;
context
->
regCPSR
=
PSR_MODE_USR_ARM
;
...
...
bsd/Makefile
浏览文件 @
c26ca519
...
@@ -33,8 +33,8 @@ MODULE_NAME := $(notdir $(shell pwd))
...
@@ -33,8 +33,8 @@ MODULE_NAME := $(notdir $(shell pwd))
LOCAL_SRCS
:=
$(
wildcard
kern/
*
.c
)
LOCAL_SRCS
:=
$(
wildcard
kern/
*
.c
)
LOCAL_SRCS
+=
$(
wildcard
$(
LITEOS_ARCH_ARM
)
/
*
.c
)
LOCAL_SRCS
+=
$(
wildcard
$(
ARCH
)
/
*
.c
)
LOCAL_SRCS
+=
$(
wildcard
$(
LITEOS_ARCH_ARM
)
/
*
.S
)
LOCAL_SRCS
+=
$(
wildcard
$(
ARCH
)
/
*
.S
)
ifeq
($(LOSCFG_DRIVERS_RANDOM), y)
ifeq
($(LOSCFG_DRIVERS_RANDOM), y)
LOCAL_SRCS
+=
$(
wildcard
crypto/rijndael/
*
.c
)
\
LOCAL_SRCS
+=
$(
wildcard
crypto/rijndael/
*
.c
)
\
...
...
config.mk
浏览文件 @
c26ca519
...
@@ -51,3 +51,11 @@ LITEOS_CXXFLAGS := $(LITEOS_CXXOPTS) $(LITEOS_CXXMACRO) \
...
@@ -51,3 +51,11 @@ LITEOS_CXXFLAGS := $(LITEOS_CXXOPTS) $(LITEOS_CXXMACRO) \
LITEOS_LDFLAGS
:=
$(LITEOS_LD_OPTS)
$(LITEOS_LD_PATH)
\
LITEOS_LDFLAGS
:=
$(LITEOS_LD_OPTS)
$(LITEOS_LD_PATH)
\
$(LITEOS_LD_SCRIPT)
$(LITEOS_LD_SCRIPT)
# clear all local variables
LOCAL_FLAGS
:=
LOCAL_CFLAGS
:=
LOCAL_CPPFLAGS
:=
LOCAL_ASFLAGS
:=
LOCAL_SRCS
:=
LOCAL_CHS
:=
LOCAL_CPPHS
:=
kernel/extended/vdso/usr/BUILD.gn
浏览文件 @
c26ca519
...
@@ -39,23 +39,14 @@ shared_library("OHOS-vdso") {
...
@@ -39,23 +39,14 @@ shared_library("OHOS-vdso") {
"$LITEOSTOPDIR/bsd/compat/linuxkpi/include",
"$LITEOSTOPDIR/bsd/compat/linuxkpi/include",
]
]
cflags = [
configs -= [ "//build/lite/config:security" ]
"-fPIC",
"-fno-common",
"-fno-strict-aliasing",
]
configs = []
configs += [ "$LITEOSTOPDIR:los_common" ]
configs += [ "$LITEOSTOPDIR:los_nostdlib" ]
configs += [ "$LITEOSTOPDIR:arch_config" ]
defines = [ "_XOPEN_SOURCE=700" ]
ldflags = [
ldflags = [
"-nostdlib",
"-Wl,-Bsymbolic",
"-Wl,-Bsymbolic",
"-Wl,-T" + rebase_path("los_vdso.ld", root_build_dir),
"-Wl,-T" + rebase_path("los_vdso.ld", root_build_dir),
]
]
inputs = [ "los_vdso.ld" ]
output_dir = target_out_dir
output_dir = target_out_dir
}
}
kernel/extended/vdso/usr/Makefile
浏览文件 @
c26ca519
...
@@ -37,12 +37,8 @@ VDSO_INCLUDE := -I $(LITEOSTOPDIR)/kernel/extended/vdso/include \
...
@@ -37,12 +37,8 @@ VDSO_INCLUDE := -I $(LITEOSTOPDIR)/kernel/extended/vdso/include \
-I
$(LITEOSTOPDIR)
/platform
\
-I
$(LITEOSTOPDIR)
/platform
\
-I
$(LITEOSTOPDIR)
/bsd/compat/linuxkpi/include
-I
$(LITEOSTOPDIR)
/bsd/compat/linuxkpi/include
VDSO_CCFLAGS
:=
-nostdlib
-fPIC
-fno-common
-fno-strict-aliasing
\
VDSO_CCFLAGS
:=
$(
filter-out
-nostdinc
,
$(LITEOS_COPTS)
)
$(LITEOS_SSP)
$(LITEOS_CORE_COPTS)
$(WARNING_AS_ERROR)
$(LITEOS_COPTS_OPTMIZE)
VDSO_CCFLAGS
+=
-fPIC
-O2
-D_XOPEN_SOURCE
=
700
ifeq
($(LOSCFG_COMPILER_CLANG_LLVM), y)
VDSO_CCFLAGS
+=
$(LLVM_EXTRA_OPTS)
--sysroot
=
$(SYSROOT_PATH)
VDSO_CCFLAGS
+=
-O2
endif
VDSO_LDFLAGS
:=
-shared
-Wl
,-s,-Bsymbolic,-Tlos_vdso.ld
VDSO_LDFLAGS
:=
-shared
-Wl
,-s,-Bsymbolic,-Tlos_vdso.ld
...
...
kernel/user/BUILD.gn
浏览文件 @
c26ca519
...
@@ -46,9 +46,8 @@ userinit = "lib$module_name.O"
...
@@ -46,9 +46,8 @@ userinit = "lib$module_name.O"
executable(userinit) {
executable(userinit) {
output_dir = target_out_dir
output_dir = target_out_dir
deps = [ ":$module_name" ]
deps = [ ":$module_name" ]
configs = []
configs += [ "$LITEOSTOPDIR:los_config" ]
ldflags = [
ldflags = [
"-nostdlib",
"-static",
"-static",
"-Wl,-r",
"-Wl,-r",
]
]
...
...
kernel/user/Makefile
浏览文件 @
c26ca519
...
@@ -42,15 +42,14 @@ LOCAL_FLAGS := $(LOCAL_INCLUDE)
...
@@ -42,15 +42,14 @@ LOCAL_FLAGS := $(LOCAL_INCLUDE)
include
$(MODULE)
include
$(MODULE)
LIBO
:=
$(OUT)
/lib/lib
$(MODULE_NAME)
.O
USERINIT
:=
$(OUT)
/lib/lib
$(MODULE_NAME)
.O
$(LIBO)
:
$(LIBA)
$(USERINIT)
:
$(MODULE)
$(HIDE)
$(LD)
-r
-o
$@
--whole-archive
$<
--no-whole-archive
$(HIDE)$(LD)
-r
-o
$@
--whole-archive
$<
--no-whole-archive
$(HIDE)
$(RM)
$<
clean
2
:
clean
_userinit
:
$(HIDE)
$(RM)
$(LIBO
)
$(HIDE)
$(RM)
$(USERINIT
)
all
:
$(
LIBO
)
all
:
$(
USERINIT
)
clean
:
clean
2
clean
:
clean
_userinit
.PHONY
:
clean
2
.PHONY
:
clean
_userinit
lib/libc/Makefile
浏览文件 @
c26ca519
...
@@ -2,7 +2,6 @@ include $(LITEOSTOPDIR)/config.mk
...
@@ -2,7 +2,6 @@ include $(LITEOSTOPDIR)/config.mk
MODULE_NAME
:=
c
MODULE_NAME
:=
c
ARCH
=
arm
TOPDIR
=
$(LITEOSTOPDIR)
/../..
TOPDIR
=
$(LITEOSTOPDIR)
/../..
MUSLDIR
=
$(TOPDIR)
/third_party/musl
MUSLDIR
=
$(TOPDIR)
/third_party/musl
MUSLPORTINGDIR
=
$(MUSLDIR)
/porting/liteos_a/kernel
MUSLPORTINGDIR
=
$(MUSLDIR)
/porting/liteos_a/kernel
...
...
liteos.gni
浏览文件 @
c26ca519
...
@@ -33,6 +33,16 @@ LITEOSTOPDIR = "//kernel/liteos_a"
...
@@ -33,6 +33,16 @@ LITEOSTOPDIR = "//kernel/liteos_a"
LITEOSTHIRDPARTY = "//third_party"
LITEOSTHIRDPARTY = "//third_party"
HDFTOPDIR = "//drivers/adapter/khdf/liteos"
HDFTOPDIR = "//drivers/adapter/khdf/liteos"
ARCH = ""
if (defined(LOSCFG_ARCH_ARM_AARCH32)) {
ARCH = "arm"
} else if (defined(LOSCFG_ARCH_ARM_AARCH64)) {
ARCH = "aarch64"
}
assert(ARCH != "", "ARCH not set!")
assert(ARCH == arch, "ARCH not match! details: $ARCH != $arch")
template("kernel_module") {
template("kernel_module") {
current_dir_name = get_path_info(rebase_path("."), "file")
current_dir_name = get_path_info(rebase_path("."), "file")
if (target_name != current_dir_name) {
if (target_name != current_dir_name) {
...
...
platform/BUILD.gn
浏览文件 @
c26ca519
...
@@ -60,7 +60,6 @@ kernel_module(module_name) {
...
@@ -60,7 +60,6 @@ kernel_module(module_name) {
group("platform") {
group("platform") {
public_deps = [ ":$module_name" ]
public_deps = [ ":$module_name" ]
deps = [ ":board.ld" ]
}
}
config("public") {
config("public") {
...
...
tools/build/mk/los_config.mk
浏览文件 @
c26ca519
...
@@ -50,8 +50,9 @@ endif
...
@@ -50,8 +50,9 @@ endif
ARFLAGS
:=
cr
ARFLAGS
:=
cr
## platform relative ##
## platform relative ##
LITEOS_ARM_ARCH
:=
ifeq
($(ARCH),)
LITEOS_CPU_TYPE
:=
ARCH
=
$(
error
ARCH not
set
!
)
endif
## c as cxx ld options ##
## c as cxx ld options ##
LITEOS_ASOPTS
:=
LITEOS_ASOPTS
:=
LITEOS_COPTS_BASE
:=
LITEOS_COPTS_BASE
:=
...
@@ -88,14 +89,20 @@ LOSCFG_BOARD_CONFIG_PATH := $(LOSCFG_BOARD_CONFIG_PATH:"%"=%)
...
@@ -88,14 +89,20 @@ LOSCFG_BOARD_CONFIG_PATH := $(LOSCFG_BOARD_CONFIG_PATH:"%"=%)
ifeq
($(wildcard $(LITEOSTOPDIR)/../../$(LOSCFG_BOARD_CONFIG_PATH) $(LOSCFG_BOARD_CONFIG_PATH)),)
ifeq
($(wildcard $(LITEOSTOPDIR)/../../$(LOSCFG_BOARD_CONFIG_PATH) $(LOSCFG_BOARD_CONFIG_PATH)),)
LOSCFG_BOARD_CONFIG_PATH
:=
$
(
LOSCFG_BOARD_CONFIG_PATH:%/config/board
=
%/board
)
LOSCFG_BOARD_CONFIG_PATH
:=
$
(
LOSCFG_BOARD_CONFIG_PATH:%/config/board
=
%/board
)
endif
endif
ifeq
($(LOSCFG_COMPILER_
HIMIX_32
), y)
ifeq
($(LOSCFG_COMPILER_
GCC
), y)
CROSS_COMPILE
?=
arm-linux-ohoseabi-
CROSS_COMPILE
?=
$(LOSCFG_CROSS_COMPILE)
LITEOS_COMPILER_PATH
?=
$(LITEOSTOPDIR)
/../../prebuilts/gcc/linux-x86/arm/arm-linux-ohoseabi-gcc/bin/
LITEOS_COMPILER_PATH
?=
$(LITEOSTOPDIR)
/../../prebuilts/gcc/linux-x86/arm/arm-linux-ohoseabi-gcc/bin/
else
ifeq
($(LOSCFG_COMPILER_CLANG_LLVM), y)
else
ifeq
($(LOSCFG_COMPILER_CLANG_LLVM), y)
CROSS_COMPILE
?=
llvm-
CROSS_COMPILE
?=
llvm-
LITEOS_COMPILER_PATH
?=
$(LITEOSTOPDIR)
/../../prebuilts/clang/ohos/linux-x86_64/llvm/bin/
LITEOS_COMPILER_PATH
?=
$(LITEOSTOPDIR)
/../../prebuilts/clang/ohos/linux-x86_64/llvm/bin/
ifneq
($(LOSCFG_LLVM_TARGET),)
LLVM_TARGET
=
-target
$(LOSCFG_LLVM_TARGET)
endif
ifneq
($(SYSROOT_PATH),)
LLVM_SYSROOT
=
--sysroot
=
$(SYSROOT_PATH)
endif
endif
ifeq
($(wildcard $(LITEOS_COMPILER_PATH)),)
endif
ifeq
($(wildcard $(LITEOS_COMPILER_PATH)$(CROSS_COMPILE)as),)
LITEOS_COMPILER_PATH
:=
$(
patsubst
%/
$(CROSS_COMPILE)
as,%/,
$(
shell
which
$(CROSS_COMPILE)
as
))
LITEOS_COMPILER_PATH
:=
$(
patsubst
%/
$(CROSS_COMPILE)
as,%/,
$(
shell
which
$(CROSS_COMPILE)
as
))
endif
endif
LITEOS_PLATFORM
:=
$
(
LOSCFG_PLATFORM:
"%"
=
%
)
LITEOS_PLATFORM
:=
$
(
LOSCFG_PLATFORM:
"%"
=
%
)
...
@@ -425,17 +432,21 @@ ifneq ($(LOSCFG_DEBUG_VERSION), y)
...
@@ -425,17 +432,21 @@ ifneq ($(LOSCFG_DEBUG_VERSION), y)
endif
endif
ifeq
($(LOSCFG_COMPILE_DEBUG), y)
ifeq
($(LOSCFG_COMPILE_DEBUG), y)
LITEOS_COPTS_OPTMIZE
=
-O0
LITEOS_COPTS_OPT
I
MIZE
=
-O0
LITEOS_COPTS_OPTION
=
-g
-gdwarf-2
LITEOS_COPTS_OPTION
=
-g
-gdwarf-2
else
endif
ifeq
($(LOSCFG_COMPILE_OPTIMIZE), y)
LITEOS_COPTS_OPTIMIZE
=
-O2
endif
ifeq
($(LOSCFG_COMPILE_OPTIMIZE_SIZE), y)
ifeq
($(LOSCFG_COMPILER_CLANG_LLVM), y)
ifeq
($(LOSCFG_COMPILER_CLANG_LLVM), y)
LITEOS_COPTS_OPTMIZE
=
-Oz
-flto
LITEOS_COPTS_OPT
I
MIZE
=
-Oz
-flto
else
else
LITEOS_COPTS_OPT
MIZE
=
-O2
LITEOS_COPTS_OPT
IMIZE
=
-Os
-flto
endif
endif
endif
endif
LITEOS_COPTS_DEBUG
+=
$(LITEOS_COPTS_OPTION)
$(LITEOS_COPTS_OPTMIZE)
LITEOS_COPTS_DEBUG
+=
$(LITEOS_COPTS_OPTION)
$(LITEOS_COPTS_OPT
I
MIZE)
LITEOS_CXXOPTS_BASE
+=
$(LITEOS_COPTS_OPTION)
$(LITEOS_COPTS_OPTMIZE)
LITEOS_CXXOPTS_BASE
+=
$(LITEOS_COPTS_OPTION)
$(LITEOS_COPTS_OPT
I
MIZE)
LITEOS_ASOPTS
+=
$(LITEOS_COPTS_OPTION)
LITEOS_ASOPTS
+=
$(LITEOS_COPTS_OPTION)
ifeq
($(LOSCFG_SHELL), y)
ifeq
($(LOSCFG_SHELL), y)
...
@@ -452,10 +463,6 @@ ifeq ($(LOSCFG_NET_TELNET), y)
...
@@ -452,10 +463,6 @@ ifeq ($(LOSCFG_NET_TELNET), y)
-I
$(LITEOSTOPDIR)
/net/telnet/include
-I
$(LITEOSTOPDIR)
/net/telnet/include
endif
endif
ifeq
($(LOSCFG_3RDPARTY), y)
-include
$(LITEOSTOPDIR)/3rdParty/3rdParty.mk
endif
ifeq
($(LOSCFG_KERNEL_SYSCALL), y)
ifeq
($(LOSCFG_KERNEL_SYSCALL), y)
LITEOS_BASELIB
+=
-lsyscall
LITEOS_BASELIB
+=
-lsyscall
LIB_SUBDIRS
+=
syscall
LIB_SUBDIRS
+=
syscall
...
@@ -492,19 +499,16 @@ endif
...
@@ -492,19 +499,16 @@ endif
############################# Security Option End ##############################
############################# Security Option End ##############################
ifeq
($(LOSCFG_COMPILER_CLANG_LLVM), y)
ifeq
($(LOSCFG_COMPILER_CLANG_LLVM), y)
CC
=
$(LITEOS_COMPILER_PATH)
clang
CC
=
$(LITEOS_COMPILER_PATH)
clang
$(LLVM_TARGET)
$(LLVM_SYSROOT)
AS
=
$(LITEOS_COMPILER_PATH)$(CROSS_COMPILE)
as
AS
=
$(LITEOS_COMPILER_PATH)$(CROSS_COMPILE)
as
AR
=
$(LITEOS_COMPILER_PATH)$(CROSS_COMPILE)
ar
AR
=
$(LITEOS_COMPILER_PATH)$(CROSS_COMPILE)
ar
LD
=
$(LITEOS_COMPILER_PATH)
ld.lld
LD
=
$(LITEOS_COMPILER_PATH)
ld.lld
GPP
=
$(LITEOS_COMPILER_PATH)
clang++
GPP
=
$(LITEOS_COMPILER_PATH)
clang++
$(LLVM_TARGET)
$(LLVM_SYSROOT)
OBJCOPY
=
$(LITEOS_COMPILER_PATH)$(CROSS_COMPILE)
objcopy
-R
.bss
OBJCOPY
=
$(LITEOS_COMPILER_PATH)$(CROSS_COMPILE)
objcopy
-R
.bss
OBJDUMP
=
$(LITEOS_COMPILER_PATH)$(CROSS_COMPILE)
objdump
OBJDUMP
=
$(LITEOS_COMPILER_PATH)$(CROSS_COMPILE)
objdump
SIZE
=
$(LITEOS_COMPILER_PATH)$(CROSS_COMPILE)
size
SIZE
=
$(LITEOS_COMPILER_PATH)$(CROSS_COMPILE)
size
NM
=
$(LITEOS_COMPILER_PATH)$(CROSS_COMPILE)
nm
NM
=
$(LITEOS_COMPILER_PATH)$(CROSS_COMPILE)
nm
STRIP
=
$(LITEOS_COMPILER_PATH)$(CROSS_COMPILE)
strip
STRIP
=
$(LITEOS_COMPILER_PATH)$(CROSS_COMPILE)
strip
LLVM_TARGET
:=
arm-liteos
LLVM_EXTRA_OPTS
:=
-target
$(LLVM_TARGET)
-fms-extensions
-Wno-address-of-packed-member
LLVM_EXTRA_LD_OPTS
:=
-fuse-ld
=
lld
--rtlib
=
compiler-rt
else
else
CC
=
$(LITEOS_COMPILER_PATH)$(CROSS_COMPILE)
gcc
CC
=
$(LITEOS_COMPILER_PATH)$(CROSS_COMPILE)
gcc
AS
=
$(LITEOS_COMPILER_PATH)$(CROSS_COMPILE)
as
AS
=
$(LITEOS_COMPILER_PATH)$(CROSS_COMPILE)
as
...
@@ -518,11 +522,6 @@ NM = $(LITEOS_COMPILER_PATH)$(CROSS_COMPILE)nm
...
@@ -518,11 +522,6 @@ NM = $(LITEOS_COMPILER_PATH)$(CROSS_COMPILE)nm
STRIP
=
$(LITEOS_COMPILER_PATH)$(CROSS_COMPILE)
strip
STRIP
=
$(LITEOS_COMPILER_PATH)$(CROSS_COMPILE)
strip
endif
endif
FP
=
-fno-omit-frame-pointer
LITEOS_CXXOPTS_BASE
+=
-std
=
c++11
-nostdlib
-nostdinc
-nostdinc
++
-fexceptions
-fpermissive
-fno-use-cxa-atexit
\
-fno-builtin
-frtti
-fno-pic
-Winvalid-pch
$(WARNING_AS_ERROR)
$(LLVM_EXTRA_OPTS)
$(FP)
LITEOS_EXTKERNEL_INCLUDE
:=
$(LITEOS_CPPSUPPORT_INCLUDE)
$(LITEOS_DYNLOAD_INCLUDE)
\
LITEOS_EXTKERNEL_INCLUDE
:=
$(LITEOS_CPPSUPPORT_INCLUDE)
$(LITEOS_DYNLOAD_INCLUDE)
\
$(LITEOS_TICKLESS_INCLUDE)
$(LITEOS_TRACE_INCLUDE)
\
$(LITEOS_TICKLESS_INCLUDE)
$(LITEOS_TRACE_INCLUDE)
\
$(LITEOS_VDSO_INCLUDE)
$(LITEOS_LITEIPC_INCLUDE)
\
$(LITEOS_VDSO_INCLUDE)
$(LITEOS_LITEIPC_INCLUDE)
\
...
@@ -557,20 +556,22 @@ LITEOS_SECURITY_INCLUDE := $(LITEOS_SECURITY_CAP_INC) $(LITEOS_SECURITY_VID_I
...
@@ -557,20 +556,22 @@ LITEOS_SECURITY_INCLUDE := $(LITEOS_SECURITY_CAP_INC) $(LITEOS_SECURITY_VID_I
LOSCFG_TOOLS_DEBUG_INCLUDE
:=
$(LITEOS_SHELL_INCLUDE)
$(LITEOS_UART_INCLUDE)
\
LOSCFG_TOOLS_DEBUG_INCLUDE
:=
$(LITEOS_SHELL_INCLUDE)
$(LITEOS_UART_INCLUDE)
\
$(LITEOS_TELNET_INCLUDE)
$(LITEOS_TELNET_INCLUDE)
LITEOS_COPTS_BASE
:=
-fno-pic
-fno-builtin
-nostdinc
-nostdlib
$(WARNING_AS_ERROR)
$(LITEOS_SSP)
$(LLVM_EXTRA_OPTS)
\
LITEOS_COMMON_OPTS
:=
-fno-pic
-fno-builtin
-nostdinc
-nostdlib
$(WARNING_AS_ERROR)
-fms-extensions
-fno-omit-frame-pointer
-Wno-address-of-packed-member
-Winvalid-pch
-fno-strict-aliasing
-fno-common
-fsigned-char
LITEOS_CXXOPTS_BASE
+=
$(LITEOS_COMMON_OPTS)
-std
=
c++11
-nostdinc
++
-fexceptions
-fpermissive
-fno-use-cxa-atexit
-frtti
LITEOS_COPTS_BASE
+=
$(LITEOS_COMMON_OPTS)
$(LITEOS_SSP)
-fno-strict-aliasing
-fno-common
-fsigned-char
-mno-unaligned-access
ifneq
($(LOSCFG_COMPILER_CLANG_LLVM), y)
ifneq
($(LOSCFG_COMPILER_CLANG_LLVM), y)
LITEOS_COPTS_BASE
+=
-fno-aggressive-loop-optimizations
LITEOS_COPTS_BASE
+=
-fno-aggressive-loop-optimizations
endif
endif
LITEOS_COPTS_EXTRA
:=
-std
=
c99
-Wpointer-arith
-Wstrict-prototypes
-Winvalid-pch
\
-ffunction-sections
-fdata-sections
-fno-exceptions
$(FP)
LITEOS_COPTS_EXTRA
+=
-std
=
c99
-Wpointer-arith
-Wstrict-prototypes
-ffunction-sections
-fdata-sections
-fno-exceptions
-fno-short-enums
if
neq
($(LOSCFG_ARCH_ARM_AARCH64
), y)
if
eq
($(LOSCFG_ARCH_ARM_AARCH32
), y)
ifneq
($(LOSCFG_COMPILER_CLANG_LLVM), y)
ifneq
($(LOSCFG_COMPILER_CLANG_LLVM), y)
LITEOS_COPTS_BASE
+=
-mno-unaligned-access
LITEOS_COPTS_EXTRA
+=
-mthumb-interwork
LITEOS_COPTS_EXTRA
+=
-mthumb-interwork
endif
endif
endif
endif
LITEOS_COPTS_EXTRA
+=
-fno-short-enums
ifeq
($(LOSCFG_THUMB), y)
ifeq
($(LOSCFG_THUMB), y)
ifeq
($(LOSCFG_COMPILER_CLANG_LLVM), y)
ifeq
($(LOSCFG_COMPILER_CLANG_LLVM), y)
LITEOS_CFLAGS_INTERWORK
:=
-mthumb
-mimplicit-it
=
thumb
LITEOS_CFLAGS_INTERWORK
:=
-mthumb
-mimplicit-it
=
thumb
...
@@ -595,9 +596,5 @@ LITEOS_LD_SCRIPT := -T$(LITEOSTOPDIR)/tools/build/liteos.ld
...
@@ -595,9 +596,5 @@ LITEOS_LD_SCRIPT := -T$(LITEOSTOPDIR)/tools/build/liteos.ld
endif
endif
##compiler##
##compiler##
_CC
=
$(CC)
$(LITEOS_CORE_COPTS)
LITEOS_BASELIB
+=
$(
shell
$(CC)
$(LITEOS_CORE_COPTS)
"-print-libgcc-file-name"
)
ifeq
($(LOSCFG_COMPILER_CLANG_LLVM), y)
LITEOS_LIB_INCLUDE
+=
-isystem
$(
shell
$(CC)
$(LITEOS_CORE_COPTS)
"-print-file-name=include"
)
_CC
+=
$(LLVM_EXTRA_OPTS)
$(LLVM_EXTRA_LD_OPTS)
endif
LITEOS_BASELIB
+=
$(
shell
$(_CC)
"-print-libgcc-file-name"
)
LITEOS_LIB_INCLUDE
+=
-isystem
$(
shell
$(_CC)
"-print-file-name=include"
)
tools/build/mk/module.mk
浏览文件 @
c26ca519
# Copyright (c) 2013-2019 Huawei Technologies Co., Ltd. All rights reserved.
# Copyright (c) 2013-2019 Huawei Technologies Co., Ltd. All rights reserved.
# Copyright (c) 2020-2021 Huawei Device Co., Ltd. All rights reserved.
# Copyright (c) 2020-2021 Huawei Device Co., Ltd. All rights reserved.
#
#
# Redistribution and use in source and binary forms, with or without modification,
# Redistribution and use in source and binary forms, with or without modification,
# are permitted provided that the following conditions are met:
# are permitted provided that the following conditions are met:
#
#
# 1. Redistributions of source code must retain the above copyright notice, this list of
# 1. Redistributions of source code must retain the above copyright notice, this list of
# conditions and the following disclaimer.
# conditions and the following disclaimer.
#
#
# 2. Redistributions in binary form must reproduce the above copyright notice, this list
# 2. Redistributions in binary form must reproduce the above copyright notice, this list
# of conditions and the following disclaimer in the documentation and/or other materials
# of conditions and the following disclaimer in the documentation and/or other materials
# provided with the distribution.
# provided with the distribution.
#
#
# 3. Neither the name of the copyright holder nor the names of its contributors may be used
# 3. Neither the name of the copyright holder nor the names of its contributors may be used
# to endorse or promote products derived from this software without specific prior written
# to endorse or promote products derived from this software without specific prior written
# permission.
# permission.
#
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
OBJOUT
:=
$(BUILD)
$(
dir
$(
subst
$(LITEOSTOPDIR)
,,
$(
shell
pwd
)))
$(MODULE_NAME)
OBJOUT
:=
$(BUILD)
$(
dir
$(
subst
$(LITEOSTOPDIR)
,,
$(
shell
pwd
)))
$(MODULE_NAME)
ifeq
($(LOCAL_SO), y)
MODULE
:=
$(OUT)
/lib/lib
$(MODULE_NAME)
.a
LIBSO
:=
$(OUT)
/lib/lib
$(MODULE_NAME)
.so
LIBA
:=
$(OUT)
/lib/lib
$(MODULE_NAME)
.a
# create a separate list of objects per source type
else
LIBSO
:=
LOCAL_CSRCS
:=
$(
filter
%.c,
$(LOCAL_SRCS)
)
LIBA
:=
$(OUT)
/lib/lib
$(MODULE_NAME)
.a
LOCAL_CPPSRCS
:=
$(
filter
%.cpp,
$(LOCAL_SRCS)
)
endif
LOCAL_ASMSRCS
:=
$(
filter
%.S,
$(LOCAL_SRCS)
)
LIB
:=
$(LIBA)
$(LIBSO)
LOCAL_ASMSRCS2
:=
$(
filter
%.s,
$(LOCAL_SRCS)
)
LOCAL_CCSRCS
:=
$(
filter
%.cc,
$(LOCAL_SRCS)
)
# create a separate list of objects per source type
LOCAL_COBJS
:=
$(
patsubst
%.c,
$(OBJOUT)
/%.o,
$(LOCAL_CSRCS)
)
LOCAL_CSRCS
:=
$(
filter
%.c,
$(LOCAL_SRCS)
)
LOCAL_CPPOBJS
:=
$(
patsubst
%.cpp,
$(OBJOUT)
/%.o,
$(LOCAL_CPPSRCS)
)
LOCAL_CPPSRCS
:=
$(
filter
%.cpp,
$(LOCAL_SRCS)
)
LOCAL_ASMOBJS
:=
$(
patsubst
%.S,
$(OBJOUT)
/%.o,
$(LOCAL_ASMSRCS)
)
LOCAL_ASMSRCS
:=
$(
filter
%.S,
$(LOCAL_SRCS)
)
LOCAL_ASMOBJS2
:=
$(
patsubst
%.s,
$(OBJOUT)
/%.o,
$(LOCAL_ASMSRCS2)
)
LOCAL_ASMSRCS2
:=
$(
filter
%.s,
$(LOCAL_SRCS)
)
LOCAL_CCOBJS
:=
$(
patsubst
%.cc,
$(OBJOUT)
/%.o,
$(LOCAL_CCSRCS)
)
LOCAL_CCSRCS
:=
$(
filter
%.cc,
$(LOCAL_SRCS)
)
LOCAL_OBJS
:=
$(LOCAL_COBJS)
$(LOCAL_CPPOBJS)
$(LOCAL_ASMOBJS)
$(LOCAL_ASMOBJS2)
$(LOCAL_CCOBJS)
LOCAL_COBJS
:=
$(
patsubst
%.c,
$(OBJOUT)
/%.o,
$(LOCAL_CSRCS)
)
LOCAL_CPPOBJS
:=
$(
patsubst
%.cpp,
$(OBJOUT)
/%.o,
$(LOCAL_CPPSRCS)
)
LOCAL_CGCH
:=
$(
patsubst
%.h,%.h.gch,
$(LOCAL_CHS)
)
LOCAL_ASMOBJS
:=
$(
patsubst
%.S,
$(OBJOUT)
/%.o,
$(LOCAL_ASMSRCS)
)
LOCAL_CPPGCH
:=
$(
patsubst
%.h,%.h.gch,
$(LOCAL_CPPHS)
)
LOCAL_ASMOBJS2
:=
$(
patsubst
%.s,
$(OBJOUT)
/%.o,
$(LOCAL_ASMSRCS2)
)
LOCAL_CCOBJS
:=
$(
patsubst
%.cc,
$(OBJOUT)
/%.o,
$(LOCAL_CCSRCS)
)
all
:
$(MODULE)
LOCAL_OBJS
:=
$(LOCAL_COBJS)
$(LOCAL_CPPOBJS)
$(LOCAL_ASMOBJS)
$(LOCAL_ASMOBJS2)
$(LOCAL_CCOBJS)
define
ECHO
=
ifeq
($$(HIDE),@)
LOCAL_CGCH
:=
$(
patsubst
%.h,%.h.gch,
$(LOCAL_CHS)
)
_$(1)
:=
$
(
$(1)
)
LOCAL_CPPGCH
:=
$(
patsubst
%.h,%.h.gch,
$(LOCAL_CPPHS)
)
$(1)
=
echo
"
$(1)
"
$
$(
patsubst
$
$(OUT)
/%,%,
$$
@
)
&&
$$
(
_
$(1)
)
endif
all
:
$(LIB)
endef
$(foreach
cmd,CC
GPP
AS
AR,$(eval
$(call
ECHO,$(cmd))))
$(LOCAL_COBJS)
:
$(OBJOUT)/%.o: %.c
$(HIDE)$(OBJ_MKDIR)
LOCAL_FLAGS
+=
-MD
-MP
$(HIDE)$(CC)
$(LITEOS_CFLAGS)
$(LOCAL_FLAGS)
$(LOCAL_CFLAGS)
-c
$<
-o
$@
-include
$(LOCAL_OBJS:%.o=%.d)
$(LOCAL_CPPOBJS)
:
$(OBJOUT)/%.o: %.cpp
$(LOCAL_COBJS)
:
$(OBJOUT)/%.o: %.c
$(HIDE)$(OBJ_MKDIR)
$(HIDE)$(OBJ_MKDIR)
$(HIDE)$(GPP)
$(LITEOS_CXXFLAGS)
$(LOCAL_FLAGS)
$(LOCAL_CPPFLAGS)
-c
$<
-o
$@
$(HIDE)$(CC)
$(LITEOS_CFLAGS)
$(LOCAL_FLAGS)
$(LOCAL_CFLAGS)
-c
$<
-o
$@
$(LOCAL_ASMOBJS)
:
$(OBJOUT)/%.o: %.S
$(LOCAL_CPPOBJS)
:
$(OBJOUT)/%.o: %.cpp
$(HIDE)$(OBJ_MKDIR)
$(HIDE)$(OBJ_MKDIR)
$(HIDE)$(CC)
$(LITEOS_CFLAGS)
$(LOCAL_FLAGS)
$(LOCAL_ASFLAGS)
-c
$<
-o
$@
$(HIDE)$(GPP)
$(LITEOS_CXXFLAGS)
$(LOCAL_FLAGS)
$(LOCAL_CPPFLAGS)
-c
$<
-o
$@
$(LOCAL_ASMOBJS2)
:
$(OBJOUT)/%.o: %.s
$(LOCAL_ASMOBJS)
:
$(OBJOUT)/%.o: %.S
$(HIDE)$(OBJ_MKDIR)
$(HIDE)$(OBJ_MKDIR)
$(HIDE)$(AS)
$(LITEOS_ASFLAGS)
$(LOCAL_FLAGS)
$(LOCAL_ASFLAGS)
-c
$<
-o
$@
$(HIDE)$(CC)
$(LITEOS_CFLAGS)
$(LOCAL_FLAGS)
$(LOCAL_ASFLAGS)
-c
$<
-o
$@
$(LOCAL_CCOBJS)
:
$(OBJOUT)/%.o: %.cc
$(LOCAL_ASMOBJS2)
:
$(OBJOUT)/%.o: %.s
$(HIDE)$(OBJ_MKDIR)
$(HIDE)$(OBJ_MKDIR)
$(HIDE)$(GPP)
$(LITEOS_CXXFLAGS)
$(LOCAL_FLAGS)
$(LOCAL_CPPFLAGS)
-c
$<
-o
$@
$(HIDE)$(AS)
$(LITEOS_ASFLAGS)
$(LOCAL_FLAGS)
$(LOCAL_ASFLAGS)
-c
$<
-o
$@
$(LOCAL_CGCH)
:
%.h.gch : %.h
$(LOCAL_CCOBJS)
:
$(OBJOUT)/%.o: %.cc
$(HIDE)$(CC)
$(LITEOS_CFLAGS)
$(LOCAL_FLAGS)
$(LOCAL_CFLAGS)
$>
$^
$(HIDE)$(OBJ_MKDIR)
$(HIDE)$(GPP)
$(LITEOS_CXXFLAGS)
$(LOCAL_FLAGS)
$(LOCAL_CPPFLAGS)
-c
$<
-o
$@
$(LOCAL_CPPGCH)
:
%.h.gch : %.h
$(HIDE)$(GPP)
$(LITEOS_CXXFLAGS)
$(LOCAL_FLAGS)
$(LOCAL_CPPFLAGS)
-x
c++-header
$>
$^
$(LOCAL_CGCH)
:
%.h.gch : %.h
$(HIDE)$(CC)
$(LITEOS_CFLAGS)
$(LOCAL_FLAGS)
$(LOCAL_CFLAGS)
$>
$^
LOCAL_GCH
:=
$(LOCAL_CGCH)
$(LOCAL_CPPGCH)
$(LOCAL_CPPGCH)
:
%.h.gch : %.h
$(LOCAL_OBJS)
:
$(LOCAL_GCH)
$(HIDE)$(GPP)
$(LITEOS_CXXFLAGS)
$(LOCAL_FLAGS)
$(LOCAL_CPPFLAGS)
-x
c++-header
$>
$^
$(LIBA)
:
$(LOCAL_OBJS)
$(HIDE)$(OBJ_MKDIR)
LOCAL_GCH
:=
$(LOCAL_CGCH)
$(LOCAL_CPPGCH)
ifeq
($(OS), Linux)
$(LOCAL_OBJS)
:
$(LOCAL_GCH)
$(HIDE)$(AR)
$(ARFLAGS)
$@
$(LOCAL_OBJS)
$(MODULE)
:
$(LOCAL_OBJS)
else
$(HIDE)$(OBJ_MKDIR)
ifeq
($(LOCAL_MODULES),)
$(HIDE)$(AR)
$(ARFLAGS)
$@
$^
$(HIDE)$(AR)
$(ARFLAGS)
$@
$(LOCAL_OBJS)
else
clean
:
$(HIDE)for
i
in
$(LOCAL_MODULES);
do
\
$(HIDE)$(RM)
$(MODULE)
$(OBJOUT)
$(LOCAL_GCH)
*
.bak
*
~
pushd
$(OBJOUT)/$$i
1>/dev/null;
\
$(AR)
$(ARFLAGS)
$@
*.o;\
.PHONY
:
all clean
popd
1>/dev/null;\
done
# clear some variables we set here
endif
LOCAL_CSRCS
:=
endif
LOCAL_CPPSRCS
:=
LOCAL_ASMSRCS
:=
ifeq
($(LOCAL_SO), y)
LOCAL_COBJS
:=
$(LIBSO)
:
$(LOCAL_OBJS)
LOCAL_CPPOBJS
:=
$(HIDE)$(CC)
$(LITEOS_CFLAGS)
-fPIC
-shared
$^
-o
$@
LOCAL_ASMOBJS
:=
endif
LOCAL_ASMOBJS2
:=
clean
:
# LOCAL_OBJS is passed back
$(HIDE)$(RM)
$(LIB)
$(OBJOUT)
$(LOCAL_GCH)
*
.bak
*
~
#LOCAL_OBJS :=
.PHONY
:
all clean
# clear some variables we set here
LOCAL_CSRCS
:=
LOCAL_CPPSRCS
:=
LOCAL_ASMSRCS
:=
LOCAL_COBJS
:=
LOCAL_CPPOBJS
:=
LOCAL_ASMOBJS
:=
LOCAL_ASMOBJS2
:=
# LOCAL_OBJS is passed back
#LOCAL_OBJS :=
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录