Martin Roth | bfdb489 | 2022-10-28 22:25:02 -0600 | [diff] [blame] | 1 | ## SPDX-License-Identifier: GPL-2.0-only |
Stefan Reinauer | 37414ca | 2003-11-22 15:15:47 +0000 | [diff] [blame] | 2 | # |
Uwe Hermann | d2a5a5a | 2009-04-18 14:18:20 +0000 | [diff] [blame] | 3 | # Makefile for coreboot paper. |
Stefan Reinauer | 37414ca | 2003-11-22 15:15:47 +0000 | [diff] [blame] | 4 | # hacked together by Stefan Reinauer <stepan@openbios.org> |
| 5 | # |
| 6 | |
Martin Roth | 4d8da8e | 2023-05-29 23:09:54 -0600 | [diff] [blame] | 7 | PDFLATEX = pdflatex -t a4 |
Felix Singer | f036b1d | 2023-06-16 06:26:05 +0200 | [diff] [blame] | 8 | BUILDDIR ?= _build |
Stefan Reinauer | 37414ca | 2003-11-22 15:15:47 +0000 | [diff] [blame] | 9 | |
| 10 | FIGS=codeflow.pdf hypertransport.pdf |
| 11 | |
Martin Roth | 3b89102 | 2023-05-29 23:06:52 -0600 | [diff] [blame] | 12 | all: sphinx corebootPortingGuide.pdf |
Stefan Reinauer | 37414ca | 2003-11-22 15:15:47 +0000 | [diff] [blame] | 13 | |
Martin Roth | fd8854e | 2023-02-10 09:56:40 -0700 | [diff] [blame] | 14 | SVG2PDF=$(shell command -v svg2pdf) |
| 15 | INKSCAPE=$(shell command -v inkscape) |
| 16 | CONVERT=$(shell command -v convert) |
Stefan Reinauer | 37414ca | 2003-11-22 15:15:47 +0000 | [diff] [blame] | 17 | |
Stefan Reinauer | ebf2589 | 2009-04-21 21:45:11 +0000 | [diff] [blame] | 18 | codeflow.pdf: codeflow.svg |
Uwe Hermann | 67ee8f8 | 2009-05-12 14:24:25 +0000 | [diff] [blame] | 19 | ifneq ($(strip $(SVG2PDF)),) |
Stefan Reinauer | ebf2589 | 2009-04-21 21:45:11 +0000 | [diff] [blame] | 20 | svg2pdf $< $@ |
Uwe Hermann | 67ee8f8 | 2009-05-12 14:24:25 +0000 | [diff] [blame] | 21 | else ifneq ($(strip $(INKSCAPE)),) |
| 22 | inkscape $< --export-pdf=$@ |
| 23 | else ifneq ($(strip $(CONVERT)),) |
| 24 | convert $< $@ |
| 25 | endif |
Stefan Reinauer | 37414ca | 2003-11-22 15:15:47 +0000 | [diff] [blame] | 26 | |
Stefan Reinauer | ebf2589 | 2009-04-21 21:45:11 +0000 | [diff] [blame] | 27 | hypertransport.pdf: hypertransport.svg |
Uwe Hermann | 67ee8f8 | 2009-05-12 14:24:25 +0000 | [diff] [blame] | 28 | ifneq ($(strip $(SVG2PDF)),) |
Stefan Reinauer | ebf2589 | 2009-04-21 21:45:11 +0000 | [diff] [blame] | 29 | svg2pdf $< $@ |
Uwe Hermann | 67ee8f8 | 2009-05-12 14:24:25 +0000 | [diff] [blame] | 30 | else ifneq ($(strip $(INKSCAPE)),) |
| 31 | inkscape $< --export-pdf=$@ |
| 32 | else ifneq ($(strip $(CONVERT)),) |
| 33 | convert $< $@ |
| 34 | endif |
Stefan Reinauer | 37414ca | 2003-11-22 15:15:47 +0000 | [diff] [blame] | 35 | |
Felix Singer | f036b1d | 2023-06-16 06:26:05 +0200 | [diff] [blame] | 36 | $(BUILDDIR): |
| 37 | mkdir -p $(BUILDDIR) |
Martin Roth | 4d8da8e | 2023-05-29 23:09:54 -0600 | [diff] [blame] | 38 | |
Martin Roth | 4b18a92 | 2017-06-03 20:16:01 -0600 | [diff] [blame] | 39 | corebootPortingGuide.toc: $(FIGS) corebootBuildingGuide.tex |
Stefan Reinauer | 37414ca | 2003-11-22 15:15:47 +0000 | [diff] [blame] | 40 | # 2 times to make sure we have a current toc. |
Martin Roth | 4b18a92 | 2017-06-03 20:16:01 -0600 | [diff] [blame] | 41 | $(PDFLATEX) corebootBuildingGuide.tex |
| 42 | $(PDFLATEX) corebootBuildingGuide.tex |
Stefan Reinauer | 37414ca | 2003-11-22 15:15:47 +0000 | [diff] [blame] | 43 | |
Martin Roth | 4b18a92 | 2017-06-03 20:16:01 -0600 | [diff] [blame] | 44 | corebootPortingGuide.pdf: $(FIGS) corebootBuildingGuide.tex corebootPortingGuide.toc |
| 45 | $(PDFLATEX) corebootBuildingGuide.tex |
Stefan Reinauer | 37414ca | 2003-11-22 15:15:47 +0000 | [diff] [blame] | 46 | |
Felix Singer | f036b1d | 2023-06-16 06:26:05 +0200 | [diff] [blame] | 47 | sphinx: $(BUILDDIR) |
| 48 | $(MAKE) -f Makefile.sphinx html BUILDDIR="$(BUILDDIR)" |
Jonathan Neuschäfer | 5e48c75 | 2018-04-19 16:23:56 +0200 | [diff] [blame] | 49 | |
| 50 | clean-sphinx: |
Felix Singer | f036b1d | 2023-06-16 06:26:05 +0200 | [diff] [blame] | 51 | $(MAKE) -f Makefile.sphinx clean BUILDDIR="$(BUILDDIR)" |
Jonathan Neuschäfer | 5e48c75 | 2018-04-19 16:23:56 +0200 | [diff] [blame] | 52 | |
| 53 | clean: clean-sphinx |
Jonathan Neuschäfer | bdebc89 | 2018-09-25 23:15:16 +0200 | [diff] [blame] | 54 | rm -f *.aux *.idx *.log *.toc *.out $(FIGS) |
Stefan Reinauer | 37414ca | 2003-11-22 15:15:47 +0000 | [diff] [blame] | 55 | |
| 56 | distclean: clean |
Jonathan Neuschäfer | bdebc89 | 2018-09-25 23:15:16 +0200 | [diff] [blame] | 57 | rm -f corebootPortingGuide.pdf |
Tom Hiller | 651b11b | 2018-08-18 19:20:16 -0400 | [diff] [blame] | 58 | |
Felix Singer | f036b1d | 2023-06-16 06:26:05 +0200 | [diff] [blame] | 59 | livesphinx: $(BUILDDIR) |
| 60 | $(MAKE) -f Makefile.sphinx livehtml SPHINXOPTS="$(SPHINXOPTS)" BUILDDIR="$(BUILDDIR)" |
Martin Roth | e441b31 | 2023-05-29 23:02:10 -0600 | [diff] [blame] | 61 | |
Martin Roth | 34e43f6 | 2023-05-29 23:05:09 -0600 | [diff] [blame] | 62 | test: |
| 63 | @echo "Test for logging purposes - Failing tests will not fail the build" |
| 64 | -$(MAKE) -f Makefile.sphinx clean && $(MAKE) -K -f Makefile.sphinx html |
| 65 | -$(MAKE) -f Makefile.sphinx clean && $(MAKE) -K -f Makefile.sphinx doctest |
| 66 | |
Martin Roth | e441b31 | 2023-05-29 23:02:10 -0600 | [diff] [blame] | 67 | help: |
| 68 | @echo "all - Builds coreboot porting guide PDF (outdated)" |
| 69 | @echo "sphinx - Builds html documentation in _build directory" |
| 70 | @echo "clean - Cleans intermediate files" |
| 71 | @echo "clean-sphinx - Removes sphinx output files" |
| 72 | @echo "distclean - Removes PDF files as well" |
Martin Roth | 34e43f6 | 2023-05-29 23:05:09 -0600 | [diff] [blame] | 73 | @echo "test - Runs documentation tests" |
Martin Roth | e441b31 | 2023-05-29 23:02:10 -0600 | [diff] [blame] | 74 | @echo |
| 75 | @echo " Makefile.sphinx builds - run with $(MAKE) -f Makefile-sphinx [target]" |
| 76 | @echo |
| 77 | @$(MAKE) -s -f Makefile.sphinx help 2>/dev/null |
| 78 | |
| 79 | .phony: help livesphinx sphinx test |
| 80 | .phony: distclean clean clean-sphinx |