統合環境等で自動でできることが多いmakefileだが、一応書き方を抑えておく。
コマンド名を直接書く方法もあるが、マクロを使うとスマート。
ルールは以下の感じで、
成果物:必要な材料1 材料2 //材料は半角スペースで区切る
作り方 //上の材料を使って成果物を作り出す方法を記述。タブでインデント
コマンド: //材料を必要としない場合はmake xxxの形で呼び出すコマンド
Cコンパイラの場合の典型的な書き方は以下のような感じ。
/*マクロ定義部分*/
TARGET = 最終output名 //BINってのも見たことがある気が。
CC=cc //C++の場合はCXX等
CFLAGS = //CCの引数の設定。OPTとの違いが微妙に不明。おそらく、CFLAGSがOPT(オプション)とOTHER(その他)のものを全て含む-o -wall等。
LIB = -L/aaa/aaa/ //使用するライブラリの場所
INC = -I/bbb/bbb/ //使用するインクルードファイル
SRCS = xxx.c yyy.c //ソースコードの設定
OBJS = xxx.o yyy.o //オブジェクトファイルの設定
/*コンパイル処理定義部分*/
$(TARGET):$(OBJS)
$(CC) $(CFLAGS) -o $(TARGET) $(OBJS)
xxx.o:xxx.c
$(CC)$(CFLAGS) -c xxx.c
yyy.o:yyy.c
$(CC)$(CFLAGS) -c yyy.c
clean:
rm -f $(TARGET) $(OBJS)
実行はmakeでできる。
生成されたオブジェクトファイルなどを整理してからもう一回コンパイルしたい
場合などには、make cleanとすれば良い。
最終更新:2015年02月28日 19:43