Archived
1
0
Fork 0
This repository has been archived on 2026-01-19. You can view files and clone it, but cannot push or open issues or pull requests.
Danmaku/Makefile
2025-03-17 11:29:27 -07:00

61 lines
1.6 KiB
Makefile

.PHONY: all build_ffi build_godot run_server run_server_build test clean
ifeq ($(OS),Windows_NT)
DETECTED_OS = Windows
TARGET = x86_64-unknown-linux-musl
PATH_SEP = \\
COPY = copy
MKDIR = if not exist "$(SERVER_LIB_DIR)" mkdir "$(SERVER_LIB_DIR)"
RMDIR = if exist "$(SERVER_LIB_DIR)" rmdir /s /q "$(SERVER_LIB_DIR)"
else
DETECTED_OS = POSIX
TARGET = aarch64-unknown-linux-musl
PATH_SEP = /
COPY = cp
MKDIR = mkdir -p "$(SERVER_LIB_DIR)"
RMDIR = rm -rf "$(SERVER_LIB_DIR)"
endif
SERVER_LIB_DIR = server$(PATH_SEP)lib
FFI_LIB = ffi-wrapper$(PATH_SEP)target$(PATH_SEP)$(TARGET)$(PATH_SEP)release$(PATH_SEP)libffi_wrapper.a
FFI_HEADER = ffi-wrapper$(PATH_SEP)target$(PATH_SEP)ffi-wrapper.h
GODOT_LIB = godot-extension$(PATH_SEP)target$(PATH_SEP)release$(PATH_SEP)godot_extension.dll
# Default: Build everything and deploy server
all: build_ffi build_godot run_server_build
## Build Targets ##
network: build_ffi run_server_build
build_ffi:
cd ffi-wrapper && cargo build --release --target $(TARGET)
build_godot:
cd godot-extension && cargo build --release
## Deployment Targets ##
run_server:
cd server && docker compose up
run_server_build:
$(MKDIR)
$(COPY) $(FFI_LIB) $(SERVER_LIB_DIR)
$(COPY) $(FFI_HEADER) $(SERVER_LIB_DIR)
cd server && docker compose up --build
## Test Target ##
test:
cd shared && cargo test --release
cd ffi-wrapper && cargo test --release
cd godot-extension && cargo test --release
## Cleanup ##
clean:
cd shared && cargo clean
cd ffi-wrapper && cargo clean
cd godot-extension && cargo clean
$(RMDIR)