No Linux, 'make folder / path / clean' é o mesmo que executar o comando 'make clean' na pasta / caminho?

3

Sou novo no Linux, mais ainda no Makefile.

No Linux, 'make folder / path / clean' é o mesmo que executar o comando 'make clean' em folder / path /?

(pasta / caminho / refere-se a um diretório arbitrário.)

Além desta questão, existe uma generalização que se pode fazer sobre esta sintaxe (de comando e argumento) no Linux?

Atualize com base nos comentários e respostas sugeridas: Obrigado, aprendi algumas coisas novas. Eu também descobri que o Makefile que estou usando (openwrt) é diferente do Makefile normal do GNU, pois tem mais recursos.

Um resumo é que os dois comandos na questão principal não são os mesmos.

    
por tech 26.08.2013 / 08:41

2 respostas

9

Para executar make clean em folder/path , você quer

make -C folder/path clean

A opção -C não é POSIX, embora (veja os comentários). Ele funciona, pelo menos, para o GNU make , que é o make que você tem se estiver executando o Linux.

    
por 26.08.2013 / 09:29
5

Não, não é. Sua sintaxe não funcionaria a menos que você tenha uma regra para folder/path/clean no diretório em que você executa o make folder/path/clean in.

Você pode, por exemplo, fazer uma regra limpa recursiva em seu arquivo de criação para (talvez?) obter o que deseja. Por exemplo:

recursive-clean:
  (cd folder/path; make clean)
  ...

Para cada diretório que você possui ou apenas faça um loop for sobre todos os diretórios, etc.

    
por 26.08.2013 / 08:59