summaryrefslogtreecommitdiffstats
path: root/doc/Makefile
diff options
context:
space:
mode:
authorLennart Johansson <lennart.johansson@enea.com>2016-06-02 13:41:16 +0200
committerLennart Johansson <lennart.johansson@enea.com>2016-06-02 13:41:16 +0200
commit8decb3267be14596c377155d6bc84a0eb61f04e9 (patch)
tree48ce3df49e534a55457e6a06d88cfcab57eff1e5 /doc/Makefile
parentac10f04eef9b8dfc5d38978f78f4bc6710ea7525 (diff)
downloadel_manifests-networking-8decb3267be14596c377155d6bc84a0eb61f04e9.tar.gz
Doc Add autovariables from manifest, poky.ent, enea.conf
Add autovariable from manifest repository name, e.g. the profile name Add autovariables from poky.ent, e.g. Yocto version etc.. in pardoc-distro Add autovariables from enea.conf e.g. release MAJOR MINOR via generated s_docsrc_common/pardoc-distro and also pick up MAJOR MINOR into the make system to create BOOK_VER => BL_LABEL on books Add autocreate build_boot chapter in release info from the README files in all included targets Adapt book XML files to the above Currently this makes the Makefile and init scripts identical in different el6-<profile>.git All are now automatic: Just clone el6-xxxx.git and cd el6-xxx/doc ; make doc and all are done until the books are built and ready. It takes several minutes to autofetch all from git using the repo command according to the target manifests before the books start to build. Rebuilding books are quick. Signed-off-by: Lennart Johansson <lennart.johansson@enea.com>
Diffstat (limited to 'doc/Makefile')
-rw-r--r--doc/Makefile136
1 files changed, 89 insertions, 47 deletions
diff --git a/doc/Makefile b/doc/Makefile
index 306bd4d..59d25d5 100644
--- a/doc/Makefile
+++ b/doc/Makefile
@@ -1,6 +1,11 @@
1#Path to this subsystem's root directory 1#Path to this subsystem's root directory
2SUBSYSROOT := $(shell pwd) 2SUBSYSROOT := $(shell pwd)
3 3
4MANIFEST_DIR = $(dir $(SUBSYSROOT))
5MANIFEST_NAME = $(lastword $(subst /, ,$(MANIFEST_DIR)))
6MANIFEST_TAIL = $(word 2,$(subst -, ,$(MANIFEST_NAME)))
7
8# Generic docbuild.git auto-clone + s_docbuild symlink. Includes TMPCLONEROOT
4include init.mk 9include init.mk
5 10
6# ****************** SUPPORT FOR TARGETS *************************** 11# ****************** SUPPORT FOR TARGETS ***************************
@@ -15,8 +20,10 @@ TARGETDEFAULTXMLS := $(shell cd $(REPODIR); ls -1 */default.xml)
15# URL and HASH of this manifest repository to be used by the repo tool 20# URL and HASH of this manifest repository to be used by the repo tool
16CURRENTHASH := $(shell git log -1 --pretty=format:%H 2>/dev/null) 21CURRENTHASH := $(shell git log -1 --pretty=format:%H 2>/dev/null)
17CURRENTURL := $(shell git remote show origin | sed -n '/Fetch URL: /s/^.*URL: //p' 2>/dev/null) 22CURRENTURL := $(shell git remote show origin | sed -n '/Fetch URL: /s/^.*URL: //p' 2>/dev/null)
18.PHONY: inittargets 23
19# ****************************************************************** 24# ******************* AutoGenerated chapter from template and target READMEs *******
25BUILDBOOT_XML := book-enea-linux-release-info/doc/build_boot_generated.xml
26BUILDBOOT_TEMPLATE := book-enea-linux-release-info/doc/build_boot_template.xml
20 27
21 28
22 29
@@ -33,27 +40,10 @@ DOCBOOK_FO_USEFOP ?= yes
33DOCBOOK_TO_BOOKDIR ?= yes 40DOCBOOK_TO_BOOKDIR ?= yes
34DOCBOOK_CLEANTMP ?= yes 41DOCBOOK_CLEANTMP ?= yes
35 42
36#Components in this subsystem 43#Components (books) in this subsystem
37COMPONENTS := book-enea-linux-release-info book-enea-linux-open-source 44# COMPONENTS := book-enea-linux-release-info book-enea-linux-open-source
38# COMPONENTS += book-enea-linux-target-guide 45# COMPONENTS += book-enea-linux-eclipse-open-source
39# ----------------------------------------------------- 46COMPONENTS := $(shell ls -d book-enea* )
40#Release version, used in labels and text
41REL_VER_EXT := $(shell perl -e \
42'while(<>) {\
43 if (/<!ENTITY ENEA_LINUX_REL_VER "([\d\.-\w]+)">/) { print $$1 ; exit; }\
44}' \
45< $(SUBSYSROOT)/docsrc_common/pardoc-distro.xml 2>/dev/null)
46#$(info REL_VER_EXT = $(REL_VER_EXT))
47
48ifneq ($(REL_VER_EXT),)
49REL_VER ?= $(REL_VER_EXT)
50else
51REL_VER ?= undefined
52endif
53$(info REL_VER = $(REL_VER))
54
55# -----------------------------------------------------
56
57 47
58# -------------------------------------------------------------- 48# --------------------------------------------------------------
59ifeq ($(VERBOSE),yes) 49ifeq ($(VERBOSE),yes)
@@ -76,34 +66,31 @@ VALIDATE = no
76# Export all parameters including those on the command line 66# Export all parameters including those on the command line
77export 67export
78 68
79.PHONY: doc books docusage 69.PHONY: doc books docusage init initbuild inittargets initpardoc initbuildboot
80 70
81 71
82docusage: 72docusage:
83 @echo 'make docusage #Shows this help text' 73 @echo 'make docusage #Shows this help text'
84 @echo ' DOCBOOK_TOOLS_VERSIONS=yes #Displays DocBook tools versions in this machine' 74 @echo ' DOCBOOK_TOOLS_VERSIONS=yes #Displays DocBook tools versions in this machine'
85 @echo 'make doc #Builds the userdoc, does autoinit if needed' 75 @echo 'make doc #Builds the userdoc, does autoinit if needed'
86 @echo 'make init #Init both below' 76 @echo 'make init #Init all needed init* below'
87 @echo 'make initbuild #Init s_docbuild' 77 @echo 'make initbuild #Init s_docbuild Docbook build system and central files'
88 @echo 'make inittargets #Init s_targets using repo tool' 78 @echo 'make inittargets #Init s_targets using repo tool Targets in this distro with poky'
79 @echo 'make initpardoc #Init s_docsrc_common using info from poky/'
80 @echo 'make initbuildboot #Init build_boot chapter from READMEs and template in release info'
89 @echo ' DOCBOOK_CLEANTMP=no #Option to keep temp files in doc/ and tmp/' 81 @echo ' DOCBOOK_CLEANTMP=no #Option to keep temp files in doc/ and tmp/'
90 @echo ' BOOK_GLOBALCLONEROOT=yes #Option for all init above to clone all outside the doc directory' 82 @echo ' BOOK_GLOBALCLONEROOT=yes #Option for all init above to clone all outside the doc directory'
91 @echo ' BOOK_GLOBALCLONEROOT=otherpath #Option for all init above to clone all' 83 @echo ' BOOK_GLOBALCLONEROOT=otherpath #Option for all init above to clone all'
92 @echo #Force rebuilding (ignore dependency on file times or BL_LABEL)' 84 @echo 'make pullbuild #git pull in s_docbuild'
93 @echo ' # Dependency only works if common doc directory is kept' 85 @echo 'make pulltargets #git pull in s_targets. You need also initpardoc initbuildboot'
94 @echo ' BOOKCONDITION'make pullbuild #git pull in s_docbuild'
95 @echo 'make pulltargets #git pull in s_targets'
96 @echo 'make clean #Clean. Also clean s_* but not any external clones' 86 @echo 'make clean #Clean. Also clean s_* but not any external clones'
97 @echo 'The following directories are cloned via the init commands (s_* are symlinks to clones):'
98 @echo ' s_docbuild #Docbook build system and central files'
99 @echo ' s_targets #targets in this distro with poky, for picking some parameters'
100 @echo '' 87 @echo ''
101 @echo 'Optional parameters for make doc:' 88 @echo 'Optional parameters for make doc:'
102 @echo ' COMP=<book-directory> #Component (book) to build. Book component names are book-*' 89 @echo ' COMP=<book-directory> #Component (book) to build. Book component names are book-*'
103 @echo ' #Default component/s:' 90 @echo ' #Default component/s:'
104 @echo ' $(COMPONENTS)' 91 @echo ' $(COMPONENTS)'
105 @echo ' FORMAT=<format> #One of: pdf, html, or eclipse (Default all are built)' 92 @echo ' FORMAT=<format> #One of: pdf, html, or eclipse (Default all are built)'
106 @echo ' BL_LABEL=<baseline> #Becomes footer in book (default: date + time)' 93 @echo ' BL_LABEL=<baseline> #Becomes footer in book (default: from poky enea.conf MAJORMINOR)'
107 @echo ' DOCBOOK_TO_BOOKDIR=no #(default yes) Avoid moving result to book directory' 94 @echo ' DOCBOOK_TO_BOOKDIR=no #(default yes) Avoid moving result to book directory'
108 @echo ' # and avoid erasing common doc and tmp directories' 95 @echo ' # and avoid erasing common doc and tmp directories'
109 @echo ' BOOKFORCE=yes #Force rebuilding (ignore dependency on file times or BL_LABEL)' 96 @echo ' BOOKFORCE=yes #Force rebuilding (ignore dependency on file times or BL_LABEL)'
@@ -118,7 +105,7 @@ docusage:
118 @echo ' DOCBOOK_OLINK_TARGETDB=only #Build a target db for this book (for links into it)' 105 @echo ' DOCBOOK_OLINK_TARGETDB=only #Build a target db for this book (for links into it)'
119 @echo ' DOCBOOK_OLINK_TARGETDB=yes #Build a target db AND build the book' 106 @echo ' DOCBOOK_OLINK_TARGETDB=yes #Build a target db AND build the book'
120 @echo ' #Master olinkdb defined in this Makefile, one per generated format, is:' 107 @echo ' #Master olinkdb defined in this Makefile, one per generated format, is:'
121 @echo ' $(DOCBOOKOLINKDB_BASE)_*.db' 108 @echo ' $(DOCBOOKOLINKDB_BASE)_*.db'
122 @echo ' Typical examples:' 109 @echo ' Typical examples:'
123 @echo ' make doc Creates all books, all formats' 110 @echo ' make doc Creates all books, all formats'
124 @echo ' make doc COMP=book-xxxx FORMAT=html' 111 @echo ' make doc COMP=book-xxxx FORMAT=html'
@@ -137,7 +124,8 @@ ifeq ($(DOCBOOK_TOOLS_VERSIONS),yes)
137 $(VERB)$(MAKE) -f $(DOCBOOKMAKE)/tools_book_standalone.mk book_tools_versions 124 $(VERB)$(MAKE) -f $(DOCBOOKMAKE)/tools_book_standalone.mk book_tools_versions
138endif 125endif
139 126
140init: initbuild inittargets 127# We rely on make doing these in order left to right
128init: initbuild inittargets initpardoc initbuildboot
141pullall: pullbuild pulltargets 129pullall: pullbuild pulltargets
142 130
143# If no COMP, iterate over books-* in COMPONENTS with make doc 131# If no COMP, iterate over books-* in COMPONENTS with make doc
@@ -163,24 +151,27 @@ FORMAT=html pdf eclipse
163endif 151endif
164 152
165 153
166books: initbuild inittargets 154books: init
167# BOOKPACKAGES is defined in all book-*/swcomp.mk 155# BOOKPACKAGES is defined in all book-*/swcomp.mk
168 $(VERB)for book in $(BOOKPACKAGES); do \ 156 $(VERB)DISTRO_VERSION_MAJOR=`egrep '"EneaLinux_DISTRO_VERSION_MAJOR"' s_docsrc_common/pardoc-distro.xml | sed 's/.*<phrase>//;s/<\/phrase>.*//'` ; \
157 DISTRO_VERSION_MINOR=`egrep '"EneaLinux_DISTRO_VERSION_MINOR"' s_docsrc_common/pardoc-distro.xml | sed 's/.*<phrase>//;s/<\/phrase>.*//'` ; \
158 BOOKVER="Profile $(MANIFEST_TAIL)-$$DISTRO_VERSION_MAJOR$$DISTRO_VERSION_MINOR" ; \
159 for book in $(BOOKPACKAGES); do \
169 for format in $(FORMAT); do \ 160 for format in $(FORMAT); do \
170 $(MAKE) -f $(DOCBOOKMAKE)/make_docbook_standalone.mk BOOK=$$book FORMAT=$$format books || exit 10; \ 161 $(MAKE) -f $(DOCBOOKMAKE)/make_docbook_standalone.mk BOOK=$$book FORMAT=$$format BOOK_VER="$$BOOKVER" books || exit 10; \
171 done ; \ 162 done ; \
172 done 163 done
173ifeq ($(DOCBOOK_TO_BOOKDIR),yes) 164ifeq ($(DOCBOOK_TO_BOOKDIR),yes)
174 $(VERB)rm -rf doc tmp 165 $(VERB)rm -rf doc tmp
175else 166else
176ifeq ($(DOCBOOK_CLEANTMP),yes) 167ifeq ($(DOCBOOK_CLEANTMP),yes)
177# keep only doc/pdf/book-*.pdf doc/eclipse/plugins/com.enea.doc.book-* but delete doc/eclipse/plugins/com.enea.doc.book-*/done* 168# keep only doc/pdf/book-*.pdf doc/eclipse/plugins/com.enea.doc.book-* but delete doc/eclipse/plugins/com.enea.doc.book-*/done*
178 $(VERB)rm -rf tmp 2>/dev/null ; rm -rf doc/pdf/book-*/ ; rm -rf doc/eclipse/plugins/com.enea.doc.book-*/done* 2>/dev/null 169 $(VERB)rm -rf tmp 2>/dev/null ; rm -rf doc/pdf/book-*/ ; rm -rf doc/eclipse/plugins/com.enea.doc.book-*/done* 2>/dev/null
179endif 170endif
180endif 171endif
181 172
182 173# cleaninit cleans ALL tmpcommon and all s_* and generated build_boot chapter xml
183clean: cleaninit 174clean: cleaninit cleanbuildboot
184 $(VERB)rm -rf doc tmp 2>/dev/null 175 $(VERB)rm -rf doc tmp 2>/dev/null
185ifneq ($(filter book-%, $(COMPONENTS)),) 176ifneq ($(filter book-%, $(COMPONENTS)),)
186 $(VERB)for comp in $(filter book-%, $(COMPONENTS)); do \ 177 $(VERB)for comp in $(filter book-%, $(COMPONENTS)); do \
@@ -221,4 +212,55 @@ $(TMPCLONEROOT_TARGETS):
221 repo init -u $(CURRENTURL) -b $(CURRENTHASH) -m $$target_default_xml ; repo sync ; \ 212 repo init -u $(CURRENTURL) -b $(CURRENTHASH) -m $$target_default_xml ; repo sync ; \
222 ) ; \ 213 ) ; \
223 done 214 done
224# ****************************************************************** 215
216# ****************************************************************************
217# ******************** SUPPORT FOR dynamic pardoc with added parameters ******
218# pardoc-distro can contain MAJOR.MINOR-xxxxx keeping -xxxx when replacing MINOR.MINOR from enea.conf
219
220PATH_DOCSRC_COMMON = $(SUBSYSROOT)/s_docsrc_common
221NAME_DOCSRC_COMMON = docsrc_common
222TMPCLONEROOT_DOCSRC_COMMON := $(TMPCLONEROOT)/$(NAME_DOCSRC_COMMON)
223TMPPARDOC := $(TMPCLONEROOT_DOCSRC_COMMON)/pardoc-distro.xml
224
225initpardoc: s_docsrc_common
226
227cleanpardoc:
228 $(VERB)rm -rf $(TMPCLONEROOT_DOCSRC_COMMON) ; rm s_docsrc_common
229
230s_docsrc_common: $(TMPCLONEROOT_DOCSRC_COMMON)
231 $(VERB)rm s_docsrc_common 2>/dev/null; ln -s $(TMPCLONEROOT_DOCSRC_COMMON) s_docsrc_common
232
233$(TMPCLONEROOT_DOCSRC_COMMON): s_targets
234 $(VERB)if [ ! -d "$(TMPCLONEROOT)" ] ; then mkdir -p "$(TMPCLONEROOT)" ; fi
235 $(VERB)if [ ! -d $(TMPCLONEROOT_DOCSRC_COMMON) ]; then mkdir -p $(TMPCLONEROOT_DOCSRC_COMMON) ; fi
236 @echo "Copy and patch docsrc_common/ files to $(TMPCLONEROOT_DOCSRC_COMMON)"
237 $(VERB)FIRSTTARGET=`ls -1 s_targets/ | head -1`; \
238 ENEACONF=s_targets/$$FIRSTTARGET/poky/meta-el-common/conf/distro/enea.conf ; \
239 DISTRO_VERSION_MAJOR=`egrep '^DISTRO_VERSION_MAJOR' $$ENEACONF | sed 's/^[^"]*"//;s/".*//'` ; \
240 DISTRO_VERSION_MINOR=`egrep '^DISTRO_VERSION_MINOR' $$ENEACONF | sed 's/^[^"]*"//;s/".*//'` ; \
241 cat docsrc_common/pardoc-distro.xml | sed '/<\/section>/d' | \
242 sed '/<!ENTITY ENEA_LINUX_REL_VER/s/MAJOR.MINOR/'"$$DISTRO_VERSION_MAJOR$$DISTRO_VERSION_MINOR"'/' | \
243 sed '/<!ENTITY . common_poky_entities SYSTEM/s/s_targets\/[^\/]*\/poky/s_targets\/'"$$FIRSTTARGET"'\/poky/' >$(TMPPARDOC) ; \
244 echo "<para id=\"EneaLinux_DISTRO_VERSION_MAJOR\"><phrase>$$DISTRO_VERSION_MAJOR</phrase></para>" >>$(TMPPARDOC) ; \
245 echo "<para id=\"EneaLinux_DISTRO_VERSION_MINOR\"><phrase>$$DISTRO_VERSION_MINOR</phrase></para>" >>$(TMPPARDOC) ; \
246 echo "</section>" >>$(TMPPARDOC)
247
248# ****************************************************************************
249# ***** Create XML chapter with build/boot commands from all README files in s_targets
250
251initbuildboot: $(BUILDBOOT_XML)
252
253cleanbuildboot:
254 $(VERB)rm -f $(BUILDBOOT_XML) 2>/dev/null
255
256
257$(BUILDBOOT_XML): s_targets $(BUILDBOOT_TEMPLATE)
258 @echo "Creating $(BUILDBOOT_XML) from READMEs"
259 $(VERB)INITBB_CMD=initbuildboot.sh ; \
260 if [ -f "$$INITBB_CMD" ]; then \
261 sh "$$INITBB_CMD" -xml $(BUILDBOOT_XML) -template $(BUILDBOOT_TEMPLATE) ; \
262 else \
263 echo "ERROR: Missing $$INITBB_CMD, can not create $(BUILDBOOT_XML)"; exit 10; \
264 fi
265
266# ****************************************************************************