关键Makefile 解读
2007-07-18 00:20
309 查看
# include the system specific Makefile
#0 shell uname 为变量
#1 寻找 ../../目录下的 的相应文件,并释放到当前位置
include ../../Makefile.$(shell uname)
#依赖关系,default依赖于 all
default: all
all: cmm_setup.o cmm.o
all: cmm_setup.lo cmm.lo
clean:
-rm -f *.o *.lo Makefile.depend matplc.log
#get warnings, debugging information and optimization
#CFLAGS 给编译器使有的变量,用以设置相关参数
CFLAGS = -Wall -Wpointer-arith -Wstrict-prototypes -Wwrite-strings
# CFLAGS += -Werror
CFLAGS += -ggdb -O3 -funroll-loops
# Note: if the optimizer crashes, we'll leave out the -O3 for those files
CFLAGS += -I..
CFLAGS += $(PLCSYSTEM_CFLAGS)
#how to make things from other directories if they are missing
#$(◎D)$@的目录部分,$(@F) $@的文件部分
#。。、%/% 依赖于 先到相关目录下 再执行MAKE命令
# %表示,无字符或任意字符
../% /%: $(MAKE) -C $(@D) $(@F)
#多目标依赖
#MM gun make头文件依赖
# - I include dir
Makefile.depend depend:
$(CC) -MM -MG -I.. $(PLCSYSTEM_CFLAGS) *.c /
| perl -pe 's/:/ Makefile.depend:/' > Makefile.depend
include Makefile.depend
# make a shareable object from C source
#$< 依赖目标的第一个文件,如果依赖目标是%则是依赖目标的所有文件
#使用LIBTOOL 工具进行编译
%.lo: %.c
$(LIBTOOL) --mode=compile $(COMPILE.c) $(OUTPUT_OPTION) $<
#0 shell uname 为变量
#1 寻找 ../../目录下的 的相应文件,并释放到当前位置
include ../../Makefile.$(shell uname)
#依赖关系,default依赖于 all
default: all
all: cmm_setup.o cmm.o
all: cmm_setup.lo cmm.lo
clean:
-rm -f *.o *.lo Makefile.depend matplc.log
#get warnings, debugging information and optimization
#CFLAGS 给编译器使有的变量,用以设置相关参数
CFLAGS = -Wall -Wpointer-arith -Wstrict-prototypes -Wwrite-strings
# CFLAGS += -Werror
CFLAGS += -ggdb -O3 -funroll-loops
# Note: if the optimizer crashes, we'll leave out the -O3 for those files
CFLAGS += -I..
CFLAGS += $(PLCSYSTEM_CFLAGS)
#how to make things from other directories if they are missing
#$(◎D)$@的目录部分,$(@F) $@的文件部分
#。。、%/% 依赖于 先到相关目录下 再执行MAKE命令
# %表示,无字符或任意字符
../% /%: $(MAKE) -C $(@D) $(@F)
#多目标依赖
#MM gun make头文件依赖
# - I include dir
Makefile.depend depend:
$(CC) -MM -MG -I.. $(PLCSYSTEM_CFLAGS) *.c /
| perl -pe 's/:/ Makefile.depend:/' > Makefile.depend
include Makefile.depend
# make a shareable object from C source
#$< 依赖目标的第一个文件,如果依赖目标是%则是依赖目标的所有文件
#使用LIBTOOL 工具进行编译
%.lo: %.c
$(LIBTOOL) --mode=compile $(COMPILE.c) $(OUTPUT_OPTION) $<
相关文章推荐
- Makefile的两条关键规则
- 对内核模块的Makefile文件解读
- hello模块编译及Makefile解读
- 可转债两个关键指标解读以及转股注意事项
- 艾伟也谈项目管理,解读敏捷需求分析五大关键因素
- Linux内核的Makefile和kconfig解读
- [Linux笔记]Linux内核的Makefile和kconfig解读
- makefile编写粗略(部分)解读
- sklearn中LinearRegression关键源码解读
- makefile 详细解读
- 关于makefile的rules.mk 解读
- HashMap 主要特点和关键方法源码解读
- Makefile解读
- Linux内核的Makefile和kconfig解读,如何在内核中添加自己的代码
- caffe的Makefile.config解读
- GNU ARM汇编--(十七)u-boot的makefile和mkconfig解读
- 心理学解读银行改革关键之关键
- Linux内核的Makefile和kconfig解读
- 解读Windows Phone开发的六个关键模块
- makefile的10个关键知识点