# Makefile for Discord Jukebox Bot # Go parameters GOCMD = go GOBUILD = $(GOCMD) build GORUN = $(GOCMD) run GOCLEAN = $(GOCMD) clean GOTEST = $(GOCMD) test GOGET = $(GOCMD) get GOMOD = $(GOCMD) mod BINARY_NAME = jukebox-bot MAIN_PATH = ./cmd/bot .PHONY: all build clean run test deps tidy debug all: deps build build: $(GOBUILD) -o $(BINARY_NAME) $(MAIN_PATH) clean: $(GOCLEAN) rm -f $(BINARY_NAME) run: build ./$(BINARY_NAME) run-debug: build ./$(BINARY_NAME) -debug dev: $(GORUN) $(MAIN_PATH) dev-debug: $(GORUN) $(MAIN_PATH) -debug test: $(GOTEST) -v ./... deps: $(GOMOD) download tidy: $(GOMOD) tidy debug: @echo "=== Discord Jukebox Bot - Debug Information ===" @echo "Go version:" @go version @echo @echo "Environment variables (only showing JUKEBOX_ prefix):" @env | grep JUKEBOX_ || echo "No JUKEBOX_ variables found" @echo @echo "Checking .env file:" @if [ -f .env ]; then echo "✅ .env file exists"; else echo "❌ .env file NOT found"; fi @echo @echo "Project structure:" @find . -type f -name "*.go" | sort @echo @echo "To run with debug logging, use: make run-debug" release: CGO_ENABLED=0 GOOS=linux GOARCH=amd64 $(GOBUILD) -o $(BINARY_NAME)_linux_amd64 $(MAIN_PATH) CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 $(GOBUILD) -o $(BINARY_NAME)_darwin_amd64 $(MAIN_PATH) CGO_ENABLED=0 GOOS=darwin GOARCH=arm64 $(GOBUILD) -o $(BINARY_NAME)_darwin_arm64 $(MAIN_PATH) CGO_ENABLED=0 GOOS=windows GOARCH=amd64 $(GOBUILD) -o $(BINARY_NAME)_windows_amd64.exe $(MAIN_PATH)