Usa rm -f
(o ancora meglio $(RM)
, fornito da make
integrato regole, che possono essere trovate usando make -p
) invece di rm
nel tuo clean
regola.
Quando i bersagli falliscono
Quando un obiettivo viene eseguito, restituisce uno stato in base al fatto che abbia avuto successo o meno:se un obiettivo fallisce, allora make non eseguirà alcun obiettivo che dipende da esso. Ad esempio, nell'esempio precedente, se "clean" fallisce, la ricostruzione non eseguirà l'obiettivo "build". Sfortunatamente, ciò potrebbe accadere se non ci sono file core da rimuovere. Fortunatamente, questo problema può essere risolto abbastanza facilmente includendo segno aminus davanti al comando il cui stato deve essere ignorato:
clean: -rm -f *.o core
~ http://www.cprogramming.com/tutorial/makefiles.html
rm -f
FORCErà e non restituirà alcun errore