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:
		
				
					committed by
					
						 Tim Crawford
						Tim Crawford
					
				
			
			
				
	
			
			
			
						parent
						
							2056d4d5e0
						
					
				
				
					commit
					b03c960b4f
				
			
							
								
								
									
										2
									
								
								.github/workflows/ci.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.github/workflows/ci.yml
									
									
									
									
										vendored
									
									
								
							| @@ -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 | ||||||
|   | |||||||
							
								
								
									
										12
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								Makefile
									
									
									
									
									
								
							| @@ -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) | ||||||
|   | |||||||
| @@ -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 | ||||||
|   | |||||||
| @@ -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 | ||||||
|   | |||||||
| @@ -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 | ||||||
|   | |||||||
| @@ -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 | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user