Makefile

  • 投稿日:
  • by
ソースを分割しまくって多くなってしまったとき、makeを使うと便利なんですが。


例えばソースファイルが、
source1.c
source2.c
とあったとして、
(当然ヘッダファイルsource2.hも準備してあるとして)
targetという実行ファイルを作る場合、

普通にやると
gcc -c source1.c
gcc -c source2.c
gcc -o target source1.o source2.o
とかやりますが、いちいちこんなんやってやんね!って事で、Makefileに

target: source1.c source2.c
    cc -o target source1.c source2.c
とか書くだけで
$ make
一発でコンパイル→リンクまで終わらせてくれる。。。
という優れものなんですが。。。

さすがにそこまでになると、、、IDEとか使った方が・・・。
とは思いますが。

備忘録
TARGET          = target
OBJS            = source1.o source2.o
CC              = gcc
CFLAGS          = -O
LDFLAGS         =
INCLUDES        =
LIBS            =

all:            $(TARGET)

$(TARGET): $(OBJS)
        $(CC) $(LDFLAGS) -o $@ $(OBJS) $(LIBS)

clean:
        -rm -f $(TARGET) $(OBJS)

.c.o:
        $(CC) $(CFLAGS) $(INCLUDES) -c $<

source1.o: source2.h