綾小路龍之介の素人思考

[make] *.texのmakefileで*.pdfを作る

makefileは依存関係を書くもの。hoge.texの中で何も参照していない場合。つまり、includegraphixとかしていない場合。

編集したhoge.texはplatexをとおってhoge.dviになる。つまり、hoge.dviはhoge.texに依存している。というわけで下が必要。

hoge.dvi: hoge.tex
        platex hoge.tex

今できたhoge.dviはdvipdfmxをとおってhoge.pdfになる。つまり、hoge.pdfはhoge.dviに依存している。というわけで下が必要。

hoge.pdf: hoge.dvi
        dvipdfmx hoge.dvi

makefile作って普通にmakeとやると選択されるレシピは一番上のレシピから実行される。でもあとからのことを考えてallというレシピを一番上に作っておく。今までの例で行くと、TARGET:SOURCEという行を書いて、タブでインデントしてSOURCEからTARGETを作るコマンドを書いた。つまり、一番下のTARGETつまり、最終的にできるものがallレシピのSOURCEになる。allはhode.texに依存している。

all: hoge.tex

結局欲しいのはhoge.pdfでありhoge.texから作られる中間生成ファイルはいらない。なので、中間生成ファイルをリストアップしておいていつでも消せるようにしておく。このときよくあるレシピの書き方がcleanである。つまるところhoge.dviもhoge.pdfができればいらない。hoge.pdfも印刷したらいらない。ということで、hoge.texとmakefile以外消してしまえ。

clean: hoge.aux hoge.dvi hoge.log hoge.pdf

ソーシャルブックマーク

  1. はてなブックマーク
  2. Google Bookmarks
  3. del.icio.us

ChangeLog

  1. Posted: 2006-10-05T19:23:15+09:00
  2. Modified: 2006-10-05T12:43:45+09:00
  3. Generated: 2017-09-05T23:10:15+09:00