## We mostly use $(SERIES) further down, but there are places where we
## need to make the distinction, because certain files are produced
## differently.
-SERIES1=1.1.1
-SERIES3=3.1 3.0
+SERIES1=
+SERIES3=3.3 3.2 3.1 3.0
SERIES=$(SERIES3) $(SERIES1)
## Older series. The second type is for source listings
-OLDSERIES=1.1.0 1.0.2 1.0.1 1.0.0 0.9.8 0.9.7 0.9.6
-OLDSERIES2=1.1.0 1.0.2 1.0.1 1.0.0 0.9.x
+OLDSERIES=1.1.1 1.1.0 1.0.2 1.0.1 1.0.0 0.9.8 0.9.7 0.9.6
+OLDSERIES2=1.1.1 1.1.0 1.0.2 1.0.1 1.0.0 0.9.x
## Series for manual layouts, named similar to SERIES1, SERIES3, SERIES
MANSERIES1=1.1.1 1.0.2
-MANSERIES3=3.1 3.0
+MANSERIES3=3.3 3.2 3.1 3.0
MANSERIES=$(MANSERIES3) $(MANSERIES1)
## Future series, i.e. a series that hasn't had any final release yet.
# repository. This does not include .md files taken from other repositories,
# they have their own special handling.
H_TOP = $(addsuffix .html,\
- $(basename $(shell git ls-files -- *.md)) \
+ $(basename $(shell git ls-files -- *.md | grep -v '^README')) \
$(basename $(basename $(shell git ls-files -- *.md.tt))))
H_COMMUNITY = $(addsuffix .html,\
$(basename $(shell git ls-files -- community/*.md)) \
policies/technical/*.md \
policies/general-supplemental/*.md)) \
$(basename $(basename $(shell git ls-files -- \
- policies/general/*.md \
- policies/technical/*.md))))
+ policies/general/*.md.tt \
+ policies/technical/*.md.tt))))
# We filter out any file starting with 'sub-'... they get special treatment
H_SOURCE= $(addsuffix .html,\
$(basename $(shell git ls-files -- source/*.md \
@rm -f $@
./bin/from-tt $<
-all: suball subdocs manmaster mancross sitemap akamai-purge
+all: suball subdocs manmastertts mancross manhtml akamai-purge
suball: $(SIMPLE) $(SRCLISTS)
-relupd: suball docs sitemap akamai-purge
+relupd: suball docs akamai-purge
-docs: subdocs manpages mancross
+docs: subdocs manpagetts mancross manhtml
subdocs: $(SIMPLEDOCS)
clean:
- rm -f $(SIMPLE) $(SIMPLEDOCS) $(SRCLISTS)
+ rm -rf $(SIMPLE) $(SIMPLEDOCS) $(SRCLISTS)
akamai-purge:
##
## A lot of the work is made with generated rules.
-# makemanpages1 and makemanpages3 creates rules for targets like man-pages-1.1.1,
-# to build the set of man-pages. makemanpages1 is used for pre-3.0 OpenSSL,
-# while makemanpages3 is used for OpenSSL 3.0 and on.
+# makemanpagetts1 and makemanpagetts3 creates rules for targets like man-pagetts-1.1.1,
+# to build the set of man-page templates. makemanpagetts1 is used for pre-3.0 OpenSSL,
+# while makemanpagetts3 is used for OpenSSL 3.0 and on.
# makemanapropos creates rules for targets like man-apropos-1.1.1, to build
# 'apropos' like indexes for all the manpages.
# makemanindexes creates rules for targets like man-index-1.1.1, to build the
# $(1) = input directory in CHECKOUTS, $(2) = release version
# This variant is for pre-3.0 documentation
-define makemanpages1
-man-pages-$(2):
+define makemanpagetts1
+man-pagetts-$(2):
@rm -rf docs/man$(2)
@mkdir -p docs/man$(2) \
docs/man$(2)/man1 \
docs/man$(2)/man3 \
docs/man$(2)/man5 \
docs/man$(2)/man7
- ./bin/mk-manpages $(CHECKOUTS)/$(1)/doc $(2) docs/man$(2)
+ ./bin/mk-manpagetts $(CHECKOUTS)/$(1)/doc $(2) docs/man$(2)
endef
# This variant is for 3.0 documentation
-define makemanpages3
-man-pages-$(2):
+define makemanpagetts3
+man-pagetts-$(2):
@rm -rf docs/man$(2)
@mkdir -p docs/man$(2) \
docs/man$(2)/man1 \
docs/man$(2)/man3 \
docs/man$(2)/man5 \
docs/man$(2)/man7
- ./bin/mk-manpages3 $(CHECKOUTS)/$(1) $(2) docs/man$(2)
+ ./bin/mk-manpagetts3 $(CHECKOUTS)/$(1) $(2) docs/man$(2)
endef
define makemanapropos
docs/man$(2)/man1/index.inc: bin/mk-apropos Makefile
define makemandirdata
docs/man$(2)/man1/dirdata.yaml: docs/sub-dirdata.yaml.tt bin/from-tt Makefile
./bin/from-tt -d docs/man$(2)/man1 \
- releases='$(MANSERIES)' release='$(2)' \
+ releases='$(MANSERIES)' release='$(2)' sectnum=1 \
< $$< > $$@
docs/man$(2)/man3/dirdata.yaml: docs/sub-dirdata.yaml.tt bin/from-tt Makefile
./bin/from-tt -d docs/man$(2)/man3 \
- releases='$(MANSERIES)' release='$(2)' \
+ releases='$(MANSERIES)' release='$(2)' sectnum=3 \
< $$< > $$@
docs/man$(2)/man5/dirdata.yaml: docs/sub-dirdata.yaml.tt bin/from-tt Makefile
./bin/from-tt -d docs/man$(2)/man5 \
- releases='$(MANSERIES)' release='$(2)' \
+ releases='$(MANSERIES)' release='$(2)' sectnum=5 \
< $$< > $$@
docs/man$(2)/man7/dirdata.yaml: docs/sub-dirdata.yaml.tt bin/from-tt Makefile
./bin/from-tt -d docs/man$(2)/man7 \
- releases='$(MANSERIES)' release='$(2)' \
+ releases='$(MANSERIES)' release='$(2)' sectnum=7 \
< $$< > $$@
docs/man$(2)/dirdata.yaml: docs/sub-dirdata.yaml.tt bin/from-tt Makefile
./bin/from-tt -d docs/man$(2) \
< $$< > $$@
endef
define makemanuals1
-$(eval $(call makemanpages1,$(1),$(2)))
+$(eval $(call makemanpagetts1,$(1),$(2)))
$(eval $(call makemanapropos,$(1),$(2)))
$(eval $(call makemanindexes,$(1),$(2)))
$(eval $(call makemandirdata,$(1),$(2)))
endef
define makemanuals3
-$(eval $(call makemanpages3,$(1),$(2)))
+$(eval $(call makemanpagetts3,$(1),$(2)))
$(eval $(call makemanapropos,$(1),$(2)))
$(eval $(call makemanindexes,$(1),$(2)))
$(eval $(call makemandirdata,$(1),$(2)))
# source from $(CHECKOUTS)/openssl-x.y.z-stable/doc
$(foreach S,$(MANSERIES1),$(eval $(call makemanuals1,openssl-$(S)-stable,$(S))))
-MANMASTER_TARGETS = \
- man-pages-master docs/manmaster/index.html \
- $(foreach SEC,1 3 5 7, docs/manmaster/man$(SEC)/index.html)
-manmaster: $(MANMASTER_TARGETS)
-MANPAGES_TARGETS = \
+MANMASTER_DIRS = \
+ $(foreach SEC,1 3 5 7, docs/manmaster/man$(SEC))
+MANMASTERTT_TARGETS = \
+ man-pagetts-master \
+ docs/manmaster/dirdata.yaml docs/manmaster/index.html \
+ $(foreach D,$(MANMASTER_DIRS), $(D)/dirdata.yaml $(D)/index.html)
+manmastertts: $(MANMASTERTT_TARGETS)
+MANPAGE_DIRS = \
$(foreach S,$(MANSERIES), \
- man-pages-$(S) docs/man$(S)/index.html \
- $(foreach SEC,1 3 5 7, docs/man$(S)/man$(SEC)/index.html))
-manpages: manmaster $(MANPAGES_TARGETS)
+ $(foreach SEC,1 3 5 7, docs/man$(S)/man$(SEC)))
+MANPAGETT_TARGETS = \
+ $(foreach S,$(MANSERIES), man-pagetts-$(S) \
+ docs/man$(S)/dirdata.yaml docs/man$(S)/index.html) \
+ $(foreach D,$(MANPAGE_DIRS), $(D)/dirdata.yaml $(D)/index.html)
+manpagetts: manmastertts $(MANPAGETT_TARGETS)
mancross:
./bin/mk-mancross master $(MANSERIES)
+# We can't get all the files when make is started, but we can make the
+# patterns for a for loop.
+MANHTML_TTPATTERNS=$(foreach D,$(MANMASTER_DIRS) $(MANPAGE_DIRS), $(D)/*.md.tt)
+manhtml:
+ ./bin/mk-manhtml '$(MANHTML_TTPATTERNS)'
+
docs/manpages.md: docs/manpages.md.tt Makefile bin/from-tt
@rm -f $@
./bin/from-tt releases='master $(MANSERIES)' $<
@rm -f $@
./bin/from-tt releases='master $(MANSERIES)' $<
-docs/faq.inc: $(wildcard docs/faq-[0-9]-*.txt) Makefile bin/mk-faq
- @rm -f $@
- ./bin/mk-faq docs/faq-[0-9]-*txt >$@
-docs/faq.md: docs/faq.inc
-
######################################################################
##
## Policy page building section
##
## $(SIMPLE) -- SIMPLE GENERATED FILES
##
-.PHONY: sitemap
+.PHONY:
newsflash.inc: news/newsflash.inc
@rm -f $@
head -7 $< >$@
index.md: newsflash.inc inc/legalities.md
-sitemap sitemap.txt: bin/mk-sitemap Makefile
- @rm -f sitemap.txt
- ./bin/mk-sitemap master $(SERIES) > sitemap.txt
-
community/committers.inc: $(PERSONDB) bin/mk-committers Makefile
@rm -f $@
wget -q https://api.openssl.org/0/Group/commit/Members
community/otc.inc: $(PERSONDB) bin/mk-omc Makefile
./bin/mk-omc -n -p -t 'OTC Members' otc otc-inactive > $@
+community/otc.md: community/otc.inc
community/omc.inc: $(PERSONDB) bin/mk-omc Makefile
./bin/mk-omc -n -e -l -p -t 'OMC Members' omc omc-inactive > $@
community/omc.md: community/omc.inc
# We also create a list specifically for the old FIPS module, carefully
# crafting an HTML title with an uppercase 'FIPS' while the subdirectory
# remains named 'fips'
-$(foreach S,fips $(SERIES) $(OLDSERIES2),$(eval $(call mkoldsourceindex,$(S),$(patsubst fips,FIPS,$(S)))))
-$(foreach S,fips $(SERIES) $(OLDSERIES2),$(eval $(call mkoldsourcedirdata,$(S),$(patsubst fips,FIPS,$(S)))))
+$(foreach S,fips $(FUTURESERIES) $(SERIES) $(OLDSERIES2),$(eval $(call mkoldsourceindex,$(S),$(patsubst fips,FIPS,$(S)))))
+$(foreach S,fips $(FUTURESERIES) $(SERIES) $(OLDSERIES2),$(eval $(call mkoldsourcedirdata,$(S),$(patsubst fips,FIPS,$(S)))))
source/old/index.md: source/old/index.md.tt inc/legalities.md \
Makefile bin/from-tt Makefile
@mkdir -p `dirname $@`
@rm -f $@
- ./bin/from-tt releases='$(SERIES) $(OLDSERIES2) fips' $<
+ ./bin/from-tt releases='$(FUTURESERIES) $(SERIES) $(OLDSERIES2) fips' $<
# Extra inc -> markdown dependencies