bettola/Makefile

47 lines
1.1 KiB
Makefile

SHELL:=/bin/bash
BUILD_DIR:=bin
PROJECT_NAME:=bettola
EXECUTABLE:=$(BUILD_DIR)/$(PROJECT_NAME)
CXX_COMPILER:=clang++
CMAKE_MAKEFILE:=$(BUILD_DIR)/Makefile
.PHONY: all build config run clean help
# Default.
all: build
# Build project, if not configured, then do that first.
build: $(CMAKE_MAKEFILE)
@echo "==== Building Bettola ===="
@cmake --build $(BUILD_DIR)
# run 'config' target if the build directory or CMake cache is missing.
$(CMAKE_MAKEFILE):
$(MAKE) config
config:
@echo "==== Configuring Bettola with CMake ===="
@mkdir -p $(BUILD_DIR)
@cmake -S . -B$(BUILD_DIR) -DCMAKE_CXX_COMPILER=$(CXX_COMPILER)
# Build and run.
run: all
@echo "==== Running Bettola ===="
$(EXECUTABLE)
# Remove build dir.
clean:
@echo "==== Cleaning Bettola ===="
@rm -rf $(BUILD_DIR)
@echo "==== Project Cleaned ===="
help:
@echo "Available commands:"
@echo " make - Build the project (default)."
@echo " make build - Build the project."
@echo " make run - Build and run the project."
@echo " make config - Force CMake to re-configure the project."
@echo " make clean - Remove all build files"