# AI Moji Font Generator Makefile

.PHONY: help setup build clean font css package install test

# デフォルトターゲット
help:
	@echo "AI Moji Font Generator"
	@echo "======================"
	@echo ""
	@echo "使用可能なコマンド:"
	@echo "  make setup     - 初期セットアップを実行"
	@echo "  make build     - 全体ビルドを実行"
	@echo "  make clean     - 出力ディレクトリをクリア"
	@echo "  make font      - フォントファイルのみ生成"
	@echo "  make css       - CSS/SCSSファイルのみ生成"
	@echo "  make package   - パッケージングのみ実行"
	@echo "  make install   - 生成されたパッケージをローカルにインストール"
	@echo "  make test      - テストビルドを実行"
	@echo "  make publish   - npmに公開"
	@echo ""

# 初期セットアップ
setup:
	@echo "🚀 セットアップ開始..."
	chmod +x setup.sh
	./setup.sh

# 全体ビルド
build:
	@echo "🔨 フルビルド開始..."
	python3 build.py

# クリーンアップ
clean:
	@echo "🗑️  クリーンアップ..."
	python3 build.py --clean

# フォントのみ生成
font:
	@echo "🔤 フォント生成..."
	python3 build.py --font-only

# CSSのみ生成
css:
	@echo "🎨 CSS生成..."
	python3 build.py --css-only

# パッケージングのみ
package:
	@echo "📦 パッケージング..."
	python3 build.py --package-only

# ローカルインストール
install: build
	@echo "📦 ローカルインストール..."
	cd ../../dist && npm pack
	@echo "✅ パッケージファイルが生成されました"
	@echo "   npm install ../../dist/aimoji-*.tgz でインストールできます"

# テストビルド
test:
	@echo "🧪 テストビルド..."
	$(MAKE) clean
	python3 build.py --font-only
	@echo "✅ テスト完了"

# npm公開
publish: build
	@echo "🚀 npm公開準備..."
	cd ../../dist && npm publish --dry-run
	@echo ""
	@echo "本当に公開する場合:"
	@echo "  cd ../../dist && npm publish"

# 開発用 - ファイル監視
watch:
	@echo "👀 ファイル監視モード(要 entr インストール)"
	find ../../svg -name "*.svg" | entr -r make build

# 統計情報表示
stats:
	@echo "📊 プロジェクト統計"
	@echo "=================="
	@echo "SVGファイル数:"
	@find ../../svg -name "*.svg" | wc -l
	@echo ""
	@echo "生成されたフォントファイル:"
	@find ../../dist/fonts -name "*" 2>/dev/null | wc -l || echo "0"
	@echo ""
	@echo "出力ディレクトリサイズ:"
	@du -sh ../../dist 2>/dev/null || echo "なし"

# 依存関係チェック
check-deps:
	@echo "🔍 依存関係チェック..."
	@python3 -c "import fontforge; print('✅ FontForge OK')" || echo "❌ FontForge が見つかりません"
	@python3 -c "import fontTools; print('✅ FontTools OK')" || echo "❌ FontTools が見つかりません"
	@command -v python3 >/dev/null 2>&1 && echo "✅ Python3 OK" || echo "❌ Python3 が見つかりません"