ccflags-y += -D__CCFLAGS_TEST__ __CCFLAGS_TEST__:=1export __CCFLAGS_TEST__//导出了__CCFLAGS_TEST__宏,使得在 Makefile 中定义的宏可以在子进程中使用 通过以上的代码,编译过程中会将 __CCFLAGS_TEST__宏定义为1,从而在代码中可以根据这个宏的取值进行条件编译,实现不同的编译选项和行为。 ccflags...
这两个编译选项与ccflags-y和asflags-y效果是一致的,只是添加了subdir-前缀,意味着这两个编译选项对本目录和所有的子目录都有效。 CFLAGS_$@, AFLAGS_$@ 使用CFLAGS_或者AFLAGS_前缀描述的模块可以为模块的编译单独提供参数,举个例子: CFLAGS_foo.o = -DAUTOCONF 在编译foo.o时,添加了-DAUTOCONF编译选项。
ccflags-y := -DVERBOSE_DEBUG opps-objs :=oops_test.o obj-make := opps.o KBUILD_CFLAGS +=-g CC = gcc CCFLAGS = -D_DEBUG -g -m486 test.o: test.c test.h $(CC) -c $(CCFLAGS) test.c 在上面的例子中,CC和 CCFLAGS 就是 make 的变量。GNU make通常称之为变量,而其他 UNIX 的 ma...
ifneq ($(CONFIG_MTK_CCCI_DEVICES),y) ccflags-y += -D__USING_DUMMY_CCCI_API__ endif 1. 2. 3. 如果CONFIG_MTK_CCCI_DEVICES定义成y,则下面的语句起作用。去掉-D,类似定义了__USING_DUMMY_CCCI_API__这个宏,在C代码中,用#ifdef __USING_DUMMY_CCCI_API__来使用。 (11)include -include Make...
2.3.1 ccflags-y、asflags-y、ldflags-y 这三个变量只在当前Makefile中有效。补充:$(KBUILD_CFLAGS)是定义在根目录Makefile中的变量,它适用于整个内核数。 2.3.2 subdir-ccflags-y、subdir-asflags-y 这两个变量作用于当前Makefile及其所有子目录。
2.2 lib-y和lib-m 在一个目录下,obj-y所列出的文件,将被编译成built-in.o文件,而lib-y或lib-m所列出的文件,将在当前目录下生成lib.a文件。 注意:一般lib-y或lib-m只用在lib/和arch/*/lib这两个目录中。 2.3编译选项变量 2.3.1 ccflags-y、asflags-y、ldflags-y ...
·ccflags-y, asflags-y and ldflags-y 这些编译选项用于指定cc、as和ld的编译选项 编译外部模块 有时候我们需要在内核源代码数的外面编译内核模块,编译的基本命令是: make -C $(KERNEL_DIR) M=`pwd` modules 我们可以把这个命令集成到Makefile里,这样我们就可以只输入“make”命令就可以了。回想上一章的那个...
296297CCFLAGS-Y指定的选项进行编译$(CC) 298299例: 300#驱动器/ ACPI / Makefile文件 301CCFLAGS-Y =-O的 302CCFLAGS美元(CONFIG_ACPI_DEBUG)+ =-DACPI_DEBUG_OUTPUT 303304这个变量是必要的,因为顶层Makefile拥有 305变量$(KBUILD_CFLAGS),并用它的306整个树的编译选项 ...
subdir-ccflags-y := 上述变量就是当前内核编译需要处理的变量,在此处进行初始化,通常最主要的就是 obj-y 和 obj-m 这两项,分别代表需要被编译进内核的模块和外部可加载模块。 lib-y 并不常见,通常地,它只会重新在 lib/目录下,其他部分我们在后文继续解析。
ccflags-y, asflags-y and ldflags-y 这些编译选项用于指定cc、as和ld的编译选项 编译外部模块 有时候我们需要在内核源代码数的外面编译内核模块,编译的基本命令是: make -C $(KERNEL_DIR) M=`pwd` modules 我们可以把这个命令集成到Makefile里,这样我们就可以只输入“make”命令就可以了。回想上一章的那个Mak...