Suppress messages in make clean (Makefile silent remove)

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
  • the - in front of the command makes sure that make ignores a non-zero return code

Leave a Comment

Hata!: SQLSTATE[HY000] [1045] Access denied for user 'divattrend_liink'@'localhost' (using password: YES)