I\'m wondering how I can avoid some echo in a Makefile :
clean:
rm -fr *.o
this rule will print:
$>make clean
rm -fr
To start with: the actual command must be on the next line (or at least that is the case with GNU Make, it might be different with other Make's - I'm not sure of that)
clean:
rm -rf *.o
(note, you need a TAB before rm -rf *.o
as in every rule)
Making it silent can be done by prefixing a @
:
so your makefile becomes
clean:
@rm -rf *.o
If there are no *.o
files to delete, you might still end up with an error message. To suppress these, add the following
clean:
-@rm -rf *.o 2>/dev/null || true
2>/dev/null
pipes any error message to /dev/null - so you won't see any errors-
in front of the command makes sure that make
ignores a non-zero return code