Makefileを作ってmakeしてみた

(ちなみに私の使っているCentOS5は
"GNU make" というやつとのこと。よくわからない!)


▼Makefileの文法
--------------------------------------------------
ターゲットのファイル: ターゲットファイルに依存するファイル
            実行内容
--------------------------------------------------
※実行内容の前の空白はかならずtabを使うこと!(鉄則)

と書いてもよくわからないので

例えば!

"testfile"というファイルに何らかの更新があると、
"hogehoge"というファイルの一番下に"sunny"という文字列を追記!


▼Makefile
-----------------------------------------
hogehoge: testfile
             echo "sunny" >> hogehoge
-----------------------------------------


▼実行!
-----------------------------------------------------------------------------
# ls -l
total 12
-rw-r--r-- 1 root root 46 Jan 8 16:00 Makefile
-rw-r--r-- 1 root root 8 Jan 8 16:15 hogehoge
-rw-r--r-- 1 root root 9 Jan 8 16:15 testfile

# cat Makefile
hogehoge: testfile
            echo "sunny" >> hogehoge

# cat hogehoge
Hello!!

# cat testfile
testtest

# vi testfile
(vi コマンドの編集作業で"testfile"に更新がかかる)

# cat testfile
testtesttest

# ls -l
total 12
-rw-r--r-- 1 root root 46 Jan 8 16:00 Makefile
-rw-r--r-- 1 root root 8 Jan 8 16:15 hogehoge
-rw-r--r-- 1 root root 13 Jan 8 16:16 testfile

# make
echo "sunny" >> hogehoge

# cat hogehoge
Hello!!
sunny

# ls -l
total 12
-rw-r--r-- 1 root root 46 Jan 8 16:00 Makefile
-rw-r--r-- 1 root root 14 Jan 8 16:17 hogehoge
-rw-r--r-- 1 root root 13 Jan 8 16:16 testfile

# make
make: `hogehoge' is up to date.
("hogehoge"のタイムスタンプが更新され,”hogehoge”の方が
"testfile"よりも新しいので"hogehoge' is up to date.(すでに更新済です)"とでる)
-----------------------------------------------------------------------------

おっけーい。

ちなみにtouchコマンドでhogehogeのタイムスタンプを
むりやり"testfile"より前にしたらmakeできた!
やはりタイムスタンプをみているもよう

♪〜