[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Intenção de empacotar as funcoesZZ



Tiago Saboga <tiagosaboga@gmail.com> 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:
>
> tiago@sofocles:/tmp/mk$ touch Makefile
> tiago@sofocles:/tmp/mk$ make all
> make: *** Sem regra para processar o alvo all'.  Pare.
> tiago@sofocles:/tmp/mk$ echo "all:" > Makefile
> tiago@sofocles:/tmp/mk$ make all
> make: Nada a ser feito para all'.
> tiago@sofocles:/tmp/mk$ echo ".PHONY: all" > Makefile
> tiago@sofocles:/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: otavio@debian.org      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."


Reply to: