[编程代码]一个linux下的gcc/c语言makefile

#设置编译器 

   
     
   
CC = gcc
     
#设置编译选项 

   
     
   

   
     
   
CFLAGS = -O2
     
#设置连接选项 

   
     
   
LDFLAGS = -lpcap
     
#设置可执行文件名 

   
     
   
EXE = a.out
     
#设置源文件目录 

   
     
   
SRCDIRS = .
     
#设置文件后缀 

   
     
   
SRCEXTS = .c
     
#设置清理命令 

   
     
   
RM = rm -f
     
#设置编译选项 

   
     
   

   
     
   

   
     
   
SHELL = /bin/sh
     

   
     
   
SOURCES = $(foreach d, $(SRCDIRS), $(wildcard $(addprefix $(d)/*, $(SRCEXTS))))
     

   
     
   
OBJS = $(foreach x, $(SRCEXTS), /
     

   
     
   
        $(patsubst %$(x), %.o, $(filter %$(x), $(SOURCES))))
     

   
     
   
DEPS = $(patsubst %.o, %.d, $(OBJS))
     
#设置假想目标 

   
     
   

   
     
   

   
     
   
.PHONY: all objs clean cleanall rebuild
     

   
     
   
all : $(EXE)
     

   
     
   

   
     
   

   
     
   
%.d : %.c
     

   
     
   
        @$(CC) -MM -MD $(CFLAGS) 
     
objs: $(OBJS)
     

   
     
   

   
     
   

   
     
   
%.o:%.c
     

   
     
   
        $(CC) -c  $(CFLAGS) 
     
$(EXE):$(OBJS)
     

   
     
   
        $(CC) -o $(EXE) $(OBJS) $(LDFLAGS)
     

   
     
   
-include $(DEPS)
     

   
     
   
rebuild : clean all
     

   
     
   

   
     
   

   
     
   
clean:
     

   
     
   
        @$(RM) *.o *.d
     

   
     
   
cleanall: clean
     

   
     
   
        @$(RM) $(EXE) 
     

 

你可能感兴趣的:(编程,linux,exe,语言,makefile,wildcard)