Skip to content
Snippets Groups Projects
Makefile 786 B
Newer Older
  • Learn to ignore specific revisions
  • Phil Höfer's avatar
    Phil Höfer committed
    # SPDX-FileCopyrightText: 2024 Phil Höfer <phil@suma-ev.de>
    # SPDX-License-Identifier: AGPL-3.0-only
    
    
    Phil Höfer's avatar
    Phil Höfer committed
    # Rust project name
    PROJECT_NAME := Suggestible
    
    # Directories
    SRC_DIR := src
    DOC_DIR := doc
    TARGET_DIR := target
    
    # Binary name
    BIN_NAME := $(PROJECT_NAME)
    
    # Binary paths
    BIN_PATH := $(TARGET_DIR)/debug/$(BIN_NAME)
    RELEASE_BIN_PATH := $(TARGET_DIR)/release/$(BIN_NAME)
    
    # Compilation commands
    RUSTC := rustc
    CARGO := cargo
    
    # Documentation commands
    MDBOOK := mdbook
    
    # Targets
    .PHONY: all clean doc
    
    all: $(BIN_PATH)
    
    release: $(RELEASE_BIN_PATH)
    
    $(BIN_PATH): $(SRC_DIR)/*.rs
    	$(CARGO) build
    
    $(RELEASE_BIN_PATH): $(SRC_DIR)/*.rs
    	$(CARGO) build --release
    
    doc:
    	$(CARGO) doc --no-deps
    	cp -r target/doc/* doc/dev/rustdoc
    	$(MDBOOK) build
    
    clean:
    	$(CARGO) clean
    	$(MDBOOK) clean