Tiago Saboga <[EMAIL PROTECTED]> writes: > On Thu, May 29, 2008 at 10:55:54AM -0300, Eriberto wrote: >> Bem, vou dar a minha interpretação sobre isto. Me corrijam se eu estiver >> errado. >> >> Os alvos devem existir para não dar erro durante o dpkg-buildpackage >> (é isso que diz na policy e ocorre na prática) e não porque alguém tem >> que ver esses nomes escritos lá. É por isso que existe a linha .PHONY >> no final do debian/rules. Em um Makefile, uma das funções da linha >> .PHONY (que é um alvo e quer dizer impostor) é simular um alvo >> presente e vazio. Assim, se não houver algum alvo necessário, a linha >> .PHONY irá encarregar-se de enganar o dpkg-buildpackage, informando >> que o alvo "existe e está vazio". > > O alvo .PHONY, pelo que entendo da página info do make (seção 4.6), é > um alvo que não corresponde ao nome de um arquivo, e não um alvo > implícito. No entanto, fazendo o teste, vejo que você tem razão: um > alvo declarado como phony é considerado como existente: > > [EMAIL PROTECTED]:/tmp/mk$ touch Makefile > [EMAIL PROTECTED]:/tmp/mk$ make all > make: *** Sem regra para processar o alvo all'. Pare. > [EMAIL PROTECTED]:/tmp/mk$ echo "all:" > Makefile > [EMAIL PROTECTED]:/tmp/mk$ make all > make: Nada a ser feito para all'. > [EMAIL PROTECTED]:/tmp/mk$ echo ".PHONY: all" > Makefile > [EMAIL PROTECTED]:/tmp/mk$ make all > make: Nada a ser feito para all'. > > Sinceramente, não consegui achar referência a isso na página info. De > qualquer maneira, obrigado pela correção.
Ok, jah que isso estah tendo alguma confusao deixe-me explicar isso... O .PHONY _simula_ a existencia de um arquivo para o Make... para entender porque eh necessario entender como o Make foi "desenhado". Basicamente, os alvos do Make tem dependencias e quando queremos determinar que um alvo foi feito usamos o truque do touch ... Quando fazemos isso o Make verifica que o arquivo existe e assume que tudo que for mais velho que o arquivo estah atualizado. Quando adicionamos algo no .PHONY se instrui ao make para assumir como se o arquivo existisse ... caso tenha uma regra no Makefile, ele tem precedencia ao .PHONY pois eh definido antes e tudo roda normal Por isso o Make fica "feliz" com o .PHONY: foo... -- O T A V I O S A L V A D O R --------------------------------------------- E-mail: [EMAIL PROTECTED] UIN: 5906116 GNU/Linux User: 239058 GPG ID: 49A5F855 Home Page: http://otavio.ossystems.com.br --------------------------------------------- "Microsoft sells you Windows ... Linux gives you the whole house." -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]