概述
https://www.gnu.org/software/make/manual/html_node/
make命令
make进行编译
make执行shell命令


make伪目标
变量(宏)
隐含规则
特殊符号
条件判断


#:=表示恒等于,注释不要写到代码后面TARGET := appCC := gcc#包含目录INCLUDE = .#生成的目标文件OBJS = main.o fun.o#1.目标下不能有空格#ifeq和表达式必须有空格#if结来必须enddiftest:ifeq ($(CC) , gcc)@echo "CC is gcc"else@echo "CC is not gcc"endif

#:=表示恒等于,注释不要写到代码后面TARGET := appCC := gcc#包含目录INCLUDE = .#生成的目标文件OBJS = main.o fun.o#如果定义DEBUG变量,那么就加入. g调试选项ifdef DEBUGCFLAGE += -gendif#如果没有定义releaseifndef RELEASECFLAGE += -gendif#1.目标下不能有空格#ifeq和表达式必须有空格#if结来必须enddiftest:ifeq ($(CC) , gcc)@echo "CC is gcc"else@echo "CC is not gcc"endif


#函数调用格式$(函数名函数参数1函数参数2)#调用makefile中的shell函数 , 调用pwd命令, 将结果赋值给CURPATH变量CURPATH = $(shell pwd)SRC = $(wildcard *.c)test:echo "当前目录: $(CURPATH)"test1:# subst格式from, to, text#从text中找到from字符。替换成toecho $(subst aa,AA,aabbccddee)test2:#模式匹配,从text中按pattern模式查找,替换成replaceecho $(patsubst %.c,%.o, x.c.c bar.c)test3:#去除开始和未尾的空格,合并中间空格echo $(strip "hello xsda")#p匹配当前目录下所有.c文件test4:echo $(SRC)
循环
嵌套



















