• 源文件被包含在子文件夹的Makefile编写


    函数对文件夹变量的引用细节

    经过patsubst,foreach函数处理,文件变量如下:

    Makefile:

    从第14行开始,"/*.S"字段非注释,但是变了颜色,忽略颜色变化。

     1 CROSS_COMPILE ?= arm-linux-gnueabihf-
     2 TARGET          ?= key
     3 
     4 CC               := $(CROSS_COMPILE)gcc
     5 LD                 := $(CROSS_COMPILE)ld
     6 OBJCOPY         :=$(CROSS_COMPILE)objcopy
     7 OBJDUMP         :=$(CROSS_COMPILE)objdump
     8 
     9 INCUDIRS    := imx6u   bsp/beep    bsp/clk    bsp/delay    bsp/key    bsp/led
    10 
    11 SRCDIRS        := project bsp/beep    bsp/clk    bsp/delay    bsp/key    bsp/led
    12 
    13 INCLUDE        := $(patsubst %, -I %,$(INCUDIRS))
    14 SFILES        :=$(foreach dir,$(SRCDIRS),$(wildcard $(dir)/*.S))
    15 CFILES        :=$(foreach dir,$(SRCDIRS),$(wildcard $(dir)/*.c))
    16 SFILENDIR        :=$(notdir $(SFILES))
    17 CFILENDIR        :=$(notdir $(CFILES))
    18 SOBJS        := $(patsubst %, obj/%, $(SFILENDIR:.S=.o))
    19 COBJS        := $(patsubst %, obj/%, $(CFILENDIR:.c=.o))
    20 OBJS        := $(SOBJS) $(COBJS)
    21 
    22 VPATH        := $(SRCDIRS)
    23 
    24 
    25 .PHONY: clean
    26 
    27 $(TARGET).bin : $(OBJS)
    28     $(LD) -Timx6u.lds -o $(TARGET).elf $^
    29     $(OBJCOPY) -O binary -S $(TARGET).elf $@
    30     $(OBJDUMP) -D -m arm $(TARGET).elf > $(TARGET).dis
    31 
    32 $(SOBJS) : obj/%.o:%.S
    33     $(CC) -Wall -nostdlib -c -O2 $(INCLUDE) -o $@ $<
    34 
    35 $(COBJS): obj/%.o:%.c
    36     $(CC) -Wall -nostdlib -c -O2 $(INCLUDE) -o $@ $<
    37 
    38 clean:
    39     rm -rf $(TARGET).elf $(TARGET).bin $(TARGET).dis $(OBJS) load.imx
    40 
    41 print:
    42     @echo VPATH=$(VPATH)
    43     @echo INCLUDE=$(INCLUDE)
  • 相关阅读:
    【转】Intellij IDEA常用配置详解
    scala(一)
    scala(三)
    Scrapy学习篇(六)之Selector选择器
    Scrapy学习篇(五)之Spiders
    Scrapy学习篇(四)之数据存储
    Scrapy学习篇(三)之创建项目
    Scrapy学习篇(二)之常用命令行工具
    Scrapy学习篇(一)之框架
    git实现github仓库和本地仓库同步
  • 原文地址:https://www.cnblogs.com/kunshanpipixia/p/14228987.html
Copyright © 2020-2023  润新知