1212 @echo " $$ make format"
1313 @echo フォーマットチェックをする
1414 @echo " $$ make format-check"
15+ @echo テストをビルドする
16+ @echo " $$ make test-build"
17+ @echo テストを実行する
18+ @echo " $$ make test-exec"
19+ @echo テスト用の' build' ディレクトリを削除する
20+ @echo " $$ make clean"
21+ @echo 環境が変わっている場合のみ build ディレクトリを削除する
22+ @echo " $$ make smart-clean"
23+ @echo 必要があればbuildディレクトリを削除し, テストをビルドして実行する
24+ @echo " $$ make test"
1525
1626# # 実行関連 ##
1727build :
@@ -21,6 +31,57 @@ build:
2131start :
2232 cd $(MAKEFILE_PATH ) ../ && make start
2333
34+ # # テスト関連 ##
35+ # テストのビルドディレクトリが存在しない場合は作成する
36+ test-build :
37+ @mkdir -p $(MAKEFILE_PATH ) bin/build
38+ cd $(MAKEFILE_PATH ) bin/build && cmake ../.. && make
39+
40+ # テストを実行する
41+ test-exec :
42+ @if [ ! -f $( MAKEFILE_PATH) bin/build/etrobocon2025_test ]; then \
43+ echo " テスト実行ファイルが見つかりません。まずビルドを実行してください。" ; \
44+ echo " $$ make test-build" ; \
45+ exit 1; \
46+ fi
47+ cd $(MAKEFILE_PATH ) bin/build && ./etrobocon2025_test
48+
49+ # テストをビルドして実行する
50+ test : smart-clean test-build test-exec
51+
52+ # build ディレクトリを完全に削除する
53+ clean :
54+ @if [ -d $( MAKEFILE_PATH) bin/build ]; then \
55+ rm -rf $(MAKEFILE_PATH ) bin/build; \
56+ echo " 'build/' ディレクトリを削除しました。" ; \
57+ else \
58+ echo " 'build/' ディレクトリは既に存在しません。" ; \
59+ fi
60+
61+ # 実行環境が変更されている場合にのみ 'build' を削除する
62+ smart-clean :
63+ @if [ -d $( MAKEFILE_PATH) bin/build ]; then \
64+ if [ -f " $( MAKEFILE_PATH) bin/build/Makefile" ]; then \
65+ CMAKE_SOURCE_DIR=` grep -E " ^CMAKE_SOURCE_DIR[[:space:]]*=" $( MAKEFILE_PATH) bin/build/Makefile | cut -d= -f2 | xargs` ; \
66+ CMAKE_SOURCE_DIR_REAL=` readlink -f " $$ CMAKE_SOURCE_DIR" ` ; \
67+ CURRENT_DIR_REAL=` readlink -f " $$ (pwd)" ` ; \
68+ echo " [DEBUG] CMAKE_SOURCE_DIR: '$$ CMAKE_SOURCE_DIR_REAL'" ; \
69+ echo " [DEBUG] CURRENT_DIR : '$$ CURRENT_DIR_REAL'" ; \
70+ if [ " $$ CMAKE_SOURCE_DIR_REAL" != " $$ CURRENT_DIR_REAL" ]; then \
71+ echo " [LOG] 実行環境の変更が検出されたため 'build' を削除します。" ; \
72+ rm -rf $(MAKEFILE_PATH ) bin/build; \
73+ else \
74+ echo " [LOG] 実行環境は変更されていません。" ; \
75+ fi ; \
76+ else \
77+ echo " [LOG] 'build/Makefile' が存在しません。" ; \
78+ echo " [LOG] 'buildディレクトリを完全削除します。" ; \
79+ make clean; \
80+ fi ; \
81+ else \
82+ echo " 'build' ディレクトリは既に存在しません。" ; \
83+ fi
84+
2485# # 開発関連 ##
2586# ファイルにclang-formatを適用する
2687format :
0 commit comments