天天看点

Linux的通用makefile模板Linux的通用makefile模板

Linux的通用makefile模板

# 下面的变量可以在shell 的环境变量里面指定。

# 也可以象下面这样在 Makefile 里面指定。

# CC=gcc                                          # 编译器

# CFLAGS=-Wall -Werror -g           # 编译器参数

# LD=gcc                                          # 连接器参数

# LDFLAGS= $(LIBS)  -lpthread      # 连接器参数

# DEPENDFLAG=-MM                   # 生成依赖关系文件的参数

# INCLUDES=-Idir1 -Idir2               # 指明包含外部头文件的目录

# LIBS=-la -lb -lc                              # 指明引用外部的库文件

CFLAGS:=$(CFLAGS) $(INCLUDES)

LDFLAGS:=$(LDFLAGS) $(LIBS)

#指明项目中,包含源程序的所有的子目录。

SRCDIRS=.

#指明最终生成的可执行文件的名称

PROGRAMS=test.exe

#下面的部分一般不用改动

#从所有子目录中得到源代码的列表

SRCS=$(foreach dir,$(SRCDIRS),$(wildcard $(dir)/):?$(basename $<).o $(basename $<).d :?g" /

        > [email protected] || $(RM) [email protected]

$(PROGRAMS): $(OBJS)

        $(CC) $(LDFLAGS) -o [email protected] $(filter %.o ,$+)

# 包含入依赖关系文件

include $(DEPENDS)

# 删除生成的中间文件

clean:

        rm $(OBJS) $(DEPENDS) $(PROGRAMS)

继续阅读