.PHONY: all clean whisper setup build check healthcheck help dev run # Default target all: check build # Development workflow dev: build run # Prerequisites check: @echo "Checking prerequisites..." @command -v git >/dev/null 2>&1 || { echo "git is not installed"; exit 1; } @command -v xcodebuild >/dev/null 2>&1 || { echo "xcodebuild is not installed (need Xcode)"; exit 1; } @command -v swift >/dev/null 2>&1 || { echo "swift is not installed"; exit 1; } @echo "Prerequisites OK" healthcheck: check # Build process whisper: @if [ ! -d "whisper.cpp/build-apple/whisper.xcframework" ]; then \ echo "Building whisper.xcframework..."; \ git clone https://github.com/ggerganov/whisper.cpp.git || (cd whisper.cpp && git pull); \ cd whisper.cpp && ./build-xcframework.sh; \ else \ echo "whisper.xcframework already built, skipping build"; \ fi setup: whisper @if [ ! -d "VoiceInk/whisper.xcframework" ]; then \ echo "Copying whisper.xcframework to VoiceInk..."; \ cp -r whisper.cpp/build-apple/whisper.xcframework VoiceInk/; \ else \ echo "whisper.xcframework already in VoiceInk, skipping copy"; \ fi build: setup xcodebuild -project VoiceInk.xcodeproj -scheme VoiceInk -configuration Debug CODE_SIGN_IDENTITY="" build # Run application run: @echo "Looking for VoiceInk.app..." @APP_PATH=$$(find "$$HOME/Library/Developer/Xcode/DerivedData" -name "VoiceInk.app" -type d | head -1) && \ if [ -n "$$APP_PATH" ]; then \ echo "Found app at: $$APP_PATH"; \ open "$$APP_PATH"; \ else \ echo "VoiceInk.app not found. Please run 'make build' first."; \ exit 1; \ fi # Cleanup clean: @echo "Cleaning build artifacts..." @rm -rf whisper.cpp VoiceInk/whisper.xcframework @echo "Clean complete" # Help help: @echo "Available targets:" @echo " check/healthcheck Check if required CLI tools are installed" @echo " whisper Clone and build whisper.cpp XCFramework" @echo " setup Copy whisper XCFramework to VoiceInk project" @echo " build Build the VoiceInk Xcode project" @echo " run Launch the built VoiceInk app" @echo " dev Build and run the app (for development)" @echo " all Run full build process (default)" @echo " clean Remove build artifacts" @echo " help Show this help message"