SHELL := /bin/bash # Makefile for Llama3.1:8B Project # Variables PYTHON = python PIP = pip VENV_DIR = ./env VENV_PYTHON = $(VENV_DIR)/bin/python VENV_PIP = $(VENV_DIR)/bin/pip REQUIREMENTS = requirements.txt # Default target .DEFAULT_GOAL := help # Help target help: @echo "Makefile for Llama3.1:8B Project" @echo "" @echo "Targets:" @echo " help - Show this help message" @echo " setup - Create virtual environment and install dependencies" @echo " run - Run the main application" @echo " test - Run unit tests" @echo " lint - Run linters" @echo " clean - Remove temporary files and directories" @echo " clean-venv - Remove virtual environment" @echo " purge - Clean and reinstall everything" @echo " install - Install or update dependencies" # Check for Python and pip check-deps: @echo "Checking for Python and pip..." @if ! command -v $(PYTHON) >/dev/null 2>&1; then \ echo "Python is not installed. Please install Python3."; \ exit 1; \ fi @echo "Python is installed." @if ! command -v $(PIP) >/dev/null 2>&1; then \ echo "pip is not installed. Installing pip..."; \ sudo apt update && sudo apt install -y python3-pip; \ fi @echo "pip is installed." # Create virtual environment and install dependencies setup: check-deps @echo "Setting up virtual environment..." @if [ ! -d "$(VENV_DIR)" ]; then \ $(PYTHON) -m venv $(VENV_DIR); \ echo "Virtual environment created."; \ fi @echo "Installing dependencies..." $(VENV_PIP) install --upgrade pip $(VENV_PIP) install -r $(REQUIREMENTS) @echo "Setup completed." # Run the main application run: @echo "Running the application..." $(VENV_PYTHON) main.py # Run tests test: @echo "Running tests..." $(VENV_PYTHON) -m unittest discover tests # Run linters lint: @echo "Running linters..." $(VENV_PYTHON) -m flake8 src/ tests/ # Clean temporary files and directories clean: @echo "Cleaning temporary files and directories..." find . -type f -name '*.pyc' -delete find . -type d -name '__pycache__' -exec rm -r {} + @echo "Cleanup completed." # Clean virtual environment clean-venv: @echo "Removing virtual environment..." rm -rf $(VENV_DIR) @echo "Virtual environment removed." # Purge: remove all and reinstall environment purge: clean clean-venv setup # Install or update dependencies install: @echo "Installing or updating dependencies..." $(VENV_PIP) install -r $(REQUIREMENTS) @echo "Dependencies installed or updated."