# =========================================
# 一般的なCプロジェクト用Makefile（汎用版）
# main.c に main関数があり、出力は main.exe
# =========================================

# 使用するコンパイラ
CC = gcc

# コンパイルオプション（必要に応じて追加）
CFLAGS = -Wall -O2

# 出力ファイル名
TARGET = main.exe

# カレントディレクトリ内のすべてのCファイルを対象にする
SRCS = $(wildcard *.c)

# .c → .o に変換した中間ファイルを作成
OBJS = $(SRCS:.c=.o)

# 依存関係ファイル（.d）を自動生成
DEPS = $(OBJS:.o=.d)

# =========================================
# 実行ファイル作成ルール
# =========================================
$(TARGET): $(OBJS)
	$(CC) -o $@ $(OBJS)

# =========================================
# Cファイル → オブジェクトファイルのルール
# -MMD: 依存関係(.d)ファイルを自動生成
# -MP : 削除済みヘッダのエラー回避
# =========================================
%.o: %.c
	$(CC) $(CFLAGS) -MMD -MP -c $< -o $@

# =========================================
# 自動生成された依存ファイルをインクルード
# =========================================
-include $(DEPS)
