makeを使う 数理情報システム工学科 担当: 汐月哲夫 2015/10/1 プログラミング方法論 [email protected] 1 make とは。。。 • 大規模なプログラム開発(教育)において、ソースファイ ルの修正と再コンパイル頻繁に繰り返す作業において有 益なユーティリティ • 詳細情報は (/usr/info/) make.info にある( man コマンド の情報は必ずしも最新ではない) • ファイルの依存関係、作業内容を make の文法に従って 記述するだけ(プロジェクト管理情報)で • 操作は簡単 2015/10/1 プログラミング方法論 [email protected] 2 make の使い方 (1) make の文法規則に従って makefile を作成する(ファイ ル名=‘Makefile’ または ‘makefile’) (2) コマンド行から make <ターゲット>(改行) と入力する 注1: -f <ファイル名>を指定すると Makefile 以外のファイル名が使用可能 注2: <ターゲット>を省略すると先頭のターゲットを仮定 2015/10/1 プログラミング方法論 [email protected] 3 使用例(1) DEPENDENCY Makefile の記述例 ターゲット(TARGET) ex005 : ex005.c gcc -o ex005 ex005.c COMMAND タブで開ける make の実行 % make(改行) または %make ex005(改行) 2015/10/1 プログラミング方法論 [email protected] 4 make TARGET: 出力ファイル名(実行ファイル名、オブジェクトファイル名)、 アクション名(clear,…) DEPENDENCIES: 入力ファイル(ソースファイル、ヘッダファイル)、依存ファイル COMMAND: シェルコマンド(gcc, echo, rm, …) 2015/10/1 プログラミング方法論 [email protected] 5 使用例(2:依存関係の管理) Makefile の記述例 ex1-4: ex1-4.o gcc -o ex1-4 ex1-4.o ex1-4.o: ex1-4.c gcc -c ex1-4.c clean: rm *.o *~ core 2015/10/1 プログラミング方法論 [email protected] 6 使用例(3:マクロ) Makefile の記述例 マクロ定義 CC = gcc CFLAGS = ex1-4: ex1-4.o $(CC) $(CFLAGS) -o ex1-4 ex1-4.o ex1-4.o: ex1-4.c $(CC) $(CFLAGS) -c ex1-4.c clean: rm *.o *~ core 展開 2015/10/1 プログラミング方法論 [email protected] 7 使用例(4:暗黙の了解) Makefile の記述例 CC = gcc CFLAGS = ex1-4: ex1-4.o ex1-4.o: ex1-4.c clean: rm *.o *~ core *.c, *.o はコンパイルして作るものであることを 知っている。 2015/10/1 プログラミング方法論 [email protected] 8 使用例(5:$変数) Makefile の記述例 CC = gcc CFLAGS = ex1-4 : ex1-4.c $(CC) $(CFLAGS) -o $@ $< clean: rm *.o *~ core $@ $< $^ 2015/10/1 TARGET DEPENDENCY の先頭 DEPENDENCY の全体 プログラミング方法論 [email protected] 9 make に関する詳細情報 • /usr/info/make.info* を読む • 読み方 – emacs のコマンドラインから M-x info<CR> – mGNU make で上記ファイルを選択 – $変数は Using Variables → Automatic – 省略型は Implicit Rules • (注意)infoファイルが解凍されていない場合は gunzip で要解凍 2015/10/1 プログラミング方法論 [email protected] 10
© Copyright 2024 ExpyDoc