GOCMD=go
GOBUILD=$(GOCMD) build
GOCLEAN=$(GOCMD) clean
GOTEST=$(GOCMD) test
GOGET=$(GOCMD) get
BINARY_NAME=drmdtool
SRC_DIR=src

all: test build

build:
	cd $(SRC_DIR) && $(GOBUILD) -o ../$(BINARY_NAME) -v

test:
	cd $(SRC_DIR) && $(GOTEST) -v ./...

clean:
	$(GOCLEAN)
	rm -f $(BINARY_NAME)

run:
	cd $(SRC_DIR) && $(GOBUILD) -o ../$(BINARY_NAME) -v
	./$(BINARY_NAME)

deps:
	$(GOGET) github.com/BurntSushi/toml
	$(GOGET) github.com/beevik/etree
	$(GOGET) github.com/asticode/go-astisub

# Cross compilation
build-linux:
	cd $(SRC_DIR) && CGO_ENABLED=0 GOOS=linux GOARCH=amd64 $(GOBUILD) -o ../$(BINARY_NAME)_linux -v

build-windows:
	cd $(SRC_DIR) && CGO_ENABLED=0 GOOS=windows GOARCH=amd64 $(GOBUILD) -o ../$(BINARY_NAME).exe -v

build-mac:
	cd $(SRC_DIR) && CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 $(GOBUILD) -o ../$(BINARY_NAME)_mac -v

.PHONY: all build test clean run deps build-linux build-windows build-mac