Makefile revision 9d8c6786588458e741ca38559f3d66bf006dfa69
16d5ab866fc1492c12b1f2531bbe7dcdb55ac9e15Misha Brukman#===- ./Makefile -------------------------------------------*- Makefile -*--===#
2ef5dc7072fb96a66cc744c0fd6550def9e7f7159Misha Brukman#
3e488e9360b1a865ba604330965edcf139e590b65John Criswell#                     The LLVM Compiler Infrastructure
4e488e9360b1a865ba604330965edcf139e590b65John Criswell#
557360d1f1cede3b26744d0ce3ade814fcc0f332dChris Lattner# This file is distributed under the University of Illinois Open Source
657360d1f1cede3b26744d0ce3ade814fcc0f332dChris Lattner# License. See LICENSE.TXT for details.
7ef5dc7072fb96a66cc744c0fd6550def9e7f7159Misha Brukman#
86d5ab866fc1492c12b1f2531bbe7dcdb55ac9e15Misha Brukman#===------------------------------------------------------------------------===#
922033b2a4e0330b24fd601ef36e36bb1e544bf9dChris Lattner
105720be4138bba4fafb72a0f3034cfe47af40b696Chris LattnerLEVEL := .
1187b5101248ad861db5298aad8ceb3a7e407707c5Chris Lattner
1287b5101248ad861db5298aad8ceb3a7e407707c5Chris Lattner# Top-Level LLVM Build Stages:
137c788888872233748da10a8177a9a1eb176c1bc8Peter Collingbourne#   1. Build lib/Support and lib/TableGen, which are used by utils (tblgen).
1487b5101248ad861db5298aad8ceb3a7e407707c5Chris Lattner#   2. Build utils, which is used by VMCore.
1587b5101248ad861db5298aad8ceb3a7e407707c5Chris Lattner#   3. Build VMCore, which builds the Intrinsics.inc file used by libs.
161ad92131abbed3d2992d5996969274a8e1ae9a6bDaniel Dunbar#   4. Build libs, which are needed by llvm-config.
171ad92131abbed3d2992d5996969274a8e1ae9a6bDaniel Dunbar#   5. Build llvm-config, which determines inter-lib dependencies for tools.
181ad92131abbed3d2992d5996969274a8e1ae9a6bDaniel Dunbar#   6. Build tools, runtime, docs.
1987b5101248ad861db5298aad8ceb3a7e407707c5Chris Lattner#
20569c45cab2354a2ce5e2657f6cd159d8ab84cd5aAnton Korobeynikov# When cross-compiling, there are some things (tablegen) that need to
21569c45cab2354a2ce5e2657f6cd159d8ab84cd5aAnton Korobeynikov# be build for the build system first.
224a53e1ef9d137af590425f77f02a4e974f370656Stuart Hastings
234a53e1ef9d137af590425f77f02a4e974f370656Stuart Hastings# If "RC_ProjectName" exists in the environment, and its value is
244a53e1ef9d137af590425f77f02a4e974f370656Stuart Hastings# "llvmCore", then this is an "Apple-style" build; search for
254a53e1ef9d137af590425f77f02a4e974f370656Stuart Hastings# "Apple-style" in the comments for more info.  Anything else is a
264a53e1ef9d137af590425f77f02a4e974f370656Stuart Hastings# normal build.
272cdc80c0671617ca9ff74ebcd8b8bd3a7097877eJim Grosbachifneq ($(findstring llvmCore, $(RC_ProjectName)),llvmCore)  # Normal build (not "Apple-style").
282cdc80c0671617ca9ff74ebcd8b8bd3a7097877eJim Grosbach
29569c45cab2354a2ce5e2657f6cd159d8ab84cd5aAnton Korobeynikovifeq ($(BUILD_DIRS_ONLY),1)
30cb497b888aabebe13de431c8a6e7c7d31f4dea0cDaniel Dunbar  DIRS := lib/Support lib/TableGen utils tools/llvm-config
310be07d39b1815536fadebf447008ff1ae9a78869Peter Collingbourne  OPTIONAL_DIRS := tools/clang/utils/TableGen
32569c45cab2354a2ce5e2657f6cd159d8ab84cd5aAnton Korobeynikovelse
337c788888872233748da10a8177a9a1eb176c1bc8Peter Collingbourne  DIRS := lib/Support lib/TableGen utils lib/VMCore lib tools/llvm-shlib \
34cb497b888aabebe13de431c8a6e7c7d31f4dea0cDaniel Dunbar          tools/llvm-config tools runtime docs unittests
35da589a3a963e6cc179d850c5fd395d3e10ce741cDaniel Dunbar  OPTIONAL_DIRS := projects bindings
36da589a3a963e6cc179d850c5fd395d3e10ce741cDaniel Dunbarendif
37da589a3a963e6cc179d850c5fd395d3e10ce741cDaniel Dunbar
38da589a3a963e6cc179d850c5fd395d3e10ce741cDaniel Dunbarifeq ($(BUILD_EXAMPLES),1)
39da589a3a963e6cc179d850c5fd395d3e10ce741cDaniel Dunbar  OPTIONAL_DIRS += examples
40569c45cab2354a2ce5e2657f6cd159d8ab84cd5aAnton Korobeynikovendif
41df93e579757961d9a43c3fee9b97b43da8fb652cDavid Greene
428fb520eb4f06d4ef771abe9c22d85b2a275988eeMisha BrukmanEXTRA_DIST := test unittests llvm.spec include win32 Xcode
43009505452b713ed2e3a8e99c5545a6e721c65495Chris Lattner
44ef5dc7072fb96a66cc744c0fd6550def9e7f7159Misha Brukmaninclude $(LEVEL)/Makefile.config
4593bc3cdd43a7f4e764049d12bd6aad019b834432Reid Spencer
46c90171961d020d93e4ce548016d8ccb8aab00c57Jeffrey Yasskinifneq ($(ENABLE_SHARED),1)
47c90171961d020d93e4ce548016d8ccb8aab00c57Jeffrey Yasskin  DIRS := $(filter-out tools/llvm-shlib, $(DIRS))
48c90171961d020d93e4ce548016d8ccb8aab00c57Jeffrey Yasskinendif
49c90171961d020d93e4ce548016d8ccb8aab00c57Jeffrey Yasskin
509d9ae9fb59ee3897ffc21dfa3b7078478ac6d674Rafael Espindolaifneq ($(ENABLE_DOCS),1)
519d9ae9fb59ee3897ffc21dfa3b7078478ac6d674Rafael Espindola  DIRS := $(filter-out docs, $(DIRS))
529d9ae9fb59ee3897ffc21dfa3b7078478ac6d674Rafael Espindolaendif
539d9ae9fb59ee3897ffc21dfa3b7078478ac6d674Rafael Espindola
545720be4138bba4fafb72a0f3034cfe47af40b696Chris Lattnerifeq ($(MAKECMDGOALS),libs-only)
558b2e1419cf24a33df5a87c99e367528b44dc28cfReid Spencer  DIRS := $(filter-out tools runtime docs, $(DIRS))
565720be4138bba4fafb72a0f3034cfe47af40b696Chris Lattner  OPTIONAL_DIRS :=
575720be4138bba4fafb72a0f3034cfe47af40b696Chris Lattnerendif
5822033b2a4e0330b24fd601ef36e36bb1e544bf9dChris Lattner
59544f83db6b124d042cdb4eba1c83528056e81f09Nate Begemanifeq ($(MAKECMDGOALS),install-libs)
60544f83db6b124d042cdb4eba1c83528056e81f09Nate Begeman  DIRS := $(filter-out tools runtime docs, $(DIRS))
61544f83db6b124d042cdb4eba1c83528056e81f09Nate Begeman  OPTIONAL_DIRS := $(filter bindings, $(OPTIONAL_DIRS))
62544f83db6b124d042cdb4eba1c83528056e81f09Nate Begemanendif
63544f83db6b124d042cdb4eba1c83528056e81f09Nate Begeman
648b1f7676bddcf099e30b849f511ad5a6a86ea8a0Reid Spencerifeq ($(MAKECMDGOALS),tools-only)
658b2e1419cf24a33df5a87c99e367528b44dc28cfReid Spencer  DIRS := $(filter-out runtime docs, $(DIRS))
665720be4138bba4fafb72a0f3034cfe47af40b696Chris Lattner  OPTIONAL_DIRS :=
676a8c2907b0721ce53ad6887be5b10eef50dac060Chris Lattnerendif
6822033b2a4e0330b24fd601ef36e36bb1e544bf9dChris Lattner
69b76ace310ad72f4c540f260ee18eef6674b15f31Mike Stumpifeq ($(MAKECMDGOALS),install-clang)
706b8dfed15e765e7b3d2121cd7fef377e6c9e00daDaniel Dunbar  DIRS := tools/clang/tools/driver tools/clang/lib/Headers \
714e33d94304c499083b2a3d4a8904084001f83882Bob Wilson          tools/clang/tools/libclang \
729d8c6786588458e741ca38559f3d66bf006dfa69Argyrios Kyrtzidis          tools/clang/tools/c-index-test \
739fbf6173b8730e18b39c0a6f3f348451f506780eBob Wilson          tools/clang/include/clang-c \
74e160a520ce94adfb1e1afbaddc2bd5ea7cd12d5cDaniel Dunbar          tools/clang/runtime tools/clang/docs \
75a1f21e69c4d3c658975ff4dc914ea6f2ccdaeaa0Bill Wendling          tools/lto runtime
76b76ace310ad72f4c540f260ee18eef6674b15f31Mike Stump  OPTIONAL_DIRS :=
77b76ace310ad72f4c540f260ee18eef6674b15f31Mike Stump  NO_INSTALL = 1
78b76ace310ad72f4c540f260ee18eef6674b15f31Mike Stumpendif
79b76ace310ad72f4c540f260ee18eef6674b15f31Mike Stump
80b76ace310ad72f4c540f260ee18eef6674b15f31Mike Stumpifeq ($(MAKECMDGOALS),clang-only)
81a1f21e69c4d3c658975ff4dc914ea6f2ccdaeaa0Bill Wendling  DIRS := $(filter-out tools docs unittests, $(DIRS)) \
82e160a520ce94adfb1e1afbaddc2bd5ea7cd12d5cDaniel Dunbar          tools/clang tools/lto
83b76ace310ad72f4c540f260ee18eef6674b15f31Mike Stump  OPTIONAL_DIRS :=
84b76ace310ad72f4c540f260ee18eef6674b15f31Mike Stumpendif
85b76ace310ad72f4c540f260ee18eef6674b15f31Mike Stump
868fb520eb4f06d4ef771abe9c22d85b2a275988eeMisha Brukmanifeq ($(MAKECMDGOALS),unittests)
878fb520eb4f06d4ef771abe9c22d85b2a275988eeMisha Brukman  DIRS := $(filter-out tools runtime docs, $(DIRS)) utils unittests
888fb520eb4f06d4ef771abe9c22d85b2a275988eeMisha Brukman  OPTIONAL_DIRS :=
898fb520eb4f06d4ef771abe9c22d85b2a275988eeMisha Brukmanendif
908fb520eb4f06d4ef771abe9c22d85b2a275988eeMisha Brukman
91c89146587ac8a030b1c63a52bdecd8eedbc87b09Chris Lattner# Use NO_INSTALL define of the Makefile of each directory for deciding
92c89146587ac8a030b1c63a52bdecd8eedbc87b09Chris Lattner# if the directory is installed or not
93122c05571141b695d9683b3fb4ce060e1ea1c009Chris Lattnerifeq ($(MAKECMDGOALS),install)
948ef426baa36639458f6777309db25c1768dc9c8aGordon Henriksen  OPTIONAL_DIRS := $(filter bindings, $(OPTIONAL_DIRS))
95122c05571141b695d9683b3fb4ce060e1ea1c009Chris Lattnerendif
96122c05571141b695d9683b3fb4ce060e1ea1c009Chris Lattner
97a1e1319992a64ffb57dd3a63e051daf6111e112bDaniel Dunbar# Don't build unittests when ONLY_TOOLS is set.
98a1e1319992a64ffb57dd3a63e051daf6111e112bDaniel Dunbarifneq ($(ONLY_TOOLS),)
99a1e1319992a64ffb57dd3a63e051daf6111e112bDaniel Dunbar  DIRS := $(filter-out unittests, $(DIRS))
100a1e1319992a64ffb57dd3a63e051daf6111e112bDaniel Dunbarendif
101a1e1319992a64ffb57dd3a63e051daf6111e112bDaniel Dunbar
102569c45cab2354a2ce5e2657f6cd159d8ab84cd5aAnton Korobeynikov# If we're cross-compiling, build the build-hosted tools first
103569c45cab2354a2ce5e2657f6cd159d8ab84cd5aAnton Korobeynikovifeq ($(LLVM_CROSS_COMPILING),1)
104569c45cab2354a2ce5e2657f6cd159d8ab84cd5aAnton Korobeynikovall:: cross-compile-build-tools
105569c45cab2354a2ce5e2657f6cd159d8ab84cd5aAnton Korobeynikov
106569c45cab2354a2ce5e2657f6cd159d8ab84cd5aAnton Korobeynikovclean::
107569c45cab2354a2ce5e2657f6cd159d8ab84cd5aAnton Korobeynikov	$(Verb) rm -rf BuildTools
108569c45cab2354a2ce5e2657f6cd159d8ab84cd5aAnton Korobeynikov
109569c45cab2354a2ce5e2657f6cd159d8ab84cd5aAnton Korobeynikovcross-compile-build-tools:
110569c45cab2354a2ce5e2657f6cd159d8ab84cd5aAnton Korobeynikov	$(Verb) if [ ! -f BuildTools/Makefile ]; then \
111569c45cab2354a2ce5e2657f6cd159d8ab84cd5aAnton Korobeynikov          $(MKDIR) BuildTools; \
112569c45cab2354a2ce5e2657f6cd159d8ab84cd5aAnton Korobeynikov	  cd BuildTools ; \
1131f22d6f131170f4dca02296fe266323d6339e6a3Jim Grosbach	  unset CFLAGS ; \
1141f22d6f131170f4dca02296fe266323d6339e6a3Jim Grosbach	  unset CXXFLAGS ; \
115de659470dd036182fed5d87ec7a9c8d8e2bf996eDaniel Dunbar	  unset SDKROOT ; \
116c9d0c7094183285a0c3da852d8ed513d2a459d6dBob Wilson	  unset UNIVERSAL_SDK_PATH ; \
1175e869c353c01f168712ae33cb7de2e9ba5cdf658Shantonu Sen	  $(PROJ_SRC_DIR)/configure --build=$(BUILD_TRIPLE) \
1180be07d39b1815536fadebf447008ff1ae9a78869Peter Collingbourne		--host=$(BUILD_TRIPLE) --target=$(BUILD_TRIPLE) \
1190be07d39b1815536fadebf447008ff1ae9a78869Peter Collingbourne	        --disable-polly ; \
120569c45cab2354a2ce5e2657f6cd159d8ab84cd5aAnton Korobeynikov	  cd .. ; \
121569c45cab2354a2ce5e2657f6cd159d8ab84cd5aAnton Korobeynikov	fi; \
122c9d0c7094183285a0c3da852d8ed513d2a459d6dBob Wilson	($(MAKE) -C BuildTools \
1235e869c353c01f168712ae33cb7de2e9ba5cdf658Shantonu Sen	  BUILD_DIRS_ONLY=1 \
1245e869c353c01f168712ae33cb7de2e9ba5cdf658Shantonu Sen	  UNIVERSAL= \
125c9d0c7094183285a0c3da852d8ed513d2a459d6dBob Wilson	  UNIVERSAL_SDK_PATH= \
126c9d0c7094183285a0c3da852d8ed513d2a459d6dBob Wilson	  SDKROOT= \
127a7de1d67b2c57153732c394172a64d157c80988eDaniel Dunbar	  TARGET_NATIVE_ARCH="$(TARGET_NATIVE_ARCH)" \
12801b825d45b6f067e42e4c3d160b87f34459aab8cDaniel Dunbar	  TARGETS_TO_BUILD="$(TARGETS_TO_BUILD)" \
1295e869c353c01f168712ae33cb7de2e9ba5cdf658Shantonu Sen	  ENABLE_OPTIMIZED=$(ENABLE_OPTIMIZED) \
1305e869c353c01f168712ae33cb7de2e9ba5cdf658Shantonu Sen	  ENABLE_PROFILING=$(ENABLE_PROFILING) \
1315e869c353c01f168712ae33cb7de2e9ba5cdf658Shantonu Sen	  ENABLE_COVERAGE=$(ENABLE_COVERAGE) \
1325e869c353c01f168712ae33cb7de2e9ba5cdf658Shantonu Sen	  DISABLE_ASSERTIONS=$(DISABLE_ASSERTIONS) \
1335e869c353c01f168712ae33cb7de2e9ba5cdf658Shantonu Sen	  ENABLE_EXPENSIVE_CHECKS=$(ENABLE_EXPENSIVE_CHECKS) \
134bee515f66baf4f7858d30c2fe6657d35f177dfcdEric Christopher	  ENABLE_LIBCPP=$(ENABLE_LIBCPP) \
13537ff5c66dbc1ec0ac77d2a20ef4e248245061e3fJim Grosbach	  CFLAGS= \
13637ff5c66dbc1ec0ac77d2a20ef4e248245061e3fJim Grosbach	  CXXFLAGS= \
1375e869c353c01f168712ae33cb7de2e9ba5cdf658Shantonu Sen	) || exit 1;
138569c45cab2354a2ce5e2657f6cd159d8ab84cd5aAnton Korobeynikovendif
139569c45cab2354a2ce5e2657f6cd159d8ab84cd5aAnton Korobeynikov
14022033b2a4e0330b24fd601ef36e36bb1e544bf9dChris Lattner# Include the main makefile machinery.
14106a801a38c43716564b3b9fb6c7a04ed242ecb61Reid Spencerinclude $(LLVM_SRC_ROOT)/Makefile.rules
14206a801a38c43716564b3b9fb6c7a04ed242ecb61Reid Spencer
14345eeed9b359eba3a69fd0911c543feed3d112d15Reid Spencer# Specify options to pass to configure script when we're
14445eeed9b359eba3a69fd0911c543feed3d112d15Reid Spencer# running the dist-check target
14545eeed9b359eba3a69fd0911c543feed3d112d15Reid SpencerDIST_CHECK_CONFIG_OPTIONS = --with-llvmgccdir=$(LLVMGCCDIR)
14645eeed9b359eba3a69fd0911c543feed3d112d15Reid Spencer
147df561f4ab347736cc513ef0483d9049987ac32c9Reid Spencer.PHONY: debug-opt-prof
148df561f4ab347736cc513ef0483d9049987ac32c9Reid Spencerdebug-opt-prof:
149df561f4ab347736cc513ef0483d9049987ac32c9Reid Spencer	$(Echo) Building Debug Version
150df561f4ab347736cc513ef0483d9049987ac32c9Reid Spencer	$(Verb) $(MAKE)
151df561f4ab347736cc513ef0483d9049987ac32c9Reid Spencer	$(Echo)
152df561f4ab347736cc513ef0483d9049987ac32c9Reid Spencer	$(Echo) Building Optimized Version
153df561f4ab347736cc513ef0483d9049987ac32c9Reid Spencer	$(Echo)
154df561f4ab347736cc513ef0483d9049987ac32c9Reid Spencer	$(Verb) $(MAKE) ENABLE_OPTIMIZED=1
155df561f4ab347736cc513ef0483d9049987ac32c9Reid Spencer	$(Echo)
156df561f4ab347736cc513ef0483d9049987ac32c9Reid Spencer	$(Echo) Building Profiling Version
157df561f4ab347736cc513ef0483d9049987ac32c9Reid Spencer	$(Echo)
158df561f4ab347736cc513ef0483d9049987ac32c9Reid Spencer	$(Verb) $(MAKE) ENABLE_PROFILING=1
159df561f4ab347736cc513ef0483d9049987ac32c9Reid Spencer
160151f8ba3645defc371eb4b68427384e411305734Reid Spencerdist-hook::
161cc2d1e25f37d0d00c7f7f3ec562be61bc34e54caReid Spencer	$(Echo) Eliminating files constructed by configure
162cc2d1e25f37d0d00c7f7f3ec562be61bc34e54caReid Spencer	$(Verb) $(RM) -f \
16390c29494121e3a4cefb5cae5d272178bbc49d3a9Reid Spencer	  $(TopDistDir)/include/llvm/Config/config.h  \
1641f6efa3996dd1929fbc129203ce5009b620e6969Michael J. Spencer	  $(TopDistDir)/include/llvm/Support/DataTypes.h
165151f8ba3645defc371eb4b68427384e411305734Reid Spencer
166b76ace310ad72f4c540f260ee18eef6674b15f31Mike Stumpclang-only: all
1679cf662b367795f07ddf2c6deca33839b6581548bChris Lattnertools-only: all
1688b1f7676bddcf099e30b849f511ad5a6a86ea8a0Reid Spencerlibs-only: all
169b76ace310ad72f4c540f260ee18eef6674b15f31Mike Stumpinstall-clang: install
170544f83db6b124d042cdb4eba1c83528056e81f09Nate Begemaninstall-libs: install
171ca739c685b963b103ae2d201e038ac37e7af4b29Reid Spencer
17258194307c1a45f6a20f5ed421c97309a9e007e46Daniel Dunbar# If SHOW_DIAGNOSTICS is enabled, clear the diagnostics file first.
17358194307c1a45f6a20f5ed421c97309a9e007e46Daniel Dunbarifeq ($(SHOW_DIAGNOSTICS),1)
17458194307c1a45f6a20f5ed421c97309a9e007e46Daniel Dunbarclean-diagnostics:
17558194307c1a45f6a20f5ed421c97309a9e007e46Daniel Dunbar	$(Verb) rm -f $(LLVM_OBJ_ROOT)/$(BuildMode)/diags
17658194307c1a45f6a20f5ed421c97309a9e007e46Daniel Dunbar.PHONY: clean-diagnostics
17758194307c1a45f6a20f5ed421c97309a9e007e46Daniel Dunbar
17858194307c1a45f6a20f5ed421c97309a9e007e46Daniel Dunbarall-local:: clean-diagnostics
17958194307c1a45f6a20f5ed421c97309a9e007e46Daniel Dunbarendif
18058194307c1a45f6a20f5ed421c97309a9e007e46Daniel Dunbar
181ca739c685b963b103ae2d201e038ac37e7af4b29Reid Spencer#------------------------------------------------------------------------
182f214b80b8d9c87574dd0c99d54d3c79e13b60b0bDylan Noblesmith# Make sure the generated files are up-to-date. This must be kept in
183f214b80b8d9c87574dd0c99d54d3c79e13b60b0bDylan Noblesmith# sync with the AC_CONFIG_HEADER and AC_CONFIG_FILE invocations in
184f214b80b8d9c87574dd0c99d54d3c79e13b60b0bDylan Noblesmith# autoconf/configure.ac.
185f214b80b8d9c87574dd0c99d54d3c79e13b60b0bDylan Noblesmith# Note that Makefile.config is covered by its own separate rule
186f214b80b8d9c87574dd0c99d54d3c79e13b60b0bDylan Noblesmith# in Makefile.rules where it can be reused by sub-projects.
187ca739c685b963b103ae2d201e038ac37e7af4b29Reid Spencer#------------------------------------------------------------------------
188ca739c685b963b103ae2d201e038ac37e7af4b29Reid SpencerFilesToConfig := \
189f214b80b8d9c87574dd0c99d54d3c79e13b60b0bDylan Noblesmith  bindings/ocaml/llvm/META.llvm \
190f214b80b8d9c87574dd0c99d54d3c79e13b60b0bDylan Noblesmith  docs/doxygen.cfg \
191f214b80b8d9c87574dd0c99d54d3c79e13b60b0bDylan Noblesmith  llvm.spec \
192ca739c685b963b103ae2d201e038ac37e7af4b29Reid Spencer  include/llvm/Config/config.h \
193f214b80b8d9c87574dd0c99d54d3c79e13b60b0bDylan Noblesmith  include/llvm/Config/llvm-config.h \
1941555a23335400143f2b54a66aedc4b5cbbb79f8dDouglas Gregor  include/llvm/Config/Targets.def \
195f87ea4dd9ac9816131ee52ee6393c7b4012f2e68Daniel Dunbar  include/llvm/Config/AsmPrinters.def \
196f87ea4dd9ac9816131ee52ee6393c7b4012f2e68Daniel Dunbar  include/llvm/Config/AsmParsers.def \
197f87ea4dd9ac9816131ee52ee6393c7b4012f2e68Daniel Dunbar  include/llvm/Config/Disassemblers.def \
198f11750633d31a474b8092d7103f50ca5af275d8dEric Christopher  include/llvm/Support/DataTypes.h
199ca739c685b963b103ae2d201e038ac37e7af4b29Reid SpencerFilesToConfigPATH  := $(addprefix $(LLVM_OBJ_ROOT)/,$(FilesToConfig))
200ca739c685b963b103ae2d201e038ac37e7af4b29Reid Spencer
201ca739c685b963b103ae2d201e038ac37e7af4b29Reid Spencerall-local:: $(FilesToConfigPATH)
202ef5dc7072fb96a66cc744c0fd6550def9e7f7159Misha Brukman$(FilesToConfigPATH) : $(LLVM_OBJ_ROOT)/% : $(LLVM_SRC_ROOT)/%.in
203ca739c685b963b103ae2d201e038ac37e7af4b29Reid Spencer	$(Echo) Regenerating $*
204ca739c685b963b103ae2d201e038ac37e7af4b29Reid Spencer	$(Verb) cd $(LLVM_OBJ_ROOT) && $(ConfigStatusScript) $*
205ca739c685b963b103ae2d201e038ac37e7af4b29Reid Spencer.PRECIOUS: $(FilesToConfigPATH)
206e22f3c004a04806dbe45936ab0b5e48e6c5bc016Reid Spencer
20738ab6d887c660c7e2fe08707e8f982ab451fb224Chris Lattner# NOTE: This needs to remain as the last target definition in this file so
20838ab6d887c660c7e2fe08707e8f982ab451fb224Chris Lattner# that it gets executed last.
209569c45cab2354a2ce5e2657f6cd159d8ab84cd5aAnton Korobeynikovifneq ($(BUILD_DIRS_ONLY),1)
210ef5dc7072fb96a66cc744c0fd6550def9e7f7159Misha Brukmanall::
2118246adc1f0e2d28374da3aeab864aee5ff03f3ffDuncan Sands	$(Echo) '*****' Completed $(BuildMode) Build
2122b48c33936d5cbfcb8b48331963c71e99d88c8aeDuncan Sandsifneq ($(ENABLE_OPTIMIZED),1)
213e22f3c004a04806dbe45936ab0b5e48e6c5bc016Reid Spencer	$(Echo) '*****' Note: Debug build can be 10 times slower than an
214e22f3c004a04806dbe45936ab0b5e48e6c5bc016Reid Spencer	$(Echo) '*****' optimized build. Use 'make ENABLE_OPTIMIZED=1' to
2152ae19553980ac99a8881445623f55cc8f153cce3Gabor Greif	$(Echo) '*****' make an optimized build. Alternatively you can
2162ae19553980ac99a8881445623f55cc8f153cce3Gabor Greif	$(Echo) '*****' configure with --enable-optimized.
21758194307c1a45f6a20f5ed421c97309a9e007e46Daniel Dunbarifeq ($(SHOW_DIAGNOSTICS),1)
21858194307c1a45f6a20f5ed421c97309a9e007e46Daniel Dunbar	$(Verb) if test -s $(LLVM_OBJ_ROOT)/$(BuildMode)/diags; then \
219b16ec681a5dfdf99564f0f19f0c186fdac2f0342Daniel Dunbar	  $(LLVM_SRC_ROOT)/utils/clang-parse-diagnostics-file -a \
22058194307c1a45f6a20f5ed421c97309a9e007e46Daniel Dunbar	    $(LLVM_OBJ_ROOT)/$(BuildMode)/diags; \
22158194307c1a45f6a20f5ed421c97309a9e007e46Daniel Dunbar	fi
22258194307c1a45f6a20f5ed421c97309a9e007e46Daniel Dunbarendif
223e22f3c004a04806dbe45936ab0b5e48e6c5bc016Reid Spencerendif
224569c45cab2354a2ce5e2657f6cd159d8ab84cd5aAnton Korobeynikovendif
22538ab6d887c660c7e2fe08707e8f982ab451fb224Chris Lattner
2265b30ee1c13a742f0c1843f867a6f75680c14e894Reid Spencercheck-llvm2cpp:
22742f98e54d11b40c76e13d852bfb30b6be9719663Reid Spencer	$(Verb)$(MAKE) check TESTSUITE=Feature RUNLLVM2CPP=1
2285720be4138bba4fafb72a0f3034cfe47af40b696Chris Lattner
229ef5dc7072fb96a66cc744c0fd6550def9e7f7159Misha Brukmansrpm: $(LLVM_OBJ_ROOT)/llvm.spec
230f7c75a6832d86885db3af408307c42e7f1a1adacReid Spencer	rpmbuild -bs $(LLVM_OBJ_ROOT)/llvm.spec
231f7c75a6832d86885db3af408307c42e7f1a1adacReid Spencer
232ef5dc7072fb96a66cc744c0fd6550def9e7f7159Misha Brukmanrpm: $(LLVM_OBJ_ROOT)/llvm.spec
233f7c75a6832d86885db3af408307c42e7f1a1adacReid Spencer	rpmbuild -bb --target $(TARGET_TRIPLE) $(LLVM_OBJ_ROOT)/llvm.spec
234f7c75a6832d86885db3af408307c42e7f1a1adacReid Spencer
2351e46ae47b1dfe2d8f59da9cac9cedb52390c50feReid Spencershow-footprint:
2361e46ae47b1dfe2d8f59da9cac9cedb52390c50feReid Spencer	$(Verb) du -sk $(LibDir)
2371e46ae47b1dfe2d8f59da9cac9cedb52390c50feReid Spencer	$(Verb) du -sk $(ToolDir)
2381e46ae47b1dfe2d8f59da9cac9cedb52390c50feReid Spencer	$(Verb) du -sk $(ExmplDir)
2391e46ae47b1dfe2d8f59da9cac9cedb52390c50feReid Spencer	$(Verb) du -sk $(ObjDir)
2401e46ae47b1dfe2d8f59da9cac9cedb52390c50feReid Spencer
24151cf6426bf2ec569d843418077af59e7080e7f3eReid Spencerbuild-for-llvm-top:
24251cf6426bf2ec569d843418077af59e7080e7f3eReid Spencer	$(Verb) if test ! -f ./config.status ; then \
24351cf6426bf2ec569d843418077af59e7080e7f3eReid Spencer	  ./configure --prefix="$(LLVM_TOP)/install" \
24451cf6426bf2ec569d843418077af59e7080e7f3eReid Spencer	    --with-llvm-gcc="$(LLVM_TOP)/llvm-gcc" ; \
24551cf6426bf2ec569d843418077af59e7080e7f3eReid Spencer	fi
24651cf6426bf2ec569d843418077af59e7080e7f3eReid Spencer	$(Verb) $(MAKE) tools-only
24751cf6426bf2ec569d843418077af59e7080e7f3eReid Spencer
2481d7ca713bacb12a356b3b3de0f6a942eb3c085a1Gabor GreifSVN = svn
2499fa4226925cbc4d1aa54fc3eaecf95c898713e73Gabor GreifSVN-UPDATE-OPTIONS =
2501d7ca713bacb12a356b3b3de0f6a942eb3c085a1Gabor GreifAWK = awk
251f6933e6a18e8b36aff63f0c15ddc627f8a610525David BlaikieSUB-SVN-DIRS = $(AWK) '/I|\?      / {print $$2}'   \
25295fc7aac600803a6a29e73746f9336e3a7cdf383Gabor Greif		| LC_ALL=C xargs $(SVN) info 2>/dev/null \
253b3b6335212451b348dd86dd27a0086de7fb232bcDavid Blaikie		| $(AWK) '/^Path:\ / {print $$2}'
2541d7ca713bacb12a356b3b3de0f6a942eb3c085a1Gabor Greif
2551d7ca713bacb12a356b3b3de0f6a942eb3c085a1Gabor Greifupdate:
2568e0c20bf1b7f507621d765cc7d795362fda639ffGabor Greif	$(SVN) $(SVN-UPDATE-OPTIONS) update $(LLVM_SRC_ROOT)
257f6933e6a18e8b36aff63f0c15ddc627f8a610525David Blaikie	@ $(SVN) status --no-ignore $(LLVM_SRC_ROOT) | $(SUB-SVN-DIRS) | xargs $(SVN) $(SVN-UPDATE-OPTIONS) update
2581d7ca713bacb12a356b3b3de0f6a942eb3c085a1Gabor Greif
259312fa75bb827946b83fa2fdd8407545a20bb299aGabor Greifhappiness: update all check-all
2601d7ca713bacb12a356b3b3de0f6a942eb3c085a1Gabor Greif
2611d7ca713bacb12a356b3b3de0f6a942eb3c085a1Gabor Greif.PHONY: srpm rpm update happiness
26251cf6426bf2ec569d843418077af59e7080e7f3eReid Spencer
2632ae19553980ac99a8881445623f55cc8f153cce3Gabor Greif# declare all targets at this level to be serial:
2642ae19553980ac99a8881445623f55cc8f153cce3Gabor Greif
2652ae19553980ac99a8881445623f55cc8f153cce3Gabor Greif.NOTPARALLEL:
2662ae19553980ac99a8881445623f55cc8f153cce3Gabor Greif
2674a53e1ef9d137af590425f77f02a4e974f370656Stuart Hastingselse # Building "Apple-style."
2684a53e1ef9d137af590425f77f02a4e974f370656Stuart Hastings# In an Apple-style build, once configuration is done, lines marked
2694a53e1ef9d137af590425f77f02a4e974f370656Stuart Hastings# "Apple-style" are removed with sed!  Please don't remove these!
2704a53e1ef9d137af590425f77f02a4e974f370656Stuart Hastings# Look for the string "Apple-style" in utils/buildit/build_llvm.
2714a53e1ef9d137af590425f77f02a4e974f370656Stuart Hastingsinclude $(shell find . -name GNUmakefile) # Building "Apple-style."
2724a53e1ef9d137af590425f77f02a4e974f370656Stuart Hastingsendif # Building "Apple-style."
273