- お知らせ -
  • 当wikiのプログラムコードの表示を直してみました(ついでに長い行があると全体が下にぶっ飛ぶのも修正)。不具合があればBBSまでご連絡下さい。

使い方メモ Edit

ログとりながらmakeする Edit

Bシェル系(bash)の場合

make 2>&1 | tee make.log

ログとりながらmakeする2 Edit

script
 :
make
 :
exit

typescriptっつーファイルに、ログが残る。
こんな便利なのがあったのかーー

と思ったら、cygwinにねえじゃんか!!

書き方メモ Edit

他のディレクトリのmakeを呼び出す Edit

# enumerate directories
MAKE_SUB_DIR = source/ script/ その他いろいろ

# make other directories
make_other_dir: $(MAKE_SUB_DIR)
$(MAKE_SUB_DIR)::
	$(MAKE) -C $@

以下のようにallにしこんどくといい

all: make_other_dir その他いろいろ

.PHONYを使いまくれ Edit

.PHONYで指定されたターゲット名は、必ずコマンドとして実行される。
例えば、

.PHONY: all clean

とすると、allとかcleanとかいうふざけた(Makefile的にね)ファイルがあった場合でも、Make all や Make clean した時に正しくコマンドとして実行される。

.PHONYに指定していない場合は、どうなるかというと、
例えば、all というファイルがあるとした場合、

> make all
make: `all' is up to date.

などと言われてコマンドが実行できない。

make hogeで関数呼び出し Edit

list = foo bar moge

moge:
  make hoge foo="1" moge="$(list)"

hoge:
ifdef foo
  :
  :
endif

引数にリストを渡す場合 "" で囲まないと先頭の要素しか渡されないので注意

もっといい方法ないのかな?

同じ拡張子のファイルを列挙する Edit

wildcard を使う。例:

SRC = $(wildcard *.c)
OBJS = $(SRC:.c=.o)

エラーを無視する Edit

rm hoge

とかかくとhogeがない時にエラーがでてそこで止まってしまう。
止まらせたくない時は、

-rm hoge

と書きます。

参考URL Edit




Front page   Edit Freeze Diff Backup Upload Copy Rename Reload   New Pages Search Recent changes   Help   RSS of recent changes
Last-modified: 2006-03-02 Thu 00:14:43 JST (4077d)