[C++] 243 SDL : テトリス製作 その2 既存ソース改変

[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)
テスト操作(60秒)

GitHub(sdl2-tetris)