Makefile 配置文件
提示
本页面正在重构,内容将逐步更新。您正在查看的是旧版本,查看正在重构的版本请 移步至此
Makefile 文件中制定了软件编译构建过程中的源文件依赖关系及编译参数,其中一些编译配置是架构相关的。
配置架构相关源文件及参数
示例:kexec-tools 的 Makefile 文件多架构组织结构
- 项目名称:kexec-tools
- 项目版本:
- 相关文件:
/kexec/Makefile
- 简介:在
/kexec/arch
文件夹下有多个以架构名命名的文件夹,各自包括一个Makefile
文件。 顶层目录中的Makefile
中引用各架构下的Makefile
文件。
在 /kexec/arch
文件夹下有多个以架构名命名的子文件夹, 每个子文件夹都包括一个 Makefile 文件。 这些 Makefile 中均存在 架构名_KEXEC_SRCS
和 dist
变量, 它们在 src/Makefile.in
参与编译构建。
不同架构下的 Makefile 文件中的主要区别体现在 架构名_KEXEC_SRCS
和 dist
中增减依赖的源文件。 其中 RISC-V 架构与 ARM64 架构对应的 Makefile 内容相似度较高,下面列出了二者的相似部分:
变量 | RISC-V | ARM64 |
---|---|---|
架构名_KEXEC_SRCS | riscv_KEXEC_SRCS = kexec/arch/riscv/kexec-riscv.c | arm64_KEXEC_SRCS += \ |
架构名_MEM_REGIONS | riscv_MEM_REGIONS = kexec/mem_regions.c | arm64_MEM_REGIONS = kexec/mem_regions.c |
架构名_DT_OPS | riscv_DT_OPS += kexec/dt-ops.c | arm64_DT_OPS += kexec/dt-ops.c |
架构名_ARCH_REUSE_INITRD | riscv_ARCH_REUSE_INITRD = | arm64_ARCH_REUSE_INITRD = |
架构名_CPPFLAGS | riscv_CPPFLAGS += -I $(srcdir)/kexec/ | arm64_CPPFLAGS += -I $(srcdir)/kexec/ |
dist | dist += kexec/arch/riscv/Makefile $(riscv_KEXEC_SRCS) \ | dist += $(arm64_KEXEC_SRCS) \ |
HAVE_LIBFDT | ifdef HAVE_LIBFDT | ifdef HAVE_LIBFDT |
/kexec/arch/arm64/Makefile
还有一些其他变量定义:
arm64_FS2DT += kexec/fs2dt.c
arm64_FS2DT_INCLUDE += \
-include $(srcdir)/kexec/arch/arm64/crashdump-arm64.h \
-include $(srcdir)/kexec/arch/arm64/kexec-arm64.h
arm64_UIMAGE = kexec/kexec-uImage.c
arm64_ADD_SEGMENT =
arm64_VIRT_TO_PHYS =
arm64_PHYS_TO_VIRT =
src\kexec\Makefile
文件中包含了 src\kexec\arch\
中的各子文件夹中的 Makefile 文件:
# Line 81-95
include $(srcdir)/kexec/arch/alpha/Makefile
include $(srcdir)/kexec/arch/arm/Makefile
include $(srcdir)/kexec/arch/arm64/Makefile
include $(srcdir)/kexec/arch/i386/Makefile
include $(srcdir)/kexec/arch/ia64/Makefile
include $(srcdir)/kexec/arch/m68k/Makefile
include $(srcdir)/kexec/arch/mips/Makefile
include $(srcdir)/kexec/arch/cris/Makefile
include $(srcdir)/kexec/arch/ppc/Makefile
include $(srcdir)/kexec/arch/ppc64/Makefile
include $(srcdir)/kexec/arch/riscv/Makefile # Line 91: RISC-V Support
include $(srcdir)/kexec/arch/s390/Makefile
include $(srcdir)/kexec/arch/sh/Makefile
include $(srcdir)/kexec/arch/x86_64/Makefile
include $(srcdir)/kexec/arch/hppa/Makefile
src/Makefile.in
对编译构建的操作做了配置,其中包含了 src\kexec\Makefile
:
#
# kexec (linux booting linux)
#
include $(srcdir)/kexec/Makefile # Line 166