您的位置:首页 > 运维架构

关键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) $<
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息