1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
|
ifneq ($(shell dpkg-parsechangelog -SDistribution),UNRELEASED)
# Use changelog version and date for a release
version := $(shell dpkg-parsechangelog -SVersion)
date := $(shell dpkg-parsechangelog -SDate)
else
# Use git commit hash and date otherwise
date := $(if $(CI_COMMIT_TIMESTAMP),$(CI_COMMIT_TIMESTAMP),@$(shell git log --pretty='%cd' --date=unix HEAD -1))
commit := $(if $(CI_COMMIT_SHA),$(shell printf '%.7s' '$(CI_COMMIT_SHA)'),$(shell git rev-parse --short=7 HEAD))
version := $(shell dpkg-parsechangelog -SVersion -o1 -c1)+git$(shell LC_ALL=C date -u -d '$(date)' +%Y%m%d).$(commit)
endif
# Convert date to fixed format
date := $(shell LC_ALL=C date -u -d '$(date)')
#LANG_PO := ja
LANG_PO :=
LANG_EN := en
LANGS := $(LANG_EN) $(LANG_PO)
DOCBOOK_SOURCES := kernel-handbook.dbk $(wildcard chapter-*.dbk)
SOURCES := $(DOCBOOK_SOURCES) stylesheet.xsl version.ent
# Ensure xmlto uses UTF-8 and not numbered entities
unexport LC_ALL
export LC_CTYPE=C.UTF-8
all: $(patsubst %,stamps/build-%,$(LANGS))
stamps/build-en: $(SOURCES)
xmlto -o kernel-handbook.html -m stylesheet.xsl html kernel-handbook.dbk
mkdir -p $(@D)
touch $@
stamps/build-%: $(SOURCES) po4a/kernel-handbook.%.po
mkdir -p kernel-handbook.$*.dbk
ln -sf ../version.ent kernel-handbook.$*.dbk/
for src in $(DOCBOOK_SOURCES); do \
po4a-translate -f docbook -m "$$src" -p po4a/kernel-handbook.$*.po -k 0 -l kernel-handbook.$*.dbk/"$$src" || exit; \
done
xmlto -o kernel-handbook.$*.html -m stylesheet.xsl html kernel-handbook.$*.dbk/kernel-handbook.dbk
mkdir -p $(@D)
touch $@
clean:
rm -rf kernel-handbook.html
$(foreach lng,$(LANGS), \
rm -rf kernel-handbook.$(lng).html; \
rm -rf kernel-handbook.$(lng).dbk; \
)
rm -rf stamps
rm -f version.ent
version.ent: FORCE
if [ "$(version)" != \
"$$(sed 's/<!ENTITY version *"\(.*\)">/\1/; t; d' $@)" ]; then \
rm -f $@ && \
echo "<!ENTITY version \"$(version)\">" >> $@ && \
echo "<!ENTITY date \"$(date)\">" >> $@; \
fi
po-update:
$(foreach lng,$(LANG_PO), \
po4a-updatepo -f docbook $(patsubst %,-m %,$(DOCBOOK_SOURCES)) -p po4a/kernel-handbook.$(lng).po; \
)
.PHONY: all clean po-update FORCE
|