È possibile eseguire un make clean dalla directory padre che pulisce anche ricorsivamente tutte le sottodirectory senza dover includere un makefile in ciascuna sottodirectory?Utilizzo di Makefile per pulire le sottodirectory
Per esempio, attualmente nel mio Makefile, ho qualcosa di simile:
SUBDIRS = src, src1
.PHONY: clean subdirs $(SUBDIRS)
clean: $(SUBDIRS)
rm -rf *.o *~ core .depend .*.cmd *.ko *.mod.c
$(SUBDIRS):
$(MAKE) -C $(SUBDIRS) clean
Tuttavia, questo mi richiede di avere un Makefile sia src e src1. In caso contrario, vorrei avere l'errore
No rule to make target clean
Dal momento che ho solo voglia di eseguire il comando "rm-rf * .o ~ nucleo .depend. .cmd * * .ko .mod.c" in ogni sottodirectory comunque, sembra ridondante dover includere un Makefile in ogni sottodirectory con la stessa identica linea per clean. Non c'è modo di avere semplicemente lo stesso comando pulito eseguito in ciascuna sottodirectory?
Probabilmente si desidera semplicemente avere il comando clean per eliminare i file in modo ricorsivo. Vedi: https: // superutente.it/questions/61258/use-rm-to-remove-files-and-directories-ricorsivamente –
Quello o semplicemente loop in clean su '$ (SUBDIRS)' ed esegui 'rm' in ognuno manualmente. –
In realtà, se scrivi il tuo makefile di primo livello con attenzione (o scrivi un makefile separato di clean.mk che includi) allora puoi '$ (MAKE) -C $ @ -f clean.mk clean' in quella ricetta credo. (Si noti '$ @' invece di '$ (SUBDIRS)'. '-C' prende un singolo argomento non una lista.) –