CHECK_NEWS = $(top_srcdir)/autotools/check-news
DOCPP = $(top_srcdir)/autotools/docpp
REPLACE_VARS_SED = autotools/replace_vars.sed
+CONVERT_CONSTANTS = $(top_srcdir)/autotools/convert-constants
# Note: these are automake-specific variables, and must be named after
# the directory + 'dir' suffix
epydoc.conf \
autotools/replace_vars.sed \
daemons/daemon-util \
- daemons/ensure-dirs \
daemons/ganeti-cleaner \
devel/upload \
doc/examples/bash_completion \
doc/design-2.4.rst \
doc/design-draft.rst \
doc/design-oob.rst \
+ doc/design-cpu-pinning.rst \
doc/design-query2.rst \
doc/design-x509-ca.rst \
doc/design-http-server.rst \
doc/design-impexp2.rst \
doc/design-lu-generated-jobs.rst \
+ doc/design-multi-reloc.rst \
+ doc/design-network.rst \
doc/cluster-merge.rst \
doc/design-shared-storage.rst \
doc/devnotes.rst \
htools/Ganeti/Luxi.hs \
htools/Ganeti/OpCodes.hs
-HS_BUILT_SRCS = htools/Ganeti/HTools/Version.hs
+HS_BUILT_SRCS = htools/Ganeti/HTools/Version.hs htools/Ganeti/Constants.hs
HS_BUILT_SRCS_IN = $(patsubst %,%.in,$(HS_BUILT_SRCS))
$(RUN_IN_TEMPDIR): | $(all_dirfiles)
endif
$(HS_ALL_PROGS): %: %.hs $(HS_LIB_SRCS) $(HS_BUILT_SRCS) Makefile
- BINARY=$(@:htools/%=%); \
- $(GHC) --make \
+ @if [ -z "$(HTOOLS)" ]; then \
+ echo "Error: htools compilation disabled at configure time" 1>&2 ;\
+ exit 1; \
+ fi
+ @BINARY=$(@:htools/%=%); \
+ if [ "$BINARY" = "test" ] && [ -z "$(GHC_PKG_QUICKCHECK)" ]; then \
+ echo "Error: cannot run unittests without the QuickCheck library (see devnotes.rst)" 1>&2; \
+ exit 1; \
+ fi
+ BINARY=$(@:htools/%=%); $(GHC) --make \
$(HFLAGS) $(HEXTRA) $(HTOOLS_NOCURL) \
- -osuf $$BINARY.o -hisuf $$BINARY.hi \
- $@
+ -osuf $$BINARY.o -hisuf $$BINARY.hi $@
# for the htools/test binary, we need to enable profiling/coverage
htools/test: HEXTRA=-fhpc -Wwarn -fno-warn-missing-signatures \
pkglib_SCRIPTS = \
daemons/daemon-util \
- daemons/ensure-dirs \
tools/kvm-ifup \
$(pkglib_python_scripts)
autotools/check-news \
autotools/check-tar \
autotools/check-version \
+ autotools/convert-constants \
autotools/docpp \
autotools/gen-coverage \
autotools/testrunner \
$(RUN_IN_TEMPDIR) \
daemons/daemon-util.in \
- daemons/ensure-dirs.in \
daemons/ganeti-cleaner.in \
$(pkglib_python_scripts) \
devel/upload.in \
VCSVER=`cat $(abs_top_srcdir)/vcs-version`; \
sed -e "s/%ver%/$$VCSVER/" < $< > $@
+htools/Ganeti/Constants.hs: htools/Ganeti/Constants.hs.in \
+ lib/constants.py lib/_autoconf.py $(CONVERT_CONSTANTS)
+ set -e; \
+ { cat $< ; PYTHONPATH=. $(CONVERT_CONSTANTS); } > $@
+
lib/_autoconf.py: Makefile vcs-version | lib/.dir
set -e; \
VCSVER=`cat $(abs_top_srcdir)/vcs-version`; \
echo "CONFD_USER = '$(CONFD_USER)'"; \
echo "CONFD_GROUP = '$(CONFD_GROUP)'"; \
echo "NODED_USER = '$(NODED_USER)'"; \
+ echo "NODED_GROUP = '$(NODED_GROUP)'"; \
echo "VCS_VERSION = '$$VCSVER'"; \
echo "DISK_SEPARATOR = '$(DISK_SEPARATOR)'"; \
+ if [ "$(HTOOLS)" ]; then \
+ echo "HTOOLS = True"; \
+ else \
+ echo "HTOOLS = False"; \
+ fi; \
} > $@
$(REPLACE_VARS_SED): Makefile
$(CHECK_PYTHON_CODE) $(check_python_code)
$(CHECK_VERSION) $(VERSION) $(top_srcdir)/NEWS
$(CHECK_NEWS) < $(top_srcdir)/NEWS
+ expver=$(VERSION_MAJOR).$(VERSION_MINOR); \
+ if test "`head -n 1 $(top_srcdir)/README`" != "Ganeti $$expver"; then \
+ echo "Incorrect version in README, expected $$expver"; \
+ exit 1; \
+ fi; \
+ if test "`sed -ne '4 p' $(top_srcdir)/doc/iallocator.rst`" != \
+ "Documents Ganeti version $$expver"; then \
+ echo "Incorrect version in iallocator.rst, expected $$expver"; \
+ exit 1; \
+ fi
+
+.PHONY: hs-check
+hs-check: htools/test
+ @rm -f test.tix
+ ./htools/test
.PHONY: lint
lint: $(BUILT_SOURCES)
mkdir -p $(COVERAGE_HS_DIR)
hpc markup --destdir=$(COVERAGE_HS_DIR) htools/test $(HPCEXCL)
hpc report htools/test $(HPCEXCL)
- ln -s hpc_index.html $(COVERAGE_HS_DIR)/index.html
+ ln -sf hpc_index.html $(COVERAGE_HS_DIR)/index.html
# Special "kind-of-QA" target for htools, needs special setup (all
# tools compiled with -fhpc)