BUILD_RPC = $(top_srcdir)/autotools/build-rpc
SHELL_ENV_INIT = autotools/shell-env-init
+# starting as of Ganeti 2.10, all files are stored in a single directory,
+# with only symbolic links added at other places.
+versiondir = $(libdir)/ganeti-$(VERSION)
+
# Note: these are automake-specific variables, and must be named after
# the directory + 'dir' suffix
+pkglibdir = $(versiondir)$(libdir)/ganeti
+myexeclibdir = $(pkglibdir)
+bindir = $(versiondir)$(exec_prefix)/bin
+sbindir = $(versiondir)$(exec_prefix)/sbin
+mandir = $(versiondir)$(datarootdir)/man
+pkgpythondir = $(versiondir)$(pythondir)/ganeti
+
clientdir = $(pkgpythondir)/client
cmdlibdir = $(pkgpythondir)/cmdlib
hypervisordir = $(pkgpythondir)/hypervisor
toolsdir = $(pkglibdir)/tools
iallocatorsdir = $(pkglibdir)/iallocators
pytoolsdir = $(pkgpythondir)/tools
-docdir = $(datadir)/doc/$(PACKAGE)
-myexeclibdir = $(pkglibdir)
+docdir = $(versiondir)$(datadir)/doc/$(PACKAGE)
+
+SYMLINK_TARGET_DIRS = \
+ $(pythondir) \
+ $(libdir)/ganeti/iallocators \
+ $(exec_prefix)/bin \
+ $(exec_prefix)/sbin \
+ $(datarootdir)/man/man1 \
+ $(datarootdir)/man/man7 \
+ $(datarootdir)/man/man8
+SYMLINK_DIRS = \
+ $(pythondir)/ganeti \
+ $(libdir)/ganeti/tools
# Delete output file if an error occurred while building it
.DELETE_ON_ERROR:
doc/design-x509-ca.rst \
doc/design-hroller.rst \
doc/design-storagetypes.rst \
+ doc/design-upgrade.rst \
doc/devnotes.rst \
doc/glossary.rst \
doc/hooks.rst \
$(PYTHON_BOOTSTRAP_SBIN) \
daemons/ganeti-cleaner
+# strip path prefixes off the sbin scripts
+all_sbin_scripts = \
+ $(patsubst tools/%,%,$(patsubst daemons/%,%,$(patsubst scripts/%,%,\
+ $(patsubst src/%,%,$(dist_sbin_SCRIPTS) $(nodist_sbin_SCRIPTS)))))
+
if ENABLE_CONFD
src/ganeti-confd: src/hconfd
cp -f $< $@
$(pkglib_python_scripts) \
$(HS_MYEXECLIB_PROGS)
+# strip path prefixes off the sbin scripts
+all_myexeclib_scripts = \
+ $(patsubst tools/%,%,$(patsubst daemons/%,%,\
+ $(patsubst src/%,%,$(myexeclib_SCRIPTS))))
+
nodist_myexeclib_SCRIPTS = \
$(nodist_pkglib_python_scripts)
$(patsubst %.html,%.html.in,$(manhtml)) \
$(mangen)
+manfullpath = $(patsubst man/%.1,man1/%.1,\
+ $(patsubst man/%.7,man7/%.7,\
+ $(patsubst man/%.8,man8/%.8,$(man_MANS))))
+
TEST_FILES = \
test/autotools/autotools-check-news.test \
test/data/htools/clean-nonzero-score.data \
python_tests = \
doc/examples/rapi_testutils.py \
test/py/cmdlib/cluster_unittest.py \
- test/py/cmdlib/test_unittest.py \
test/py/cmdlib/cmdlib_unittest.py \
+ test/py/cmdlib/group_unittest.py \
+ test/py/cmdlib/instance_unittest.py \
test/py/cmdlib/instance_storage_unittest.py \
+ test/py/cmdlib/test_unittest.py \
test/py/cfgupgrade_unittest.py \
test/py/docs_unittest.py \
test/py/ganeti.asyncnotifier_unittest.py \
{ echo 's#@''PREFIX@#$(prefix)#g'; \
echo 's#@''SYSCONFDIR@#$(sysconfdir)#g'; \
echo 's#@''LOCALSTATEDIR@#$(localstatedir)#g'; \
- echo 's#@''BINDIR@#$(bindir)#g'; \
- echo 's#@''SBINDIR@#$(sbindir)#g'; \
+ echo 's#@''BINDIR@#$(execprefix)/bin#g'; \
+ echo 's#@''SBINDIR@#$(execprefix)/sbin#g'; \
echo 's#@''LIBDIR@#$(libdir)#g'; \
echo 's#@''GANETI_VERSION@#$(PACKAGE_VERSION)#g'; \
echo 's#@''CUSTOM_XEN_BOOTLOADER@#$(XEN_BOOTLOADER)#g'; \
echo 's#@''CUSTOM_IALLOCATOR_SEARCH_PATH@#$(IALLOCATOR_SEARCH_PATH)#g'; \
echo 's#@''CUSTOM_EXPORT_DIR@#$(EXPORT_DIR)#g'; \
echo 's#@''RPL_SSH_INITD_SCRIPT@#$(SSH_INITD_SCRIPT)#g'; \
- echo 's#@''PKGLIBDIR@#$(pkglibdir)#g'; \
+ echo 's#@''PKGLIBDIR@#$(libdir)/ganeti#g'; \
echo 's#@''GNTMASTERUSER@#$(MASTERD_USER)#g'; \
echo 's#@''GNTRAPIUSER@#$(RAPI_USER)#g'; \
echo 's#@''GNTCONFDUSER@#$(CONFD_USER)#g'; \
@mkdir_p@ "$(DESTDIR)${localstatedir}/lib/ganeti" \
"$(DESTDIR)${localstatedir}/log/ganeti" \
"$(DESTDIR)${localstatedir}/run/ganeti"
+if INSTALL_SYMLINKS
+ for dir in $(SYMLINK_TARGET_DIRS); do \
+ @mkdir_p@ $(DESTDIR)$$dir; \
+ done
+ for prog in $(HS_HTOOLS_PROGS); do \
+ $(LN_S) $(bindir)/$$prog $(DESTDIR)$(exec_prefix)/bin/$$prog; \
+ done
+ $(LN_S) $(bindir)/htools $(DESTDIR)$(libdir)/ganeti/iallocators/hail
+ for prog in $(all_sbin_scripts); do \
+ $(LN_S) $(sbindir)/$$prog $(DESTDIR)$(exec_prefix)/sbin/$$prog; \
+ done
+ for link in $(SYMLINK_DIRS); do \
+ $(LN_S) $(versiondir)$$link $(DESTDIR)$$link; \
+ done
+ for prog in $(all_myexeclib_scripts); do \
+ $(LN_S) $(pkglibdir)/$$prog $(DESTDIR)$(libdir)/ganeti/$$prog; \
+ done
+ if ! test -n '$(ENABLE_MANPAGES)'; then \
+ for man in $(manfullpath); do \
+ $(LN_S) $(versiondir)$(datarootdir)/man/$$man $(DESTDIR)$(datarootdir)/man/$$man; \
+ done; \
+ fi
+endif
.PHONY: apidoc
if WANT_HSAPIDOC