chiark / gitweb /
Makefile: support V=1
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Wed, 1 Aug 2012 20:31:38 +0000 (21:31 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Wed, 8 Aug 2012 17:31:47 +0000 (18:31 +0100)
Often it can be useful to see the actual commands being run by make.
Other projects (eg, the Linux kernel) support this with a "V=1" make
parameter.  Do the same here.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Marlin/Makefile

index fe77a2afd79e8ed25742a7a8a193f07a2bcda919..a85111d58ecab3f91a8921885f70e1d470eb7f19 100644 (file)
@@ -170,6 +170,14 @@ ALL_CFLAGS = -mmcu=$(MCU) -I. $(CFLAGS)
 ALL_CXXFLAGS = -mmcu=$(MCU) $(CXXFLAGS)
 ALL_ASFLAGS = -mmcu=$(MCU) -x assembler-with-cpp $(ASFLAGS)
 
+# set V=1 (eg, "make V=1") to print the full commands etc.
+ifneq ($V,1)
+ Pecho=@echo
+ P=@
+else
+ Pecho=@:
+ P=
+endif
 
 # Default target.
 all: sizeafter
@@ -178,7 +186,7 @@ build: applet elf hex
 
 # Creates the object directory
 applet: 
-       @mkdir -p applet
+       $P mkdir -p applet
 
 # the .cpp for Marlin depends on the .pde
 #applet/$(TARGET).cpp: $(TARGET).pde
@@ -189,10 +197,10 @@ applet/%.cpp: %.pde $(MAKEFILE)
 # Here is the "preprocessing".
 # It creates a .cpp file based with the same name as the .pde file.
 # On top of the new .cpp file comes the WProgram.h header.
-       @echo "  WR    $@"
-       @echo '#include "WProgram.h"' > $@
-       @echo '#include "$<"' >>$@
-       @echo '#include "$(ARDUINO)/main.cpp"' >> $@
+       $(Pecho) "  WR    $@"
+       $P echo '#include "WProgram.h"' > $@
+       $P echo '#include "$<"' >>$@
+       $P echo '#include "$(ARDUINO)/main.cpp"' >> $@
 
 elf: applet/$(TARGET).elf
 hex: applet/$(TARGET).hex
@@ -215,10 +223,10 @@ endif
 HEXSIZE = $(SIZE) --target=$(FORMAT) applet/$(TARGET).hex
 ELFSIZE = $(SIZE)  applet/$(TARGET).elf
 sizebefore:
-       @if [ -f applet/$(TARGET).elf ]; then echo; echo $(MSG_SIZE_BEFORE); $(HEXSIZE); echo; fi
+       $P if [ -f applet/$(TARGET).elf ]; then echo; echo $(MSG_SIZE_BEFORE); $(HEXSIZE); echo; fi
 
 sizeafter: build
-       @if [ -f applet/$(TARGET).elf ]; then echo; echo $(MSG_SIZE_AFTER); $(ELFSIZE); echo; fi
+       $P if [ -f applet/$(TARGET).elf ]; then echo; echo $(MSG_SIZE_AFTER); $(ELFSIZE); echo; fi
 
 
 # Convert ELF to COFF for use in debugging / simulating in AVR Studio or VMLAB.
@@ -241,8 +249,8 @@ extcoff: $(TARGET).elf
 .PRECIOUS: .o
 
 .elf.hex:
-       @echo "  COPY  $@"
-       @$(OBJCOPY) -O $(FORMAT) -R .eeprom $< $@
+       $(Pecho) "  COPY  $@"
+       $P $(OBJCOPY) -O $(FORMAT) -R .eeprom $< $@
 
 .elf.eep:
        -$(OBJCOPY) -j .eeprom --set-section-flags=.eeprom="alloc,load" \
@@ -258,29 +266,29 @@ extcoff: $(TARGET).elf
 
        # Link: create ELF output file from library.
 applet/$(TARGET).elf: applet/$(TARGET).cpp applet/core.a Configuration.h
-       @echo "  CXX   $@"
-       @$(CC) $(ALL_CXXFLAGS) -Wl,--gc-sections -o $@ applet/$(TARGET).cpp -L. applet/core.a $(LDFLAGS)
+       $(Pecho) "  CXX   $@"
+       $P $(CC) $(ALL_CXXFLAGS) -Wl,--gc-sections -o $@ applet/$(TARGET).cpp -L. applet/core.a $(LDFLAGS)
 
 applet/core.a: $(OBJ)
-       @for i in $(OBJ); do echo "  AR    $$i"; $(AR) rcs applet/core.a $$i; done
+       $P for i in $(OBJ); do echo "  AR    $$i"; $(AR) rcs applet/core.a $$i; done
 
 applet/%.o: %.c Configuration.h Configuration_adv.h $(MAKEFILE)
-       @echo "  CC    $@"
-       @$(CC) -MMD -c $(ALL_CFLAGS) $< -o $@
+       $(Pecho) "  CC    $@"
+       $P $(CC) -MMD -c $(ALL_CFLAGS) $< -o $@
 
 applet/%.o: %.cpp Configuration.h Configuration_adv.h $(MAKEFILE)
-       @echo "  CXX   $@"
-       @$(CXX) -MMD -c $(ALL_CXXFLAGS) $< -o $@
+       $(Pecho) "  CXX   $@"
+       $P $(CXX) -MMD -c $(ALL_CXXFLAGS) $< -o $@
 
 
 # Target: clean project.
 clean:
-       @echo "  RM    applet/*"
-       @$(REMOVE) applet/$(TARGET).hex applet/$(TARGET).eep applet/$(TARGET).cof applet/$(TARGET).elf \
+       $(Pecho) "  RM    applet/*"
+       $P $(REMOVE) applet/$(TARGET).hex applet/$(TARGET).eep applet/$(TARGET).cof applet/$(TARGET).elf \
                applet/$(TARGET).map applet/$(TARGET).sym applet/$(TARGET).lss applet/$(TARGET).cpp applet/core.a \
                $(OBJ) $(LST) $(SRC:.c=.s) $(SRC:.c=.d) $(CXXSRC:.cpp=.s) $(CXXSRC:.cpp=.d)
-       @echo "  RMDIR applet/"
-       @rm -rf applet
+       $(Pecho) "  RMDIR applet/"
+       $P rm -rf applet
 
 
 .PHONY:        all build elf hex eep lss sym program coff extcoff clean depend applet_files sizebefore sizeafter