Makefileの雛形として記録する。

*シンプル [#hf3adff3]
 簡単なMakefile。
 CC=gcc
 OPT=-O3
 COPT=$(OPT) -Wall -Wcast-qual -Wwrite-strings
 LOPT=$(OPT)
 
 all: lm
 
 lm: lm.o
     $(CC) $(LOPT) $^ -o $@
 
 lm.o: lm.c lm.h
     $(CC) $(COPT) -c $< -o $@

*ビルド番号自動カウント [#n2988be2]
 これは、ビルド番号を自動カウントすることが出来る優れものだ。ただ、ソースファイルの拡張子の違いを同一視させたいのだが、いまいち、やり方がわからない。
 CC=gcc
 CFLAGS=-O2 -Wall
 
 include bld/test1
 OPTtest1=-DBLDtest=\"$(test1)\"
 export test1
 
 all: ../test1 ../test2
 
 ../test2: ../obj/test2.o
     $(CC) $(CFLAGS) -lstdc++ $^ -o $@
 
 ../%: ../obj/%.o
     $(CC) $(CFLAGS) $^ -o $@
 
 ../obj/%.o: %.c
     @if [ -n "$$$*" ]; then \
         echo -n "$*=" > bld/$*; \
         expr $$$* + 1 >> bld/$*; \
     fi
     $(CC) $(CFLAGS) $(OPT$*) -c $< -o $@
 
 ../obj/%.o: %.cc
     @if [ -n "$$$*" ]; then \
         echo -n "$*=" > bld/$*; \
         expr $$$* + 1 >> bld/$*; \
     fi
     $(CC) $(CFLAGS) $(OPT$*) -c $< -o $@
 
 clean:
     rm -f ../obj/*.o
#br
 一番最初に、以下のようなリビジョン番号ファイルを作成しておく必要がある。
 $ cat bld/test1
 test1=0
#br
 ソース上に、以下のようなdefine定義がされたことと同義となる。
 #define BLDtest1  "0"

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS