LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 734|回复: 2

Makefile的问题

[复制链接]
发表于 2003-11-17 11:20:31 | 显示全部楼层 |阅读模式
我在书上看到Makefile工具功能很强,但还不是很懂.
请问可以告诉我下面文件中的参数是什么意思吗?
EXECUTABLE:=mushroom.exe
LIBS:=allet

CFLAGS:= -g -Wall -O3 -m486
CXXFLAGS:=$(CFLAGS)

ifneq ($(wildcard$(DJDIR)/bin/rm.exe),)
RM-F:=rm -f
else
RM-F:=del
endif

SOURCE:=$(wildcard*.c)$(wildcard*.cc)
OBJS:=$(patsubst%.c,%.o,$(patsubst%.cc,%.o,$(SOURCE)))
DEPS:=$(patsubst%.o,%.d,$(OBJS))
MISSING_DEPS:=$(filter-out$(wildcard$(DEPS)),$(DEPS))
MISSING_DEPS_SOURCES:=$(wildcard$(patsubst%.d,%.c,$(MISSING_DEPS))\$(patsubst%.d,%.cc,$(MISSING_DEPS)))
CPPFLAGS+=-MD

.PHONY:everything deps objs clean veryclean rebuild
everything(EXECUTABLE)

deps(DEPS)

objs(OBJS)

clean:
  @$(RM-F) *.o
  @$(RM-F) *.d

veryclean:clean
  @$(RM-F)$(EXECUTABLE)

rebuild:veryclean everything

ifneq($(MISSING_DEPS),)
$(MISSING_DEPS):
@$(RM-F) $(patsubst%.d,%.o,$@)
endif

-include $(DEPS)

$(EXECUTABLE)(OBJS)
  gcc -o $(EXECUTABLE) $(OBJS) $(addprefix -l,$(LIBS))
发表于 2003-11-18 19:34:18 | 显示全部楼层
sir 上有讲makefile 的文章的,搜一下吧。
发表于 2003-11-18 19:49:29 | 显示全部楼层
Makefile 可以看成是一个shell脚本
如上面
clean:
@$(RM-F) *.o
@$(RM-F) *.d

使用make clean时
它就会执行clean下面的两个rm语句
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表