Makefileを使ったコンパイル方法

  1. CGの実験用に作成したフォルダに移動(cdコマンドを利用)
  2. lsコマンドを実行して,フォルダの中にMakefileというファイルがあるか確認
  3. Makefileがなければ,以下のコマンドを実行して,/lesson/CGからMakefileをコピーしてくる
    cp /lesson/CG/Makefile ./
  4. Makefileがあった場合は,以下のコマンドを実行してみる.
    make
    すると,sample1からsample4まで,次々コンパイルされることがわかる.
    ただし,先週既にsample1〜sample4のコンパイルを行ったという場合は,エラーが表示されるかもしれません.makeを実行して,コンパイルがなにも実行されず,エラーが出てきた人は,sample1の実行ファイルだけをrmで削除して,再度makeを実行してみてください.するとsample1.cがコンパイルされて,sample1ができるのが確認できると思います.
  5. 次に,emacsでMakefileの中身を見てみましょう.
    all: sample1 sample2 sample3 sample4 sample1: sample1.c cc -o sample1 sample1.c -O2 -Wall -L/usr/X11R6/lib -lm -lX11 -lGL -lGLU -lglut -lXext -lXmu -lXi sample2: sample2.c cc -o sample2 sample2.c -O2 -Wall -L/usr/X11R6/lib -lm -lX11 -lGL -lGLU -lglut -lXext -lXmu -lXi sample3: sample3.c cc -o sample3 sample3.c -O2 -Wall -L/usr/X11R6/lib -lm -lX11 -lGL -lGLU -lglut -lXext -lXmu -lXi sample4: sample4.c cc -o sample4 sample4.c -O2 -Wall -L/usr/X11R6/lib -lm -lX11 -lGL -lGLU -lglut -lXext -lXmu -lXi
    中身を見ると,コンパイルのコマンドが順番に書かれていることがわかります.
  6. ここで,sample4と書かれているところを,全てsample5-1に変更して保存し,再度makeを実行すると,sample5-1がコンパイルされます.(まだ課題5-1を始めていない人は,プログラムを書き換えてから実行してみてください)
  7. makeコマンドは,実行ファイルと.cファイルのどちらが新しいかを調べて,実行ファイルの方が新しければ,そのプログラムは既にコンパイル済みと判断し,無駄なコンパイルを行いません.逆に,.cファイルの方が新しければ,プログラムが変更されたと判断して,コンパイルを実行します.
◆makefileの書き方は,このホームページに書いてあります.