A criar comandos de impressão antes de executar quando não usar o CMake

Vejo que esta é a mesma pergunta que

a criar comandos de impressão do cmake antes de executar

Mas essa resposta não funciona para mim. Acho que essa resposta só funciona com o cmake. Que opções funcionam sem o cmake?

Nota experimentada

make VERBOSE=1 target
make target VERBOSE=1
VERBOSE=1 make target
make V=1 target
make target V=1
V=1 make target
make -V target
make -v target
Nenhum deles funcionou.

O

Make-v devolve

GNU Make 3.81
Copyright (C) 2006  Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.

This program built for x86_64-pc-linux-gnu
 26
Author: Community, 2012-06-13

2 answers

Por omissão, make imprime todos os comandos antes de os Executar. Esta impressão pode ser suprimida por um dos seguintes mecanismos:

  • caso a caso, adicionando @ no início do comando
  • globalmente, adicionando o .Alvo silencioso.
  • algures ao longo do processo de fabrico, invocando sub-marcas com uma das bandeiras -s, --silent Quer --quiet, como em $(MAKE) --silent -C someDir, por exemplo. A partir desse momento, a EcoAção de comando é suprimida no sub-make.

Se o seu makefile não imprime os comandos, então ele provavelmente está usando um desses três mecanismos, e você tem que realmente inspecionar o makefile(s) para descobrir qual.

Como uma solução para evitar estes mecanismos de supressão de eco, você poderia redefinir a shell a ser usada para usar um modo de depuração, por exemplo make SHELL="/bin/bash -x" target. Outras conchas têm opções semelhantes. Com essa abordagem, não é make imprimir os comandos, mas a própria shell.

Se use a bandeira -n ou --just-print, os mecanismos de supressão de eco serão ignorados e você irá sempre ver todos os comandos que make pensa que devem ser executados -- mas eles não são realmente executados, apenas impressos. Isso pode ser uma boa maneira de descobrir o que você pode realmente esperar ver.

A variável VERBOSE não tem um significado padrão para {[[0]}, mas apenas se o seu makefile a interpretar.

 82
Author: Reinier Torenbeek, 2012-06-15 12:05:42
Acho que é isto que queres.: make MAKE_VERBOSE=1 target
 1
Author: user2023183, 2013-01-29 20:57:12