[[FrontPage]] *Makefile **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 $@