axiom/examples/fullstack/Makefile
2025-07-01 10:52:31 -06:00

42 lines
1 KiB
Makefile

BIN = axiom-fullstack
SRC = $(wildcard *.go)
GO = $(shell which go)
DOTENV = .env
TEMPLATE_SRC = $(shell find templates -type f)
STATIC_SRC = $(shell find static -type f)
MIN_DST = min
TEMPLATE_DST = $(MIN_DST)/views
STATIC_DST = $(MIN_DST)/static
all: $(BIN)
$(BIN): $(SRC) $(TEMPLATE_DST) $(STATIC_DST)
@echo "🔨 Building binary..."
@$(GO) build -o $(BIN)
$(TEMPLATE_DST): $(TEMPLATE_SRC) scripts/minify.go
@echo "🎨 Minifying templates..."
@$(GO) run scripts/minify.go -src=templates -dst=$(TEMPLATE_DST)
@touch $@
$(STATIC_DST): $(STATIC_SRC) scripts/minify.go
@echo "🎨 Minifying static files..."
@$(GO) run scripts/minify.go -src=static -dst=$(STATIC_DST)
@touch $@
run: $(BIN) $(DOTENV) datadir
@env $(shell cat $(DOTENV) | xargs) ./$(BIN)
$(DOTENV):
@cp .env.example $@
datadir: $(DOTENV)
@APP_DATA_DIR=$$(grep '^APP_DATA_DIR=' $(DOTENV) | cut -d '=' -f2); \
if [ -n "$$APP_DATA_DIR" ]; then mkdir -p "$$APP_DATA_DIR"; fi
clean:
@echo "🧹 Cleaning..."
rm -rf $(BIN) $(MIN_DST)