summaryrefslogtreecommitdiff
path: root/Makefile
blob: 5427f196a6f703256bd077925b27c05e0915dda0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# Creates the bin folder for build artifacts
build/{bin,lib}:
	@mkdir -p build/{lib,bin}

# Builds all rust targets
ifeq ($(OS),Windows_NT)
build/lib/liball_in_one.a build/bin/{cache,gateway,ratelimit,rest,webhook}{,.exe}: build/{bin,lib}
	@echo "Building rust project"
	cargo build --release
	@cp target/release/liball_in_one.a build/lib
	@cp target/release/{cache,gateway,ratelimit,rest,webhook}{,.exe} build/bin
endif

build/lib/liball_in_one.a build/bin/{cache,gateway,ratelimit,rest,webhook}: build/{bin,lib}
	@echo "Building rust project"
	cargo build --release
	@cp target/release/liball_in_one.a build/lib
	@cp target/release/{cache,gateway,ratelimit,rest,webhook} build/bin

# Generated by a rust build script.
internal/pkg/all-in-one/all-in-one.h: build/lib/liball_in_one.a

# All in one program build
build/bin/nova: build/lib/liball_in_one.a internal/pkg/all-in-one/all-in-one.h
	go build -a -ldflags '-s' -o build/bin/nova cmd/nova/nova.go

all: build/bin/{cache,gateway,ratelimit,rest,webhook}{,.exe} build/bin/nova

docker-images:
	docker-compose build

docker-push:
	docker-compose push

rust-test:
	cargo test

test: rust-test

.PHONY: all docker-images docker-push test rust-test