Nova/Makefile
2023-01-16 15:32:34 +01:00

43 lines
965 B
Makefile

EXTENSION :=
ifeq ($(OS),Windows_NT)
EXTENSION += .exe
endif
PROJECTS = $(shell find exes/ -mindepth 1 -maxdepth 1 -type d -printf '%f\n')
# Static libraries
target/release/lib%.a: libs/%
cargo build --release -p $*
# Executables
target/release/%$(EXTENSION):
cargo build --release -p $*
# Copy static libraries
build/lib/%: target/release/%
@mkdir -p build/lib
cp target/release/$* build/lib/$*
# Copy executables
build/bin/%$(EXTENSION): target/release/%$(EXTENSION)
@mkdir -p build/bin
cp target/release/$*$(EXTENSION) build/bin/$*$(EXTENSION)
# All in one binary
build/bin/nova$(EXTENSION): build/lib/liball_in_one.a
@mkdir -p build/bin
go build -a -ldflags '-s' -o build/bin/nova cmd/nova/nova.go
BINS=$(PROJECTS:%=build/bin/%$(EXTENSION))
all: $(BINS) build/bin/nova$(EXTENSION)
clean:
rm -rf build
rm -rf $(PROJECTS:%=target/release/%$(EXTENSION))
rm -rf target/release/liball_in_one.a
test:
cargo test
go test
.PHONY: clean all test