make: Reduce build output

Default to silent builds, only outputting the file being generated. This
gives output similar to Linux/coreboot output when building. `VERBOSE=1`
can be passed to show the actual commands.

Signed-off-by: Tim Crawford <tcrawford@system76.com>
This commit is contained in:
Tim Crawford
2023-01-13 13:23:53 -07:00
committed by Tim Crawford
parent 2056d4d5e0
commit b03c960b4f
6 changed files with 42 additions and 20 deletions

View File

@ -96,4 +96,4 @@ jobs:
run: ./scripts/deps.sh run: ./scripts/deps.sh
- name: Build firmware - name: Build firmware
run: make BOARD=${{ matrix.vendor}}/${{ matrix.board }} run: make BOARD=${{ matrix.vendor}}/${{ matrix.board }} VERBOSE=1

View File

@ -5,6 +5,11 @@
# Disable built-in rules and variables # Disable built-in rules and variables
MAKEFLAGS += -rR MAKEFLAGS += -rR
# Default to silent builds
ifneq ($(VERBOSE),1)
MAKEFLAGS += -s
endif
# Parameter for current board # Parameter for current board
ifeq ($(BOARD),) ifeq ($(BOARD),)
all: all:
@ -20,11 +25,12 @@ REV=$(shell git describe --abbrev=7 --always --dirty)
VERSION?=$(DATE)_$(REV) VERSION?=$(DATE)_$(REV)
# Set build directory # Set build directory
BUILD=build/$(BOARD)/$(VERSION) obj = build
BUILD = $(obj)/$(BOARD)/$(VERSION)
# 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))
# Include common source # Include common source
COMMON_DIR=src/common COMMON_DIR=src/common
@ -65,4 +71,4 @@ endif
# Target to remove build artifacts # Target to remove build artifacts
clean: clean:
rm -rf build rm -rf $(obj)

View File

@ -31,22 +31,26 @@ 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
@mkdir -p $(@D) @echo " OBJCOPY $(subst $(obj)/,,$@)"
mkdir -p $(@D)
objcopy -I ihex -O binary --gap-fill=0xFF $< $@ objcopy -I ihex -O binary --gap-fill=0xFF $< $@
# Link object files into Intel Hex file # Link object files into Intel Hex file
$(BUILD)/ec.ihx: $(OBJ) $(BUILD)/ec.ihx: $(OBJ)
@mkdir -p $(@D) @echo " LINK $(subst $(obj)/,,$@)"
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
@mkdir -p $(@D) @echo " AS $(subst $(obj)/,,$@)"
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)
@mkdir -p $(@D) @echo " CC $(subst $(obj)/,,$@)"
mkdir -p $(@D)
$(CC) $(CFLAGS) -o $@ -c $< $(CC) $(CFLAGS) -o $@ -c $<
# Add dependency rules # Add dependency rules

View File

@ -19,22 +19,26 @@ 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
@mkdir -p $(@D) @echo " OBJCOPY $(subst $(obj)/,,$@)"
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
@mkdir -p $(@D) @echo " OBJCOPY $(subst $(obj)/,,$@)"
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)
@mkdir -p $(@D) @echo " LINK $(subst $(obj)/,,$@)"
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)
@mkdir -p $(@D) @echo " CC $(subst $(obj)/,,$@)"
mkdir -p $(@D)
$(CC) $(CFLAGS) -o $@ -c $< $(CC) $(CFLAGS) -o $@ -c $<
# Add dependency rules # Add dependency rules

View File

@ -33,22 +33,26 @@ 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
@mkdir -p $(@D) @echo " XXD $(subst $(obj)/,,$@)"
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
@mkdir -p $(@D) @echo " OBJCOPY $(subst $(obj)/,,$@)"
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)
@mkdir -p $(@D) @echo " LINK $(subst $(obj)/,,$@)"
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)
@mkdir -p $(@D) @echo " CC $(subst $(obj)/,,$@)"
mkdir -p $(@D)
$(FLASH_CC) $(FLASH_CFLAGS) -o $@ -c $< $(FLASH_CC) $(FLASH_CFLAGS) -o $@ -c $<
# Include flash header in main firmware # Include flash header in main firmware

View File

@ -32,22 +32,26 @@ 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
@mkdir -p $(@D) @echo " XXD $(subst $(obj)/,,$@)"
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
@mkdir -p $(@D) @echo " OBJCOPY $(subst $(obj)/,,$@)"
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)
@mkdir -p $(@D) @echo " LINK $(subst $(obj)/,,$@)"
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)
@mkdir -p $(@D) @echo " CC $(subst $(obj)/,,$@)"
mkdir -p $(@D)
$(SCRATCH_CC) $(SCRATCH_CFLAGS) -o $@ -c $< $(SCRATCH_CC) $(SCRATCH_CFLAGS) -o $@ -c $<
# Include scratch header in main firmware # Include scratch header in main firmware