vOOice/Makefile

75 lines
2.5 KiB
Makefile

# Define a directory for dependencies in the user's home folder
DEPS_DIR := $(HOME)/VoiceInk-Dependencies
WHISPER_CPP_DIR := $(DEPS_DIR)/whisper.cpp
FRAMEWORK_PATH := $(WHISPER_CPP_DIR)/build-apple/whisper.xcframework
.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:
@mkdir -p $(DEPS_DIR)
@if [ ! -d "$(FRAMEWORK_PATH)" ]; then \
echo "Building whisper.xcframework in $(DEPS_DIR)..."; \
if [ ! -d "$(WHISPER_CPP_DIR)" ]; then \
git clone https://github.com/ggerganov/whisper.cpp.git $(WHISPER_CPP_DIR); \
else \
(cd $(WHISPER_CPP_DIR) && git pull); \
fi; \
cd $(WHISPER_CPP_DIR) && ./build-xcframework.sh; \
else \
echo "whisper.xcframework already built in $(DEPS_DIR), skipping build"; \
fi
setup: whisper
@echo "Whisper framework is ready at $(FRAMEWORK_PATH)"
@echo "Please ensure your Xcode project references the framework from this new location."
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 $(DEPS_DIR)
@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"