2025-06-08 13:25:01 +02:00
|
|
|
APP_NAME=pmomusic
|
|
|
|
|
|
2025-09-09 21:15:53 +02:00
|
|
|
PREFIX := $(CURDIR)/C
|
|
|
|
|
SRC_DIR := $(PREFIX)/src/soxr-0.1.3
|
|
|
|
|
INCLUDE_DIR := $(PREFIX)/include
|
|
|
|
|
LIB_DIR := $(PREFIX)/lib
|
|
|
|
|
BIN_DIR := $(PREFIX)/bin
|
|
|
|
|
CFLAGS = -O2 -fPIC
|
|
|
|
|
LDFLAGS :=
|
|
|
|
|
LIBSOXR := $(LIB_DIR)/libsoxr.a
|
|
|
|
|
|
|
|
|
|
.PHONY: all clean build web run test
|
|
|
|
|
|
2025-09-07 22:08:41 +02:00
|
|
|
# Build Go app
|
2025-09-09 21:15:53 +02:00
|
|
|
build: web $(LIBSOXR)
|
2025-06-08 13:25:01 +02:00
|
|
|
go build -o bin/$(APP_NAME) ./cmd/$(APP_NAME)
|
|
|
|
|
|
2025-09-07 22:08:41 +02:00
|
|
|
# Build web frontend
|
|
|
|
|
web:
|
|
|
|
|
@ echo Building the Web app
|
|
|
|
|
@ cd pmoapp/web && npm install && npm run build
|
|
|
|
|
@ echo Web app built
|
|
|
|
|
|
|
|
|
|
# Run Go app
|
2025-06-08 13:25:01 +02:00
|
|
|
run:
|
|
|
|
|
go run ./cmd/$(APP_NAME)
|
|
|
|
|
|
2025-09-09 21:15:53 +02:00
|
|
|
# Clean Go binary, web build, libsoxr build
|
2025-06-08 13:25:01 +02:00
|
|
|
clean:
|
2025-09-09 21:15:53 +02:00
|
|
|
rm -rf bin/$(APP_NAME)
|
2025-09-07 22:08:41 +02:00
|
|
|
rm -rf web/dist
|
2025-09-09 21:15:53 +02:00
|
|
|
@echo "==> Cleaning libsoxr build..."
|
|
|
|
|
# supprime les fichiers compilés libsoxr
|
|
|
|
|
rm -rf $(INCLUDE_DIR)/* $(LIB_DIR)/*
|
|
|
|
|
@echo "==> Clean done"
|
|
|
|
|
|
|
|
|
|
# Compilation statique de libsoxr
|
|
|
|
|
$(LIBSOXR):
|
|
|
|
|
@echo "==> Building libsoxr statically..."
|
|
|
|
|
mkdir -p $(INCLUDE_DIR) $(LIB_DIR) $(BIN_DIR)
|
|
|
|
|
cd $(SRC_DIR) && ./go
|
|
|
|
|
# Installer dans PREFIX (headers et lib)
|
|
|
|
|
cd $(SRC_DIR)/Release && make install PREFIX=$(PREFIX)
|
|
|
|
|
@echo "==> libsoxr built: $(LIBSOXR)"
|
2025-06-08 13:25:01 +02:00
|
|
|
|
2025-09-07 22:08:41 +02:00
|
|
|
# Build everything
|
|
|
|
|
all: build
|
2025-09-09 21:15:53 +02:00
|
|
|
|
|
|
|
|
# Run Go tests (requires libsoxr built)
|
|
|
|
|
test: $(LIBSOXR)
|
|
|
|
|
CGO_ENABLED=1 go test ./...
|