summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/options/Makefile.am10
-rw-r--r--test/unit/Makefile.am2
2 files changed, 9 insertions, 3 deletions
diff --git a/src/options/Makefile.am b/src/options/Makefile.am
index eb1a2c498..f89fca922 100644
--- a/src/options/Makefile.am
+++ b/src/options/Makefile.am
@@ -101,7 +101,7 @@ BUILT_SOURCES = \
options.cpp \
options_holder.h
-DISTCLEANFILES = \
+CLEANFILES = \
$(OPTIONS_FILES_SRCS) \
$(BUILT_SOURCES) \
options-stamp
@@ -178,11 +178,17 @@ options-stamp: options_holder_template.h options_template.cpp ../smt/smt_options
@top_builddir@/doc/cvc4.1_template @top_builddir@/doc/cvc4.1 \
-t \
@srcdir@/base_options_template.h @srcdir@/base_options_template.cpp \
- $(foreach o,$(OPTIONS_FILES),"$(srcdir)/$(o)" "$(dir $(builddir)/$(o))") \
+ $(foreach o,$(OPTIONS_FILES),"$(srcdir)/$(o)" "$(patsubst %/,%,$(dir $(o)))") \
)
touch "$@"
$(OPTIONS_FILES):;
+# This rule is ugly. It's needed to ensure that automake's dependence
+# includes are available during distclean, even though they come from
+# directories that are cleaned first. Without this rule, "distclean"
+# fails.
+%.Plo:; $(MKDIR_P) "$(dir $@)" && : > "$@"
+
.PHONY: exprs-builts
exprs-builts:; $(AM_V_at)[ "$(FROM_EXPR)" != 1 ] && $(MAKE) -C ../expr builts || true
diff --git a/test/unit/Makefile.am b/test/unit/Makefile.am
index 716b8959e..a287b7520 100644
--- a/test/unit/Makefile.am
+++ b/test/unit/Makefile.am
@@ -105,7 +105,7 @@ EXTRA_DIST = \
$(TEST_DEPS_DIST)
MOSTLYCLEANFILES = $(UNIT_TESTS) $(UNIT_TESTS:%=%.cpp) $(UNIT_TESTS:%=%.lo)
-DISTCLEANFILES = $(UNIT_TESTS:%=.deps/%.Plo)
+DISTCLEANFILES = $(UNIT_TESTS:%=@DEPDIR@/%.Plo)
# the tests automake infrastructure doesn't clean up .o files :-(
# handle both .libs and _libs variants
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback