Nova/Makefile

43 lines
965 B
Makefile
Raw Normal View History

2023-01-16 12:43:10 +01:00
EXTENSION :=
ifeq ($(OS),Windows_NT)
EXTENSION += .exe
endif
2023-01-16 15:32:34 +01:00
PROJECTS = $(shell find exes/ -mindepth 1 -maxdepth 1 -type d -printf '%f\n')
2023-01-16 12:43:10 +01:00
# Static libraries
target/release/lib%.a: libs/%
2023-01-16 12:43:10 +01:00
cargo build --release -p $*
# Executables
target/release/%$(EXTENSION):
cargo build --release -p $*
# Copy static libraries
build/lib/%: target/release/%
2023-01-16 12:53:17 +01:00
@mkdir -p build/lib
cp target/release/$* build/lib/$*
2023-01-16 12:43:10 +01:00
# Copy executables
build/bin/%$(EXTENSION): target/release/%$(EXTENSION)
2023-01-16 12:53:17 +01:00
@mkdir -p build/bin
cp target/release/$*$(EXTENSION) build/bin/$*$(EXTENSION)
2023-01-16 12:43:10 +01:00
# All in one binary
build/bin/nova$(EXTENSION): build/lib/liball_in_one.a
2023-01-16 12:53:17 +01:00
@mkdir -p build/bin
2023-01-15 23:03:18 +01:00
go build -a -ldflags '-s' -o build/bin/nova cmd/nova/nova.go
2023-01-16 12:53:17 +01:00
BINS=$(PROJECTS:%=build/bin/%$(EXTENSION))
2023-01-16 12:43:10 +01:00
all: $(BINS) build/bin/nova$(EXTENSION)
2023-01-13 19:35:46 +01:00
2023-01-16 12:43:10 +01:00
clean:
rm -rf build
rm -rf $(PROJECTS:%=target/release/%$(EXTENSION))
rm -rf target/release/liball_in_one.a
2023-01-13 19:35:46 +01:00
2023-01-16 12:43:10 +01:00
test:
2023-01-13 19:35:46 +01:00
cargo test
2023-01-16 12:43:10 +01:00
go test
2023-01-13 19:35:46 +01:00
2023-01-16 12:43:10 +01:00
.PHONY: clean all test