Only support building a single board at a time
As a follow up toc461e20df3
("make: Remove version from build output path"), only support building a single version of a single board by default. The build directory can still be specified by passing `BUILD`. Fixes running the `clean` target when `BUILD` is a custom value or `BOARD` isn't set. Fixes:b03c960b4f
("make: Reduce build output") Signed-off-by: Tim Crawford <tcrawford@system76.com>
This commit is contained in:
committed by
Tim Crawford
parent
946415f3a7
commit
01be30f107
9
Makefile
9
Makefile
@ -10,6 +10,9 @@ ifneq ($(VERBOSE),1)
|
|||||||
MAKEFLAGS += -s
|
MAKEFLAGS += -s
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
# Set build directory
|
||||||
|
BUILD = build
|
||||||
|
|
||||||
# Parameter for current board
|
# Parameter for current board
|
||||||
ifeq ($(BOARD),)
|
ifeq ($(BOARD),)
|
||||||
all:
|
all:
|
||||||
@ -21,10 +24,6 @@ DATE=$(shell git show --format="%cs" --no-patch --no-show-signature)
|
|||||||
REV=$(shell git describe --abbrev=7 --always --dirty)
|
REV=$(shell git describe --abbrev=7 --always --dirty)
|
||||||
VERSION?=$(DATE)_$(REV)
|
VERSION?=$(DATE)_$(REV)
|
||||||
|
|
||||||
# Set build directory
|
|
||||||
obj = build
|
|
||||||
BUILD = $(obj)/$(BOARD)
|
|
||||||
|
|
||||||
# Default target - build the board's EC firmware
|
# Default target - build the board's EC firmware
|
||||||
all: $(BUILD)/ec.rom
|
all: $(BUILD)/ec.rom
|
||||||
$(info Built $(VERSION) for $(BOARD))
|
$(info Built $(VERSION) for $(BOARD))
|
||||||
@ -72,7 +71,7 @@ docs:
|
|||||||
|
|
||||||
.PHONY: clean
|
.PHONY: clean
|
||||||
clean:
|
clean:
|
||||||
rm -rf $(obj)
|
rm -rf $(BUILD)
|
||||||
|
|
||||||
.PHONY: fmt
|
.PHONY: fmt
|
||||||
fmt:
|
fmt:
|
||||||
|
@ -31,25 +31,25 @@ sim: $(BUILD)/ec.rom
|
|||||||
|
|
||||||
# Convert from Intel Hex file to binary file
|
# Convert from Intel Hex file to binary file
|
||||||
$(BUILD)/ec.rom: $(BUILD)/ec.ihx
|
$(BUILD)/ec.rom: $(BUILD)/ec.ihx
|
||||||
@echo " OBJCOPY $(subst $(obj)/,,$@)"
|
@echo " OBJCOPY $(subst $(BUILD)/,,$@)"
|
||||||
mkdir -p $(@D)
|
mkdir -p $(@D)
|
||||||
objcopy -I ihex -O binary --gap-fill=0xFF --pad-to=$(CONFIG_EC_FLASH_SIZE) $< $@
|
objcopy -I ihex -O binary --gap-fill=0xFF --pad-to=$(CONFIG_EC_FLASH_SIZE) $< $@
|
||||||
|
|
||||||
# Link object files into Intel Hex file
|
# Link object files into Intel Hex file
|
||||||
$(BUILD)/ec.ihx: $(OBJ)
|
$(BUILD)/ec.ihx: $(OBJ)
|
||||||
@echo " LINK $(subst $(obj)/,,$@)"
|
@echo " LINK $(subst $(BUILD)/,,$@)"
|
||||||
mkdir -p $(@D)
|
mkdir -p $(@D)
|
||||||
$(CC) $(LDFLAGS) -o $@ $^
|
$(CC) $(LDFLAGS) -o $@ $^
|
||||||
|
|
||||||
# Compile ASM files into object files
|
# Compile ASM files into object files
|
||||||
$(ASM_OBJ): $(BUILD)/%.rel: src/%.asm
|
$(ASM_OBJ): $(BUILD)/%.rel: src/%.asm
|
||||||
@echo " AS $(subst $(obj)/,,$@)"
|
@echo " AS $(subst $(BUILD)/,,$@)"
|
||||||
mkdir -p $(@D)
|
mkdir -p $(@D)
|
||||||
$(AS) $(ASFLAGS) $@ $<
|
$(AS) $(ASFLAGS) $@ $<
|
||||||
|
|
||||||
# Compile C files into object files
|
# Compile C files into object files
|
||||||
$(C_OBJ): $(BUILD)/%.rel: src/%.c $(INCLUDE)
|
$(C_OBJ): $(BUILD)/%.rel: src/%.c $(INCLUDE)
|
||||||
@echo " CC $(subst $(obj)/,,$@)"
|
@echo " CC $(subst $(BUILD)/,,$@)"
|
||||||
mkdir -p $(@D)
|
mkdir -p $(@D)
|
||||||
$(CC) $(CFLAGS) -o $@ -c $<
|
$(CC) $(CFLAGS) -o $@ -c $<
|
||||||
|
|
||||||
|
@ -22,25 +22,25 @@ sim: $(BUILD)/ec.elf
|
|||||||
|
|
||||||
# Convert from Intel Hex file to binary file
|
# Convert from Intel Hex file to binary file
|
||||||
$(BUILD)/ec.rom: $(BUILD)/ec.ihx
|
$(BUILD)/ec.rom: $(BUILD)/ec.ihx
|
||||||
@echo " OBJCOPY $(subst $(obj)/,,$@)"
|
@echo " OBJCOPY $(subst $(BUILD)/,,$@)"
|
||||||
mkdir -p $(@D)
|
mkdir -p $(@D)
|
||||||
$(OBJCOPY) -I ihex -O binary --gap-fill 0xFF $< $@
|
$(OBJCOPY) -I ihex -O binary --gap-fill 0xFF $< $@
|
||||||
|
|
||||||
# Convert from ELF file to Intel Hex file
|
# Convert from ELF file to Intel Hex file
|
||||||
$(BUILD)/ec.ihx: $(BUILD)/ec.elf
|
$(BUILD)/ec.ihx: $(BUILD)/ec.elf
|
||||||
@echo " OBJCOPY $(subst $(obj)/,,$@)"
|
@echo " OBJCOPY $(subst $(BUILD)/,,$@)"
|
||||||
mkdir -p $(@D)
|
mkdir -p $(@D)
|
||||||
$(OBJCOPY) -j .text -j .data -O ihex $< $@
|
$(OBJCOPY) -j .text -j .data -O ihex $< $@
|
||||||
|
|
||||||
# Link object files into ELF file
|
# Link object files into ELF file
|
||||||
$(BUILD)/ec.elf: $(OBJ)
|
$(BUILD)/ec.elf: $(OBJ)
|
||||||
@echo " LINK $(subst $(obj)/,,$@)"
|
@echo " LINK $(subst $(BUILD)/,,$@)"
|
||||||
mkdir -p $(@D)
|
mkdir -p $(@D)
|
||||||
$(CC) -o $@ $^
|
$(CC) -o $@ $^
|
||||||
|
|
||||||
# Compile C files into object files
|
# Compile C files into object files
|
||||||
$(BUILD)/%.o: src/%.c $(INCLUDE)
|
$(BUILD)/%.o: src/%.c $(INCLUDE)
|
||||||
@echo " CC $(subst $(obj)/,,$@)"
|
@echo " CC $(subst $(BUILD)/,,$@)"
|
||||||
mkdir -p $(@D)
|
mkdir -p $(@D)
|
||||||
$(CC) $(CFLAGS) -o $@ -c $<
|
$(CC) $(CFLAGS) -o $@ -c $<
|
||||||
|
|
||||||
|
@ -33,25 +33,25 @@ FLASH_CC=\
|
|||||||
|
|
||||||
# Convert from binary file to C header
|
# Convert from binary file to C header
|
||||||
$(BUILD)/include/flash.h: $(FLASH_BUILD)/flash.rom
|
$(BUILD)/include/flash.h: $(FLASH_BUILD)/flash.rom
|
||||||
@echo " XXD $(subst $(obj)/,,$@)"
|
@echo " XXD $(subst $(BUILD)/,,$@)"
|
||||||
mkdir -p $(@D)
|
mkdir -p $(@D)
|
||||||
xxd -include < $< > $@
|
xxd -include < $< > $@
|
||||||
|
|
||||||
# Convert from Intel Hex file to binary file
|
# Convert from Intel Hex file to binary file
|
||||||
$(FLASH_BUILD)/flash.rom: $(FLASH_BUILD)/flash.ihx
|
$(FLASH_BUILD)/flash.rom: $(FLASH_BUILD)/flash.ihx
|
||||||
@echo " OBJCOPY $(subst $(obj)/,,$@)"
|
@echo " OBJCOPY $(subst $(BUILD)/,,$@)"
|
||||||
mkdir -p $(@D)
|
mkdir -p $(@D)
|
||||||
objcopy -I ihex -O binary $< $@
|
objcopy -I ihex -O binary $< $@
|
||||||
|
|
||||||
# Link object files into Intel Hex file
|
# Link object files into Intel Hex file
|
||||||
$(FLASH_BUILD)/flash.ihx: $(FLASH_OBJ)
|
$(FLASH_BUILD)/flash.ihx: $(FLASH_OBJ)
|
||||||
@echo " LINK $(subst $(obj)/,,$@)"
|
@echo " LINK $(subst $(BUILD)/,,$@)"
|
||||||
mkdir -p $(@D)
|
mkdir -p $(@D)
|
||||||
$(FLASH_CC) -o $@ $^
|
$(FLASH_CC) -o $@ $^
|
||||||
|
|
||||||
# Compile C files into object files
|
# Compile C files into object files
|
||||||
$(FLASH_OBJ): $(FLASH_BUILD)/%.rel: src/%.c $(FLASH_INCLUDE)
|
$(FLASH_OBJ): $(FLASH_BUILD)/%.rel: src/%.c $(FLASH_INCLUDE)
|
||||||
@echo " CC $(subst $(obj)/,,$@)"
|
@echo " CC $(subst $(BUILD)/,,$@)"
|
||||||
mkdir -p $(@D)
|
mkdir -p $(@D)
|
||||||
$(FLASH_CC) $(FLASH_CFLAGS) -o $@ -c $<
|
$(FLASH_CC) $(FLASH_CFLAGS) -o $@ -c $<
|
||||||
|
|
||||||
|
@ -32,25 +32,25 @@ SCRATCH_CC=\
|
|||||||
|
|
||||||
# Convert from binary file to C header
|
# Convert from binary file to C header
|
||||||
$(BUILD)/include/scratch.h: $(SCRATCH_BUILD)/scratch.rom
|
$(BUILD)/include/scratch.h: $(SCRATCH_BUILD)/scratch.rom
|
||||||
@echo " XXD $(subst $(obj)/,,$@)"
|
@echo " XXD $(subst $(BUILD)/,,$@)"
|
||||||
mkdir -p $(@D)
|
mkdir -p $(@D)
|
||||||
xxd -include < $< > $@
|
xxd -include < $< > $@
|
||||||
|
|
||||||
# Convert from Intel Hex file to binary file
|
# Convert from Intel Hex file to binary file
|
||||||
$(SCRATCH_BUILD)/scratch.rom: $(SCRATCH_BUILD)/scratch.ihx
|
$(SCRATCH_BUILD)/scratch.rom: $(SCRATCH_BUILD)/scratch.ihx
|
||||||
@echo " OBJCOPY $(subst $(obj)/,,$@)"
|
@echo " OBJCOPY $(subst $(BUILD)/,,$@)"
|
||||||
mkdir -p $(@D)
|
mkdir -p $(@D)
|
||||||
objcopy -I ihex -O binary $< $@
|
objcopy -I ihex -O binary $< $@
|
||||||
|
|
||||||
# Link object files into Intel Hex file
|
# Link object files into Intel Hex file
|
||||||
$(SCRATCH_BUILD)/scratch.ihx: $(SCRATCH_OBJ)
|
$(SCRATCH_BUILD)/scratch.ihx: $(SCRATCH_OBJ)
|
||||||
@echo " LINK $(subst $(obj)/,,$@)"
|
@echo " LINK $(subst $(BUILD)/,,$@)"
|
||||||
mkdir -p $(@D)
|
mkdir -p $(@D)
|
||||||
$(SCRATCH_CC) -o $@ $^
|
$(SCRATCH_CC) -o $@ $^
|
||||||
|
|
||||||
# Compile C files into object files
|
# Compile C files into object files
|
||||||
$(SCRATCH_OBJ): $(SCRATCH_BUILD)/%.rel: src/%.c $(SCRATCH_INCLUDE)
|
$(SCRATCH_OBJ): $(SCRATCH_BUILD)/%.rel: src/%.c $(SCRATCH_INCLUDE)
|
||||||
@echo " CC $(subst $(obj)/,,$@)"
|
@echo " CC $(subst $(BUILD)/,,$@)"
|
||||||
mkdir -p $(@D)
|
mkdir -p $(@D)
|
||||||
$(SCRATCH_CC) $(SCRATCH_CFLAGS) -o $@ -c $<
|
$(SCRATCH_CC) $(SCRATCH_CFLAGS) -o $@ -c $<
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user