「Makefile」の版間の差分
提供: Eospedia
行27: | 行27: | ||
この行が、先程の(1)に属していることを表すために、先頭にTabによる空行が挿入されている。 | この行が、先程の(1)に属していることを表すために、先頭にTabによる空行が挿入されている。 | ||
つまり、Tabによる空欄がなくなるまで、(1)に属する領域ということになる。 | つまり、Tabによる空欄がなくなるまで、(1)に属する領域ということになる。 | ||
+ | |||
+ | 更に、以下のようにmakeをmakeするMakefileを作れば、複数の工程を1度のmakeで実行することができる。 | ||
+ | このように、[[3次元再構成]]など複数の工程が必要な作業においてMakefileは必需品となる。 | ||
+ | |||
+ | All:: | ||
+ | make $(TARGET).ref3d; | ||
+ | make $(TARGET).ref2d; | ||
+ | make AVGs; | ||
+ | make -j $(JOP_NUM) corinfo; | ||
+ | make CORINFOs; | ||
+ | make $(TARGET).ds6; | ||
+ | |||
+ | [[3次元再構成]]とMakefileの組み立て方は3次元再構成の単粒子解析の項を参照のこと。 |
2010年11月9日 (火) 06:56時点における版
Makefileとはmakeコマンドを実行したときに読み込まれるテキストファイル。 makeとは、C言語などのソースファイルが複数存在していても、自動で順番を把握しコンパイルするコマンドである。
EosにおけるMakefile
3次元再構成をEosで行う場合、ファイル数が莫大になると、1つずつコマンドを打ち込んでいては多大な労力を必要としてしまう。 この労力を削減するために、Eosはmakeコマンドを使って実行することが必要であることが多い。 また、makefileを理解するためにはシェルスクリプトの知識も必要となる。
make EM.ref2D .ref3d.red2d: mrc3Dto2D -i $*.ref3d -o $*.ref2d -EulerMode YOYS InterpolationMode 0 -Rot1 0 359 $(STEP) -Rot2 0 359 $(STEP) -Rot3 0 0 $(STEP) -m 1
例えば、上記のようなMakefileがあったとして、
make EM.ref2D
makeコマンドを以上のように実行すると、自動で拡張子.ref2Dを生成する行を探し実行してくれる。
.ref3d.red2d: (1)
今回はこの部分が、拡張子.ref3dファイルから.ref2dファイルを生成するという意味を表しており、以下の部分を実行する。
mrc3Dto2D -i $*.ref3d -o $*.ref2d -EulerMode YOYS InterpolationMode 0 -Rot1 0 359 $(STEP) -Rot2 0 359 $(STEP) -Rot3 0 0 $(STEP) -m 1
この行が、先程の(1)に属していることを表すために、先頭にTabによる空行が挿入されている。 つまり、Tabによる空欄がなくなるまで、(1)に属する領域ということになる。
更に、以下のようにmakeをmakeするMakefileを作れば、複数の工程を1度のmakeで実行することができる。 このように、3次元再構成など複数の工程が必要な作業においてMakefileは必需品となる。
All:: make $(TARGET).ref3d; make $(TARGET).ref2d; make AVGs; make -j $(JOP_NUM) corinfo; make CORINFOs; make $(TARGET).ds6;
3次元再構成とMakefileの組み立て方は3次元再構成の単粒子解析の項を参照のこと。