GNU-makefle(3)ルール構文、ファイル検索、ダミーターゲット
1558 ワード
参照リンク:http://blog.csdn.net/haoel/article/details/2889
コマンドと依存関係が同じ行に記述されている場合は、セミコロンで区切ることができます.
コマンドが長すぎる場合は、反スラッシュで複数行に区切ることもできます.区切られた行の先頭にtabがあるかどうかは構いません(スペースはどうでもいいです).
ファイルディレクトリを指定する場合は、makeがshellで実行されるため、~でシステムホームディレクトリを表すことができます.
VCATH Makefileファイルの特殊な変数.makeが依存ファイルとターゲットファイルを検索できるディレクトリを指定します.
デフォルトでは定義されていません.現在のディレクトリで検索され、複数の採用コロン(:)で区切られます.
vpathは、一致するディレクトリを検索するコマンドです.ファイル名の0文字または複数の文字を%で一致させます.
vpath pattern directories スキーマに一致するファイルをディレクトリで検索
vpath pattern現在のモードの検索ディレクトリをクリア
vpath すべてのvpath定義の検索ディレクトリをクリア
例
コマンドと依存関係が同じ行に記述されている場合は、セミコロンで区切ることができます.
コマンドが長すぎる場合は、反スラッシュで複数行に区切ることもできます.区切られた行の先頭にtabがあるかどうかは構いません(スペースはどうでもいいです).
ファイルディレクトリを指定する場合は、makeがshellで実行されるため、~でシステムホームディレクトリを表すことができます.
VCATH Makefileファイルの特殊な変数.makeが依存ファイルとターゲットファイルを検索できるディレクトリを指定します.
デフォルトでは定義されていません.現在のディレクトリで検索され、複数の採用コロン(:)で区切られます.
vpathは、一致するディレクトリを検索するコマンドです.ファイル名の0文字または複数の文字を%で一致させます.
vpath pattern directories スキーマに一致するファイルをディレクトリで検索
vpath pattern現在のモードの検索ディレクトリをクリア
vpath すべてのvpath定義の検索ディレクトリをクリア
例
mymk = ~/Desktop/b.mkf
-include $(mymk)
edit : $(objs)
cc -o edit $(objs)
#VPATH = srcs:headers
vpath %.c srcs:headers
vpath %.h srcs:headers
#vpath %
#vpath
main.o:
kbd.o:
command.o:
display.o:
insert.o:
search.o:
utils.o: ; cc -c utils.c
files.o: ; cc -c -g \
files.c
.PHONY : clean
clean :
# -rm edit $(objs)
-rm *.o edit
ダミーターゲットを先頭に# all, makefie 。 , 1 makefile , , 。
# make all make 。 AA BB CC
all : AA BB CC
.PHONY : all
AA : A.o command.o
cc -o AA A.o command.o
BB : B.o
cc -o BB B.o
CC : C.o utils.o
cc -o CC C.o utils.o
ダミーターゲット依存ダミーターゲット#cleanall ( ) cleanobj cleandiff
.PHONY: cleanall cleanobj cleandiff
cleanall : cleanobj cleandiff
-rm AA BB CC edit
cleanobj :
-rm *.o
cleandiff :
-rm *.diff