1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
SHELL := bash
.DELETE_ON_ERROR:
.SHELLFLAGS := -eu -o pipefail -c
.DEFAULT_GOAL := help
MAKEFLAGS += --warn-undefined-variables
MAKEFLAGS += --no-builtin-rules
MAKEFLAGS += --no-print-directory
build:
@echo "Building project..."
@cargo build
build_mac:
@echo "Building project for macOS..."
@cargo build --features metal --release
build_mac_universal:
@echo "Building universal binary for macOS..."
@cargo build --features metal --release --target aarch64-apple-darwin
@cargo build --features metal --release --target x86_64-apple-darwin
@mkdir -p target/universal/release
@lipo -create target/aarch64-apple-darwin/release/aha target/x86_64-apple-darwin/release/aha -output target/universal/release/aha
test:
@echo "Running tests..."
@cargo test
clean:
@echo "Cleaning project..."
@cargo clean
fmt:
@echo "Formatting code..."
@cargo fmt --all -- --check
lint:
@echo "Linting code..."
@cargo clippy --no-deps --all-targets -- -D warnings
help:
@echo "Available commands:"
@echo " build - Build the project"
@echo " build_mac - Build the project for macOS"
@echo " test - Run tests"
@echo " clean - Clean the project"
@echo " fmt - Format the code"
@echo " lint - Lint the code"
@echo " help - Show this help message"
.PHONY: build test clean fmt lint help