以下makefile比较简单,适用于所有源码在一个文件夹下面;
缺点:编译的时候没有检查.h文件修改,所以修改了.h文件需要clean之后重新编译.
SRCDIR:=.
OBJDIR:=.
CC:=gcc
STRIP:=strip
CFLAGS:=-w -O2
.PHONY: all
.DEFAULT: all
OBJDIR:=./obj
SRCS:=$(wildcard $(SRCDIR)/*.c)
OBJS:=$(addprefix $(OBJDIR)/,$(patsubst %.c,%.o,$(SRCS)))
PROGRAM:=main.elf
all: $(PROGRAM)
$(OBJS): $(OBJDIR)/%.o : %.c
@if [ ! -d $(dir $@) ] ; then mkdir -v -p $(dir $@) ; fi
@echo compile: $<
$(CC) $(CFLAGS) -c $< -o $@
$(PROGRAM): $(OBJS)
$(CC) $(OBJS) -o $(PROGRAM) -lpthread -static
$(STRIP) $(PROGRAM)
clean:
rm -f $(OBJDIR)/* $(PROGRAM)