63 lines
1.7 KiB
Makefile
63 lines
1.7 KiB
Makefile
# This makefile is used to compile the project
|
|
SHELL := /bin/bash
|
|
PROCS := $(shell nproc)
|
|
USE_LLVM := "yes"
|
|
RELEASE_TYPE := "debug"
|
|
|
|
all: godot-cpp game docs
|
|
|
|
linux: game-linux
|
|
|
|
# Only needs to be run once after cloning
|
|
init:
|
|
pushd godot-cpp; git submodule update --init --recursive
|
|
|
|
# This needs to be run to create all the libraries for godot-cpp
|
|
godot-cpp: godot-cpp-linux godot-cpp-windows
|
|
|
|
godot-cpp-linux:
|
|
pushd godot-cpp; scons use_llvm=$(USE_LLVM) target=$(RELEASE_TYPE) platform=linux generate_bindings=yes bits=64 -j $(PROCS)
|
|
|
|
godot-cpp-windows:
|
|
pushd godot-cpp; scons target=$(RELEASE_TYPE) platform=windows generate_bindings=yes bits=64 -j $(PROCS)
|
|
|
|
game: game-linux game-windows
|
|
|
|
game-linux:
|
|
scons use_llvm=$(USE_LLVM) target=$(RELEASE_TYPE) target_path=godot/gdnative/ target_name=libalai platform=linux bits=64 -j $(PROCS)
|
|
|
|
game-windows:
|
|
scons target=$(RELEASE_TYPE) target_name=libalai target_path=godot/gdnative/ platform=windows bits=64 -j $(PROCS)
|
|
|
|
docs:
|
|
# if doxygen and bear are installed create the code documentation
|
|
ifneq (, $(shell which bear))
|
|
ifeq (, $(wildcard ./compile_commands.json))
|
|
$(MAKE) clean-docs
|
|
$(MAKE) bear
|
|
endif
|
|
ifneq (, $(shell which doxygen))
|
|
doxygen doxygen.conf
|
|
make -C docs/latex
|
|
endif
|
|
endif
|
|
|
|
bear:
|
|
bear make linux
|
|
|
|
clean: clean-godot-cpp clean-game clean-docs
|
|
|
|
clean-godot-cpp:
|
|
pushd godot-cpp; scons -c
|
|
rm -f godot-cpp/bin/*
|
|
|
|
clean-game:
|
|
find ./src -name "*.os" -type f -delete
|
|
rm -rf gdnative/{linux,windows}.*
|
|
|
|
clean-docs:
|
|
rm -rf docs
|
|
rm -rf compile_commands.json
|
|
|
|
.PHONY: all linux init godot-cpp godot-cpp-linux godot-cpp-windows game game-linux game-windows clean clean-godot-cpp clean-game clean-docs clean-docs docs bear
|