makefileルールに前提条件はありますが、レシピがないことはどういう意味ですか?

makefileルールに前提条件はありますが、レシピがないことはどういう意味ですか?
INSTALL = /usr/local/bin/install -c
INSTALLDATA = /usr/local/bin/install -c -m 644
# The directory to install tar in.
bindir = $(prefix)/bin
# The directory to install the info files in.
infodir = $(prefix)/info




.PHONY: all
all:    tar rmt tar.info

tar:    $(OBJS)
        $(CC) $(LDFLAGS) -o $@ $(OBJS) $(LIBS)

rmt:    rmt.c
        $(CC) $(CFLAGS) $(LDFLAGS) -o $@ rmt.c

tar.info: tar.texinfo
        makeinfo tar.texinfo




.PHONY: install
install: all
        $(INSTALL) tar $(bindir)/$(binprefix)tar
        -test ! -f rmt || $(INSTALL) rmt /etc/rmt
        $(INSTALLDATA) $(srcdir)/tar.info* $(infodir)

「all」ターゲットのルールを理解できません。レシピはありません。したがって、「make all」と入力すると、「.PHONY:all」行がないとどうなりますか?

ベストアンサー1

ターゲットは、およびターゲットallにのみ依存しますが、その 3 つのターゲットがビルドされたことを確認する以外は何も行いません。tarrmttar.info

.PHONY拡張プログラムですこれは、間違ったターゲットallinstallここが実際のファイルと一致しないことを意味します。ルールがfalseとマークされていない場合、またはallというファイルを生成すると、そのinstallルールが実行されない可能性があります。

おすすめ記事