[M1 Mac, Monterey 12.6.3, clang 13.0.0, SDL 2.26.2, NO IDE]
GitHubから入手したソースコードをNO IDE仕様に改変しました。今回はChatGPTのサポートなしです。
Debug.hの一部を書き換え、フォントファイル clacon2.ttfを入手してHomeの/Library/Fontsディレクトリに置き、ビルドを成功させました。
ソースコードはIntel Mac時代のものですが、Apple Siliconでも問題なく動きます。
次はPS4のワイヤレスコントローラで操作できるようにします。
#if defined _MSC_VER
#define HP_BREAK __debugbreak();
#elif defined __arm__
#define HP_BREAK __builtin_trap();
#elif defined __GNUC__
// #define HP_BREAK __asm__ ("int $3"); // コメント化
#define HP_BREAK __builtin_trap(); // この行を追加
#else
#error Unsupported compiler
#endif
# コンパイラ設定他
COMPILER = clang++
DEBUG = -g
# フラグ設定
CPPFLAGS = $(shell pkg-config sdl2 --cflags --libs) -std=c++11
LDFLAGS =
# includeパス(-I)
INCLUDE = -I./include -I/opt/homebrew/Cellar/sdl2/2.26.2/include \
-I/opt/homebrew/Cellar/sdl2_ttf/2.20.2/include \
-I/Volumes/DATA_m1/code/cpp/mylib/include
# ライブラリ(-l)
LIBRARY0 = -lsdl2 -lsdl2_ttf
# ライブラリパス(-L)
LIBRARY = -L/opt/homebrew/Cellar/sdl2/2.26.2/lib \
-L/opt/homebrew/Cellar/sdl2_ttf/2.20.2/lib
# ソースファイル
SRCDIR = ./src
SRCS = $(shell find $(SRCDIR) -type f)
# オブジェクトファイル
OBJDIR = ./obj
OBJS = $(addprefix $(OBJDIR), $(patsubst ./src/%.cpp,/%.o,$(SRCS)))
# 実行ファイル
TARGETDIR = ./bin
TARGET = Tetris
# cppファイルからoファイル作成 $<:依存ファイル
$(OBJDIR)/%.o: $(SRCDIR)/%.cpp
$(COMPILER) $(CPPFLAGS) $(INCLUDE) $(DEBUG) -o $@ -c $<
# oファイルから実行ファイル作成
$(TARGET):$(OBJS)
$(COMPILER) -o $(TARGETDIR)/$@ $(OBJS) $(LIBRARY0) $(LIBRARY) $(LDFLAGS)
# 全ソース・コンパイル&ビルド
.PHONY:all
all: clean $(OBJS) $(TARGET)
# oファイル・実行ファイル削除
.PHONY:clean
clean:
rm -rf $(OBJS) $(TARGETDIR)/$(TARGET)