# Copyright 2020-2021 Ian Jackson and contributors to Otter
# SPDX-License-Identifier: GPL-3.0-or-later
# There is NO WARRANTY.

SHELL=/bin/bash

default: all

CARGO		?= cargo
TARGET_DIR	?= target

SPHINXBUILD	?= sphinx-build

CFLAGS		+= -Wall

ifneq (,$(wildcard ../Cargo.nail))

NAILING_CARGO ?= nailing-cargo
CARGO = $(NAILING_CARGO)
BUILD_SUBDIR ?= ../Build
TARGET_DIR = $(BUILD_SUBDIR)/$(notdir $(PWD))/target
NAILING_CARGO_JUST_RUN ?= $(NAILING_CARGO) --just-run -q ---

else

endif # Cargo.nail

rsrcs = $(shell $(foreach x,$(MAKEFILE_FIND_X),set -$x;)\
    find -H $1 \( -name Cargo.toml -o -name Cargo.lock -o -name Cargo.lock.example -o -name \*.rs \) )
stamp=@mkdir -p stamp; touch $@

all:	cargo-build doc

check:	all rndaddtoentcnt-build

cargo-build: stamp/cargo-build

stamp/cargo-build: $(call rsrcs,.)
	$(NAILING_CARGO) build $(CARGO_BUILD_OPTIONS)
	$(stamp)

doc:	docs/html/index.html
	@echo 'Documentation can now be found here:'
	@echo '  file://$(PWD)/$<'

docs/html/index.html: docs/conf.py $(wildcard docs/*.md docs/*.rst docs/*.png)
	$(SPHINXBUILD) -M html docs docs $(SPHINXOPTS)

rndaddtoentcnt-build: uml/rndaddtoentcnt/rndaddtoentcnt

clean:
	rm -rf stamp/* doc/html
	$(NAILING_CARGO) clean

.PHONY: cargo-build rndaddtoentcnt-build all doc clean
