123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483 |
- # This is a single Makefile to handle all generated Yocto Project documents,
- # which includes the BitBake User Manual and the Toaster User Manual.
- # The Makefile needs to live in the documents directory and all figures used
- # in any manuals must be .PNG files and live in the individual book's figures
- # directory as well as in the figures directory for the mega-manual.
- #
- # Some manuals are available as linked help through the Eclipse development
- # system. These manuals also include an "eclipse" sub-directory as part of
- # the make process.
- #
- # Note that the figures for the Yocto Project Development Tasks Manual
- # differ depending on the BRANCH being built.
- #
- # The Makefile has these targets:
- # all: If you leave off the target then "all" is implied.
- # You will generate HTML, eclipse help (if applicable),
- # and a tarball of files.
- #
- # pdf: generates a PDF version of a manual. Not valid for the
- # Quick Start or the mega-manual (single, large HTML file
- # comprised of all Yocto Project manuals).
- # html: generates an HTML version of a manual.
- # eclipse: generates an HTML version of a manual that can be used as
- # eclipse help (including necessary metadata files).
- # tarball: creates a tarball for the doc files.
- # validate: validates
- # publish: pushes generated files to the Yocto Project website
- # clean: removes files
- #
- # The Makefile can generate an HTML and PDF version of every document except the
- # Yocto Project Quick Start and the single, HTML mega-manual, which is comprised
- # of all the individual Yocto Project manuals. You can generate these two manuals
- # in HTML form only. The variable DOC indicates the folder name for a given manual.
- # The variable VER represents the distro version of the Yocto Release for which the
- # manuals are being generated. The variable BRANCH is used to indicate the
- # branch (edison or denzil) and is used only when DOC=dev-manual or
- # DOC=mega-manual. If you do not specify a BRANCH, the default branch used
- # will be for the latest Yocto Project release. If you build for either
- # edison or denzil, you must use BRANCH. You do not need to use BRANCH for
- # any release beyond denzil.
- #
- # To build a manual, you must invoke Makefile with the DOC argument. If you
- # are going to publish the manual, then you must invoke Makefile with both the
- # DOC and the VER argument. Furthermore, if you are building or publishing
- # the edison or denzil versions of the Yocto Project Development Tasks Manual or
- # the mega-manual, you must also use the BRANCH argument.
- #
- # Examples:
- #
- # make DOC=bsp-guide
- # make html DOC=brief-yoctoprojectqs
- # make pdf DOC=ref-manual
- # make DOC=dev-manual BRANCH=edison
- # make DOC=mega-manual BRANCH=denzil
- #
- # The first example generates the HTML and Eclipse help versions of the BSP Guide.
- # The second example generates the HTML version only of the Quick Start. Note
- # that the Quick Start only has an HTML version available. So, the
- # 'make DOC=brief-yoctoprojectqs' command would be equivalent. The third example
- # generates just the PDF version of the Yocto Project Reference Manual.
- # The fourth example generates the HTML 'edison' version and (if available)
- # the Eclipse help version of the YP Development Tasks Manual. The last example
- # generates the HTML version of the mega-manual and uses the 'denzil'
- # branch when choosing figures for the tarball of figures. Any example that does
- # not use the BRANCH argument builds the current version of the manual set.
- #
- # The publish target pushes the generated manuals to the Yocto Project
- # website. Unless you are a developer on the YP team, you will not succeed in
- # pushing manuals to this server. All files needed for the manual's HTML form are
- # pushed as well as applicable Eclipse versions.
- #
- # Examples:
- #
- # make publish DOC=bsp-guide VER=1.7
- # make publish DOC=adt-manual VER=1.6
- # make publish DOC=dev-manual VER=1.1.1 BRANCH=edison
- # make publish DOC=dev-manual VER=1.2 BRANCH=denzil
- #
- # The first example publishes the 1.7 version of both the PDF and HTML versions of
- # the BSP Guide. The second example publishes the 1.6 version of both the PDF and
- # HTML versions of the ADT Manual. The third example publishes the 1.1.1 version of
- # the PDF and HTML YP Development Tasks Manual for the 'edison' branch. The fourth
- # example publishes the 1.2 version of the PDF and HTML YP Development Tasks Manual
- # for the 'denzil' branch.
- #
- ifeq ($(DOC),brief-yoctoprojectqs)
- XSLTOPTS = --stringparam html.stylesheet brief-yoctoprojectqs-style.css \
- --stringparam chapter.autolabel 0 \
- --stringparam section.autolabel 0 \
- --stringparam section.label.includes.component.label 0 \
- --xinclude
- ALLPREQ = html eclipse tarball
- TARFILES = brief-yoctoprojectqs-style.css brief-yoctoprojectqs.html figures/bypqs-title.png \
- figures/yocto-project-transp.png
- MANUALS = $(DOC)/$(DOC).html $(DOC)/eclipse
- FIGURES = figures
- STYLESHEET = $(DOC)/*.css
- endif
- ifeq ($(DOC),overview-manual)
- XSLTOPTS = --xinclude
- ALLPREQ = html eclipse tarball
- TARFILES = overview-manual-style.css overview-manual.html figures/overview-manual-title.png \
- figures/git-workflow.png figures/source-repos.png figures/index-downloads.png \
- figures/yp-download.png figures/YP-flow-diagram.png figures/key-dev-elements.png \
- figures/poky-reference-distribution.png figures/cross-development-toolchains.png \
- figures/user-configuration.png figures/layer-input.png figures/source-input.png \
- figures/package-feeds.png figures/patching.png figures/source-fetching.png \
- figures/configuration-compile-autoreconf.png figures/analysis-for-package-splitting.png \
- figures/image-generation.png figures/sdk-generation.png figures/images.png \
- figures/sdk.png \
- eclipse
- MANUALS = $(DOC)/$(DOC).html $(DOC)/eclipse
- FIGURES = figures
- STYLESHEET = $(DOC)/*.css
- endif
- ifeq ($(DOC),bsp-guide)
- XSLTOPTS = --xinclude
- ALLPREQ = html eclipse tarball
- TARFILES = bsp-style.css bsp-guide.html figures/bsp-title.png \
- figures/bsp-dev-flow.png \
- eclipse
- MANUALS = $(DOC)/$(DOC).html $(DOC)/eclipse
- FIGURES = figures
- STYLESHEET = $(DOC)/*.css
- endif
- ifeq ($(DOC),dev-manual)
- XSLTOPTS = --xinclude
- ALLPREQ = html eclipse tarball
- #
- # Note that the tarfile might produce the "Cannot stat: No such file or
- # directory" error message for .PNG files that are not present when building
- # a particular branch. The list of files is all-inclusive for all branches.
- # Note, if you don't provide a BRANCH option, it defaults to the latest stuff.
- # This would be appropriate for "master" branch.
- #
- ifeq ($(BRANCH),edison)
- TARFILES = dev-style.css dev-manual.html \
- figures/app-dev-flow.png figures/bsp-dev-flow.png \
- figures/dev-title.png figures/git-workflow.png \
- figures/index-downloads.png figures/kernel-dev-flow.png \
- figures/kernel-example-repos-edison.png \
- figures/kernel-overview-1.png figures/kernel-overview-2.png \
- figures/kernel-overview-3-edison.png \
- figures/source-repos.png figures/yp-download.png \
- figures/wip.png
- else ifeq ($(BRANCH),denzil)
- TARFILES = dev-style.css dev-manual.html \
- figures/app-dev-flow.png figures/bsp-dev-flow.png \
- figures/dev-title.png figures/git-workflow.png \
- figures/index-downloads.png figures/kernel-dev-flow.png \
- figures/kernel-example-repos-denzil.png \
- figures/kernel-overview-1.png figures/kernel-overview-2.png \
- figures/kernel-overview-3-denzil.png \
- figures/source-repos.png figures/yp-download.png \
- figures/wip.png
- else
- TARFILES = dev-style.css dev-manual.html figures/buildhistory-web.png \
- figures/dev-title.png figures/buildhistory.png \
- figures/recipe-workflow.png figures/bitbake-build-flow.png \
- figures/multiconfig_files.png \
- eclipse
- endif
- MANUALS = $(DOC)/$(DOC).html $(DOC)/eclipse
- FIGURES = figures
- STYLESHEET = $(DOC)/*.css
- endif
- ifeq ($(DOC),mega-manual)
- XSLTOPTS = --stringparam html.stylesheet mega-style.css \
- --stringparam chapter.autolabel 1 \
- --stringparam section.autolabel 1 \
- --stringparam section.label.includes.component.label 1 \
- --xinclude
- ALLPREQ = html tarball
- ifeq ($(BRANCH),edison)
- TARFILES = mega-manual.html mega-style.css figures/yocto-environment.png \
- figures/building-an-image.png \
- figures/using-a-pre-built-image.png \
- figures/poky-title.png \
- figures/adt-title.png figures/bsp-title.png \
- figures/kernel-title.png figures/kernel-architecture-overview.png \
- figures/app-dev-flow.png figures/bsp-dev-flow.png \
- figures/dev-title.png figures/git-workflow.png \
- figures/index-downloads.png figures/kernel-dev-flow.png \
- figures/kernel-example-repos-edison.png \
- figures/kernel-overview-1.png figures/kernel-overview-2.png \
- figures/kernel-overview-3-edison.png \
- figures/source-repos.png figures/yp-download.png \
- figures/wip.png
- else ifeq ($(BRANCH),denzil)
- TARFILES = mega-manual.html mega-style.css figures/yocto-environment.png \
- figures/building-an-image.png \
- figures/using-a-pre-built-image.png \
- figures/poky-title.png \
- figures/adt-title.png figures/bsp-title.png \
- figures/kernel-title.png figures/kernel-architecture-overview.png \
- figures/app-dev-flow.png figures/bsp-dev-flow.png \
- figures/dev-title.png figures/git-workflow.png \
- figures/index-downloads.png figures/kernel-dev-flow.png \
- figures/kernel-example-repos-denzil.png \
- figures/kernel-overview-1.png figures/kernel-overview-2.png \
- figures/kernel-overview-3-denzil.png \
- figures/source-repos.png figures/yp-download.png \
- figures/wip.png
- else
- TARFILES = mega-manual.html mega-style.css \
- figures/YP-flow-diagram.png \
- figures/using-a-pre-built-image.png \
- figures/poky-title.png figures/buildhistory.png \
- figures/buildhistory-web.png \
- figures/sdk-title.png figures/bsp-title.png \
- figures/kernel-dev-title.png figures/kernel-architecture-overview.png \
- figures/bsp-dev-flow.png \
- figures/dev-title.png \
- figures/git-workflow.png figures/index-downloads.png \
- figures/kernel-dev-flow.png \
- figures/kernel-overview-2-generic.png \
- figures/source-repos.png figures/yp-download.png \
- figures/profile-title.png figures/kernelshark-all.png \
- figures/kernelshark-choose-events.png \
- figures/kernelshark-i915-display.png \
- figures/kernelshark-output-display.png figures/lttngmain0.png \
- figures/oprofileui-busybox.png figures/oprofileui-copy-to-user.png \
- figures/oprofileui-downloading.png figures/oprofileui-processes.png \
- figures/perf-probe-do_fork-profile.png \
- figures/perf-report-cycles-u.png \
- figures/perf-systemwide.png figures/perf-systemwide-libc.png \
- figures/perf-wget-busybox-annotate-menu.png \
- figures/perf-wget-busybox-annotate-udhcpc.png \
- figures/perf-wget-busybox-debuginfo.png \
- figures/perf-wget-busybox-dso-zoom.png \
- figures/perf-wget-busybox-dso-zoom-menu.png \
- figures/perf-wget-busybox-expanded-stripped.png \
- figures/perf-wget-flat-stripped.png \
- figures/perf-wget-g-copy-from-user-expanded-stripped.png \
- figures/perf-wget-g-copy-to-user-expanded-debuginfo.png \
- figures/perf-wget-g-copy-to-user-expanded-stripped.png \
- figures/perf-wget-g-copy-to-user-expanded-stripped-unresolved-hidden.png \
- figures/pybootchartgui-linux-yocto.png \
- figures/pychart-linux-yocto-rpm.png \
- figures/pychart-linux-yocto-rpm-nostrip.png \
- figures/sched-wakeup-profile.png figures/sysprof-callers.png \
- figures/sysprof-copy-from-user.png figures/sysprof-copy-to-user.png \
- figures/cross-development-toolchains.png \
- figures/user-configuration.png \
- figures/source-input.png figures/package-feeds.png \
- figures/layer-input.png figures/images.png figures/sdk.png \
- figures/source-fetching.png figures/patching.png \
- figures/configuration-compile-autoreconf.png \
- figures/analysis-for-package-splitting.png \
- figures/image-generation.png figures/key-dev-elements.png\
- figures/sdk-generation.png figures/recipe-workflow.png \
- figures/build-workspace-directory.png figures/mega-title.png \
- figures/toaster-title.png figures/hosted-service.png figures/multiconfig_files.png \
- figures/simple-configuration.png figures/poky-reference-distribution.png \
- figures/compatible-layers.png figures/import-layer.png figures/new-project.png \
- figures/sdk-environment.png figures/sdk-installed-standard-sdk-directory.png \
- figures/sdk-devtool-add-flow.png figures/sdk-installed-extensible-sdk-directory.png \
- figures/sdk-devtool-modify-flow.png figures/sdk-eclipse-dev-flow.png \
- figures/sdk-devtool-upgrade-flow.png figures/bitbake-build-flow.png figures/bypqs-title.png \
- figures/overview-manual-title.png figures/sdk-autotools-flow.png figures/sdk-makefile-flow.png
- endif
- MANUALS = $(DOC)/$(DOC).html
- FIGURES = figures
- STYLESHEET = $(DOC)/*.css
- endif
- ifeq ($(DOC),ref-manual)
- XSLTOPTS = --xinclude
- ALLPREQ = html eclipse tarball
- TARFILES = ref-manual.html ref-style.css figures/poky-title.png \
- figures/build-workspace-directory.png \
- eclipse
- MANUALS = $(DOC)/$(DOC).html $(DOC)/eclipse
- FIGURES = figures
- STYLESHEET = $(DOC)/*.css
- endif
- ifeq ($(DOC),sdk-manual)
- XSLTOPTS = --xinclude
- ALLPREQ = html eclipse tarball
- TARFILES = sdk-manual.html sdk-style.css figures/sdk-title.png \
- figures/sdk-environment.png figures/sdk-installed-standard-sdk-directory.png \
- figures/sdk-installed-extensible-sdk-directory.png figures/sdk-devtool-add-flow.png \
- figures/sdk-devtool-modify-flow.png figures/sdk-eclipse-dev-flow.png \
- figures/sdk-devtool-upgrade-flow.png figures/sdk-autotools-flow.png figures/sdk-makefile-flow.png \
- eclipse
- MANUALS = $(DOC)/$(DOC).html $(DOC)/eclipse
- FIGURES = figures
- STYLESHEET = $(DOC)/*.css
- endif
- ifeq ($(DOC),profile-manual)
- XSLTOPTS = --xinclude
- ALLPREQ = html eclipse tarball
- TARFILES = profile-manual.html profile-manual-style.css \
- figures/profile-title.png figures/kernelshark-all.png \
- figures/kernelshark-choose-events.png \
- figures/kernelshark-i915-display.png \
- figures/kernelshark-output-display.png figures/lttngmain0.png \
- figures/oprofileui-busybox.png figures/oprofileui-copy-to-user.png \
- figures/oprofileui-downloading.png figures/oprofileui-processes.png \
- figures/perf-probe-do_fork-profile.png \
- figures/perf-report-cycles-u.png \
- figures/perf-systemwide.png figures/perf-systemwide-libc.png \
- figures/perf-wget-busybox-annotate-menu.png \
- figures/perf-wget-busybox-annotate-udhcpc.png \
- figures/perf-wget-busybox-debuginfo.png \
- figures/perf-wget-busybox-dso-zoom.png \
- figures/perf-wget-busybox-dso-zoom-menu.png \
- figures/perf-wget-busybox-expanded-stripped.png \
- figures/perf-wget-flat-stripped.png \
- figures/perf-wget-g-copy-from-user-expanded-stripped.png \
- figures/perf-wget-g-copy-to-user-expanded-debuginfo.png \
- figures/perf-wget-g-copy-to-user-expanded-stripped.png \
- figures/perf-wget-g-copy-to-user-expanded-stripped-unresolved-hidden.png \
- figures/pybootchartgui-linux-yocto.png \
- figures/pychart-linux-yocto-rpm.png \
- figures/pychart-linux-yocto-rpm-nostrip.png \
- figures/sched-wakeup-profile.png figures/sysprof-callers.png \
- figures/sysprof-copy-from-user.png figures/sysprof-copy-to-user.png \
- eclipse
- MANUALS = $(DOC)/$(DOC).html $(DOC)/eclipse
- FIGURES = figures
- STYLESHEET = $(DOC)/*.css
- endif
- ifeq ($(DOC),kernel-dev)
- XSLTOPTS = --xinclude
- ALLPREQ = html eclipse tarball
- TARFILES = kernel-dev.html kernel-dev-style.css \
- figures/kernel-dev-title.png figures/kernel-overview-2-generic.png \
- figures/kernel-architecture-overview.png figures/kernel-dev-flow.png \
- eclipse
- MANUALS = $(DOC)/$(DOC).html $(DOC)/eclipse
- FIGURES = figures
- STYLESHEET = $(DOC)/*.css
- endif
- ifeq ($(DOC),toaster-manual)
- XSLTOPTS = --xinclude
- ALLPREQ = html tarball
- TARFILES = toaster-manual.html toaster-manual-style.css \
- figures/toaster-title.png figures/simple-configuration.png \
- figures/hosted-service.png \
- figures/compatible-layers.png figures/import-layer.png figures/new-project.png
- MANUALS = $(DOC)/$(DOC).html
- FIGURES = figures
- STYLESHEET = $(DOC)/*.css
- endif
- ##
- # These URI should be rewritten by your distribution's xml catalog to
- # match your locally installed XSL stylesheets.
- XSL_BASE_URI = http://docbook.sourceforge.net/release/xsl/1.76.1
- XSL_XHTML_URI = $(XSL_BASE_URI)/xhtml/docbook.xsl
- all: $(ALLPREQ)
- pdf:
- ifeq ($(DOC),brief-yoctoprojectqs)
- @echo " "
- @echo "ERROR: You cannot generate a PDF file for brief-yoctoprojectqs."
- @echo " "
- else ifeq ($(DOC),mega-manual)
- @echo " "
- @echo "ERROR: You cannot generate a mega-manual PDF file."
- @echo " "
- else
- cd $(DOC); ../tools/poky-docbook-to-pdf $(DOC).xml ../template; cd ..
- endif
- html:
- ifeq ($(DOC),mega-manual)
- # See http://www.sagehill.net/docbookxsl/HtmlOutput.html
- @echo " "
- @echo "******** Building "$(DOC)
- @echo " "
- cd $(DOC); xsltproc $(XSLTOPTS) -o $(DOC).html $(DOC)-customization.xsl $(DOC).xml; cd ..
- @echo " "
- @echo "******** Using mega-manual.sed to process external links"
- @echo " "
- cd $(DOC); sed -f ../tools/mega-manual.sed < mega-manual.html > mega-output.html; cd ..
- @echo " "
- @echo "******** Cleaning up transient file mega-output.html"
- @echo " "
- cd $(DOC); rm mega-manual.html; mv mega-output.html mega-manual.html; cd ..
- else
- # See http://www.sagehill.net/docbookxsl/HtmlOutput.html
- @echo " "
- @echo "******** Building "$(DOC)
- @echo " "
- cd $(DOC); xsltproc $(XSLTOPTS) -o $(DOC).html $(DOC)-customization.xsl $(DOC).xml; cd ..
- endif
- eclipse: BASE_DIR = html/$(DOC)/
- eclipse: eclipse-generate eclipse-resolve-links
- .PHONY : eclipse-generate eclipse-resolve-links
- eclipse-generate:
- ifeq ($(filter $(DOC), overview-manual sdk-manual bsp-guide dev-manual kernel-dev profile-manual ref-manual brief-yoctoprojectqs),)
- @echo " "
- @echo "ERROR: You can only create eclipse documentation"
- @echo " of the following documentation parts:"
- @echo " - overview-manual"
- @echo " - sdk-manual"
- @echo " - bsp-guide"
- @echo " - dev-manual"
- @echo " - kernel-dev"
- @echo " - profile-manual"
- @echo " - ref-manual"
- @echo " - brief-yoctoprojectqs"
- @echo " "
- else
- @echo " "
- @echo "******** Building eclipse help of "$(DOC)
- @echo " "
- cd $(DOC) && \
- xsltproc $(XSLTOPTS) \
- --stringparam base.dir '$(BASE_DIR)' \
- -o eclipse/$(DOC).html \
- $(DOC)-eclipse-customization.xsl $(DOC).xml && \
- mv eclipse/toc.xml eclipse/$(DOC)-toc.xml && \
- cp -rf $(FIGURES) eclipse/$(BASE_DIR) && \
- cd ..;
- $(call modify-eclipse)
- endif
- eclipse-resolve-links:
- @echo " "
- @echo "******** Using eclipse-help.sed to process external links"
- @echo " "
- $(foreach FILE, \
- $(wildcard $(DOC)/eclipse/html/$(DOC)/*.html), \
- $(shell sed -i -f tools/eclipse-help.sed $(FILE)))
- tarball: html
- @echo " "
- @echo "******** Creating Tarball of document files"
- @echo " "
- cd $(DOC); tar -cvzf $(DOC).tgz $(TARFILES); cd ..
- validate:
- cd $(DOC); xmllint --postvalid --xinclude --noout $(DOC).xml; cd ..
- publish:
- @if test -f $(DOC)/$(DOC).html; \
- then \
- echo " "; \
- echo "******** Publishing "$(DOC)".html"; \
- echo " "; \
- scp -r $(MANUALS) $(STYLESHEET) docs.yp:/var/www/www.yoctoproject.org-docs/$(VER)/$(DOC); \
- cd $(DOC); scp -r $(FIGURES) docs.yp:/var/www/www.yoctoproject.org-docs/$(VER)/$(DOC); \
- else \
- echo " "; \
- echo $(DOC)".html missing. Generate the file first then try again."; \
- echo " "; \
- fi
- clean:
- rm -rf $(MANUALS); rm $(DOC)/$(DOC).tgz;
|