makefile 学习笔记(备忘)

来源:互联网 发布:蔡仕伟淘宝 编辑:程序博客网 时间:2024/05/19 17:08


Makefile自动化变量

选项名
作用
$@
规则的目标文件名
$<
规则的第一个依赖文件名
$^
规则的所有依赖文件列表


模式规则
     %.o:%.c
后缀规则
      .c.o:



make常用内嵌函数

函数调用
   $(function arguments)
$(wildcard PATTERN)
当前目录下匹配模式的文件
例如:src=$(wildcard *.c)
$(patsubst PATTERN,REPLACEMENT,TEXT)
模式替换函数
例如:$(patsubst %.c,%.o,$src)
等价于$(src:.c=.o)
shell函数
执行shell命令
例如:$(shell ls –d */)

CC      = gcc  
CFLAGS  =-Wall -g
BIN     = main 
SUBDIR  = $(shell ls -d */)
ROOTSRC = $(wildcard *.c)
ROOTOBJ = $(ROOTSRC:%.c=%.o)
SUBSRC  = $(shell find $(SUBDIR) -name '*.c')
SUBOBJ  = $(SUBSRC:%.c=%.o)
$(BIN):$(ROOTOBJ) $(SUBOBJ)
        $(CC) $(CFLAGS) -o $(BIN) $(ROOTOBJ) $(SUBOBJ)
.c.o:
        $(CC) $(CFLAGS) -c $< -o $@
clean:
        rm -f $(BIN) $(ROOTOBJ) $(SUBOBJ)


0 0
原创粉丝点击