Eu estou tentando obter um nome de arquivo .tar.gz de uma nova pasta gerada (um passo acima). Eu tentei usar curinga, mas sem sorte,
No meu makefile, tentei:
...
...
...
other parts
...
deb:
python setup.py sdist --- this step will generate a new folder called dist
cd dist; ls -l --- from here, I see the file is shown.
echo $(wildcard dist/*.tar.gz) (also tried dist/pylink*.tar.gz, dist/*.gz) --fails!
Eu corro com make -f makefile deb.
Eu sempre não recebi nada do curinga
Mas se eu deixar a pasta gerada pelo python,e execute novamente o arquivo acima, posso ver que o nome do arquivo é gravado no console. Alguém sabe por quê? Como devo fazer para obter o nome do arquivo? Eu preciso usar o nome do arquivo e estender o nome do arquivo para outro.
muitíssimo obrigado!
Respostas:
2 para resposta № 1Você não diz isso explicitamente, mas eu suponho que, porque você está usando $(wildcard ...)
, as linhas que você fornece fazem parte de uma regra make makefile do GNU. É melhor fornecer um exemplo prático, quando pedir ajuda, não apenas um pouco de um.
O problema que você está tendo é que faz expandir TODAS as variáveis e funções em TODAS as linhas da receita, antes de iniciar a primeira linha da receita. $(wildcard ...)
não aparece até a terceira linha da receita, ela é expandida antes que a primeira linha seja executada. Quando o $(wildcard ...)
função funciona, esses arquivos não existem ainda assim expande para nada.
Por que você não usa apenas a concha globbing, já que você está em uma concha de qualquer maneira?
python setup.py sdist
cd dist; ls -l
echo dist/*.tar.gz