ltp-ddt的makefile结构
顶层makefile
COMMON_TARGETS := pan utils
COMMON_TARGETS += tools testcases/ddt
COMMON_TARGETS += testcases/kernel/timers
COMMON_TARGETS += testcases/kernel/ipc
COMMON_TARGETS += testcases/kernel/mem
COMMON_TARGETS += testcases/kernel/lib
COMMON_TARGETS += testcases/kernel/syscalls
COMMON_TARGETS += testcases/kernel/security
COMMON_TARGETS += testcases/kernel/sched
COMMON_TARGETS += testcases/kernel/hotplug
COMMON_TARGETS += testcases/misc/math
COMMON_TARGETS += testcases/lib
COMMON_TARGETS += testcases/realtime
COMMON_TARGETS += testcases/cve
COMMON_TARGETS += testcases/commands/keyctl
需要编译的目标,可以在此处注释掉,不进行编译,最终目标文件夹会小很多(只编译pan utils tools testcases/ddt 和testcases/lib 54MB)
all: $(addsuffix -all,$(COMMON_TARGETS)) Version
$(MAKE_TARGETS): lib-all
$(MAKE_TARGETS) include-all lib-all:
$(MAKE) -C "$(subst -all,,$@)" \
-f "$(abs_top_srcdir)/$(subst -all,,$@)/Makefile" all
先编译lib,之后按照COMMON_TARGETS 顺序逐一编译。
./testcases:
top_srcdir ?= ..
include $(top_srcdir)/include/mk/env_pre.mk
FILTER_OUT_DIRS := kdump
ifneq ($(WITH_OPEN_POSIX_TESTSUITE),yes)
FILTER_OUT_DIRS += open_posix_testsuite
endif
ifneq ($(WITH_REALTIME_TESTSUITE),yes)
FILTER_OUT_DIRS += realtime
endif
include $(top_srcdir)/include/mk/generic_trunk_target.mk # 包含generic_trunk_target.inc 中包含all:
./testcases/ddt:
top_srcdir ?= ../..
include $(top_srcdir)/include/mk/env_pre.mk
include $(top_srcdir)/include/mk/generic_trunk_target.mk
./testcases/ddt/i2c_test_suite:
top_srcdir ?= ../../..
include $(top_srcdir)/include/mk/env_pre.mk
KERNEL_DIR := $(patsubst %/include,%,$(KERNEL_INC))
INSTALL_DIR := testcases/bin/ddt
FILTER_OUT_DIRS :=
# We don't want to copy over the Makefile
UNWANTED_FILES := Makefile
INSTALL_MODE := 00755
#INSTALL_TARGETS := $(filter-out $(UNWANTED_FILES),$(notdir $(patsubst $(abs_srcdir)/%,%,$(wildcard $(abs_srcdir)/*))))
CFLAGS += -g -Wall -O1 -fomit-frame-pointer
LDFLAGS += -g -static
INCLUDES = -I $(KERNEL_USR_INC) -I src/interface/common -I ../utils/user
#List of source files- Update this on adding a new C file
SOURCES := \
../utils/user/st_timer.c \
../utils/user/st_cpu_load.c \
src/testcases/st_i2c_eeprom.c \
src/interface/common/st_i2c_common.c \
src/parser/st_i2c_parser.c
MAKE_TARGETS := i2c_tests
i2c_tests:
$(CC) $(CFLAGS) $(LDFLAGS) -o i2c_tests ${INCLUDES} ${SOURCES}
include $(top_srcdir)/include/mk/generic_leaf_target.mk #包含generic_leaf_target.inc 中包含all:
./testcases/ddt/scripts
top_srcdir ?= ../../..
include $(top_srcdir)/include/mk/env_pre.mk
# Define directories to exclude from build/installation
#FILTER_OUT_DIRS := kdump
include $(top_srcdir)/include/mk/generic_trunk_target.mk
./testcases/ddt/scripts/eth
top_srcdir ?= ../../../..
include $(top_srcdir)/include/mk/env_pre.mk
INSTALL_DIR := testcases/bin/ddt/$(notdir $(CURDIR:%/=%))
FILTER_OUT_DIRS :=
# We don't want to copy over the Makefile
UNWANTED_FILES := Makefile
INSTALL_MODE := 00755
INSTALL_TARGETS := $(filter-out $(UNWANTED_FILES),$(notdir $(patsubst $(abs_srcdir)/%,%,$(wildcard $(abs_srcdir)/*)))) #shell脚本只需要install 不要gcc
MAKE_TARGETS :=
include $(top_srcdir)/include/mk/generic_leaf_target.mk #最底层文件夹用leaf
./testcases/kernel:
top_srcdir ?= ../..
include $(top_srcdir)/include/mk/env_pre.mk
# NOTE (garrcoop): mce-test isn't integrated into the build.
# Build syscalls in all scenarios.
SUBDIRS := syscalls
# Build lib
SUBDIRS += lib
ifneq ($(UCLINUX),1)
# KEEP THIS LIST ALPHABETIZED PLEASE!
SUBDIRS += connectors \
containers \
controllers \
device-drivers \
firmware \
fs \
hotplug \
input \
io \
ipc \
logging \
mem \
numa \
pty \
sched \
security \
timers \
tracing \
module \
ifeq ($(WITH_POWER_MANAGEMENT_TESTSUITE),yes)
SUBDIRS += power_management
endif
endif
ifeq ($(ANDROID),1)
FILTER_OUT_DIRS += containers controllers device-drivers fs io ipc mem \
sched security timers
endif
include $(top_srcdir)/include/mk/generic_trunk_target.mk
./testcases/kernel/syscalls
top_srcdir ?= ../../..
include $(top_srcdir)/include/mk/env_pre.mk
ifeq ($(UCLINUX),1)
FILTER_OUT_DIRS += capget capset chmod chown clone fork getcontext llseek \
mincore mprotect nftw profil remap_file_pages sbrk
endif
ifeq ($(UCLIBC),1)
FILTER_OUT_DIRS += profil
endif
ifeq ($(ANDROID), 1)
FILTER_OUT_DIRS += \
accept4 adjtimex cma confstr fcntl fmtmsg futex getcontext getcpu \
getdomainname getdtablesize gethostid getgroups get_mempolicy ipc \
linkat kill mallopt memmap mq_notify mq_open mq_timedreceive \
mq_timedsend mq_unlink mmap mremap open openat profil ptrace quotactl \
readahead remap_file_pages rt_sigsuspend rt_sigtimedwait \
sched_getaffinity sched_setaffinity sendmsg setgroups setns sighold \
sigrelse sigsuspend sigtimedwait sigwait sigwaitinfo stime \
setdomainname sethostname symlinkat ulimit ustat vfork vhangup vmsplice
endif
include $(top_srcdir)/include/mk/generic_trunk_target.mk
./testcases/kernel/syscalls/alarm
top_srcdir ?= ../../../..
include $(top_srcdir)/include/mk/testcases.mk
include $(top_srcdir)/include/mk/generic_leaf_target.mk
ltp-ddt的makefile结构的更多相关文章
- 模仿u-boot的makefile结构
u-boot(2014.04)是通过顶层makefile调用各子目录中的makefile来实现整个工程的编译的,实际上子目录的makefile是include进来的.这里仿照这种结构写个模板测试一下. ...
- LTP介绍
1.LTP介绍 LTP--linut test project ,ltp套件是由Linux Test Project所开发的一套系统測试套件.它基于系统资源的利用率统计开发了一个測试的组合,为系 ...
- (三)openwrt主Makefile解析
本周成胖子每周一博到了第四周^_^ 前言 主Makefile结构 顶层 第二层 尾记 前言 前一篇,我们大概描述了整个镜像文件的生成过程.本周我们来解析主Makefile,看看主要编译过程是怎么产生的 ...
- tiny210——uboot移植Makefile文章分析
这东西已经写,我们没有时间发布,如今,终于有时间稍微长送记录汇总uboot学习过程.具体了.以后忘了也能够再温习回来嘛有些特殊字符显示得乱掉了 Makefile追踪技巧: 技巧1:能够先从编译目标開始 ...
- 开源中文分词工具探析(七):LTP
LTP是哈工大开源的一套中文语言处理系统,涵盖了基本功能:分词.词性标注.命名实体识别.依存句法分析.语义角色标注.语义依存分析等. [开源中文分词工具探析]系列: 开源中文分词工具探析(一):ICT ...
- Makefile的制作
一个工程中的源文件不计其数,其按类型.功能.模块分别放在若干个目录中,makefile定义系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因 ...
- Makefile 文件怎么写
跟我一起写Makefile:MakeFile介绍 Makefile 使用总结 1. make 命令与 Makefile 文件 在 Linux 平台,执行 make 命令时,会在当前目录下寻找 Make ...
- LibOpenCM3(二) 项目模板 Makefile分析
目录 LibOpenCM3(一) Linux下命令行开发环境配置 LibOpenCM3(二) 项目模板 Makefile分析 LibOpenCM3 项目模板 项目模板地址: https://githu ...
- GNU MAKE指南
GNU make 指南 翻译: 哈少 译者按: 本文是一篇介绍 GNU Make 的文章,读完后读者应该基本掌握了 make 的用法.而 make 是所有想在 Unix (当然也包括 Linux )系 ...
随机推荐
- C++中为何大量使用类指针
C++的精髓之一就是多态性,只有指针或者引用可以达到多态.对象不行类指针的优点: 第一实现多态. 第二,在函数调用,传指针参数.不管你的对象或结构参数多么庞大,你用指针,传过去的就是4个字节.如果用对 ...
- JavaScript 全栈工程师培训教程 - 阮一峰
http://www.ruanyifeng.com/blog/2016/11/javascript.html https://github.com/ruanyf/jstraining 我现在的技术方向 ...
- SAP 创建 component
1: 进入x3c 系统,输入 T-CODE BSP_WD_CMPWB 2: 输入以Z开头的组件名. 点击create using wizard 3: 输入应用属性 4: 定义 bol mod ...
- Scala数据类型的继承结构
Scala中,所有的值都是类对象,而所有的类,包括值类型,都最终继承自一个统一的根类型Any.统一类型,是Scala的又一大特点.更特别的是,Scala中还定义了几个底层类(Bottom Class) ...
- [LeetCode] 590. N-ary Tree Postorder Traversal_Easy
Given an n-ary tree, return the postorder traversal of its nodes' values. For example, given a 3-ary ...
- Dockerfile详解(三)
1.概述 创建Docker镜像的方式有三种 docker commit命令:由容器生成镜像: Dockerfile文件+docker build命令: 从本地文件系统导入:OpenVZ的模板. 关于这 ...
- JavaScript 基础数组循环和迭代的几种方法
JavaScript 数组循环和迭代 (之前一直没怎么注意数组循环,今天做一道题时,用到forEach循环发现它并没有按照我想象的样子执行,总结一下数组循环) 一.第一种方法就是for()循环 ...
- python对字典及列表递归排序
对字典内所有内容进行排升序排序,包括,子数组,子字典 需要注意: 1.字典因为是在一定程序上无序的,所以这里采用了内置包,来变成有序字典 from collections import Ordered ...
- 解析img图片没找到onerror事件
本篇文章主要介绍了img图片没找到onerror事件 Stack overflow at line: 0 需要的朋友可以过来参考下,希望对大家有所帮助 打开网页时提示 Stack overflow a ...
- hadoop 遇到java.net.ConnectException: to 0.0.0.0:10020 failed on connection
hadoop 遇到java.net.ConnectException: to 0.0.0.0:10020 failed on connection 这个问题一般是在hadoop2.x版本里会出 ...