@@ -69,19 +69,23 @@ SPECREMARK = from git branch: $(shell echo `git symbolic-ref --short HEAD`) \
6969 commit: $(shell echo `git log -1 --format="% H"`)
7070endif
7171
72- ATTRIBOPTS_NO_VERSION = -a revdate="$(SPECDATE ) " \
73- -a revremark="$(SPECREMARK ) " \
74- -a stem=latexmath \
75- -a generated=$(GENERATED ) \
76- -a sectnumlevels=5
72+ ATTRIBOPTS_NO_VERSION = -a revdate="$(SPECDATE ) " \
73+ -a revremark="$(SPECREMARK ) " \
74+ -a stem=latexmath \
75+ -a generated=$(GENERATED ) \
76+ -a sectnumlevels=5
7777
7878ATTRIBOPTS = -a revnumber="$(SPECREVISION ) " \
79- $(ATTRIBOPTS_NO_VERSION )
79+ $(ATTRIBOPTS_NO_VERSION )
8080
81- ADOCEXTS = -r $(CURDIR ) /config/sectnumoffset-treeprocessor.rb -r $(CURDIR ) /config/spec-macros.rb
81+ ADOCEXTS = -r $(CURDIR ) /config/sectnumoffset-treeprocessor.rb -r $(CURDIR ) /config/spec-macros.rb
8282ADOCOPTS_NO_VERSION = -d book $(ATTRIBOPTS_NO_VERSION ) $(NOTEOPTS ) $(VERBOSE ) $(ADOCEXTS )
83- ADOCOPTS = -d book $(ATTRIBOPTS ) $(NOTEOPTS ) $(VERBOSE ) $(ADOCEXTS )
84- ADOCMANOPTS = -d manpage $(ATTRIBOPTS ) $(NOTEOPTS ) $(VERBOSE ) $(ADOCEXTS )
83+ ADOCCOMMONOPTS = -a apispec="$(CURDIR ) /api" \
84+ -a config="$(CURDIR ) /config" \
85+ -a cspec="$(CURDIR ) /c" \
86+ $(ATTRIBOPTS ) $(NOTEOPTS ) $(VERBOSE ) $(ADOCEXTS )
87+ ADOCOPTS = -d book $(ADOCCOMMONOPTS )
88+ ADOCMANOPTS = -d manpage $(ADOCCOMMONOPTS )
8589
8690# ADOCHTMLOPTS relies on the relative runtime path from the output HTML
8791# file to the katex scripts being set with KATEXDIR. This is overridden
@@ -103,6 +107,7 @@ ADOCPDFOPTS = $(ADOCPDFEXTS) -a mathematical-format=svg \
103107# the API interface includes.
104108# GENDEPENDS could have multiple dependencies.
105109GENERATED = $(CURDIR ) /generated
110+ REFPATH = $(GENERATED ) /refpage
106111APIINCDIR = $(GENERATED ) /api
107112VERSIONDIR = $(APIINCDIR ) /version-notes
108113GENDEPENDS = $(APIINCDIR ) /timeMarker
@@ -395,9 +400,9 @@ clean_pdf:
395400 $(QUIET )$(RMRF ) $(PDFDIR ) $(PDFMATHDIR )
396401
397402clean_generated :
398- $(QUIET )$(RMRF ) $(APIINCDIR ) /* $(SCRIPTS ) /clapi.py
399- $(QUIET )$(RM ) man/apispec.txt $(MANGENSOURCES ) $(MANTMP )
403+ $(QUIET )$(RMRF ) $(APIINCDIR ) /* $(GENERATED ) /api.py $($(REFPATH ) /
400404 $(QUIET )$(RMRF ) $(PDFMATHDIR )
405+ $(QUIET )$(RMRF ) $(GENERATED ) /__pycache__
401406
402407# Ref page targets for individual pages
403408MANDIR := man
@@ -406,22 +411,12 @@ MANSECTION := 3
406411# These lists should be autogenerated
407412
408413# Ref page sources for all CL interfaces
409- # Most are autogenerated; $(MANCOPYRIGHT) are static
410-
411- # Static asciidoctor files in the man/ directory that aren't refpages
412- MANCOPYRIGHT = $(MANDIR ) /copyright-ccby.txt $(MANDIR ) /footer.txt
414+ # Most are autogenerated; man/static/*.txt are hand-coded at present
413415
414416# MANSOURCES is the list of individual refpage sources, excluding the
415- # copyright, single-page index, and any include files.
416- MANSOURCES = $(filter-out $(MANCOPYRIGHT ) $(MANDIR ) /apispec.txt $(wildcard $(MANDIR ) /* Inc.txt) , $(wildcard $(MANDIR ) /[A-Za-z]* .txt) )
417-
418- # MANGENSOURCES is the list of generated refpage sources, excluding the
419- # static index page but including the files copied from static/
420- MANGENSOURCES = $(filter-out $(MANDIR ) /intro.txt, $(MANSOURCES ) )
421-
422- # MANTMP are temp files created by the rules
423- MANTMP = $(LOGFILE ) $(MANDIR ) /tocbody $(MANDIR ) /toc.html \
424- $(MANDIR ) /rewritebody $(MANDIR ) /.htaccess
417+ # single-page index, boilerplate document footer, and include files.
418+ # For now, always build all refpages.
419+ MANSOURCES = $(filter-out $(REFPATH ) /apispec.txt $(REFPATH ) /footer.txt $(wildcard $(REFPATH ) /* Inc.txt) , $(wildcard $(REFPATH ) /* .txt) )
425420
426421# Generation of ref page asciidoctor sources by extraction from the
427422# specification(s).
@@ -432,49 +427,53 @@ MANTMP = $(LOGFILE) $(MANDIR)/tocbody $(MANDIR)/toc.html \
432427#
433428# Should pass in $(EXTOPTIONS) to determine which pages to generate.
434429# For now, all core and extension ref pages are extracted by genRef.py.
435- LOGFILE = man/logfile
436430# # Temporary - eventually should be all spec asciidoctor source files
437- SPECFILES = $(wildcard api/* .asciidoc) $(wildcard man/static/* .txt) OpenCL_API.txt OpenCL_C.txt
438- # #SPECFILES = api/opencl_platform_layer.txt
431+ SPECFILES = $(wildcard api/* .asciidoc) OpenCL_API.txt OpenCL_C.txt
439432SCRIPTS = scripts
440433GENREF = $(SCRIPTS ) /genRef.py
434+ LOGFILE = $(REFPATH ) /refpage.log
441435
442- man/apispec.txt : $(SPECFILES ) $(GENREF ) $(SCRIPTS ) /reflib.py $(SCRIPTS ) /clapi.py
443- $(PYTHON ) $(GENREF ) -rewrite man/rewritebody -toc man/tocbody \
436+ refpages : $(REFPATH ) /apispec.txt
437+ $(REFPATH ) /apispec.txt : $(SPECFILES ) $(GENREF ) $(SCRIPTS ) /reflib.py $(GENERATED ) /api.py
438+ $(QUIET )$(MKDIR ) $(REFPATH )
439+ $(PYTHON ) $(GENREF ) -genpath $(GENERATED ) -basedir $(REFPATH ) \
440+ -rewrite $(REFPATH ) /rewritebody -toc $(REFPATH ) /tocbody \
444441 -log $(LOGFILE ) $(SPECFILES )
445- cat man/tochead man/tocbody man/toctail > man/toc.html
446- cat man/rewritehead > man/.htaccess
447- sort < man/rewritebody >> man/.htaccess
448- $(CP ) -p $(MANDIR ) /static/* .txt $(MANDIR ) /
442+ cat $(MANDIR ) /tochead $(REFPATH ) /tocbody $(MANDIR ) /toctail > $(REFPATH ) /toc.html
443+ (cat $( MANDIR) /rewritehead ; \
444+ echo ; echo " # Aliases hard-coded in refpage markup" ; \
445+ sort < $(REFPATH ) /rewritebody) > $(REFPATH ) /.htaccess
446+ $(CP ) $(MANDIR ) /static/* .txt $(REFPATH )
449447
450448# These targets are HTML5 ref pages
451449#
452450# The recursive $(MAKE) is an apparently unavoidable hack, since the
453451# actual list of man page sources isn't known until after
454- # man /apispec.txt is generated. $(GENDEPENDS) is generated before
452+ # $(REFPATH) /apispec.txt is generated. $(GENDEPENDS) is generated before
455453# running the recursive make, so it doesn't trigger twice
456- manhtmlpages : man /apispec.txt $(GENDEPENDS )
454+ manhtmlpages : $( REFPATH ) /apispec.txt $(GENDEPENDS )
457455 $(MAKE ) -e buildmanpages
458- $(CP ) $(MANDIR ) /* .jpg $(MANDIR ) /* .gif $(MANDIR ) /* .css $(MANDIR ) /* .html $(MANHTMLDIR )
459- $(CP ) $(MANDIR ) /.htaccess $(MANHTMLDIR ) /.htaccess
456+ $(CP ) $(MANDIR ) /* .html $(MANDIR ) /* .css $(MANDIR ) /* .gif $(MANDIR ) /* .jpg $(MANHTMLDIR )
457+ $(CP ) $(REFPATH ) /.htaccess $(REFPATH ) / * .html $( MANHTMLDIR )
460458
461459MANHTMLDIR = $(OUTDIR ) /man/html
462- MANHTML = $(MANSOURCES:$(MANDIR ) /%.txt=$(MANHTMLDIR ) /%.html )
460+ MANHTML = $(MANSOURCES:$(REFPATH ) /%.txt=$(MANHTMLDIR ) /%.html )
461+
463462buildmanpages : $(MANHTML )
464463
465464$(MANHTMLDIR ) /% .html : KATEXDIR = ../../katex
466- $(MANHTMLDIR ) /% .html : $(MANDIR ) /% .txt $(MANCOPYRIGHT ) $(GENDEPENDS ) $(KATEXINST )
465+ $(MANHTMLDIR ) /% .html : $(REFPATH ) /% .txt $(MANCOPYRIGHT ) $(GENDEPENDS ) $(KATEXINST )
467466 $(QUIET )$(MKDIR ) $(MANHTMLDIR )
468467 $(QUIET )$(ASCIIDOCTOR ) -b html5 -a cross-file-links \
469468 $(ADOCMANOPTS ) $(ADOCHTMLOPTS ) -o $@ $<
470469
471- $(MANHTMLDIR ) /intro.html : $(MANDIR ) /intro.txt $(MANCOPYRIGHT )
470+ $(MANHTMLDIR ) /intro.html : $(REFPATH ) /intro.txt $(MANCOPYRIGHT )
472471 $(QUIET )$(MKDIR ) $(MANHTMLDIR )
473472 $(QUIET )$(ASCIIDOCTOR ) -b html5 -a cross-file-links \
474473 $(ADOCOPTS ) $(ADOCHTMLOPTS ) -o $@ $<
475474
476475# Targets generated from the XML and registry processing scripts
477- # clapi .py - Python encoding of the registry
476+ # api .py - Python encoding of the registry
478477# $(APIINCDIR)/timeMarker - proxy for 'apiinc' - generate API interfaces
479478#
480479# $(GENSCRIPTEXTRA) are extra options that can be passed to the
@@ -489,15 +488,14 @@ VERSIONSCRIPT = $(SCRIPTS)/gen_version_notes.py
489488GENSCRIPTOPTS = $(VERSIONOPTIONS ) $(EXTOPTIONS ) $(GENSCRIPTEXTRA ) -registry $(APIXML )
490489GENSCRIPTEXTRA =
491490
492- $(SCRIPTS ) /clapi .py : $(APIXML ) $(GENSCRIPT )
493- $(QUIET )$(PYTHON ) $(GENSCRIPT ) $(GENSCRIPTOPTS ) -o $(SCRIPTS ) clapi .py
491+ $(GENERATED ) /api .py : $(APIXML ) $(GENSCRIPT )
492+ $(QUIET )$(PYTHON ) $(GENSCRIPT ) $(GENSCRIPTOPTS ) -o $(GENERATED ) api .py
494493
495494apiinc : $(APIINCDIR ) /timeMarker
496495
497496$(APIINCDIR ) /timeMarker : $(APIXML ) $(DICTSCRIPT ) $(GENSCRIPT ) $(VERSIONSCRIPT )
498- $(QUIET )$(MKDIR ) -p $(APIINCDIR )
497+ $(QUIET )$(MKDIR ) $(APIINCDIR )
499498 $(QUIET )$(PYTHON ) $(DICTSCRIPT ) -registry $(APIXML ) -o $(APIINCDIR )
500- $(QUIET )$(MKDIR ) -p $(VERSIONDIR )
499+ $(QUIET )$(MKDIR ) $(VERSIONDIR )
501500 $(QUIET )$(PYTHON ) $(VERSIONSCRIPT ) -registry $(APIXML ) -o $(VERSIONDIR )
502501 $(QUIET )$(PYTHON ) $(GENSCRIPT ) $(GENSCRIPTOPTS ) -o $(APIINCDIR ) apiinc
503-
0 commit comments