- 论坛徽章:
- 1
|
请参考:http://blog.csdn.net/danforn/archive/2006/12/01/1424619.aspx
- --- 3.7 编译标记
- EXTRA_CFLAGS, EXTRA_AFLAGS, EXTRA_LDFLAGS, EXTRA_ARFLAGS
- 所有的EXTRA_变量只能使用在定义该变量后的makefile文件中。EXTRA_变量被makefile文件所有的执行命令语句所使用。
- $(EXTRA_CFLAGS)是使用$(CC)编译C文件的选项。
- 例如: # drivers/sound/emu10k1/Makefile
- EXTRA_CFLAGS += -I$(obj)
- ifdef
- DEBUG EXTRA_CFLAGS += -DEMU10K1_DEBUG
- endif
- 定义这个变量是必须的,因为顶层makefile定义了$(CFLAGS)变量并使用该变量编译整个代码树。
- $(EXTRA_AFLAGS)是每个目录编译汇编语言源文件的选项。
- 例如: #arch/x86_64/kernel/Makefile
- EXTRA_AFLAGS := -traditional
- $(EXTRA_LDFLAGS)和$(EXTRA_ARFLAGS)用于每个目录的$(LD)和$(AR)选项。
- 例如: #arch/m68k/fpsp040/Makefile
- EXTRA_LDFLAGS := -x
- CFLAGS_$@, AFLAGS_$@
- CFLAGS_$@和AFLAGS_$@只使用到当前makefile文件的命令中。
- $(CFLAGS_$@)定义了使用$(CC)的每个文件的选项。$@部分代表该文件。
- 例如: # drivers/scsi/Makefile
- CFLAGS_aha152x.o = -DAHA152X_STAT -DAUTOCONF
- CFLAGS_gdth.o = # -DDEBUG_GDTH=2 -D__SERIAL__ -D__COM2__ \
- -DGDTH_STATISTICS CFLAGS_seagate.o = -DARBITRATE -DPARITY -DSEAGATE_USE_ASM
- 这三行定义了aha152x.o、gdth.o和seagate.o文件的编译选项。
- $(AFLAGS_$@)使用在汇编语言代码文件中,具有同上相同的含义。
- 例如: # arch/arm/kernel/Makefile
- AFLAGS_head-armv.o := -DTEXTADDR=$(TEXTADDR) -traditional
- AFLAGS_head-armo.o := -DTEXTADDR=$(TEXTADDR) -traditional
复制代码
一般是设置专门的DEBUG使用的Makefile,例如:Makefile_DEBUG |
|