// *Makefile

#contents

* 変数上書き

Makefileではなくmakeネタだが気にしない

 make VAR=VALUE

そんだけ

* makedepend

Makefileを書き換えるツール。
Makefileは改行で終わっていないと困ったことになるので注意。

 $ makedepend sourcefiles

* GNUmake

	#	依存関係などの省力化
	#
	#	カレントディレクトリに含まれる .c ファイルだけ .o を作成
	#	また .makefileというMakefile(の一部)を生成する
	#		#includeから生成した依存関係が書かれたファイル
	#		gcc -M の出力を加工したもの
	
	SOURCES = $(wildcard *.c)
	OBJECTS = $(SOURCES:.c=.o)
	all: ${OBJECTS}
	
	include $(OBJECTS:.o=.makefile)
	%.makefile: %.c
		set -e; gcc -M $< \
				| sed 's/$*\.o[ :]/$*.o $@ : /g' > $@; \
				[ -s $@ ] || rm -f $@


	#	依存関係解決ファイルの作成 ver2
	#
	#	-MMによりシステムのヘッダを出力しなくなる
	#	-MTによりいちいちsedを通さなくて良くなる
	#	%の前にディレクトリを指定したりできる
	#
	#	basename: 拡張子除去
	#	notdir: パスのディレクトリ部分除去
	
	include ${addprefix ${DEPDIR}/, ${addsuffix .makefile, ${basename ${notdir ${wildcard ${SRCDIR}/*.cpp}}}}}
	
	${DEPDIR}/%.makefile: ${SRCDIR}/%.c
		@mkdir -p ${DEPDIR}
		@set -e; \
			gcc -MM -MT '${OBJDIR}/$*.o $@' $< > $@; \
			[ -s $@ ] || rm -f $@
		@echo generate $@

トップ   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS