#===------------------------------------------------------------------------===#
LEVEL := .
-DIRS := lib/System lib/Support utils lib/VMCore lib tools runtime docs
-OPTIONAL_DIRS := examples projects
+
+# Top-Level LLVM Build Stages:
+# 1. Build lib/System and lib/Support, which are used by utils (tblgen).
+# 2. Build utils, which is used by VMCore.
+# 3. Build VMCore, which builds the Intrinsics.inc file used by libs.
+# 4. Build libs, which are needed by llvm-config.
+# 5. Build llvm-config, which determines inter-lib dependencies for tools.
+# 6. Build tools, runtime, docs.
+#
+DIRS := lib/System lib/Support utils lib/VMCore lib tools/llvm-config \
+ tools runtime docs
+
+OPTIONAL_DIRS := examples projects bindings
EXTRA_DIST := test llvm.spec include win32 Xcode
include $(LEVEL)/Makefile.config
-# llvm-gcc4 doesn't need runtime libs.
-ifeq ($(LLVMGCC_MAJVERS),4)
+# 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
+#endif
ifeq ($(MAKECMDGOALS),libs-only)
DIRS := $(filter-out tools runtime docs, $(DIRS))
# build LLVM.
ifeq ($(MAKECMDGOALS),install)
DIRS := $(filter-out utils, $(DIRS))
- OPTIONAL_DIRS :=
+ OPTIONAL_DIRS := $(filter bindings, $(OPTIONAL_DIRS))
endif
# Include the main makefile machinery.
endif
check-llvm2cpp:
- $(MAKE) check TESTSUITE=Feature RUNLLVM2CPP=1
+ $(Verb)$(MAKE) check TESTSUITE=Feature RUNLLVM2CPP=1
+
+check-one:
+ $(Verb)$(MAKE) -C test check-one TESTONE=$(TESTONE)
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
+
.PHONY: srpm rpm
+