Skip to content

Commit a26e439

Browse files
grg-haasmarcan
authored andcommitted
Add option for building verbosely
Signed-off-by: Gregor Haas <[email protected]>
1 parent 9065c70 commit a26e439

2 files changed

Lines changed: 53 additions & 41 deletions

File tree

Makefile

Lines changed: 51 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,16 @@ CLANG_FORMAT := clang-format
3333
EXTRA_CFLAGS ?= -Wstack-usage=2048
3434
endif
3535

36+
ifeq ($(V),)
37+
QUIET := @
38+
else
39+
ifeq ($(V),0)
40+
QUIET := @
41+
else
42+
QUIET :=
43+
endif
44+
endif
45+
3646
BASE_CFLAGS := -O2 -Wall -g -Wundef -Werror=strict-prototypes -fno-common -fno-PIE \
3747
-Werror=implicit-function-declaration -Werror=implicit-int \
3848
-Wsign-compare -Wunused-parameter -Wno-multichar \
@@ -173,79 +183,79 @@ rustfmt-check:
173183
cd rust && cargo fmt --check
174184

175185
build/$(RUST_LIB): rust/src/* rust/*
176-
@echo " RS $@"
177-
@mkdir -p $(DEPDIR)
178-
@mkdir -p "$(dir $@)"
179-
@cargo build --target $(RUSTARCH) --lib --release --manifest-path rust/Cargo.toml --target-dir build
180-
@cp "build/$(RUSTARCH)/release/${RUST_LIB}" "$@"
186+
$(QUIET)echo " RS $@"
187+
$(QUIET)mkdir -p $(DEPDIR)
188+
$(QUIET)mkdir -p "$(dir $@)"
189+
$(QUIET)cargo build --target $(RUSTARCH) --lib --release --manifest-path rust/Cargo.toml --target-dir build
190+
$(QUIET)cp "build/$(RUSTARCH)/release/${RUST_LIB}" "$@"
181191

182192
build/%.o: src/%.S
183-
@echo " AS $@"
184-
@mkdir -p $(DEPDIR)
185-
@mkdir -p "$(dir $@)"
186-
@$(AS) -c $(CFLAGS) -MMD -MF $(DEPDIR)/$(*F).d -MQ "$@" -MP -o $@ $<
193+
$(QUIET)echo " AS $@"
194+
$(QUIET)mkdir -p $(DEPDIR)
195+
$(QUIET)mkdir -p "$(dir $@)"
196+
$(QUIET)$(AS) -c $(CFLAGS) -MMD -MF $(DEPDIR)/$(*F).d -MQ "$@" -MP -o $@ $<
187197

188198
$(BUILD_FP_OBJS): build/%.o: src/%.c
189-
@echo " CC FP $@"
190-
@mkdir -p $(DEPDIR)
191-
@mkdir -p "$(dir $@)"
192-
@$(CC) -c $(BASE_CFLAGS) -MMD -MF $(DEPDIR)/$(*F).d -MQ "$@" -MP -o $@ $<
199+
$(QUIET)echo " CC FP $@"
200+
$(QUIET)mkdir -p $(DEPDIR)
201+
$(QUIET)mkdir -p "$(dir $@)"
202+
$(QUIET)$(CC) -c $(BASE_CFLAGS) -MMD -MF $(DEPDIR)/$(*F).d -MQ "$@" -MP -o $@ $<
193203

194204
build/%.o: src/%.c
195-
@echo " CC $@"
196-
@mkdir -p $(DEPDIR)
197-
@mkdir -p "$(dir $@)"
198-
@$(CC) -c $(CFLAGS) -MMD -MF $(DEPDIR)/$(*F).d -MQ "$@" -MP -o $@ $<
205+
$(QUIET)echo " CC $@"
206+
$(QUIET)mkdir -p $(DEPDIR)
207+
$(QUIET)mkdir -p "$(dir $@)"
208+
$(QUIET)$(CC) -c $(CFLAGS) -MMD -MF $(DEPDIR)/$(*F).d -MQ "$@" -MP -o $@ $<
199209

200210
# special target for usage by m1n1.loadobjs
201211
invoke_cc:
202-
@$(CC) -c $(CFLAGS) -Isrc -o $(OBJFILE) $(CFILE)
212+
$(QUIET)$(CC) -c $(CFLAGS) -Isrc -o $(OBJFILE) $(CFILE)
203213

204214
build/$(NAME).elf: $(BUILD_ALL_OBJS) m1n1.ld
205-
@echo " LD $@"
206-
@$(LD) -T m1n1.ld $(LDFLAGS) -o $@ $(BUILD_ALL_OBJS)
215+
$(QUIET)echo " LD $@"
216+
$(QUIET)$(LD) -T m1n1.ld $(LDFLAGS) -o $@ $(BUILD_ALL_OBJS)
207217

208218
build/$(NAME)-raw.elf: $(BUILD_ALL_OBJS) m1n1-raw.ld
209-
@echo " LDRAW $@"
210-
@$(LD) -T m1n1-raw.ld $(LDFLAGS) -o $@ $(BUILD_ALL_OBJS)
219+
$(QUIET)echo " LDRAW $@"
220+
$(QUIET)$(LD) -T m1n1-raw.ld $(LDFLAGS) -o $@ $(BUILD_ALL_OBJS)
211221

212222
build/$(NAME).macho: build/$(NAME).elf
213-
@echo " MACHO $@"
214-
@$(OBJCOPY) -O binary --strip-debug $< $@
223+
$(QUIET)echo " MACHO $@"
224+
$(QUIET)$(OBJCOPY) -O binary --strip-debug $< $@
215225

216226
build/$(NAME).bin: build/$(NAME)-raw.elf
217-
@echo " RAW $@"
218-
@$(OBJCOPY) -O binary --strip-debug $< $@
227+
$(QUIET)echo " RAW $@"
228+
$(QUIET)$(OBJCOPY) -O binary --strip-debug $< $@
219229

220230
update_tag:
221-
@mkdir -p build
222-
@./version.sh > build/build_tag.tmp
223-
@cmp -s build/build_tag.h build/build_tag.tmp 2>/dev/null || \
231+
$(QUIET)mkdir -p build
232+
$(QUIET)./version.sh > build/build_tag.tmp
233+
$(QUIET)cmp -s build/build_tag.h build/build_tag.tmp 2>/dev/null || \
224234
( mv -f build/build_tag.tmp build/build_tag.h && echo " TAG build/build_tag.h" )
225235

226236
update_cfg:
227-
@mkdir -p build
228-
@for i in $(CFG); do echo "#define $$i"; done > build/build_cfg.tmp
229-
@cmp -s build/build_cfg.h build/build_cfg.tmp 2>/dev/null || \
237+
$(QUIET)mkdir -p build
238+
$(QUIET)for i in $(CFG); do echo "#define $$i"; done > build/build_cfg.tmp
239+
$(QUIET)cmp -s build/build_cfg.h build/build_cfg.tmp 2>/dev/null || \
230240
( mv -f build/build_cfg.tmp build/build_cfg.h && echo " CFG build/build_cfg.h" )
231241

232242
build/build_tag.h: update_tag
233243
build/build_cfg.h: update_cfg
234244

235245
build/%.bin: data/%.bin
236-
@echo " IMG $@"
237-
@mkdir -p "$(dir $@)"
238-
@cp $< $@
246+
$(QUIET)echo " IMG $@"
247+
$(QUIET)mkdir -p "$(dir $@)"
248+
$(QUIET)cp $< $@
239249

240250
build/%.o: build/%.bin
241-
@echo " BIN $@"
242-
@mkdir -p "$(dir $@)"
243-
@$(OBJCOPY) -I binary -B aarch64 -O elf64-littleaarch64 $< $@
251+
$(QUIET)echo " BIN $@"
252+
$(QUIET)mkdir -p "$(dir $@)"
253+
$(QUIET)$(OBJCOPY) -I binary -B aarch64 -O elf64-littleaarch64 $< $@
244254

245255
build/%.bin: font/%.bin
246-
@echo " CP $@"
247-
@mkdir -p "$(dir $@)"
248-
@cp $< $@
256+
$(QUIET)echo " CP $@"
257+
$(QUIET)mkdir -p "$(dir $@)"
258+
$(QUIET)cp $< $@
249259

250260
build/main.o: build/build_tag.h build/build_cfg.h src/main.c
251261
build/usb_dwc3.o: build/build_tag.h src/usb_dwc3.c

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@ The output will be in build/m1n1.macho.
1616

1717
To build on a native arm64 machine, use `make ARCH=`.
1818

19+
To build verbosely, use `make V=1`.
20+
1921
Building on ARM64 macOS is supported with clang and LLVM; you need to use Homebrew to
2022
install the required dependencies:
2123

0 commit comments

Comments
 (0)