我写的万能多用途简洁的Makefile
来源:互联网 发布:单片机 8位可变波特率 编辑:程序博客网 时间:2024/05/01 10:23
我写的万能多用途,简洁的Makefile。希望对你有用。
############################################################### 简洁通用的Makefile文件(Ver 1.1)## Smart Makefile for general purpose (Ver 1.1)## Author: 汤 永康 Yongkang TANG <tangyk%at%gmail>## License: FreeBSD ## Please use this makefile at YOUR OWN RISK !!!## Source: https://github.com/tangyk/Smart-Makefile## 功能: (1)自动搜索编译指定目录下的所有c/c++程序文件## (2)自动搜索并包含(#include)指定目录下的头文件## (3) 可一次性生成多个可执行文件## (4) 设置简单#### 用法: make 编译所有的应用程序## make [step4指定的某程序名]## make clean 清除obj文件#############################################################CC=g++# Step1.设置第三方头文件的路径以及编辑参数. 比如 CFLAGS= -c -Wall -g -I/any/path/inludeCFLAGS= -c -Wall -g # Step2.设置库文件以及库文件路径 比如 LIBS = -lGL -lGLU `pkg-config --libs opencv`LIBS= -lm# Step3.制定程序的所在路径# 路径不能以 [/] 符号结尾. 应设置为: SRC_DIR = . , SRC_DIR = ./test1 SRC_DIR = .# Step4.需要生成的可执行程序列表 e.g. APP = app1 app2 app3APP = app#app_EXCL = ./test2/src/test3.cpp ./test2.cxx# Step5.一个可执行程序只能有一个(main)入口。# 当有多个应用程序时,需要设置生成各个可执行程序时,需要排除的程序文件列表# 如果step4中指定的应用程序是server, 在生成server时,需要排除 ./client.c 以及 ./test1.c的话,应做如下设置#server_EXCL = ./client.c ./test1.c # 以此类推。########################### 请不要更改以下内容 ##########EXTS := *.C *.c *.cxx *.CXX *.cpp *.CPP *.cc *.CCDIRS := ${shell find ${SRC_DIR} -type d -print}SRCS := $(foreach dir,$(DIRS),$(wildcard $(addprefix $(dir)/,$(EXTS))))CFLAGS += $(foreach dir,$(DIRS), $(addprefix -I,$(dir)))OBJS := $(addsuffix .o, $(SRCS))define CMPL_APP$(1): $(filter-out $(addsuffix .o,$(value $(1)_EXCL)), $(OBJS))$(CC) -o $(1) $(filter-out $(addsuffix .o, $(value $(addsuffix _EXCL, $(1)))), $(OBJS)) $(LIBS) $(value $(addsuffix _LIBS, $(1)))endefdefine CMPL_SRC${1}.o:${CC} $(CFLAGS) ${1} -o ${1}.oendef.PHONY: all clean.SUFFIXES:all: $(APP)$(foreach s,$(SRCS),$(eval $(call CMPL_SRC, $(s))))$(foreach ap,$(APP),$(eval $(call CMPL_APP, $(ap))))clean:rm -f ${OBJS} ${value APP}
- 我写的万能多用途简洁的Makefile
- “万能makefile”写法详解,一步一步写一个实用的Makefile
- !的多用途
- 超强的万能 makefile
- 万能的makefile
- 万能的makefile
- 万能的makefile文件
- 所谓的万能makefile
- 万能的makefile
- 一步一步写万能makefile
- 能够编译的万能makefile
- 牛人写的跟我写makefile
- Freemarker如何写的简洁
- “万能makefile”写法详解,一步一步写一个实用的makefile,详解 sed 's,\($*\)\.o[ :]*,\1.o $@ : ,g' < $@.$$$$ > $@; \
- 万能Adapter,让你的代码更简洁
- 一个据说是万能的Makefile文件
- 一个据说是万能的Makefile文件
- 简单的万能Makefile 《学习记录二》
- setContentView和inflate区别
- Linux自带的JDK与sunJDK
- SQL Server 2005中的CHECKSUM功能
- Android获取本机ip地址和Mac地址
- 再论Java的随机数
- 我写的万能多用途简洁的Makefile
- 心情不好或者问题很难解决就看一看
- 2011 Asia Beijing Regional Online Contest-1007 hdu4046 Panda
- hdu 3673 David Shopping
- 分享国内外21大知名网盘
- poj 3468 树状数组解法(解决区间更新,区间求和)
- linux下valgrind的使用概述
- 12个国外稳定无限量免费网盘
- C#is操作符