3

Makefile でターゲットをビルドする前にシェル スクリプトを実行し、実行時に出力を確認するにはどうすればよいですか?

prepare.sh一連の .pyx ファイルを生成するというスクリプトがあります。.pyx ファイルは、make を含むビルド プロセスの開始点です。.pyx -> .c -> .o -> .so から

make の前に prepare.sh を個別に実行する必要はありません。私はそれを私のために実行したいと思います。

動作するようになりましたが、コマンドの出力が表示されません。見てみたいです。これは私が今持っているものです:

PATH := ${PYTHONHOME}/bin:${PATH}

NOTHING:=$(shell ./prepare.sh)

PYXS?=$(wildcard merged/*.pyx)
SOURCES=$(PYXS:.pyx=.c)
OBJECTS=$(SOURCES:.c=.o)
SOBJECTS=$(OBJECTS:.o=.so)
4

1 に答える 1

5

スクリプトの出力を stderr にリダイレクトします。NOTHINGこの場合、ダミー変数を取り除くこともできます:

$(shell ./prepare.sh >&2)

アップデート。

別のオプションは、他のすべての前に実行されるレシピ内でスクリプトを実行することです。

.PHONY : prepare
prepare :
    ./prepare.sh

-include prepare

参照:このハックを使用した元のベータ版の回答、 GNU Make manual entryがどのように機能するかを説明しています。

于 2012-06-13T19:21:44.880 に答える