diff options
author | Anton Korobeynikov <asl@math.spbu.ru> | 2008-11-10 07:33:13 +0000 |
---|---|---|
committer | Anton Korobeynikov <asl@math.spbu.ru> | 2008-11-10 07:33:13 +0000 |
commit | 569c45cab2354a2ce5e2657f6cd159d8ab84cd5a (patch) | |
tree | d796bda95733fb08ccdd83b3bb15d461745b1f41 /Makefile | |
parent | 22a8e9e511c337566a96044eba363771f72d2786 (diff) | |
download | llvm-569c45cab2354a2ce5e2657f6cd159d8ab84cd5a.tar.gz |
Proper way of doing llvm canadian-cross compilation.
Patch by Jim Grosbach!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58981 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'Makefile')
-rw-r--r-- | Makefile | 38 |
1 files changed, 29 insertions, 9 deletions
@@ -17,20 +17,21 @@ LEVEL := . # 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 +# When cross-compiling, there are some things (tablegen) that need to +# be build for the build system first. +ifeq ($(BUILD_DIRS_ONLY),1) + DIRS := lib/System lib/Support utils + OPTIONAL_DIRS := +else + DIRS := lib/System lib/Support utils lib/VMCore lib tools/llvm-config \ + tools runtime docs + OPTIONAL_DIRS := examples projects bindings +endif -OPTIONAL_DIRS := examples projects bindings EXTRA_DIST := test llvm.spec include win32 Xcode include $(LEVEL)/Makefile.config -# When cross-compiling, there are some things (tablegen) that need to -# be build for the build system. -ifeq ($(LLVM_CROSS_COMPILING),1) - BUILD_TARGET_DIRS := lib/System lib/Support utils -endif - # 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. @@ -60,6 +61,23 @@ ifeq ($(MAKECMDGOALS),install) 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; +endif + # Include the main makefile machinery. include $(LLVM_SRC_ROOT)/Makefile.rules @@ -114,6 +132,7 @@ $(FilesToConfigPATH) : $(LLVM_OBJ_ROOT)/% : $(LLVM_SRC_ROOT)/%.in # NOTE: This needs to remain as the last target definition in this file so # that it gets executed last. +ifneq ($(BUILD_DIRS_ONLY),1) all:: $(Echo) '*****' Completed $(BuildMode)$(AssertMode) Build ifeq ($(BuildMode),Debug) @@ -122,6 +141,7 @@ ifeq ($(BuildMode),Debug) $(Echo) '*****' make an optimized build. Alternatively you can $(Echo) '*****' configure with --enable-optimized. endif +endif check-llvm2cpp: $(Verb)$(MAKE) check TESTSUITE=Feature RUNLLVM2CPP=1 |