Chinaunix首页 | 论坛 | 博客
  • 博客访问: 198337
  • 博文数量: 56
  • 博客积分: 125
  • 博客等级: 入伍新兵
  • 技术积分: 427
  • 用 户 组: 普通用户
  • 注册时间: 2012-03-21 20:45
文章分类

全部博文(56)

文章存档

2018年(9)

2017年(10)

2016年(33)

2012年(4)

我的朋友

分类: LINUX

2017-04-26 09:43:17



点击(此处)折叠或打开

  1. ######################################
  2. #
  3. ######################################
  4. #source file
  5. #源文件,自动找所有.c和.cpp文件,并将目标定义为同名.o文件
  6. SOURCE := $(wildcard *.c) $(wildcard *.cpp)
  7. OBJS := $(patsubst %.c,%.o,$(patsubst %.cpp,%.o,$(SOURCE)))

  8. #$(warning $(SOURCE))
  9. #$(warning $(OBJS))
  10. #target you can change test to what you want
  11. #目标文件名,输入任意你想要的执行文件名
  12. #TARGET := $(patsubst %.c,%,$(patsubst %.cpp,%.o,$(SOURCE)))
  13. TARGET := a.out
  14. #$(warning $(TARGET))
  15. #compile and lib parameter
  16. #编译参数
  17. CC := gcc
  18. LIBS := -lpthread -lsqlite3
  19. DEFINES :=
  20. LDFLAGS :=
  21. INCLUDE := -I.
  22. CFLAGS := -g -Wall $(DEFINES) $(INCLUDE)
  23. #CFLAGS += -Wall -O2 $(DEFINES) $(INCLUDE)

  24. #外部变量传入编译参数
  25. ifdef thread
  26. CFLAGS += -DTHREAD
  27. endif

  28. ifdef signal
  29. CFLAGS += -DSIGNAL
  30. endif

  31. ifdef njournal
  32. CFLAGS += -DNJOURNAL
  33. endif

  34. ifdef string
  35. CFLAGS += -DSTRING
  36. endif
  37. CXXFLAGS:= $(CFLAGS)
  38.   
  39.   
  40. #i think you should do anything here
  41. #下面的基本上不需要做任何改动了
  42. .PHONY : everything objs clean veryclean rebuild
  43.   
  44. everything : $(TARGET)
  45.   
  46. all : $(TARGET)
  47.   
  48. objs : $(OBJS)
  49.   
  50. rebuild: veryclean everything
  51.                 
  52. clean :
  53.     @rm -fr *.so
  54.     @rm -fr *.o
  55.     @rm -fr $(TARGET)
  56.     
  57. veryclean : clean
  58.     rm -fr $(TARGET)
  59.   
  60. $(TARGET) : $(OBJS)
  61.     $(CC) $(CXXFLAGS) $(OBJS) $(LDFLAGS) $(LIBS) -o $@
  62.     
  63. %.o : %.c
  64.     $(CC) $(CFLAGS) -c $< -o $@
文件夹下面的程序最终编译成a.out
阅读(2372) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~