欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

Makefile 基础语法

程序员文章站 2022-03-20 16:53:15
1.. specify the directores , i not specified , search current directory put every folder into a listSRCDIRS := ifeq ($(SRCDIRS),)SRCDIRS := $(shell fi ......

1.. specify the directores , i not specified , search current directory put every folder into a list
srcdirs :=
ifeq ($(srcdirs),)
srcdirs := $(shell find $(srcdirs) -type d)

2.. addprefix:
作用是给每个string添加前缀,string之间用空格隔开。
$(addprefix prefixstr, string1 string2 ...)
如: $(addprefix chapters/, docx pdf jpg)


3..
$(foreach <var>,<list>,<text>)
這個函數的意思是,把參數<list>中的單詞逐一取出放到參數<var>所指定的變量中,然後再執行<text>所包含的表達式。每一次<text>會返回一個字符串,循環過程中,<text>的所返回的每個字符串會以空格分隔,最後當整個循環結束時,<text>所返回的每個字符串所組成的整個字符串(以空格分隔)將會是foreach函數的返回值。
example:
srcexts = .cpp
sources = $(foreach d,$(srcdirs),$(wildcard $(addprefix $(d)/*,$(srcexts))))
hdrexts = .h
headers = $(foreach d,$(srcdirs),$(wildcard $(addprefix $(d)/*,$(hdrexts))))