+ $(Echo) '*****' Completed $(BuildMode) Build
+ifneq ($(ENABLE_OPTIMIZED),1)
+ $(Echo) '*****' Note: Debug build can be 10 times slower than an
+ $(Echo) '*****' optimized build. Use 'make ENABLE_OPTIMIZED=1' to
+ $(Echo) '*****' make an optimized build. Alternatively you can
+ $(Echo) '*****' configure with --enable-optimized.
+ifeq ($(SHOW_DIAGNOSTICS),1)
+ $(Verb) if test -s $(LLVM_OBJ_ROOT)/$(BuildMode)/diags; then \
+ $(LLVM_SRC_ROOT)/utils/clang-parse-diagnostics-file -a \
+ $(LLVM_OBJ_ROOT)/$(BuildMode)/diags; \
+ fi
+endif
+endif
+endif
+
+check-llvm2cpp:
+ $(Verb)$(MAKE) check TESTSUITE=Feature RUNLLVM2CPP=1
+
+srpm: $(LLVM_OBJ_ROOT)/llvm.spec
+ rpmbuild -bs $(LLVM_OBJ_ROOT)/llvm.spec
+
+rpm: $(LLVM_OBJ_ROOT)/llvm.spec
+ rpmbuild -bb --target $(TARGET_TRIPLE) $(LLVM_OBJ_ROOT)/llvm.spec
+
+show-footprint:
+ $(Verb) du -sk $(LibDir)
+ $(Verb) du -sk $(ToolDir)
+ $(Verb) du -sk $(ExmplDir)
+ $(Verb) du -sk $(ObjDir)
+
+build-for-llvm-top:
+ $(Verb) if test ! -f ./config.status ; then \
+ ./configure --prefix="$(LLVM_TOP)/install" \
+ --with-llvm-gcc="$(LLVM_TOP)/llvm-gcc" ; \
+ fi
+ $(Verb) $(MAKE) tools-only
+
+SVN = svn
+SVN-UPDATE-OPTIONS =
+AWK = awk
+
+# Multiline variable defining a recursive function for finding svn repos rooted at
+# a given path. svnup() requires one argument: the root to search from.
+define SUB_SVN_DIRS
+svnup() {
+ dirs=`svn status --no-ignore $$1 | awk '/^(I|\?) / {print $$2}' | LC_ALL=C xargs svn info 2>/dev/null | awk '/^Path:\ / {print $$2}'`;
+ if [ "$$dirs" = "" ]; then
+ return;
+ fi;
+ for f in $$dirs; do
+ echo $$f;
+ svnup $$f;
+ done
+}
+endef
+export SUB_SVN_DIRS
+
+update:
+ $(SVN) $(SVN-UPDATE-OPTIONS) update $(LLVM_SRC_ROOT)
+ @eval $$SUB_SVN_DIRS; $(SVN) status --no-ignore $(LLVM_SRC_ROOT) | svnup $(LLVM_SRC_ROOT) | xargs $(SVN) $(SVN-UPDATE-OPTIONS) update
+
+happiness: update all check-all
+
+.PHONY: srpm rpm update happiness
+
+# declare all targets at this level to be serial: