2016-04-06 10:35:58 +02:00
DGDIR = .
2016-10-11 10:28:30 +02:00
ASCIIDOC_PVE = ./asciidoc-pve
2016-04-06 10:35:58 +02:00
2016-04-29 11:22:28 +02:00
GEN_PACKAGE = pve-doc-generator
DOC_PACKAGE = pve-docs
2016-08-09 07:52:59 +02:00
MEDIAWIKI_PACKAGE = pve-docs-mediawiki
2016-04-06 09:38:55 +02:00
# also update debian/changelog
2017-03-11 07:50:36 +01:00
PKGREL = 4
2016-04-06 09:38:55 +02:00
2016-04-07 12:19:44 +02:00
GITVERSION := $( shell cat .git/refs/heads/master)
2016-08-05 12:34:02 +02:00
ARCH := $( shell dpkg-architecture -qDEB_BUILD_ARCH)
GEN_DEB = ${ GEN_PACKAGE } _${ DOCRELEASE } -${ PKGREL } _${ ARCH } .deb
2016-05-25 07:24:28 +02:00
DOC_DEB = ${ DOC_PACKAGE } _${ DOCRELEASE } -${ PKGREL } _all.deb
2016-08-09 07:52:59 +02:00
MEDIAWIKI_DEB = ${ MEDIAWIKI_PACKAGE } _${ DOCRELEASE } -${ PKGREL } _all.deb
2017-02-03 12:19:30 +01:00
DOC_BUILDDEPS := pve-doc-generator, dblatex, source-highlight, inkscape, imagemagick
2016-04-06 09:38:55 +02:00
2016-10-21 07:46:37 +02:00
2016-10-14 12:26:55 +02:00
all : index .html
2016-11-07 13:44:17 +01:00
.PHONY : verify -images
verify-images :
for i in ./images/screenshot/*.png; do ./png-verify.pl $$ i; done
2016-10-21 07:46:37 +02:00
ADOC_SOURCES_GUESS = $( filter-out %-synopsis.adoc %-opts.adoc %-table.adoc, $( wildcard *.adoc) )
.pve-doc-depends link-refs.json : ${ADOC_SOURCES_GUESS } scan -adoc -refs
2016-10-18 12:37:09 +02:00
./scan-adoc-refs *.adoc --depends .pve-doc-depends.tmp > link-refs.json.tmp
@cmp --quiet .pve-doc-depends .pve-doc-depends.tmp || mv .pve-doc-depends.tmp .pve-doc-depends
@cmp --quiet link-refs.json link-refs.json.tmp || mv link-refs.json.tmp link-refs.json
2016-10-14 12:26:55 +02:00
2016-10-14 13:10:35 +02:00
pve-doc-generator.mk : .pve -doc -depends pve -doc -generator .mk .in
cat pve-doc-generator.mk.in .pve-doc-depends > $@ .tmp
mv $@ .tmp $@
i n c l u d e . / p v e - d o c - g e n e r a t o r . m k
2016-04-09 11:05:23 +02:00
2016-04-29 11:22:28 +02:00
GEN_DEB_SOURCES = \
2016-04-09 11:05:23 +02:00
pve-doc-generator.mk \
2016-10-14 12:26:55 +02:00
${ MANUAL_SOURCES } \
2016-10-14 13:35:03 +02:00
pmxcfs.8-synopsis.adoc \
2016-04-06 09:38:55 +02:00
docinfo.xml
GEN_SCRIPTS = \
2016-11-20 10:25:42 +01:00
gen-ha-groups-opts.pl \
gen-ha-resources-opts.pl \
2016-04-06 12:31:14 +02:00
gen-datacenter.cfg.5-opts.pl \
gen-pct.conf.5-opts.pl \
2016-05-07 11:16:32 +02:00
gen-pct-network-opts.pl \
2016-05-07 14:15:22 +02:00
gen-pct-mountpoint-opts.pl \
2016-04-09 09:46:54 +02:00
gen-qm.conf.5-opts.pl \
2016-04-14 12:51:38 +02:00
gen-vzdump.conf.5-opts.pl \
2016-04-06 09:38:55 +02:00
gen-pve-firewall-cluster-opts.pl \
gen-pve-firewall-host-opts.pl \
gen-pve-firewall-macros-adoc.pl \
gen-pve-firewall-rules-opts.pl \
2016-04-06 12:31:14 +02:00
gen-pve-firewall-vm-opts.pl
2016-04-06 09:38:55 +02:00
2016-04-29 14:13:12 +02:00
API_VIEWER_SOURCES = \
api-viewer/index.html \
api-viewer/apidoc.js
2016-10-06 17:29:03 +02:00
asciidoc-pve : asciidoc -pve .in link -refs .json
cat asciidoc-pve.in link-refs.json >asciidoc-pve.tmp
2016-10-07 12:56:55 +02:00
sed -e s/@RELEASE@/${ DOCRELEASE } / -i asciidoc-pve.tmp
2016-10-06 17:29:03 +02:00
chmod +x asciidoc-pve.tmp
mv asciidoc-pve.tmp asciidoc-pve
2016-10-10 09:14:25 +02:00
pve-docs-mediawiki-import : pve -docs -mediawiki -import .in link -refs .json
cat pve-docs-mediawiki-import.in link-refs.json > pve-docs-mediawiki-import.tmp
chmod +x pve-docs-mediawiki-import.tmp
mv pve-docs-mediawiki-import.tmp pve-docs-mediawiki-import
2016-05-03 20:07:03 +02:00
INDEX_INCLUDES = \
pve-admin-guide.pdf \
pve-admin-guide.epub \
2016-10-20 13:10:07 +02:00
chapter-index-table.adoc \
man1-index-table.adoc \
man5-index-table.adoc \
man8-index-table.adoc \
2016-10-14 12:26:55 +02:00
$( sort $( addsuffix .html, ${ MANUAL_PAGES } ) ${ CHAPTER_LIST } )
2016-05-03 20:07:03 +02:00
2016-11-07 18:12:36 +01:00
ADOC_STDARG = -b $( shell pwd ) /asciidoc/pve-html -f asciidoc/asciidoc-pve.conf -a icons -a data-uri -a " date= $( shell date) " -a " revnumber= ${ DOCRELEASE } "
2016-01-05 11:20:35 +01:00
2016-03-03 10:01:14 +01:00
BROWSER ?= xdg-open
2016-01-23 10:01:28 +01:00
2016-03-23 10:31:15 +01:00
2016-01-05 11:20:35 +01:00
%-nwdiag.svg : %.nwdiag
nwdiag -T svg $* .nwdiag -o $@ ;
2016-09-23 09:28:14 +02:00
README.html : README .adoc
2016-12-01 11:48:28 +01:00
asciidoc -a toc ${ ADOC_STDARG } -o $@ $<
2016-09-23 09:28:14 +02:00
2016-04-30 11:13:12 +02:00
.PHONY : index
index : index .html
2016-05-03 19:52:13 +02:00
$( BROWSER) index.html &
2016-10-21 06:34:01 +02:00
chapter-index-table.adoc : asciidoc -pve
./asciidoc-pve chapter-table >$@ .tmp
2016-10-20 13:10:07 +02:00
mv $@ .tmp $@
2016-10-21 06:34:01 +02:00
man1-index-table.adoc : asciidoc -pve
./asciidoc-pve man1page-table >$@ .tmp
2016-10-20 13:10:07 +02:00
mv $@ .tmp $@
2016-10-21 06:34:01 +02:00
man5-index-table.adoc : asciidoc -pve
./asciidoc-pve man5page-table >$@ .tmp
2016-10-20 13:10:07 +02:00
mv $@ .tmp $@
2016-10-21 06:34:01 +02:00
man8-index-table.adoc : asciidoc -pve
./asciidoc-pve man8page-table >$@ .tmp
2016-10-20 13:10:07 +02:00
mv $@ .tmp $@
index.html : index .adoc ${API_VIEWER_SOURCES } ${INDEX_INCLUDES }
2016-10-18 13:12:15 +02:00
asciidoc ${ ADOC_STDARG } -o $@ index.adoc
2016-01-05 11:20:35 +01:00
2016-10-14 12:26:55 +02:00
pve-admin-guide.html : ${PVE_ADMIN_GUIDE_ADOCDEPENDS }
2016-11-07 18:12:36 +01:00
asciidoc -a pvelogo ${ ADOC_STDARG } -o $@ pve-admin-guide.adoc
2016-01-05 11:20:35 +01:00
2016-10-14 12:26:55 +02:00
pve-admin-guide.chunked : ${PVE_ADMIN_GUIDE_ADOCDEPENDS }
2016-04-29 18:16:33 +02:00
rm -rf pve-admin-guide.chunked
a2x -a docinfo -a docinfo1 -a icons -f chunked pve-admin-guide.adoc
2016-11-07 17:41:51 +01:00
PVE_DOCBOOK_CONF = -b $( shell pwd ) /asciidoc/pve-docbook -f asciidoc/asciidoc-pve.conf
2016-12-09 16:46:38 +01:00
pve-admin-guide-docinfo.xml : pve -admin -guide -docinfo .xml .in
sed -e 's/@RELEASE@/${DOCRELEASE}/' <$< >$@
2016-10-14 12:26:55 +02:00
pve-admin-guide.pdf : ${PVE_ADMIN_GUIDE_ADOCDEPENDS } docinfo .xml pve -admin -guide -docinfo .xml
2016-10-01 16:23:12 +02:00
inkscape -z -D --export-pdf= proxmox-logo.pdf images/proxmox-logo.svg
2016-10-01 13:22:13 +02:00
inkscape -z -D --export-pdf= proxmox-ci-header.pdf images/proxmox-ci-header.svg
2016-04-06 10:35:58 +02:00
grep " >Release ${ DOCRELEASE } < " pve-admin-guide-docinfo.xml || ( echo "wrong release in pve-admin-guide-docinfo.xml" && false ) ;
2016-11-07 17:41:51 +01:00
a2x -a docinfo -a docinfo1 -f pdf -L --asciidoc-opts= " ${ PVE_DOCBOOK_CONF } " --dblatex-opts "-p ./asciidoc/pve-dblatex.xsl -s asciidoc/dblatex-custom.sty" pve-admin-guide.adoc
2016-10-01 16:23:12 +02:00
rm proxmox-logo.pdf proxmox-ci-header.pdf
2016-01-05 11:20:35 +01:00
2016-10-14 12:26:55 +02:00
pve-admin-guide.epub : ${PVE_ADMIN_GUIDE_ADOCDEPENDS }
2016-11-07 17:41:51 +01:00
a2x -f epub --asciidoc-opts= " ${ PVE_DOCBOOK_CONF } " pve-admin-guide.adoc
2016-04-06 09:38:55 +02:00
2016-04-29 14:13:12 +02:00
api-viewer/apidata.js : extractapi .pl
2016-04-29 12:22:23 +02:00
./extractapi.pl >$@
2016-04-29 14:13:12 +02:00
api-viewer/apidoc.js : api -viewer /apidata .js api -viewer /PVEAPI .js
cat api-viewer/apidata.js api-viewer/PVEAPI.js >$@
2016-04-29 12:22:23 +02:00
2016-04-06 09:38:55 +02:00
.PHONY : dinstall
2016-08-09 07:52:59 +02:00
dinstall : ${GEN_DEB } ${DOC_DEB } ${MEDIAWIKI_DEB }
dpkg -i ${ GEN_DEB } ${ DOC_DEB } ${ MEDIAWIKI_DEB }
2016-04-29 11:22:28 +02:00
2016-04-06 09:38:55 +02:00
.PHONY : deb
2016-04-29 11:22:28 +02:00
deb :
2017-02-03 12:19:30 +01:00
rm -f ${ GEN_DEB } ${ DOC_DEB } ${ MEDIAWIKI_DEB }
make all-debs
2016-04-29 11:22:28 +02:00
2017-02-06 15:38:12 +01:00
.PHONY : all -debs
all-debs : ${GEN_DEB } ${DOC_DEB } ${MEDIAWIKI_DEB }
2017-02-03 12:19:30 +01:00
.PHONY : clean -build
clean-build :
2016-04-29 11:22:28 +02:00
rm -rf build
2017-02-03 12:19:30 +01:00
d e f i n e p r e p a r e _ b u i l d
rm -rf build-$1
mkdir build-$1
cp -a debian build-$1 /debian
mv build-$1 /debian/control.in build-$1 /debian/control
echo >> build-$1 /debian/control
cat debian/$1 .control >> build-$1 /debian/control
echo " git clone git://git.proxmox.com/git/pve-docs.git\\ngit checkout ${ GITVERSION } " > build-$1 /debian/SOURCE
install -dm755 build-$1 /usr/share/$1
install -dm755 build-$1 /usr/share/doc/$1
e n d e f
.PHONY : gen -deb
gen-deb : $( GEN_DEB )
$(GEN_DEB) : $( GEN_DEB_SOURCES ) asciidoc -pve asciidoc /mediawiki .conf
$( call prepare_build,$( GEN_PACKAGE) )
install -dm755 build-$( GEN_PACKAGE) /usr/bin
# install files
install -m 0644 ${ GEN_DEB_SOURCES } build-$( GEN_PACKAGE) /usr/share/${ GEN_PACKAGE }
install -m 0755 ${ GEN_SCRIPTS } build-$( GEN_PACKAGE) /usr/share/${ GEN_PACKAGE }
2016-11-07 08:19:04 +01:00
# install asciidoc-pve
2017-02-03 12:19:30 +01:00
install -m 0755 asciidoc-pve build-$( GEN_PACKAGE) /usr/bin/
install -D -m 0644 asciidoc/mediawiki.conf build-$( GEN_PACKAGE) /usr/share/${ GEN_PACKAGE } /asciidoc/mediawiki.conf
install -m 0644 asciidoc/asciidoc-pve.conf build-$( GEN_PACKAGE) /usr/share/${ GEN_PACKAGE } /asciidoc/
install -m 0644 asciidoc/pve-html.conf build-$( GEN_PACKAGE) /usr/share/${ GEN_PACKAGE } /asciidoc/
cd build-$( GEN_PACKAGE) && dpkg-buildpackage -rfakeroot -b -us -uc
lintian ${ GEN_DEB }
.PHONY : doc -deb
doc-deb : $( DOC_DEB )
$(DOC_DEB) : index .html $( WIKI_IMPORTS ) $( API_VIEWER_SOURCES ) verify -images
$( call prepare_build,$( DOC_PACKAGE) )
2017-02-07 11:25:12 +01:00
sed -i -e '/^Build-Depends/{s/$$/, $(DOC_BUILDDEPS)/}' build-$( DOC_PACKAGE) /debian/control
2016-05-25 07:24:28 +02:00
# install files for pvedocs package
2017-02-03 12:19:30 +01:00
install -dm755 build-$( DOC_PACKAGE) /usr/share/${ DOC_PACKAGE }
install -dm755 build-$( DOC_PACKAGE) /usr/share/doc/${ DOC_PACKAGE }
install -m 0644 index.html ${ INDEX_INCLUDES } build-$( DOC_PACKAGE) /usr/share/${ DOC_PACKAGE }
install -m 0644 ${ WIKI_IMPORTS } build-$( DOC_PACKAGE) /usr/share/${ DOC_PACKAGE }
2016-11-07 17:03:55 +01:00
# install screenshot images
2017-02-03 12:19:30 +01:00
install -dm755 build-$( DOC_PACKAGE) /usr/share/${ DOC_PACKAGE } /images/screenshot
install -m 0644 images/screenshot/*.png build-$( DOC_PACKAGE) /usr/share/${ DOC_PACKAGE } /images/screenshot
2016-04-29 12:22:23 +02:00
# install api doc viewer
2017-02-03 12:19:30 +01:00
install -dm755 build-$( DOC_PACKAGE) /usr/share/${ DOC_PACKAGE } /api-viewer
install -m 0644 ${ API_VIEWER_SOURCES } build-$( DOC_PACKAGE) /usr/share/${ DOC_PACKAGE } /api-viewer
cd build-$( DOC_PACKAGE) && dpkg-buildpackage -rfakeroot -b -us -uc
2016-05-25 07:24:28 +02:00
lintian ${ DOC_DEB }
2017-02-03 12:19:30 +01:00
.PHONY : mediawiki -deb
mediawiki-deb : $( MEDIAWIKI_DEB )
$(MEDIAWIKI_DEB) : pve -docs -mediawiki -import
$( call prepare_build,$( MEDIAWIKI_PACKAGE) )
cp pve-docs-mediawiki-import build-$( MEDIAWIKI_PACKAGE) /debian/tree/pve-docs-mediawiki/pve-docs-mediawiki-import
cd build-$( MEDIAWIKI_PACKAGE) && dpkg-buildpackage -rfakeroot -b -us -uc
2016-08-09 07:52:59 +02:00
lintian ${ MEDIAWIKI_DEB }
2016-04-06 09:38:55 +02:00
2016-04-06 10:45:54 +02:00
.PHONY : upload
2016-08-09 07:52:59 +02:00
upload : ${GEN_DEB } ${DOC_DEB } ${MEDIAWIKI_DEB }
2017-03-11 07:48:03 +01:00
tar cf - ${ GEN_DEB } ${ DOC_DEB } ${ MEDIAWIKI_DEB } | ssh repoman@repo.proxmox.com -- upload --product pve --dist jessie
2016-01-05 11:20:35 +01:00
2016-04-30 11:24:10 +02:00
.PHONY : update
2016-03-23 07:32:27 +01:00
update : clean
2016-10-18 07:13:27 +02:00
find . -regex '.*-\(opts\|synopsis\)\.adoc' -not -name pmxcfs.8-synopsis.adoc -exec rm -f \{ \} \;
2016-04-30 11:24:10 +02:00
rm -f api-viewer/apidata.js
2016-05-07 14:15:22 +02:00
rm -f pve-firewall-macros.adoc pct-network-opts.adoc pct-mountpoint-opts.adoc
2016-03-23 07:32:27 +01:00
make all
2016-01-05 11:20:35 +01:00
2016-05-25 07:35:25 +02:00
clean :
2017-02-03 13:30:54 +01:00
rm -rf *.html *.pdf *.epub *.tmp *.1 *.5 *.8
rm -f *.deb *.changes *.buildinfo
rm -f api-viewer/apidoc.js chapter-*.html *-plain.html chapter-*.html pve-admin-guide.chunked asciidoc-pve link-refs.json .asciidoc-pve-tmp_* pve-docs-mediawiki-import
rm -rf .pve-doc-depends
rm -f pve-doc-generator.mk chapter-index-table.adoc man1-index-table.adoc man5-index-table.adoc man8-index-table.adoc pve-admin-guide-docinfo.xml
2017-02-03 12:19:30 +01:00
rm -rf build-*