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定義の検索ディレクトリをクリア
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