linux011之内存管理的makefile分析

来源:互联网 发布:数码宝贝大师台服淘宝 编辑:程序博客网 时间:2024/05/22 09:48
CC=gcc   #GNU C 语言编译器CFLAGS=-O -Wall -fstrength-reduce -fcombine-regs -fomit-frame-pointer\-finline-functions -nostdinc -I../include#C编译程序选项.-Wall显示所有的警告信息;-O优化选项,优化代码长度和执行时间;#-fstrength-reduce优化循环执行代码,排除重复变量;-fomit-frame-pointer省略保存不必要#的框架指针;-fcombine-regs合并寄存器,减少寄存器类的使用;-finline-fucntions将所有#简单短小的函数代码嵌入到调用程序中;-nostdinc -I../include不能使用默认路径中的包含文件#而使用这里指定目录中的包含文件AS=gas #GNU 汇编程序AR=gar #GNU 二进制文件处理程序,用于创建、修改以及从归档文件中抽取文件LD=gld #GNU链接程序CPP=gcc -E -nostdinc -I../include ##C预处理选项.-E只运行C预处理,对所有指定的C程序进行预处理并将处理结果输出到标准输出#设备或者指定的输出文件中,-nostdinc -I../include同前#下面编译规则指示make利用下面的语句将所有的.c文件编译成.s汇编程序.该规则的命令指使gcc采#用CFLAGS所指定的选项对C代码编译后不进行汇编就停止(-S),从而产生与输入的各个C文件对应#的汇编代码文件.默认情况下所产生的汇编程序文件名是原C文件名去掉.c而加上.s后缀.-o表示输出#文件的名称.其中$*.s(或$@)是自动目标变量#$<代表第一个先决条件,这里既是符合条件*.c的文件#.c.o:$(CC) $(CFLAGS) -c -o $*.o $< # 将.c文件生成.o.s.o:$(AS) -o $*.o $<#将.s生成.o.c.s:$(CC) $(CFLAGS) -S -o $*.s $< #将.c生成.sOBJS = memory.o page.o#定义目标文件变量OBJS                                #all:mm.o                        #mm.o:$(OBJS)                    #mm.o的生成依赖于(OBJS)$(LD) -r -o mm.o $(OBJS)  #生成mm.oclean:                          #删除文件rm -f core *.o *.a tmp_make #for i in *.c;do rm -f `basename $$i.c`.s;done    #dep:                                                 #生成一个文件的依赖关系sed `/\#\#\# Dependencies/q`<Makefile>tmp_make   #(for i in *.c;do $(CPP) -M $$i;done)>>tmp_make   ####Dependencies:                                     #memory.o:memory.c ../include/signal.h ../include/sys/types.h\#../include/asm/system.h ../include/linux/sched.h ../include/linux/head.h\ #../include/linux/fs.h ../include/linux/mm.h ../include/linux/kernel.h     #                                                                              #


0 0
原创粉丝点击