分享自己编写的一个比较通用的makefile

#############################################################################
# Author: jianwang16
# Date: 2017 06 18
# E-mail:  jianwang16@foxmail.com
#############################################################################

CROSS_COMPILE ?=
TARGET   = main

#CUR_DIR  = $(shell pwd)
CUR_DIR  = .
SRCDIR   = $(CUR_DIR)/src
INCDIR 	 = $(CUR_DIR)/inc
OBJDIR   = $(CUR_DIR)/obj
LIB      = -lwiringPi
VPATH	 = src:inc

CC 		:= $(CROSS_COMPILE)gcc
CFLAGS   = -O2 -I$(INCDIR) -Wall -g -std=c99

# *.c->*.o
SOURCES  = $(foreach dir,$(SRCDIR),$(wildcard $(dir)/*.c))
#$(info SOURCES:$(SOURCES))
OBJECTS  = $(addprefix $(OBJDIR)/,$(patsubst %.c,%.o,$(notdir $(SOURCES))))
#$(info OBJECTS:$(OBJECTS))

all:$(TARGET)

$(TARGET):$(OBJECTS)
	$(info Building $(TARGET) with $(OBJECTS) and $(LIB)...)
	@$(CC) $(OBJECTS) -o $(TARGET) $(CFLAGS)  $(LIB)
	@chmod a+x $(TARGET)
	$(info Building $@ finished)

$(OBJDIR)/%.o:%.c $(INCLUDES) |  $(OBJDIR)
	$(info Compiling $@ from $<...)
	@$(CC) -c $(CFLAGS) $< -o $@
	$(info Compiling $@ finished)
	$(info )
		
$(OBJDIR):
	@mkdir -p $(OBJDIR)

	
.PHONY:clean all	
clean:
	@$(RM) $(OBJDIR)/*.o main

	

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值