| [d63b7ee] | 1 | TOP             := $(shell pwd) | 
|---|
| [879785b] | 2 | RENDERDIR       := $(TOP)/../render | 
|---|
| [2b77c9d4] | 3 |  | 
|---|
| [879785b] | 4 | VALIDATEDIR     := $(RENDERDIR)/validate | 
|---|
|  | 5 | PROFILEDIR      := $(RENDERDIR)/profile | 
|---|
| [2b77c9d4] | 6 |  | 
|---|
| [879785b] | 7 | HTMLDIR         := $(RENDERDIR)/html | 
|---|
|  | 8 | NOCHUNKDIR      := $(RENDERDIR)/nochunk | 
|---|
|  | 9 |  | 
|---|
|  | 10 | FODIR           := $(RENDERDIR)/fo | 
|---|
|  | 11 | PDFDIR          := $(RENDERDIR)/pdf | 
|---|
|  | 12 |  | 
|---|
|  | 13 | TROUBLEDIR      := $(RENDERDIR)/trouble | 
|---|
|  | 14 | DUMPDIR         := $(RENDERDIR)/commands | 
|---|
|  | 15 | DLLISTDIR       := $(RENDERDIR)/download-list | 
|---|
| [157ab39] | 16 |  | 
|---|
| [879785b] | 17 | CHUNK_QUIET     := 1 | 
|---|
|  | 18 | ROOT_ID         := | 
|---|
| [157ab39] | 19 |  | 
|---|
| [b47a4a1] | 20 | ARCHS           := x86 x86_64 x86_64-64 \ | 
|---|
|  | 21 | sparc sparc64 sparc64-64 \ | 
|---|
|  | 22 | mips mips64 mips64-64 \ | 
|---|
| [7b3a40d] | 23 | ppc ppc64 ppc64-64 | 
|---|
| [157ab39] | 24 |  | 
|---|
| [fd5c672] | 25 | ifdef V | 
|---|
|  | 26 | Q = | 
|---|
|  | 27 | else | 
|---|
|  | 28 | Q = @ | 
|---|
|  | 29 | endif | 
|---|
|  | 30 |  | 
|---|
| [879785b] | 31 | .PHONY: clfs lfs | 
|---|
|  | 32 | clfs lfs: html | 
|---|
| [157ab39] | 33 |  | 
|---|
| [b47a4a1] | 34 | .PHONY: tidy tidy-f tidy-d | 
|---|
| [157ab39] | 35 | ifeq ($(shell which tidy >/dev/null 2>&1 && echo yes),yes) | 
|---|
|  | 36 | tidy: | 
|---|
| [879785b] | 37 | @$(MAKE) --no-print-directory tidy-d TIDY_DIR=$(HTMLDIR) | 
|---|
| [c695188] | 38 |  | 
|---|
|  | 39 | tidy-f: | 
|---|
|  | 40 | @echo "Running tidy on F:$(shell basename $(TIDY_FILE))" | 
|---|
|  | 41 | @$(TOP)/tidy.sh "$(TIDY_FILE)" | 
|---|
|  | 42 |  | 
|---|
|  | 43 | tidy-d: | 
|---|
|  | 44 | @echo "Running tidy on D:$(shell basename $(TIDY_DIR))" | 
|---|
|  | 45 | @$(TOP)/tidy.sh "$(TIDY_DIR)" | 
|---|
| [157ab39] | 46 | else | 
|---|
| [c695188] | 47 | tidy tidy-f tidy-d: | 
|---|
| [fd5c672] | 48 | @echo "Tidy is not installed on this system" | 
|---|
| [157ab39] | 49 | endif | 
|---|
|  | 50 |  | 
|---|
| [b47a4a1] | 51 | .PHONY: titlepage | 
|---|
| [157ab39] | 52 | titlepage: | 
|---|
| [c695188] | 53 | @echo "Rendering the top-level index..." | 
|---|
| [879785b] | 54 | $(Q)xsltproc --nonet --output $(HTMLDIR)/index.html \ | 
|---|
| [d63b7ee] | 55 | $(TOP)/stylesheets/top-index.xsl \ | 
|---|
|  | 56 | $(TOP)/index.xml | 
|---|
| [879785b] | 57 | @$(MAKE) --no-print-directory tidy-f TIDY_FILE=$(HTMLDIR)/index.html | 
|---|
| [b47a4a1] | 58 |  | 
|---|
| [879785b] | 59 | ARCHS_VD_XML := $(ARCHS:%=%-validate_dump-xml) | 
|---|
| [b47a4a1] | 60 | .PHONY: $(ARCHS_VD_XML) | 
|---|
|  | 61 | $(ARCHS_VD_XML): override arch = $(@:%-validate_dump-xml=%) | 
|---|
| [879785b] | 62 | $(ARCHS_VD_XML): | 
|---|
| [b47a4a1] | 63 | @echo "Validating $(arch) book..." | 
|---|
| [879785b] | 64 | $(Q)mkdir -p $(VALIDATEDIR) | 
|---|
| [da28cc3] | 65 | $(Q)xmllint --nonet --noent --xinclude \ | 
|---|
|  | 66 | --relaxng $(TOP)/schema/docbook/4.5/rng/docbook.rng \ | 
|---|
| [879785b] | 67 | -o $(VALIDATEDIR)/$(arch)-full.xml \ | 
|---|
| [d63b7ee] | 68 | $(TOP)/$(arch)-index.xml | 
|---|
| [ff39de2] | 69 |  | 
|---|
| [879785b] | 70 | ARCHS_P_XML := $(ARCHS:%=%-profiled-xml) | 
|---|
| [b47a4a1] | 71 | .PHONY: $(ARCHS_P_XML) | 
|---|
|  | 72 | $(ARCHS_P_XML): override arch = $(@:%-profiled-xml=%) | 
|---|
| [879785b] | 73 | $(ARCHS_P_XML): | 
|---|
| [b47a4a1] | 74 | @$(MAKE) --no-print-directory $(arch)-validate_dump-xml | 
|---|
| [879785b] | 75 | @echo "Generating profiled $(arch) book..." | 
|---|
|  | 76 | $(Q)mkdir -p $(PROFILEDIR) | 
|---|
| [fd5c672] | 77 | $(Q)xsltproc --nonet --stringparam profile.condition html \ | 
|---|
| [879785b] | 78 | --output $(PROFILEDIR)/$(arch)-html.xml \ | 
|---|
| [d63b7ee] | 79 | $(TOP)/stylesheets/lfs-xsl/profile.xsl \ | 
|---|
| [879785b] | 80 | $(VALIDATEDIR)/$(arch)-full.xml | 
|---|
| [bc7834d] | 81 |  | 
|---|
| [879785b] | 82 | ARCHS_HTML := $(ARCHS:%=%-html) | 
|---|
|  | 83 | .PHONY: html render $(ARCHS_HTML) | 
|---|
|  | 84 | html render: $(ARCHS_HTML) titlepage | 
|---|
| [b47a4a1] | 85 | $(ARCHS_HTML): override arch = $(@:%-html=%) | 
|---|
| [879785b] | 86 | $(ARCHS_HTML): | 
|---|
| [b47a4a1] | 87 | @$(MAKE) --no-print-directory $(arch)-profiled-xml | 
|---|
| [fd5c672] | 88 |  | 
|---|
| [b47a4a1] | 89 | @echo "Rendering chunked XHTML of $(arch)..." | 
|---|
| [879785b] | 90 | $(Q)mkdir -p $(HTMLDIR)/$(arch) | 
|---|
| [fd5c672] | 91 | $(Q)xsltproc --nonet -stringparam chunk.quietly $(CHUNK_QUIET) \ | 
|---|
|  | 92 | -stringparam rootid "$(ROOT_ID)" \ | 
|---|
| [879785b] | 93 | -stringparam base.dir $(HTMLDIR)/$(arch)/ \ | 
|---|
| [d63b7ee] | 94 | $(TOP)/stylesheets/clfs-chunked.xsl \ | 
|---|
| [879785b] | 95 | $(PROFILEDIR)/$(arch)-html.xml | 
|---|
| [fd5c672] | 96 |  | 
|---|
| [b47a4a1] | 97 | @echo "Copying CSS code and images for $(arch)..." | 
|---|
| [879785b] | 98 | $(Q)mkdir -p $(HTMLDIR)/$(arch)/stylesheets | 
|---|
| [d63b7ee] | 99 | $(Q)cp $(TOP)/stylesheets/lfs-xsl/*.css $(HTMLDIR)/$(arch)/stylesheets | 
|---|
| [879785b] | 100 | $(Q)sed -i -e "s@../stylesheets@stylesheets@g" $(HTMLDIR)/$(arch)/*.html | 
|---|
|  | 101 | $(Q)mkdir -p $(HTMLDIR)/$(arch)/images | 
|---|
| [d63b7ee] | 102 | $(Q)cp $(TOP)/images/*.png $(HTMLDIR)/$(arch)/images | 
|---|
| [879785b] | 103 | $(Q)sed -i -e "s@../images@images@g" $(HTMLDIR)/$(arch)/*.html | 
|---|
|  | 104 |  | 
|---|
|  | 105 | @$(MAKE) --no-print-directory tidy-d TIDY_DIR=$(HTMLDIR)/$(arch) | 
|---|
|  | 106 |  | 
|---|
|  | 107 | ARCHS_NOCHUNKS := $(ARCHS:%=%-nochunks) | 
|---|
|  | 108 | .PHONY: nochunks $(ARCHS_NOCHUNKS) | 
|---|
|  | 109 | nochunks: $(ARCHS_NOCHUNKS) | 
|---|
| [b47a4a1] | 110 | $(ARCHS_NOCHUNKS): override arch = $(@:%-nochunks=%) | 
|---|
| [879785b] | 111 | $(ARCHS_NOCHUNKS): | 
|---|
| [b47a4a1] | 112 | @$(MAKE) --no-print-directory $(arch)-profiled-xml | 
|---|
| [fd5c672] | 113 |  | 
|---|
| [b47a4a1] | 114 | @echo "Rendering Single File HTML of $(arch)..." | 
|---|
| [879785b] | 115 | $(Q)mkdir -p $(NOCHUNKDIR) | 
|---|
| [fd5c672] | 116 | $(Q)xsltproc --nonet -stringparam rootid "$(ROOT_ID)" \ | 
|---|
| [879785b] | 117 | --output $(NOCHUNKDIR)/CLFS-$(arch).html \ | 
|---|
| [d63b7ee] | 118 | $(TOP)/stylesheets/clfs-nochunks.xsl \ | 
|---|
| [879785b] | 119 | $(PROFILEDIR)/$(arch)-html.xml | 
|---|
| [fd5c672] | 120 |  | 
|---|
| [879785b] | 121 | @$(MAKE) --no-print-directory tidy-f TIDY_FILE=$(NOCHUNKDIR)/CLFS-$(arch).html | 
|---|
| [157ab39] | 122 |  | 
|---|
| [879785b] | 123 | ARCHS_FO := $(ARCHS:%=%-fo) | 
|---|
|  | 124 | .PHONY: fo $(ARCHS_FO) | 
|---|
|  | 125 | fo: $(ARCHS_FO) | 
|---|
|  | 126 | $(ARCHS_FO): override arch = $(@:%-fo=%) | 
|---|
|  | 127 | $(ARCHS_FO): | 
|---|
| [b47a4a1] | 128 | @$(MAKE) --no-print-directory $(arch)-profiled-xml | 
|---|
| [fd5c672] | 129 |  | 
|---|
| [b47a4a1] | 130 | @echo "Generating FO file of $(arch)..." | 
|---|
| [879785b] | 131 | @mkdir -p $(FODIR) | 
|---|
| [fd5c672] | 132 | $(Q)xsltproc --nonet -stringparam rootid "$(ROOT_ID)" \ | 
|---|
| [879785b] | 133 | --output $(FODIR)/$(arch).fo \ | 
|---|
| [d63b7ee] | 134 | $(TOP)/stylesheets/clfs-pdf.xsl \ | 
|---|
| [879785b] | 135 | $(PROFILEDIR)/$(arch)-html.xml | 
|---|
|  | 136 | $(Q)sed -i -e 's/span="inherit"/span="all"/' $(FODIR)/$(arch).fo | 
|---|
|  | 137 |  | 
|---|
|  | 138 | ARCHS_PDF := $(ARCHS:%=%-pdf) | 
|---|
|  | 139 | .PHONY: pdf $(ARCHS_PDF) | 
|---|
|  | 140 | pdf: $(ARCHS_PDF) | 
|---|
|  | 141 | $(ARCHS_PDF): override arch = $(@:%-pdf=%) | 
|---|
|  | 142 | $(ARCHS_PDF): | 
|---|
|  | 143 | @$(MAKE) --no-print-directory $(arch)-fo | 
|---|
| [157ab39] | 144 |  | 
|---|
| [b47a4a1] | 145 | @echo "Rendering PDF of $(arch)..." | 
|---|
| [879785b] | 146 | $(Q)mkdir -p $(PDFDIR) | 
|---|
|  | 147 | $(Q)fop $(FODIR)/$(arch).fo $(PDFDIR)/CLFS-$(arch).pdf | 
|---|
| [157ab39] | 148 |  | 
|---|
| [879785b] | 149 | ARCHS_VALIDATE := $(ARCHS:%=%-validate) | 
|---|
|  | 150 | .PHONY: validate $(ARCHS_VALIDATE) | 
|---|
|  | 151 | validate: $(ARCHS_VALIDATE) | 
|---|
| [b47a4a1] | 152 | $(ARCHS_VALIDATE): override arch =  $(@:%-validate=%) | 
|---|
| [157ab39] | 153 | $(ARCHS_VALIDATE): | 
|---|
| [b47a4a1] | 154 | @echo "Validating $(arch)..." | 
|---|
| [da28cc3] | 155 | $(Q)xmllint --xinclude --noout --nonet \ | 
|---|
|  | 156 | --relaxng $(TOP)/schema/docbook/4.5/rng/docbook.rng \ | 
|---|
| [d63b7ee] | 157 | $(TOP)/$(arch)-index.xml | 
|---|
| [879785b] | 158 |  | 
|---|
|  | 159 | ARCHS_TROUBLE := $(ARCHS:%=%-trouble) | 
|---|
|  | 160 | .PHONY: trouble $(ARCHS_TROUBLE) | 
|---|
|  | 161 | trouble: $(ARCHS_TROUBLE) | 
|---|
|  | 162 | $(ARCHS_TROUBLE): override arch = $(@:%-trouble=%) | 
|---|
|  | 163 | $(ARCHS_TROUBLE): | 
|---|
|  | 164 | @echo "Troubleshooting $(arch)..." | 
|---|
|  | 165 | @mkdir -p $(TROUBLEDIR) | 
|---|
| [da28cc3] | 166 | $(Q)xmllint --xinclude --nonet \ | 
|---|
|  | 167 | --relaxng $(TOP)/schema/docbook/4.5/rng/docbook.rng \ | 
|---|
| [879785b] | 168 | -o $(TROUBLEDIR)/dump-$(arch) \ | 
|---|
| [d63b7ee] | 169 | $(TOP)/$(arch)-index.xml | 
|---|
| [da28cc3] | 170 | $(Q)xmllint --xinclude --noout --nonet \ | 
|---|
|  | 171 | --relaxng $(TOP)/schema/docbook/4.5/rng/docbook.rng \ | 
|---|
| [879785b] | 172 | $(TROUBLEDIR)/dump-$(arch) | 
|---|
|  | 173 | @echo "You can now look at $(TROUBLEDIR)/dump-$(arch) to see the errors" | 
|---|
|  | 174 |  | 
|---|
|  | 175 | ARCHS_DUMP := $(ARCHS:%=%-dump) | 
|---|
|  | 176 | .PHONY: dump-commands $(ARCHS_DUMP) | 
|---|
|  | 177 | dump-commands: $(ARCHS_DUMP) | 
|---|
|  | 178 | $(ARCHS_DUMP): override arch = $(@:%-dump=%) | 
|---|
| [157ab39] | 179 | $(ARCHS_DUMP): | 
|---|
| [b47a4a1] | 180 | @echo "Extracting commands from $(arch)..." | 
|---|
|  | 181 | $(Q)mkdir -p $(DUMPDIR)/$(arch) | 
|---|
| [879785b] | 182 | $(Q)xsltproc --xinclude --nonet \ | 
|---|
|  | 183 | --output $(DUMPDIR)/$(arch)/ \ | 
|---|
| [d63b7ee] | 184 | $(TOP)/stylesheets/dump-commands.xsl \ | 
|---|
|  | 185 | $(TOP)/$(arch)-index.xml | 
|---|
| [157ab39] | 186 |  | 
|---|
| [879785b] | 187 | ARCHS_DLLIST := $(ARCHS:%=%-dllist) | 
|---|
|  | 188 | .PHONY: download-list $(ARCHS_DLLIST) | 
|---|
|  | 189 | download-list: $(ARCHS_DLLIST) | 
|---|
| [b47a4a1] | 190 | $(ARCHS_DLLIST): override arch = $(@:%-dllist=%) | 
|---|
| [157ab39] | 191 | $(ARCHS_DLLIST): | 
|---|
| [48bfbe9] | 192 | @echo "Creating download list for $(arch)..." | 
|---|
| [fd5c672] | 193 | $(Q)mkdir -p $(DLLISTDIR) | 
|---|
| [879785b] | 194 | $(Q)xsltproc --xinclude --nonet \ | 
|---|
|  | 195 | --output $(DLLISTDIR)/$(arch).list \ | 
|---|
| [d63b7ee] | 196 | $(TOP)/stylesheets/wget.xsl \ | 
|---|
|  | 197 | $(TOP)/$(arch)-index.xml | 
|---|
| [48bfbe9] | 198 |  | 
|---|
|  | 199 | ARCHS_MD5LIST := $(ARCHS:%=%-md5list) | 
|---|
|  | 200 | .PHONY: md5-list $(ARCHS_MD5LIST) | 
|---|
|  | 201 | md5-list: $(ARCHS_MD5LIST) | 
|---|
|  | 202 | $(ARCHS_MD5LIST): override arch = $(@:%-md5list=%) | 
|---|
|  | 203 | $(ARCHS_MD5LIST): | 
|---|
|  | 204 | @echo "Creating md5 hash list for $(arch)..." | 
|---|
|  | 205 | $(Q)mkdir -p $(DLLISTDIR) | 
|---|
|  | 206 | $(Q)xsltproc --xinclude --nonet \ | 
|---|
| [b1a30db] | 207 | --output $(DLLISTDIR)/$(arch).md5sum \ | 
|---|
|  | 208 | $(TOP)/stylesheets/md5sum.xsl \ | 
|---|
|  | 209 | $(TOP)/$(arch)-index.xml | 
|---|
|  | 210 |  | 
|---|
| [879785b] | 211 | FG_GREEN := $(shell echo -e '\e[0;32m') | 
|---|
|  | 212 | FG_BLUE := $(shell echo -e '\e[0;34m') | 
|---|
|  | 213 | FG_DEFAULT := $(shell echo -e '\e[0;0m') | 
|---|
| [07114c98] | 214 | help: | 
|---|
| [879785b] | 215 | @echo "Output: $(RENDERDIR)" | 
|---|
| [2b77c9d4] | 216 | @echo | 
|---|
| [157ab39] | 217 | @echo "HTML Targets" | 
|---|
| [879785b] | 218 | @echo "  $(FG_GREEN)clfs lfs tidy html render titlepage $(FG_BLUE)$(ARCHS_HTML)$(FG_DEFAULT)" | 
|---|
| [157ab39] | 219 | @echo | 
|---|
|  | 220 | @echo "NoChunks Targets" | 
|---|
| [b47a4a1] | 221 | @echo "  $(FG_GREEN)nochunks tidy $(FG_BLUE)$(ARCHS_NOCHUNKS)$(FG_DEFAULT)" | 
|---|
| [157ab39] | 222 | @echo | 
|---|
| [879785b] | 223 | @echo "FO Targets" | 
|---|
|  | 224 | @echo "  $(FG_GREEN)fo $(FG_BLUE)$(ARCHS_FO)$(FG_DEFAULT)" | 
|---|
|  | 225 | @echo | 
|---|
| [157ab39] | 226 | @echo "PDF Targets" | 
|---|
| [b47a4a1] | 227 | @echo "  $(FG_GREEN)pdf $(FG_BLUE)$(ARCHS_PDF)$(FG_DEFAULT)" | 
|---|
| [157ab39] | 228 | @echo | 
|---|
|  | 229 | @echo "Validate Targets" | 
|---|
| [b47a4a1] | 230 | @echo "  $(FG_GREEN)validate $(FG_BLUE)$(ARCHS_VALIDATE)$(FG_DEFAULT)" | 
|---|
| [157ab39] | 231 | @echo | 
|---|
|  | 232 | @echo "Trouble Targets" | 
|---|
| [b47a4a1] | 233 | @echo "  $(FG_GREEN)trouble $(FG_BLUE)$(ARCHS_TROUBLE)$(FG_DEFAULT)" | 
|---|
| [157ab39] | 234 | @echo | 
|---|
|  | 235 | @echo "Dump-Commands Targets" | 
|---|
| [b47a4a1] | 236 | @echo "  $(FG_GREEN)dump-commands $(FG_BLUE)$(ARCHS_DUMP)$(FG_DEFAULT)" | 
|---|
| [157ab39] | 237 | @echo | 
|---|
|  | 238 | @echo "Download-List Targets" | 
|---|
| [b47a4a1] | 239 | @echo "  $(FG_GREEN)download-list $(FG_BLUE)$(ARCHS_DLLIST)$(FG_DEFAULT)" | 
|---|
| [2e0b90a] | 240 | @echo | 
|---|
| [48bfbe9] | 241 | @echo "md5-List Targets" | 
|---|
|  | 242 | @echo "  $(FG_GREEN)md5-list $(FG_BLUE)$(ARCHS_MD5LIST)$(FG_DEFAULT)" | 
|---|