GCC通用makefile

来源:互联网 发布:你不知道的js中文pdf版 编辑:程序博客网 时间:2024/06/06 23:20

## 一个可以编译多文件的简单makefile

## 友情提示:注意不要使用空格,要用TAB键代替,否则make命令执行时会出现错误

TARGET:=./hello

INCDIR:=../include

##SRCDIR:=src


SRCDIR:=./

OBJDIR:=./obj

$(shell if !([ -d $(OBJDIR) ]); then mkdir $(OBJDIR); fi)

##LIBDIR:=lib

##$(shell if !([ -d $(LIBDIR) ]); then mkdir $(LIBDIR); fi)

CC  :=g++

FLAGS:=-g -Wall -W -I$(INCDIR) -D_DEBUG

##看看怎样包含自己编译的静态库的 首先指定自己编译的静态库的位置:   -L/home/xiaoheqing/ztx/lib
## 然后链接该静态库 -lztx
## 注意:生成的静态库一定要是 libxxx.a这种形式,如果链接的是 -lztx, 则生成的静态库名字应该为:libztx.a 

##LIBS = -L/home/andy/share/libmad_install/lib -lmad  -L/home/andy/share/alsalib/lib -lasound

LIBS :=-lpthread -L../lib -lvoip_static

SRCS=$(wildcard  ../common/*.cpp  ./*.c  ./*.cc  ./*.cpp )

OBJ=$(SRCS:.cxx=.o)

$(TARGET):$(OBJ)
$(CC) -o $@ $^ $(FLAGS) $(LIBS)     ##特别注意:此行前面需要加上TAB,不能是空格 !!!

##$(OBJDIR)/%.o:./common/%.cpp 

##      $(CC) -c $< -o $@ $(FLAGS)

##$(OBJDIR)/%.o: ./authsvr/%.cpp

##      $(CC) -c $< -o $@ $(FLAGS)

##$(shell cp $(TARGET) ./bin/ )

##$(shell if ([ -f "$(TARGET)" ]); then cp $(TARGET) ./bin/;  fi)

.PHONY: clean

clean:
rm -f ./*.o  $(TARGET)      ## 特别注意:此行前面需要加上TAB ,不能是空格 !!!
0 0
原创粉丝点击