From 27e12161c033057126ac38caa60f41dfef2e3618 Mon Sep 17 00:00:00 2001 From: yinhafei Date: Sun, 31 Aug 2025 16:55:56 +0800 Subject: [PATCH] replace echo with printf for portable color output in Makefile --- part1/Makefile | 14 +++++++------- part2/Makefile | 14 +++++++------- part3/Makefile | 14 +++++++------- part4/Makefile | 14 +++++++------- 4 files changed, 28 insertions(+), 28 deletions(-) diff --git a/part1/Makefile b/part1/Makefile index 6327e38..d49f93a 100644 --- a/part1/Makefile +++ b/part1/Makefile @@ -59,32 +59,32 @@ LDFLAGS2 := -O0 -static-libgcc -lgcc $(TARGET_MEM): $(TARGET_BIN) @python3 $(HEXDUMP) $< > $@ - @echo " \033[1;32mHEXDUMP\033[0m $@" + @printf " \033[1;32mHEXDUMP\033[0m $@\n" $(TARGET_BIN): $(TARGET_ELF) @$(OBJCOPY) -O binary $< $@ - @echo " \033[1;32mOBJCOPY\033[0m $@" + @printf " \033[1;32mOBJCOPY\033[0m $@\n" $(TARGET_ELF): $(OBJS) Makefile linker.ld @$(LD) $(LDFLAGS1) $(OBJS) -o $@ -T linker.ld $(LDFLAGS2) - @echo " \033[1;32mLD\033[0m $@" + @printf " \033[1;32mLD\033[0m $@\n" %.o: %.c @$(CC) $(CFLAGS) -o $@ $< - @echo " \033[1;32mCC\033[0m $@" + @printf " \033[1;32mCC\033[0m $@\n" %.o: %.s $(GENERATOR_RESULTS) @$(AS) $(CFLAGS) -o $@ $< - @echo " \033[1;32mAS\033[0m $@" + @printf " \033[1;32mAS\033[0m $@\n" .PHONY: clean clean: @$(RM) -f $(GENERATOR_RESULTS) $(TARGET_ELF) $(TARGET_BIN) $(TARGET_MEM) $(OBJS) $(DEPS) $(FILTER_OBJS) - @echo " \033[1;32mRM\033[0m $(GENERATOR_RESULTS) $(TARGET_ELF) $(TARGET_BIN) $(TARGET_MEM) $(OBJS) $(DEPS) $(FILTER_OBJS)" + @printf " \033[1;32mRM\033[0m $(GENERATOR_RESULTS) $(TARGET_ELF) $(TARGET_BIN) $(TARGET_MEM) $(OBJS) $(DEPS) $(FILTER_OBJS)\n" # Generate ASM headers from C files automagically $(GENERATOR_RESULTS): $(GENERATOR_FILES) - @echo " \033[1;32mGEN_HDR\033[0m $@" + @printf " \033[1;32mGEN_HDR\033[0m $@\n" @$(CC) $(CFLAGS) -o $(addsuffix .o,$(basename $@)) $< @$(OBJCOPY) -O binary $(addsuffix .o,$(basename $@)) $(addsuffix .o,$(basename $@)) @$(STRINGS) $(addsuffix .o,$(basename $@)) > $@ diff --git a/part2/Makefile b/part2/Makefile index 6327e38..d49f93a 100644 --- a/part2/Makefile +++ b/part2/Makefile @@ -59,32 +59,32 @@ LDFLAGS2 := -O0 -static-libgcc -lgcc $(TARGET_MEM): $(TARGET_BIN) @python3 $(HEXDUMP) $< > $@ - @echo " \033[1;32mHEXDUMP\033[0m $@" + @printf " \033[1;32mHEXDUMP\033[0m $@\n" $(TARGET_BIN): $(TARGET_ELF) @$(OBJCOPY) -O binary $< $@ - @echo " \033[1;32mOBJCOPY\033[0m $@" + @printf " \033[1;32mOBJCOPY\033[0m $@\n" $(TARGET_ELF): $(OBJS) Makefile linker.ld @$(LD) $(LDFLAGS1) $(OBJS) -o $@ -T linker.ld $(LDFLAGS2) - @echo " \033[1;32mLD\033[0m $@" + @printf " \033[1;32mLD\033[0m $@\n" %.o: %.c @$(CC) $(CFLAGS) -o $@ $< - @echo " \033[1;32mCC\033[0m $@" + @printf " \033[1;32mCC\033[0m $@\n" %.o: %.s $(GENERATOR_RESULTS) @$(AS) $(CFLAGS) -o $@ $< - @echo " \033[1;32mAS\033[0m $@" + @printf " \033[1;32mAS\033[0m $@\n" .PHONY: clean clean: @$(RM) -f $(GENERATOR_RESULTS) $(TARGET_ELF) $(TARGET_BIN) $(TARGET_MEM) $(OBJS) $(DEPS) $(FILTER_OBJS) - @echo " \033[1;32mRM\033[0m $(GENERATOR_RESULTS) $(TARGET_ELF) $(TARGET_BIN) $(TARGET_MEM) $(OBJS) $(DEPS) $(FILTER_OBJS)" + @printf " \033[1;32mRM\033[0m $(GENERATOR_RESULTS) $(TARGET_ELF) $(TARGET_BIN) $(TARGET_MEM) $(OBJS) $(DEPS) $(FILTER_OBJS)\n" # Generate ASM headers from C files automagically $(GENERATOR_RESULTS): $(GENERATOR_FILES) - @echo " \033[1;32mGEN_HDR\033[0m $@" + @printf " \033[1;32mGEN_HDR\033[0m $@\n" @$(CC) $(CFLAGS) -o $(addsuffix .o,$(basename $@)) $< @$(OBJCOPY) -O binary $(addsuffix .o,$(basename $@)) $(addsuffix .o,$(basename $@)) @$(STRINGS) $(addsuffix .o,$(basename $@)) > $@ diff --git a/part3/Makefile b/part3/Makefile index 6327e38..d49f93a 100644 --- a/part3/Makefile +++ b/part3/Makefile @@ -59,32 +59,32 @@ LDFLAGS2 := -O0 -static-libgcc -lgcc $(TARGET_MEM): $(TARGET_BIN) @python3 $(HEXDUMP) $< > $@ - @echo " \033[1;32mHEXDUMP\033[0m $@" + @printf " \033[1;32mHEXDUMP\033[0m $@\n" $(TARGET_BIN): $(TARGET_ELF) @$(OBJCOPY) -O binary $< $@ - @echo " \033[1;32mOBJCOPY\033[0m $@" + @printf " \033[1;32mOBJCOPY\033[0m $@\n" $(TARGET_ELF): $(OBJS) Makefile linker.ld @$(LD) $(LDFLAGS1) $(OBJS) -o $@ -T linker.ld $(LDFLAGS2) - @echo " \033[1;32mLD\033[0m $@" + @printf " \033[1;32mLD\033[0m $@\n" %.o: %.c @$(CC) $(CFLAGS) -o $@ $< - @echo " \033[1;32mCC\033[0m $@" + @printf " \033[1;32mCC\033[0m $@\n" %.o: %.s $(GENERATOR_RESULTS) @$(AS) $(CFLAGS) -o $@ $< - @echo " \033[1;32mAS\033[0m $@" + @printf " \033[1;32mAS\033[0m $@\n" .PHONY: clean clean: @$(RM) -f $(GENERATOR_RESULTS) $(TARGET_ELF) $(TARGET_BIN) $(TARGET_MEM) $(OBJS) $(DEPS) $(FILTER_OBJS) - @echo " \033[1;32mRM\033[0m $(GENERATOR_RESULTS) $(TARGET_ELF) $(TARGET_BIN) $(TARGET_MEM) $(OBJS) $(DEPS) $(FILTER_OBJS)" + @printf " \033[1;32mRM\033[0m $(GENERATOR_RESULTS) $(TARGET_ELF) $(TARGET_BIN) $(TARGET_MEM) $(OBJS) $(DEPS) $(FILTER_OBJS)\n" # Generate ASM headers from C files automagically $(GENERATOR_RESULTS): $(GENERATOR_FILES) - @echo " \033[1;32mGEN_HDR\033[0m $@" + @printf " \033[1;32mGEN_HDR\033[0m $@\n" @$(CC) $(CFLAGS) -o $(addsuffix .o,$(basename $@)) $< @$(OBJCOPY) -O binary $(addsuffix .o,$(basename $@)) $(addsuffix .o,$(basename $@)) @$(STRINGS) $(addsuffix .o,$(basename $@)) > $@ diff --git a/part4/Makefile b/part4/Makefile index 6327e38..d49f93a 100644 --- a/part4/Makefile +++ b/part4/Makefile @@ -59,32 +59,32 @@ LDFLAGS2 := -O0 -static-libgcc -lgcc $(TARGET_MEM): $(TARGET_BIN) @python3 $(HEXDUMP) $< > $@ - @echo " \033[1;32mHEXDUMP\033[0m $@" + @printf " \033[1;32mHEXDUMP\033[0m $@\n" $(TARGET_BIN): $(TARGET_ELF) @$(OBJCOPY) -O binary $< $@ - @echo " \033[1;32mOBJCOPY\033[0m $@" + @printf " \033[1;32mOBJCOPY\033[0m $@\n" $(TARGET_ELF): $(OBJS) Makefile linker.ld @$(LD) $(LDFLAGS1) $(OBJS) -o $@ -T linker.ld $(LDFLAGS2) - @echo " \033[1;32mLD\033[0m $@" + @printf " \033[1;32mLD\033[0m $@\n" %.o: %.c @$(CC) $(CFLAGS) -o $@ $< - @echo " \033[1;32mCC\033[0m $@" + @printf " \033[1;32mCC\033[0m $@\n" %.o: %.s $(GENERATOR_RESULTS) @$(AS) $(CFLAGS) -o $@ $< - @echo " \033[1;32mAS\033[0m $@" + @printf " \033[1;32mAS\033[0m $@\n" .PHONY: clean clean: @$(RM) -f $(GENERATOR_RESULTS) $(TARGET_ELF) $(TARGET_BIN) $(TARGET_MEM) $(OBJS) $(DEPS) $(FILTER_OBJS) - @echo " \033[1;32mRM\033[0m $(GENERATOR_RESULTS) $(TARGET_ELF) $(TARGET_BIN) $(TARGET_MEM) $(OBJS) $(DEPS) $(FILTER_OBJS)" + @printf " \033[1;32mRM\033[0m $(GENERATOR_RESULTS) $(TARGET_ELF) $(TARGET_BIN) $(TARGET_MEM) $(OBJS) $(DEPS) $(FILTER_OBJS)\n" # Generate ASM headers from C files automagically $(GENERATOR_RESULTS): $(GENERATOR_FILES) - @echo " \033[1;32mGEN_HDR\033[0m $@" + @printf " \033[1;32mGEN_HDR\033[0m $@\n" @$(CC) $(CFLAGS) -o $(addsuffix .o,$(basename $@)) $< @$(OBJCOPY) -O binary $(addsuffix .o,$(basename $@)) $(addsuffix .o,$(basename $@)) @$(STRINGS) $(addsuffix .o,$(basename $@)) > $@