linux简单的通用Makefile模板
来源:互联网 发布:跆拳道道服多少钱淘宝 编辑:程序博客网 时间:2024/05/16 19:39
供写小程序的时候使用
可以随意的修改文件名称
随意的增删文件、目录
随意的调整文件的目录层次
不编译某个.c文件时将其改个后缀名即可
不能有重复的文件名称
# wugangnan@hcn2000.comCROSS_COMPILE= /opt/poky/1.7.3/sysroots/x86_64-pokysdk-linux/usr/bin/arm-linux-gnueabihf-CC= $(CROSS_COMPILE)arm-linux-androideabi-gccAS = asLD = ld#CC = gccCPP = $(CC) -EAR = arNM = nm# 程序的默认名称TARGET = xf6000test# 命令行中使用p=X或P=X修改默认程序名称ifeq ("$(origin p)", "command line")TARGET = $(p)endififeq ("$(origin P)", "command line")TARGET = $(P)endifDIRS = $(shell find . -type d)# 找出所有的.c .h .a .so文件及目录CFILES_DIR = $(shell find . -type f -name "*.c")CFILES = $(notdir $(CFILES_DIR))HFILES_DIR = $(shell find . -type f -name "*.h")HFILES = $(notdir $(HFILES_DIR))HDIRS= $(sort $(dir $(HFILES_DIR)))AFILES_DIR = $(shell find . -type f -name "lib*.a")AFILES= $(notdir $(AFILES_DIR))ADIRS= $(sort $(dir $(AFILES_DIR)))SOFILES_DIR = $(shell find . -type f -name "lib*.so")SOFILES= $(notdir $(SOFILES_DIR))SODIRS= $(sort $(dir $(SOFILES_DIR)))# 包含所有含有.h文件的目录INCLUDES += $(HDIRS:%=-I%)$(warning INCLUDES : [ $(INCLUDES) ])CFLAGS += $(INCLUDES)# 编译标志CFLAGS += -Wall -WerrorCFLAGS += -g -MD -O2 -static# 含有.a .so文件的目录LDFLAGS += $(ADIRS:%=-L%)LDFLAGS += $(SODIRS:%=-L%)# 引用库文件LDFLAGS += $(AFILES:lib%.a=-l%)LDFLAGS += $(SOFILES:lib%.so=-l%)LDFLAGS += -lpthread$(warning LDFLAGS : [ $(LDFLAGS) ])# 包含所有的目录VPATH = $(DIRS)# 所有的.c文件SOURCES = $(CFILES)$(warning SOURCES : [ $(SOURCES) ])# 目标及依赖OBJS= $(SOURCES:%.c=obj/%.o)DEPS = $(SOURCES:%.c=obj/%.d)###########################################################.PHONY : all clean cleanallall : $(TARGET)$(TARGET) : $(OBJS)@echo@echo "Linking..."@echo$(CC) $(LDFLAGS) $^ -o $@@echo@echo "enjoy < $(TARGET) > Good Luck."@echoobj/%.o : %.c@mkdir -p obj$(CC) $(CFLAGS) -c $< -o $@clean :rm -rf $(OBJS) $(DEPS) objcleanall :rm -rf $(OBJS) $(DEPS) obj $(TARGET)# 包含生成的依赖关系sinclude $(DEPS)
阅读全文
0 0
- linux下面简单通用的Makefile模板
- linux简单的通用Makefile模板
- Linux的通用makefile模板
- Linux的通用makefile模板
- Linux的通用makefile模板
- Linux的通用makefile模板
- 一个简单的通用Makefile模板
- linux 通用Makefile模板
- Linux 通用Makefile模板
- linux通用makefile模板
- 通用的makefile模板
- makefile的通用模板
- linux下通用Makefile模板
- Linux: makefile常用通用模板
- GNU/Linux通用Makefile模板
- 快速实现工程makefile的简单通用模板
- Makefile的通用模板解析
- linux下makefile(通用模板)
- python 爬虫
- CCF模拟题--ISBN号码
- sping-task的运用
- Intel MKL基础(1)了解MKL、MKL资源
- Poj 1979
- linux简单的通用Makefile模板
- Spring 整体架构和环境搭建
- jsp 中list 如何 传到 action 中
- 关于用setMaskFilter设置绘制图像发光失效问题
- jqGrid框架学习(keep update)
- django.db.utils.OperationalError: (1060, "Duplicate column name 'XXX')
- java实现中文汉字转拼音 Pinyin4j的基本用法
- Swift 闭包的使用
- Linux命令