59 lines
1.7 KiB
Makefile
59 lines
1.7 KiB
Makefile
buildDir ?= build
|
|
subprojects = $(buildDir)/subprojects
|
|
docs = $(buildDir)/docs
|
|
website_docs_dest = docs/src/main/tut/chisel3/docs
|
|
chisel3 = ../
|
|
|
|
www-docs = \
|
|
$(shell find $(chisel3)/docs/ -name "*.md")
|
|
|
|
www-src = \
|
|
$(website_docs_dest) \
|
|
$(shell find docs/src/main/resources) \
|
|
$(shell find docs/src/main/tut) \
|
|
$(chisel3)/README.md
|
|
|
|
# Get the latest version of some sequence of version strings
|
|
# Usage: $(call getTags,$(foo))
|
|
define latest
|
|
$(shell echo $(1) | tr " " "\n" | sort -Vr | head -n1 | sed 's/^v//')
|
|
endef
|
|
|
|
|
|
.PHONY: all clean mrproper publish serve
|
|
.PRECIOUS: \
|
|
$(subprojects)/chisel3/%/.git $(subprojects)/chisel3/%/target/scala-$(scalaVersion)/unidoc/index.html
|
|
|
|
# Build the site into the default directory (docs/target/site)
|
|
all: docs/target/site/index.html
|
|
|
|
# Remove the output of all build targets
|
|
clean:
|
|
rm -rf docs/target docs/src/main/tut/contributors.md $(website_docs_dest)
|
|
|
|
# Remove everything
|
|
mrproper:
|
|
rm -rf $(buildDir) target project/target
|
|
|
|
# Publish Microsite
|
|
publish: all
|
|
sbt docs/ghpagesPushSite
|
|
|
|
# Start a Jekyll server for the site
|
|
serve: all
|
|
(cd docs/target/site && jekyll serve)
|
|
|
|
# Build the sbt-microsite
|
|
docs/target/site/index.html: build.sbt docs/src/main/tut/contributors.md $(www-src)
|
|
sbt docs/makeMicrosite
|
|
|
|
# Determine contributors
|
|
docs/src/main/tut/contributors.md: build.sbt
|
|
sbt contributors/determineContributors
|
|
|
|
# Build docs in subproject with a specific tag.
|
|
# This command is brittle as it assumes chisel3 is up one dir from here in the path to where
|
|
# we want to put the website docs.
|
|
$(website_docs_dest): $(chisel3)/docs/ $(www-docs)
|
|
(cd $(chisel3) && sbt docs/mdoc && rm -rf website/$(website_docs_dest) && cp -r docs/generated website/$(website_docs_dest))
|