## Process this file with automake to produce Makefile.in

## Copyright (C) 2005-2016 Red Hat, Inc.
##
## This library is free software; you can redistribute it and/or
## modify it under the terms of the GNU Lesser General Public
## License as published by the Free Software Foundation; either
## version 2.1 of the License, or (at your option) any later version.
##
## This library is distributed in the hope that it will be useful,
## but WITHOUT ANY WARRANTY; without even the implied warranty of
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
## Lesser General Public License for more details.
##
## You should have received a copy of the GNU Lesser General Public
## License along with this library.  If not, see
## <http://www.gnu.org/licenses/>.

HTML_DIR = $(docdir)/html

modules = \
	libvirt-common \
	libvirt-domain \
	libvirt-domain-checkpoint \
	libvirt-domain-snapshot \
	libvirt-event \
	libvirt-host \
	libvirt-interface \
	libvirt-network \
	libvirt-nodedev \
	libvirt-nwfilter \
	libvirt-secret \
	libvirt-storage \
	libvirt-stream \
	virterror \
	$(NULL)

apihtml = \
  html/index.html \
  $(apihtml_generated)

apihtml_generated = \
	$(addprefix html/libvirt-,$(addsuffix .html,$(modules))) \
	$(NULL)

apipng = \
  html/left.png \
  html/up.png \
  html/home.png \
  html/right.png

css = \
  generic.css \
  libvirt.css \
  mobile.css \
  main.css

javascript = \
  js/main.js \
  $(NULL)

fonts = \
  fonts/LICENSE.md \
  fonts/stylesheet.css \
  fonts/overpass-bold-italic.woff \
  fonts/overpass-bold.woff \
  fonts/overpass-italic.woff \
  fonts/overpass-light-italic.woff \
  fonts/overpass-light.woff \
  fonts/overpass-mono-bold.woff \
  fonts/overpass-mono-light.woff \
  fonts/overpass-mono-regular.woff \
  fonts/overpass-mono-semibold.woff \
  fonts/overpass-regular.woff

logofiles = \
  logos/logo-base.svg \
  logos/logo-square.svg \
  logos/logo-square-powered.svg \
  logos/logo-banner-dark.svg \
  logos/logo-banner-light.svg \
  logos/logo-square-96.png \
  logos/logo-square-128.png \
  logos/logo-square-192.png \
  logos/logo-square-256.png \
  logos/logo-square-powered-96.png \
  logos/logo-square-powered-128.png \
  logos/logo-square-powered-192.png \
  logos/logo-square-powered-256.png \
  logos/logo-banner-dark-256.png \
  logos/logo-banner-dark-800.png \
  logos/logo-banner-light-256.png \
  logos/logo-banner-light-800.png

png = \
  32favicon.png \
  libvirt-daemon-arch.png \
  libvirt-driver-arch.png \
  libvirt-object-model.png \
  migration-managed-direct.png \
  migration-managed-p2p.png \
  migration-native.png \
  migration-tunnel.png \
  migration-unmanaged-direct.png

gif = \
  architecture.gif \
  node.gif


internals_html_in = \
  $(patsubst $(srcdir)/%,%,$(wildcard $(srcdir)/internals/*.html.in))
internals_html = $(internals_html_in:%.html.in=%.html)

kbase_html_in = \
  $(patsubst $(srcdir)/%,%,$(wildcard $(srcdir)/kbase/*.html.in))
kbase_html = $(kbase_html_in:%.html.in=%.html)

# Generate hvsupport.html and news.html first, since they take one extra step.
dot_html_generated_in = \
  hvsupport.html.in \
  news.html.in
dot_html_in = \
  $(notdir $(wildcard $(srcdir)/*.html.in))
dot_html = \
  $(dot_html_generated_in:%.html.in=%.html) \
  $(dot_html_in:%.html.in=%.html)

xml = \
  libvirt-api.xml \
  libvirt-refs.xml

qemu_xml = \
  libvirt-qemu-api.xml \
  libvirt-qemu-refs.xml

lxc_xml = \
  libvirt-lxc-api.xml \
  libvirt-lxc-refs.xml

admin_xml = \
  libvirt-admin-api.xml \
  libvirt-admin-refs.xml

apidir = $(pkgdatadir)/api
api_DATA = \
       libvirt-api.xml \
       libvirt-qemu-api.xml \
       libvirt-lxc-api.xml \
       libvirt-admin-api.xml

fig = \
  libvirt-daemon-arch.fig \
  libvirt-driver-arch.fig \
  libvirt-object-model.fig \
  migration-managed-direct.fig \
  migration-managed-p2p.fig \
  migration-native.fig \
  migration-tunnel.fig \
  migration-unmanaged-direct.fig

schemadir = $(pkgdatadir)/schemas
schema_DATA = $(wildcard $(srcdir)/schemas/*.rng)

EXTRA_DIST= \
  apibuild.py genaclperms.pl \
  site.xsl subsite.xsl newapi.xsl page.xsl \
  wrapstring.xsl \
  $(dot_html_in) $(gif) $(apipng) \
  $(fig) $(png) $(css) \
  $(javascript) $(logofiles) \
  $(internals_html_in) $(fonts) \
  $(kbase_html_in) \
  aclperms.htmlinc \
  hvsupport.pl \
  $(schema_DATA)

acl_generated = aclperms.htmlinc

aclperms.htmlinc: $(top_srcdir)/src/access/viraccessperm.h \
        $(srcdir)/genaclperms.pl Makefile.am
	$(AM_V_GEN)$(PERL) $(srcdir)/genaclperms.pl $< > $@

CLEANFILES = \
  $(dot_html) \
  $(apihtml) \
  $(internals_html) \
  $(kbase_html) \
  $(xml) \
  $(qemu_xml) \
  $(lxc_xml) \
  $(admin_xml) \
  $(dot_html_generated_in) \
  aclperms.htmlinc

timestamp="$(shell if test -n "$$SOURCE_DATE_EPOCH"; \
		   then \
		     date -u --date="@$$SOURCE_DATE_EPOCH"; \
		   else \
		     date -u; \
		   fi)"

all-am: web

api: libvirt-api.xml libvirt-refs.xml
qemu_api: libvirt-qemu-api.xml libvirt-qemu-refs.xml
lxc_api: libvirt-lxc-api.xml libvirt-lxc-refs.xml
admin_api: libvirt-admin-api.xml libvirt-admin-refs.xml

web: $(dot_html) $(internals_html) $(kbase_html) \
	html/index.html

hvsupport.html: hvsupport.html.in

hvsupport.html.in: $(srcdir)/hvsupport.pl $(api_DATA) \
		$(top_srcdir)/src/libvirt_public.syms \
	$(top_srcdir)/src/libvirt_qemu.syms $(top_srcdir)/src/libvirt_lxc.syms \
	$(top_srcdir)/src/driver.h
	$(AM_V_GEN)$(PERL) $(srcdir)/hvsupport.pl $(top_srcdir) $(top_builddir) > $@ \
		|| { rm $@ && exit 1; }

news.html.in: \
	  $(srcdir)/news.xml \
	  $(srcdir)/news-html.xsl
	$(AM_V_GEN)$(XSLTPROC) --nonet \
	    $(srcdir)/news-html.xsl \
	    $(srcdir)/news.xml \
	  >$@ \
	    || { rm -f $@; exit 1; };
EXTRA_DIST += \
	$(srcdir)/news.xml \
	$(srcdir)/news.rng \
	$(srcdir)/news-html.xsl

%.png: %.fig
	convert -rotate 90 $< $@

%.html.tmp: %.html.in site.xsl subsite.xsl page.xsl \
		$(acl_generated)
	$(AM_V_GEN)name=`echo $@ | sed -e 's/.tmp//'`; \
	  dir=`dirname $@` ; \
	  if test "$$dir" = "."; \
	  then \
	    style=site.xsl; \
	  else \
	    $(MKDIR_P) $$dir; \
	    style=subsite.xsl; \
	  fi; \
	  $(XSLTPROC) --stringparam pagename $$name \
	    --stringparam timestamp $(timestamp) --nonet \
	    $(top_srcdir)/docs/$$style $< > $@ \
	    || { rm $@ && exit 1; }

%.html: %.html.tmp
	$(AM_V_GEN)$(XMLLINT) --nonet --format $< > $@ \
	  || { rm $@ && exit 1; }

$(apihtml_generated): html/index.html

html/index.html: libvirt-api.xml newapi.xsl page.xsl $(APIBUILD_STAMP)
	$(AM_V_GEN)$(XSLTPROC) --nonet -o ./ \
	  --stringparam builddir '$(abs_top_builddir)' \
	  --stringparam timestamp $(timestamp) \
	  $(srcdir)/newapi.xsl libvirt-api.xml && \
	  $(XMLLINT) --nonet --noout html/*.html

python_generated_files = \
		html/libvirt-libvirt-lxc.html \
		html/libvirt-libvirt-qemu.html \
		html/libvirt-libvirt-admin.html \
		html/libvirt-virterror.html \
		libvirt-api.xml \
		libvirt-refs.xml \
		libvirt-lxc-api.xml \
		libvirt-lxc-refs.xml \
		libvirt-qemu-api.xml \
		libvirt-qemu-refs.xml \
		libvirt-admin-api.xml \
		libvirt-admin-refs.xml \
		$(NULL)

APIBUILD=$(srcdir)/apibuild.py
APIBUILD_STAMP=apibuild.py.stamp
CLEANFILES += $(APIBUILD_STAMP)

$(python_generated_files): $(APIBUILD_STAMP)

$(APIBUILD_STAMP): $(srcdir)/apibuild.py \
		$(top_srcdir)/include/libvirt/libvirt.h \
		$(top_srcdir)/include/libvirt/libvirt-common.h.in \
		$(top_srcdir)/include/libvirt/libvirt-domain-checkpoint.h \
		$(top_srcdir)/include/libvirt/libvirt-domain-snapshot.h \
		$(top_srcdir)/include/libvirt/libvirt-domain.h \
		$(top_srcdir)/include/libvirt/libvirt-event.h \
		$(top_srcdir)/include/libvirt/libvirt-host.h \
		$(top_srcdir)/include/libvirt/libvirt-interface.h \
		$(top_srcdir)/include/libvirt/libvirt-network.h \
		$(top_srcdir)/include/libvirt/libvirt-nodedev.h \
		$(top_srcdir)/include/libvirt/libvirt-nwfilter.h \
		$(top_srcdir)/include/libvirt/libvirt-secret.h \
		$(top_srcdir)/include/libvirt/libvirt-storage.h \
		$(top_srcdir)/include/libvirt/libvirt-stream.h \
		$(top_srcdir)/include/libvirt/libvirt-lxc.h \
		$(top_srcdir)/include/libvirt/libvirt-qemu.h \
		$(top_srcdir)/include/libvirt/libvirt-admin.h \
		$(top_srcdir)/include/libvirt/virterror.h \
		$(top_srcdir)/src/libvirt.c \
		$(top_srcdir)/src/libvirt-domain-checkpoint.c \
		$(top_srcdir)/src/libvirt-domain-snapshot.c \
		$(top_srcdir)/src/libvirt-domain.c \
		$(top_srcdir)/src/libvirt-host.c \
		$(top_srcdir)/src/libvirt-interface.c \
		$(top_srcdir)/src/libvirt-network.c \
		$(top_srcdir)/src/libvirt-nodedev.c \
		$(top_srcdir)/src/libvirt-nwfilter.c \
		$(top_srcdir)/src/libvirt-secret.c \
		$(top_srcdir)/src/libvirt-storage.c \
		$(top_srcdir)/src/libvirt-stream.c \
		$(top_srcdir)/src/libvirt-lxc.c \
		$(top_srcdir)/src/libvirt-qemu.c \
		$(top_srcdir)/src/admin/libvirt-admin.c \
		$(top_srcdir)/src/util/virerror.c \
		$(top_srcdir)/src/util/virevent.c \
		$(top_srcdir)/src/util/virtypedparam-public.c
	$(AM_V_GEN)srcdir=$(srcdir) builddir=$(builddir) \
		$(RUNUTF8) $(PYTHON) $(APIBUILD)
	touch $@


check-local: all
dist-local: all

rebuild: api qemu_api lxc_api admin_api all

install-data-local:
	$(mkinstalldirs) $(DESTDIR)$(HTML_DIR)
	for f in $(css) $(gif) $(png); do \
	  $(INSTALL) -m 0644 $(srcdir)/$$f $(DESTDIR)$(HTML_DIR); done
	for f in $(dot_html); do \
	  $(INSTALL) -m 0644 $$f $(DESTDIR)$(HTML_DIR); done
	$(mkinstalldirs) $(DESTDIR)$(HTML_DIR)/js
	for f in $(javascript); do \
	  $(INSTALL) -m 0644 $(srcdir)/$$f $(DESTDIR)$(HTML_DIR)/js/; done
	$(mkinstalldirs) $(DESTDIR)$(HTML_DIR)/logos
	for f in $(logofiles); do \
	  $(INSTALL) -m 0644 $(srcdir)/$$f $(DESTDIR)$(HTML_DIR)/logos; done
	$(mkinstalldirs) $(DESTDIR)$(HTML_DIR)/html
	for h in $(apihtml); do \
	  $(INSTALL) -m 0644 $$h $(DESTDIR)$(HTML_DIR)/html; done
	for p in $(apipng); do \
	  $(INSTALL) -m 0644 $(srcdir)/$$p $(DESTDIR)$(HTML_DIR)/html; done
	$(mkinstalldirs) $(DESTDIR)$(HTML_DIR)/internals
	for f in $(internals_html); do \
	  $(INSTALL) -m 0644 $$f $(DESTDIR)$(HTML_DIR)/internals; done
	$(mkinstalldirs) $(DESTDIR)$(HTML_DIR)/kbase
	for f in $(kbase_html); do \
	  $(INSTALL) -m 0644 $$f $(DESTDIR)$(HTML_DIR)/kbase; done
	$(mkinstalldirs) $(DESTDIR)$(HTML_DIR)/fonts
	for f in $(fonts); do \
	  $(INSTALL) -m 0644 $(srcdir)/$$f $(DESTDIR)$(HTML_DIR)/fonts; \
	done

uninstall-local:
	for f in $(css) $(dot_html) $(gif) $(png) $(fonts); do \
	  rm -f $(DESTDIR)$(HTML_DIR)/$$f; \
	done
	for f in $(logofiles); do \
	  rm -f $(DESTDIR)$(HTML_DIR)/$$f; \
	done
	for f in $(javascript); do \
	  rm -f $(DESTDIR)$(HTML_DIR)/$$f; \
	done
	for h in $(apihtml); do rm -f $(DESTDIR)$(HTML_DIR)/$$h; done
	for p in $(apipng); do rm -f $(DESTDIR)$(HTML_DIR)/$$p; done
	for f in $(internals_html); do \
	  rm -f $(DESTDIR)$(HTML_DIR)/$$f; \
	done
	for f in $(kbase_html); do \
	  rm -f $(DESTDIR)$(HTML_DIR)/$$f; \
	done
