daemons/daemon-util \
daemons/ganeti-cleaner \
devel/upload \
+ $(BUILT_EXAMPLES) \
doc/examples/bash_completion \
- doc/examples/ganeti.initd \
- doc/examples/ganeti-kvm-poweroff.initd \
- doc/examples/ganeti.cron \
- doc/examples/gnt-config-backup \
- doc/examples/hooks/ipsec \
lib/_generated_rpc.py \
$(man_MANS) \
$(manhtml) \
# BUILT_SOURCES should only be used as a dependency on phony targets. Otherwise
# it'll cause the target to rebuild every time.
BUILT_SOURCES = \
+ $(built_base_sources) \
+ $(BUILT_PYTHON_SOURCES) \
+ $(PYTHON_BOOTSTRAP)
+
+built_base_sources = \
ganeti \
stamp-srclinks \
- $(all_dirfiles) \
- $(PYTHON_BOOTSTRAP) \
- $(BUILT_PYTHON_SOURCES)
+ $(all_dirfiles)
-BUILT_PYTHON_SOURCES = \
+built_python_base_sources = \
lib/_autoconf.py \
- lib/_vcsversion.py \
+ lib/_vcsversion.py
+
+BUILT_PYTHON_SOURCES = \
+ $(built_python_base_sources) \
lib/_generated_rpc.py
+# Generating the RPC wrappers depends on many things, so make sure it's built at
+# the end of the built sources
+lib/_generated_rpc.py: | $(built_base_sources) $(built_python_base_sources)
+
+# these are all built from the underlying %.in sources
+BUILT_EXAMPLES = \
+ doc/examples/ganeti-kvm-poweroff.initd \
+ doc/examples/ganeti.cron \
+ doc/examples/ganeti.initd \
+ doc/examples/gnt-config-backup \
+ doc/examples/hooks/ipsec
+
nodist_pkgpython_PYTHON = \
$(BUILT_PYTHON_SOURCES)
noinst_DATA = \
devel/upload \
doc/html \
+ $(BUILT_EXAMPLES) \
doc/examples/bash_completion \
- doc/examples/ganeti.cron \
- doc/examples/ganeti.initd \
- doc/examples/ganeti-kvm-poweroff.initd \
- doc/examples/gnt-config-backup \
- doc/examples/hooks/ipsec \
$(manhtml)
gnt_scripts = \
daemons/ganeti-noded \
daemons/ganeti-watcher \
daemons/ganeti-rapi \
- scripts/gnt-backup \
- scripts/gnt-cluster \
- scripts/gnt-debug \
- scripts/gnt-group \
- scripts/gnt-instance \
- scripts/gnt-job \
- scripts/gnt-node \
- scripts/gnt-os
+ $(gnt_scripts)
PYTHON_BOOTSTRAP = \
$(PYTHON_BOOTSTRAP_SBIN) \
$(PYTHON_BOOTSTRAP_SBIN) \
daemons/ganeti-cleaner
-dist_tools_PYTHON = \
+python_scripts = \
tools/burnin \
tools/cfgshell \
tools/cfgupgrade \
tools/cfgupgrade12 \
tools/cluster-merge \
+ tools/confd-client \
tools/lvmstrap \
tools/move-instance \
tools/ovfconverter \
tools/sanitize-config
dist_tools_SCRIPTS = \
- $(dist_tools_PYTHON) \
+ $(python_scripts) \
tools/kvm-console-wrapper \
tools/xm-console-wrapper \
tools/master-ip-setup
$(docrst) \
doc/conf.py \
doc/html \
- doc/examples/ganeti.initd.in \
- doc/examples/ganeti-kvm-poweroff.initd.in \
- doc/examples/ganeti.cron.in \
- doc/examples/gnt-config-backup.in \
+ $(BUILT_EXAMPLES:%=%.in) \
doc/examples/ganeti.default \
doc/examples/ganeti.default-debug \
doc/examples/hooks/ethers \
- doc/examples/hooks/ipsec.in \
doc/examples/gnt-debug/README \
doc/examples/gnt-debug/delay0.json \
doc/examples/gnt-debug/delay50.json \
+ test/lockperf.py \
test/testutils.py \
test/mocks.py \
$(dist_TESTS) \
qa/qa-sample.json \
$(qa_scripts) \
$(HS_LIB_SRCS) $(HS_BUILT_SRCS_IN) \
- $(HS_PROG_SRCS)
+ $(HS_PROG_SRCS) \
+ htools/lint-hints.hs
man_MANS = \
man/ganeti.7 \
test/data/proc_drbd83.txt \
test/data/proc_drbd83_sync.txt \
test/data/proc_drbd83_sync_krnl2.6.39.txt \
+ test/data/kvm_1.0_help.txt \
+ test/data/kvm_0.15.90_help.txt \
+ test/data/kvm_0.12.5_help.txt \
+ test/data/kvm_0.9.1_help.txt \
test/data/sys_drbd_usermode_helper.txt \
test/data/ovfdata/compr_disk.vmdk.gz \
test/data/ovfdata/config.ini \
test/docs_unittest.py \
test/pycurl_reset_unittest.py \
test/tempfile_fork_unittest.py
+if HAS_FAKEROOT
+python_tests += test/ganeti.utils.io_unittest-runasroot.py
+endif
haskell_tests = htools/test
# Environment for all tests
PLAIN_TESTS_ENVIRONMENT = \
- PYTHONPATH=. TOP_SRCDIR=$(abs_top_srcdir) PYTHON=$(PYTHON) $(RUN_IN_TEMPDIR)
+ PYTHONPATH=. TOP_SRCDIR=$(abs_top_srcdir) PYTHON=$(PYTHON) \
+ FAKEROOT=$(FAKEROOT_PATH) $(RUN_IN_TEMPDIR)
# Environment for tests run by automake
TESTS_ENVIRONMENT = \
all_python_code = \
$(dist_sbin_SCRIPTS) \
- $(dist_tools_PYTHON) \
+ $(python_scripts) \
$(pkglib_python_scripts) \
$(nodist_pkglib_python_scripts) \
$(python_tests) \
ganeti \
ganeti/http/server.py \
$(dist_sbin_SCRIPTS) \
- $(dist_tools_PYTHON) \
+ $(python_scripts) \
$(pkglib_python_scripts) \
$(BUILD_BASH_COMPLETION) \
$(CHECK_IMPORTS) \
ganeti \
ganeti/http/server.py \
$(dist_sbin_SCRIPTS) \
- $(dist_tools_PYTHON) \
+ $(python_scripts) \
$(pkglib_python_scripts) \
$(BUILD_BASH_COMPLETION) \
$(CHECK_HEADER) \
echo "TOOLSDIR = '$(toolsdir)'"; \
echo "GNT_SCRIPTS = [$(foreach i,$(notdir $(gnt_scripts)),'$(i)',)]"; \
echo "PKGLIBDIR = '$(pkglibdir)'"; \
- echo "DRBD_BARRIERS = $(DRBD_BARRIERS)"; \
+ echo "DRBD_BARRIERS = '$(DRBD_BARRIERS)'"; \
+ echo "DRBD_NO_META_FLUSH = $(DRBD_NO_META_FLUSH)"; \
echo "SYSLOG_USAGE = '$(SYSLOG_USAGE)'"; \
echo "DAEMONS_GROUP = '$(DAEMONS_GROUP)'"; \
echo "ADMIN_GROUP = '$(ADMIN_GROUP)'"; \
echo "VCS_VERSION = '$$VCSVER'"; \
} > $@
-lib/_generated_rpc.py: lib/rpc_defs.py $(BUILD_RPC) | lib/.dir
- PYTHONPATH=. $(RUN_IN_TEMPDIR) $(CURDIR)/$(BUILD_RPC) $< > $@
+lib/_generated_rpc.py: lib/rpc_defs.py $(BUILD_RPC)
+ PYTHONPATH=. $(RUN_IN_TEMPDIR) $(CURDIR)/$(BUILD_RPC) lib/rpc_defs.py > $@
$(REPLACE_VARS_SED): Makefile
set -e; \
--rcfile ../pylintrc $(patsubst qa/%.py,%,$(qa_scripts))
.PHONY: hlint
-hlint: $(HS_BUILT_SRCS)
+hlint: $(HS_BUILT_SRCS) htools/lint-hints.hs
if tty -s; then C="-c"; else C=""; fi; \
- hlint --report=doc/hs-lint.html $$C htools
+ hlint --report=doc/hs-lint.html --cross $$C \
+ --ignore "Use first" \
+ --ignore "Use comparing" \
+ --ignore "Use on" \
+ --ignore "Use Control.Exception.catch" \
+ --ignore "Reduce duplication" \
+ --hint htools/lint-hints \
+ $(filter-out htools/Ganeti/THH.hs,$(HS_LIB_SRCS))
# a dist hook rule for updating the vcs-version file; this is
# hardcoded due to where it needs to build the file...