Можно ли сгенерировать файл, включенный в make-файл posix? - PullRequest
0 голосов
/ 20 июня 2020

В gnu make это можно сделать так:

include .deps
.deps:
    ./generate-deps >$@

Что будет включать файл .deps, но сгенерирует его, если он отсутствует или устарел. Однако, похоже, что это поведение, специфичное c для gnu make, оно не имеет отношения к стандарту posix для make. И, например, bmake на самом деле не справляется с этим.

Мой вопрос: можно ли сделать что-то подобное при наличии чистого posix-совместимого make-файла? Ближайшее, что у меня есть, - это три файла makefile:

Makefile

build:
    @$(MAKE) -fMakefile.deps
    @$(MAKE) -fMakefile.real $@

Makefile.deps

.deps:
    # Some command to generate .deps

Makefile.real

include .deps

build:
    # The actual build command

но это кажется адски сбитым с толку. Есть ли более простой c способ, который я полностью пропустил?

1 Ответ

0 голосов
/ 20 июня 2020

Да, есть более простой способ сделать это, но он не требует использования include.

Вы можете сделать это с помощью одного make-файла (при условии, что пользователь не отменяет цель по умолчанию):

build: .deps
        @$(MAKE) -fMakefile -f.deps real-build

.deps:
        # Some command to generate .deps

real-build:
        # The actual build command
...