[Makefile] 自動でmakeしたい気分になった

色々あって更新が滞っていました。

c++のサンプルを作成しても、いちいちg++ xxxと記載するのが面倒になってしまいました。
そういう時には、makefileを作れば良いのですが、今まで避けて通って来ていたので書き方がよくわかりませんでした。
そういえば、OS自作本で少し書いたような気がしましたが、makefileの書き方を調べて作成してみました。

実現したいこと

  • ソースファイルはディレクトリの下に直置き
  • makeでビルドできる
  • make cleanでcleanできる

ディレクトリ構成はこんな感じ

.
├── Makefile
└── worker_thread_sample.cc

これだけかよ....

作成したmakefile

1
2
3
4
5
6
7
8
9
10
11
12
13
14
`gutter:true;
CC       = g++
CFLAGS   = -I /usr/include/c++/7/
LIBS     = -lPocoFoundation
PROGRAM  = pocosample
SRCS     := $(wildcard ./*.cc)
OBJS     := $(patsubst %.cc, %.o, $(SRCS))
 
all:        $(PROGRAM)
 
$(PROGRAM): $(OBJS)
            $(CC) $(OBJS) $(LIBS) -o $(PROGRAM)
 
clean:;  rm -f *.o *~ $(PROGRAM)

実際は、POCOのテスト用のサンプル(WorkerThread)を動かしたかったのです。
調べてみると、wildcardなどを使えば、ディレクトリの下のファイルなんなりを取得できてpatsubstでリストの中の拡張子を書き換えれるようです。
makefileかけるとおおーって感じになります。

参考URL

0 件のコメント :

コメントを投稿