Eu tenho este Makefile:
P5.obj P5.sym: P5.asm
lc3as P5.asm
Eu quero que o montador seja executado se P5.obj ou P5.sym estiverem desatualizados. No entanto, excluir P5.sym não faz com que ele seja regenerado.
O que estou fazendo errado?
Eu tenho este Makefile:
P5.obj P5.sym: P5.asm
lc3as P5.asm
Eu quero que o montador seja executado se P5.obj ou P5.sym estiverem desatualizados. No entanto, excluir P5.sym não faz com que ele seja regenerado.
O que estou fazendo errado?
(Presumi que
lc3as P5.asm
irá gerar arquivosP5.obj
eP5.sym
. Presumi que você tente executarmake
.)O alvo padrão é o primeiro alvo, a menos que você não o especifique (depende do dialeto).
Por exemplo:
Se você executar
make
o arquivoa
eb
será criado. Se você excluirb
e executarmake
:porque o
a
destino é o padrão.A solução geral é criar um destino com o nome
all
no início deMakefile
:Nesse caso, se você excluir
b
omake
irá regenerá-lo (porque o destino padrão éall
e suas dependências sãoa
eb
).As dependências geralmente vêm após o nome da regra, embora não esteja claro para mim, pela sua pergunta, quais são as entradas e qual é a saída. Supondo que
lc3as P5.asm
produzaP5
como saída (e dependa de todos osP5.asm
,P5.obj
eP5.sym
), a entrada pode ser algo como: