GITHUB_URL = "https://github.com/bluekitchen/btstack/tree/"
BTSTACK_FOLDER = ../../
INTRO_FOLDER = docs-intro/
MARKDOWN_FOLDER = docs-markdown/
MKDOCS_FOLDER = docs/
HTML_FOLDER = btstack/
LATEX_FOLDER = latex/

all: html pdf

docs-markdown:
	# create new docs_markdown
	rm -rf ${MARKDOWN_FOLDER}
	cp -r  docs-template ${MARKDOWN_FOLDER}
	mkdir  ${MARKDOWN_FOLDER}/examples
	mkdir  ${MARKDOWN_FOLDER}/ports

	# create mkdocs-temp.yml
	./update_mkdocs_yml.sh

	# following should create files in docs-markdown

	# Use chipsets/readme as chipsets.md
	sed -e "s|../doc/manual/docs-template/||g" ../../chipset/README.md > ${MARKDOWN_FOLDER}/chipsets.md

	# create docs-markdown/appendix/apis.md
	# create references.p
	# create mkdocs.yml
	# create mkdocs-latex.yml
	./markdown_create_apis.py -r ${BTSTACK_FOLDER} -g ${GITHUB_URL} -o ${MARKDOWN_FOLDER}

	# create docs-markdown/examples/examples.md
	./markdown_create_examples.py -r ${BTSTACK_FOLDER} -t ${INTRO_FOLDER} -o ${MARKDOWN_FOLDER}

	# create docs-markdown/ports/existing_ports.md
	./markdown_create_ports.py -r ${BTSTACK_FOLDER} -t ${INTRO_FOLDER} -o ${MARKDOWN_FOLDER}

	# create docs-markdown/gatt_clients.md and  docs-template/gatt_services.md
	./markdown_create_gatt_services_and_clients.py -r ${BTSTACK_FOLDER} -t ${INTRO_FOLDER} -o ${MARKDOWN_FOLDER}

docs: docs-markdown
	# create new docs
	rm -rf ${MKDOCS_FOLDER}
	cp -r ${MARKDOWN_FOLDER} ${MKDOCS_FOLDER}

	# docs-markdown -> docs
	./markdown_update_references.py  -i ${MARKDOWN_FOLDER} -o ${MKDOCS_FOLDER} -g ${GITHUB_URL}


html: docs
	# generate HTML into btstack folder
	mkdocs build --clean

	# post-process HTML using references.p
	./html_postprocess_code_blocks.py -o ${HTML_FOLDER}

pdf_old: docs
	rm -rf ${LATEX_FOLDER}
	mkdir -p ${LATEX_FOLDER}
	cp -r ${MKDOCS_FOLDER}/picts ${LATEX_FOLDER}

	cp mkdocs-latex.yml mkdocs.yml
	# create latex/btstack_gettingstartec.tex with version
	./update_getting_started.sh ${LATEX_FOLDER}

	# create latex/btstack_generated.md -> latex/btstack_final.tex
	./markdown2tex.py  -i ${MKDOCS_FOLDER} -o ${LATEX_FOLDER}

	cp ${MKDOCS_FOLDER}/ports/*.jpg ${MKDOCS_FOLDER}/ports/*.png ${LATEX_FOLDER}
	cd ${LATEX_FOLDER} && pdflatex btstack_gettingstarted.tex && pdflatex btstack_gettingstarted.tex
	mv ${LATEX_FOLDER}/btstack_gettingstarted.pdf btstack.pdf

pdf: docs
	rm -rf ${LATEX_FOLDER}
	mkdir -p ${LATEX_FOLDER}
	cp -r ${MKDOCS_FOLDER}/picts ${LATEX_FOLDER}

	cp mkdocs-latex.yml mkdocs.yml
	# create latex/btstack_gettingstartec.tex with version
	./update_getting_started.sh ${LATEX_FOLDER}

	# create latex/btstack_generated.md -> latex/btstack_final.tex
	./markdown2tex.py  -i ${MKDOCS_FOLDER} -o ${LATEX_FOLDER}

	cp ${MKDOCS_FOLDER}/ports/*.jpg ${MKDOCS_FOLDER}/ports/*.png ${LATEX_FOLDER}
	cd ${LATEX_FOLDER} && pandoc -f markdown -t pdf --listings btstack_generated.md -o btstack_generated.pdf --pdf-engine=weasyprint

	# create cover page
	echo "" > ${LATEX_FOLDER}/btstack_final.tex
	cd ${LATEX_FOLDER} && pdflatex btstack_gettingstarted.tex

	# combine title with reset: it uses bookmarks from first file but combines the other two
	qpdf latex/btstack_generated.pdf --pages latex/btstack_gettingstarted.pdf 1 latex/btstack_generated.pdf -- btstack.pdf

preview: docs
	# race condition, open browser before starting MKdocs server
	open http://127.0.0.1:8010
	mkdocs serve -a localhost:8010

clean:
	rm -rf ${MARKDOWN_FOLDER} ${LATEX_FOLDER} ${HTML_FOLDER} ${MKDOCS_FOLDER}
	rm -f *.pdf
	rm -f references.p
	rm -f mkdocs.yml mkdocs-latex.yml mkdocs-temp.yml
