+ DIRS := lib/System lib/Support utils lib/VMCore lib tools/llvm-config \
+ tools runtime docs
+ OPTIONAL_DIRS := examples projects bindings
+endif
+
+EXTRA_DIST := test llvm.spec include win32 Xcode
+
+include $(LEVEL)/Makefile.config
+
+# llvm-gcc4 doesn't need runtime libs. llvm-gcc4 is the only supported one.
+# FIXME: Remove runtime entirely once we have an understanding of where
+# libprofile etc should go.
+#ifeq ($(LLVMGCC_MAJVERS),4)
+ DIRS := $(filter-out runtime, $(DIRS))
+#endif
+
+ifeq ($(MAKECMDGOALS),libs-only)
+ DIRS := $(filter-out tools runtime docs, $(DIRS))
+ OPTIONAL_DIRS :=
+endif
+
+ifeq ($(MAKECMDGOALS),install-libs)
+ DIRS := $(filter-out tools runtime docs, $(DIRS))
+ OPTIONAL_DIRS := $(filter bindings, $(OPTIONAL_DIRS))
+endif
+
+ifeq ($(MAKECMDGOALS),tools-only)
+ DIRS := $(filter-out runtime docs, $(DIRS))
+ OPTIONAL_DIRS :=
+endif
+
+# Don't install utils, examples, or projects they are only used to
+# build LLVM.
+ifeq ($(MAKECMDGOALS),install)
+ DIRS := $(filter-out utils, $(DIRS))
+ OPTIONAL_DIRS := $(filter bindings, $(OPTIONAL_DIRS))
+endif
+
+# If we're cross-compiling, build the build-hosted tools first
+ifeq ($(LLVM_CROSS_COMPILING),1)
+all:: cross-compile-build-tools
+
+clean::
+ $(Verb) rm -rf BuildTools
+
+cross-compile-build-tools:
+ $(Verb) if [ ! -f BuildTools/Makefile ]; then \
+ $(MKDIR) BuildTools; \
+ cd BuildTools ; \
+ $(PROJ_SRC_DIR)/configure ; \
+ cd .. ; \
+ fi; \
+ ($(MAKE) -C BuildTools BUILD_DIRS_ONLY=1 ) || exit 1;