🔨
Zigのサンプルプログラムをビルドするのに便利なMakefile
本記事はZigアドベントカレンダー21日目の記事です。
Zig用の簡単なMakefile
ソースファイルがひとつだけのようなサンプルプログラムで、しかもserverとclientの2つの実行ファイルをビルドする場合には zig init-exe
で作成されるディレクトリ構成はおおげさすぎると感じました。
そこで以下のようなMakefileを書きました。
Makefile
EXES = tcp_server tcp_client
all: $(EXES)
%: %.zig
zig build-exe $<
clean:
rm -rf *.o $(EXES)
$ make
zig build-exe tcp_server.zig
zig build-exe tcp_client.zig
make
ですのでソースコードに変更があったときだけコンパイラが実行されます。
さらにシンプルに
個別に変更が必要な情報は実行ファイルの名前だけです。
なので、以下のようなファイルを別のディレクトリ(例えば ../)に置いておけば
Makefile_zig
# Define executable file for build targets and zig options
# for example;
# EXES = tcp_server tcp_client
# ZIGFLAGS = -O ReleaseSafe
all: $(EXES)
%: %.zig Makefile
zig build-exe $(ZIGFLAGS) $<
clean:
rm -rf *.o $(EXES)
以下のように簡略化することができます。
Makefile
EXES = udp_server udp_client
# ZIGFLAGS = -O ReleaseSafe
include ../Makefile_zig
** 2022/12/23 追記 **
$(ZIGFLAGS)
を追加しました。
Discussion