make

make 改訂版(6章 続き, 7章)

昨日の強制リコンパイル時に延々とmakefileを作り直すやつを、もう少し調べてみよう。make には'-n' っていうオプションがあるみたいで、 実際にコンパイルはしないけど、どういうコマンドを実行しようとしているのかが表示される。 [kobakoba0723@fedora13-…

make 改訂版(5章) 続きの続き (6章)

ヘッダファイルで定義を変更した時に、オブジェクトをリコンパイルできるようにしておきたい こういう場合は、オブジェクトファイルの依存関係にヘッダファイルを追加すれば問題は解決する。でも、間違ったり漏れたりすることもあるので、自動的に作ってもら…

make 改訂版(5章) 続き

シンボルの定義/未定義で実行ファイルの動作を切り替えられるのはとても便利。 でも、コンパイル時の指定を忘れていたり、記憶違いをしていたりすると、 思いもよらない動きをする実行ファイルが作成されてしまう。 (ファイルの編集でなくシンボル定義で切り…

make 改訂版(5章)

再帰的なmake 複数のディレクトリにまたがったコンパイルをする時に make ってやると下位ディレクトリまで含めて依存関係を解消できる [kobakoba0723@fedora13-intel64 recursive]$ make cc -c -o main.o main.c cd hoge; \ make all make[1]: ディレクトリ …

make 改訂版(4章)

コマンド行の注意点 各コマンド行は独立したシェルで実行される 以下のようなことをすると、rmコマンドで悲しい結果を生み出してしまう。 clean: cd hoge rm *.shcd, rm ともそれぞれ新しいシェルを起動し実行されてしまう。 そのため、hogeと同一階層にある…

make 改訂版(3章)

サフィックスルールとは 特定の拡張子を持つコンポーネントから、別の特定の拡張子を持つターゲットを作成するルール サフィックスルールで使える拡張子は、.SUFFIXES行で定義する 基本的なサフィックスルールは、makeにあらかじめ定義されている。 makeにあ…

make 改訂版(序文, 1, 2章)

序文 makeとは? Makefileやあらかじめ定義された規則にそって、シェルが実行するコマンド列を生成するコマンドジェネレータ 1章 簡単なメイクファイルを書く make を実行した結果出来上がるものをターゲット、ターゲットを作るために必要なものをコンポーネ…

引き続き「UNIXプログラミングの道具箱」(Autoconf)

環境設定用のヘッダファイルを自動生成するconfigureスクリプトを生成するツール configureスクリプトを使うとコンパイル環境に合わせたMakefileが自動的に生成できてプログラムの可搬性が向上するconfigureスクリプトを使ったMakefile生成の流れは configur…

引き続き「UNIXプログラミングの道具箱」(make)

自分でMakefileを書いたこともあるけど、サンプルのコピペで全く内容を理解できていなかった。 make Makefileには、次の構文で記述する。 ターゲット [ ... ]:[依存コンポーネント [ ... ] ] コマンドターゲットは生成したいファイルで、依存コンポーネント…