省事之通用Makefile模版

现在编译方案都偏爱使用cmake解决问题,这两条做unity插件,还是用Makefile,居然忘得光光,好记性不如烂笔头。

后面,翻箱倒柜找到以前为炼金术写的Makefiel,发现还真是挺好用,贴出来,当万能Makefile模板挺好的。。

PROJECT_DIR = ..
#PATH:=${ALCHEMY_HOME}/achacks:${PATH}
CC = gcc
AR = ar
CFLAGS := -Wall -W -std=gnu99 -g
LDFLAGS = 
INCLUDE_DIR = -I$(PROJECT_DIR)/luajit/src
LIBNAME = libz.a

OBJS = $(patsubst ./%.c, %.o,$(wildcard ./*.c)) 

.PHONY: all clean

.SUFFIXES: .c .o

.c.o:
	$(CC) $(CFLAGS) -c $< $(INCLUDE_DIR)
	
all: $(LIBNAME)

$(LIBNAME):$(OBJS)
	@$(AR) rcs $(LIBNAME) $(OBJS)
	ranlib $(LIBNAME)

clean:
	@rm -rf $(LIBNAME) $(OBJS)
  • 修改LIBNAME为你想要库名
  • 在源码目录文件名为Makefile
  • 只实现make 和make clean
  • 如果c++的自己实现一下自动推导规则,看着也简单

另外,也改善一下对MinGW的印象,其实也挺好用的,不一定要用cmake生成vc解决方案,既然喜欢linux,为什么不能接受mingw呢?

原文地址:https://www.cnblogs.com/linbc/p/6298568.html