64 lines
1.9 KiB
Makefile
64 lines
1.9 KiB
Makefile
# Define variables for the application
|
|
APP_NAME = llama-swap
|
|
BUILD_DIR = build
|
|
|
|
# Get the current Git hash
|
|
GIT_HASH := $(shell git rev-parse --short HEAD)
|
|
ifneq ($(shell git status --porcelain),)
|
|
# There are untracked changes
|
|
GIT_HASH := $(GIT_HASH)+
|
|
endif
|
|
|
|
# Get the build number from the commit count on the main branch
|
|
COMMIT_COUNT := $(shell git rev-list --count HEAD)
|
|
|
|
# Capture the current build date in RFC3339 format
|
|
BUILD_DATE := $(shell date -u +"%Y-%m-%dT%H:%M:%SZ")
|
|
|
|
# Default target: Builds binaries for both OSX and Linux
|
|
all: mac linux simple-responder
|
|
|
|
# Clean build directory
|
|
clean:
|
|
rm -rf $(BUILD_DIR)
|
|
|
|
test:
|
|
go test -short -v ./proxy
|
|
|
|
test-all:
|
|
go test -v ./proxy
|
|
|
|
# Build OSX binary
|
|
mac:
|
|
@echo "Building Mac binary..."
|
|
GOOS=darwin GOARCH=arm64 go build -ldflags="-X main.commit=${GIT_HASH} -X main.version=${COMMIT_COUNT} -X main.date=${BUILD_DATE}" -o $(BUILD_DIR)/$(APP_NAME)-darwin-arm64
|
|
|
|
# Build Linux binary
|
|
linux:
|
|
@echo "Building Linux binary..."
|
|
GOOS=linux GOARCH=amd64 go build -ldflags="-X main.commit=${GIT_HASH} -X main.version=${COMMIT_COUNT} -X main.date=${BUILD_DATE}" -o $(BUILD_DIR)/$(APP_NAME)-linux-amd64
|
|
|
|
# for testing proxy.Process
|
|
simple-responder:
|
|
@echo "Building simple responder"
|
|
GOOS=darwin GOARCH=arm64 go build -o $(BUILD_DIR)/simple-responder_darwin_arm64 misc/simple-responder/simple-responder.go
|
|
GOOS=linux GOARCH=amd64 go build -o $(BUILD_DIR)/simple-responder_linux_amd64 misc/simple-responder/simple-responder.go
|
|
|
|
# Ensure build directory exists
|
|
$(BUILD_DIR):
|
|
mkdir -p $(BUILD_DIR)
|
|
|
|
# Create a new release tag
|
|
release:
|
|
@echo "Checking for unstaged changes..."
|
|
@if [ -n "$(shell git status --porcelain)" ]; then \
|
|
echo "Error: There are unstaged changes. Please commit or stash your changes before creating a release tag." >&2; \
|
|
exit 1; \
|
|
fi
|
|
@echo "Creating release tag v$(COMMIT_COUNT)..."
|
|
git tag v$(COMMIT_COUNT)
|
|
git push origin v$(COMMIT_COUNT)
|
|
|
|
# Phony targets
|
|
.PHONY: all clean osx linux
|