まず、code/speed.py
のように見えるs出力ファイル名の制御なし...ハードコードされた出力ファイル名は通常、sconsの悪い習慣とみなされます(yaccツール参照)。 PDFのターゲットはreport.tex
からreport.pdf
を生成し、
今
speed = Command('speed_analysis.tex', [], 'python code/speed.py -o $TARGET')
:それはこのように優れて読んでいました。私は、report.tex
からspeed_analysis.tex
への暗黙的な依存関係があると推測しています(Texのincludeやそのようなものを通して)。
この
:
Depends(report, speed)
はそれが欠けている場合は、その依存関係を表現するために正しいです。私はあなたが使用してDEPツリーを検証する必要があります...
PDFビルダーのためのスキャナはその暗黙の依存関係を見ていない驚いているものの:
scons --tree=all
それは次のようになります。
+ report.pdf
+ report.tex
+ speed_analysis.tex
+ code/speed.py
+ /usr/bin/python
+ /usr/bin/pdflatex
を
今、スクリプト(speed.py
)が常に実行中であることについての質問に答えるには、入力がないためです。スコオンがチェックすることはありません。そのスクリプトファイルは、何かを入力としていなければなりません。次の実行を短絡させるためのすべての直接的および暗黙的な依存関係について、sconsに伝える必要があります。
Command('speed_analysis.tex', 'code/speed.py', 'python $SOURCE -o $TARGET')