Makefile

本文详细介绍了Makefile中的常用函数,如foreach、filter、filter-out、wildcard和patsubst,以及延时变量的概念。同时,展示了Makefile的设计思想,包括递归处理和依赖更新规则,并提供了一套通用的Makefile模板代码,涵盖了目标编译、链接、清理等操作。此外,还提及了Linux下生成依赖文件的相关选项。
摘要由CSDN通过智能技术生成

常用函数

1 $(foreach var,list,text) 

2 $(filter pattern...,test)

3 $( filter-out pattern...,text)

4 $(wildcard pattern)

5 $(patsubts pattern,replacement,test)

=延时变量

:及时变量

Makefile 设计思想 !!!

递归处理  依赖更新 规则  

$@ $^ $< $% 

Linux Makefile 生成 *.d 依赖文件以及 gcc -M -MF -MP 等相关选项说明 

基于makefile顶层设计思想  一套常用makefile模板代码如下


CROSS_COMPILE = 
AS		= $(CROSS_COMPILE)as
LD		= $(CROSS_COMPILE)ld
CC		= $(CROSS_COMPILE)gcc
CPP		= $(CC) -E
AR		= $(CROSS_COMPILE)ar
NM		= $(CROSS_COMPILE)nm

STRIP		= $(CROSS_COMPILE)strip
OBJCOPY		= $(CROSS_COMPILE)objcopy
OBJDUMP		= $(CROSS_COMPILE)objdump

export AS LD CC CPP AR NM
export STRIP OBJCOPY OBJDUMP

CFLAGS := -Wall -O2 -g
CFLAGS += -I $(shell pwd)/include

LDFLAGS := 

export CFLAGS LDFLAGS

TOPDIR := $(shell pwd)
export TOPDIR

TARGET := test


obj-y += main.o
obj-y += sub.o
obj-y += a/


all : start_recursive_build $(TARGET)
	@echo $(TARGET) has been built!

start_recursive_build:
	make -C ./ -f $(TOPDIR)/Makefile.build

$(TARGET) : built-in.o
	$(CC) -o $(TARGET) built-in.o $(LDFLAGS)

clean:
	rm -f $(shell find -name "*.o")
	rm -f $(TARGET)

distclean:
	rm -f $(shell find -name "*.o")
	rm -f $(shell find -name "*.d")
	rm -f $(TARGET)
	

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值