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). 14fe4c10caecc31dcb7a630091e1250e284ed528d5Chandler Carruth# 2. Build utils, which is used by IR. 15fe4c10caecc31dcb7a630091e1250e284ed528d5Chandler Carruth# 3. Build IR, 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. 1836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# 6. Build tools, docs, and cmake modules. 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 33fe4c10caecc31dcb7a630091e1250e284ed528d5Chandler Carruth DIRS := lib/Support lib/TableGen utils lib/IR lib tools/llvm-shlib \ 3436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines tools/llvm-config tools docs cmake 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) 55dd5d86d992eb129ecd0bb013d2db2d6a0e8d2605Chandler Carruth DIRS := $(filter-out tools docs, $(DIRS)) 565720be4138bba4fafb72a0f3034cfe47af40b696Chris Lattner OPTIONAL_DIRS := 575720be4138bba4fafb72a0f3034cfe47af40b696Chris Lattnerendif 5822033b2a4e0330b24fd601ef36e36bb1e544bf9dChris Lattner 59544f83db6b124d042cdb4eba1c83528056e81f09Nate Begemanifeq ($(MAKECMDGOALS),install-libs) 60dd5d86d992eb129ecd0bb013d2db2d6a0e8d2605Chandler Carruth DIRS := $(filter-out tools docs, $(DIRS)) 61544f83db6b124d042cdb4eba1c83528056e81f09Nate Begeman OPTIONAL_DIRS := $(filter bindings, $(OPTIONAL_DIRS)) 62544f83db6b124d042cdb4eba1c83528056e81f09Nate Begemanendif 63544f83db6b124d042cdb4eba1c83528056e81f09Nate Begeman 648b1f7676bddcf099e30b849f511ad5a6a86ea8a0Reid Spencerifeq ($(MAKECMDGOALS),tools-only) 65dd5d86d992eb129ecd0bb013d2db2d6a0e8d2605Chandler Carruth DIRS := $(filter-out 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 \ 75dd5d86d992eb129ecd0bb013d2db2d6a0e8d2605Chandler Carruth tools/lto 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) 87dd5d86d992eb129ecd0bb013d2db2d6a0e8d2605Chandler Carruth DIRS := $(filter-out tools 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 ; \ 11536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines AR=$(BUILD_AR) ; \ 11636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines AS=$(BUILD_AS) ; \ 11736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines LD=$(BUILD_LD) ; \ 11836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines CC=$(BUILD_CC) ; \ 11936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines CXX=$(BUILD_CXX) ; \ 120de659470dd036182fed5d87ec7a9c8d8e2bf996eDaniel Dunbar unset SDKROOT ; \ 121c9d0c7094183285a0c3da852d8ed513d2a459d6dBob Wilson unset UNIVERSAL_SDK_PATH ; \ 12236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines configure_opts= ; \ 12336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines if test "$(ENABLE_LIBCPP)" -ne 0 ; then \ 12436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines configure_opts="$$configure_opts --enable-libcpp"; \ 12536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines fi; \ 1265e869c353c01f168712ae33cb7de2e9ba5cdf658Shantonu Sen $(PROJ_SRC_DIR)/configure --build=$(BUILD_TRIPLE) \ 1270be07d39b1815536fadebf447008ff1ae9a78869Peter Collingbourne --host=$(BUILD_TRIPLE) --target=$(BUILD_TRIPLE) \ 12836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines --disable-polly $$configure_opts; \ 129569c45cab2354a2ce5e2657f6cd159d8ab84cd5aAnton Korobeynikov cd .. ; \ 130569c45cab2354a2ce5e2657f6cd159d8ab84cd5aAnton Korobeynikov fi; \ 131c9d0c7094183285a0c3da852d8ed513d2a459d6dBob Wilson ($(MAKE) -C BuildTools \ 1325e869c353c01f168712ae33cb7de2e9ba5cdf658Shantonu Sen BUILD_DIRS_ONLY=1 \ 1335e869c353c01f168712ae33cb7de2e9ba5cdf658Shantonu Sen UNIVERSAL= \ 134c9d0c7094183285a0c3da852d8ed513d2a459d6dBob Wilson UNIVERSAL_SDK_PATH= \ 135c9d0c7094183285a0c3da852d8ed513d2a459d6dBob Wilson SDKROOT= \ 136a7de1d67b2c57153732c394172a64d157c80988eDaniel Dunbar TARGET_NATIVE_ARCH="$(TARGET_NATIVE_ARCH)" \ 13701b825d45b6f067e42e4c3d160b87f34459aab8cDaniel Dunbar TARGETS_TO_BUILD="$(TARGETS_TO_BUILD)" \ 13836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines TARGET_LIBS="$(LIBS)" \ 1395e869c353c01f168712ae33cb7de2e9ba5cdf658Shantonu Sen ENABLE_OPTIMIZED=$(ENABLE_OPTIMIZED) \ 1405e869c353c01f168712ae33cb7de2e9ba5cdf658Shantonu Sen ENABLE_PROFILING=$(ENABLE_PROFILING) \ 1415e869c353c01f168712ae33cb7de2e9ba5cdf658Shantonu Sen ENABLE_COVERAGE=$(ENABLE_COVERAGE) \ 1425e869c353c01f168712ae33cb7de2e9ba5cdf658Shantonu Sen DISABLE_ASSERTIONS=$(DISABLE_ASSERTIONS) \ 1435e869c353c01f168712ae33cb7de2e9ba5cdf658Shantonu Sen ENABLE_EXPENSIVE_CHECKS=$(ENABLE_EXPENSIVE_CHECKS) \ 144bee515f66baf4f7858d30c2fe6657d35f177dfcdEric Christopher ENABLE_LIBCPP=$(ENABLE_LIBCPP) \ 14537ff5c66dbc1ec0ac77d2a20ef4e248245061e3fJim Grosbach CFLAGS= \ 14637ff5c66dbc1ec0ac77d2a20ef4e248245061e3fJim Grosbach CXXFLAGS= \ 1475e869c353c01f168712ae33cb7de2e9ba5cdf658Shantonu Sen ) || exit 1; 148569c45cab2354a2ce5e2657f6cd159d8ab84cd5aAnton Korobeynikovendif 149569c45cab2354a2ce5e2657f6cd159d8ab84cd5aAnton Korobeynikov 15022033b2a4e0330b24fd601ef36e36bb1e544bf9dChris Lattner# Include the main makefile machinery. 15106a801a38c43716564b3b9fb6c7a04ed242ecb61Reid Spencerinclude $(LLVM_SRC_ROOT)/Makefile.rules 15206a801a38c43716564b3b9fb6c7a04ed242ecb61Reid Spencer 15345eeed9b359eba3a69fd0911c543feed3d112d15Reid Spencer# Specify options to pass to configure script when we're 15445eeed9b359eba3a69fd0911c543feed3d112d15Reid Spencer# running the dist-check target 15545eeed9b359eba3a69fd0911c543feed3d112d15Reid SpencerDIST_CHECK_CONFIG_OPTIONS = --with-llvmgccdir=$(LLVMGCCDIR) 15645eeed9b359eba3a69fd0911c543feed3d112d15Reid Spencer 157df561f4ab347736cc513ef0483d9049987ac32c9Reid Spencer.PHONY: debug-opt-prof 158df561f4ab347736cc513ef0483d9049987ac32c9Reid Spencerdebug-opt-prof: 159df561f4ab347736cc513ef0483d9049987ac32c9Reid Spencer $(Echo) Building Debug Version 160df561f4ab347736cc513ef0483d9049987ac32c9Reid Spencer $(Verb) $(MAKE) 161df561f4ab347736cc513ef0483d9049987ac32c9Reid Spencer $(Echo) 162df561f4ab347736cc513ef0483d9049987ac32c9Reid Spencer $(Echo) Building Optimized Version 163df561f4ab347736cc513ef0483d9049987ac32c9Reid Spencer $(Echo) 164df561f4ab347736cc513ef0483d9049987ac32c9Reid Spencer $(Verb) $(MAKE) ENABLE_OPTIMIZED=1 165df561f4ab347736cc513ef0483d9049987ac32c9Reid Spencer $(Echo) 166df561f4ab347736cc513ef0483d9049987ac32c9Reid Spencer $(Echo) Building Profiling Version 167df561f4ab347736cc513ef0483d9049987ac32c9Reid Spencer $(Echo) 168df561f4ab347736cc513ef0483d9049987ac32c9Reid Spencer $(Verb) $(MAKE) ENABLE_PROFILING=1 169df561f4ab347736cc513ef0483d9049987ac32c9Reid Spencer 170151f8ba3645defc371eb4b68427384e411305734Reid Spencerdist-hook:: 171cc2d1e25f37d0d00c7f7f3ec562be61bc34e54caReid Spencer $(Echo) Eliminating files constructed by configure 172cc2d1e25f37d0d00c7f7f3ec562be61bc34e54caReid Spencer $(Verb) $(RM) -f \ 17390c29494121e3a4cefb5cae5d272178bbc49d3a9Reid Spencer $(TopDistDir)/include/llvm/Config/config.h \ 1741f6efa3996dd1929fbc129203ce5009b620e6969Michael J. Spencer $(TopDistDir)/include/llvm/Support/DataTypes.h 175151f8ba3645defc371eb4b68427384e411305734Reid Spencer 176b76ace310ad72f4c540f260ee18eef6674b15f31Mike Stumpclang-only: all 1779cf662b367795f07ddf2c6deca33839b6581548bChris Lattnertools-only: all 1788b1f7676bddcf099e30b849f511ad5a6a86ea8a0Reid Spencerlibs-only: all 179b76ace310ad72f4c540f260ee18eef6674b15f31Mike Stumpinstall-clang: install 180544f83db6b124d042cdb4eba1c83528056e81f09Nate Begemaninstall-libs: install 181ca739c685b963b103ae2d201e038ac37e7af4b29Reid Spencer 18258194307c1a45f6a20f5ed421c97309a9e007e46Daniel Dunbar# If SHOW_DIAGNOSTICS is enabled, clear the diagnostics file first. 18358194307c1a45f6a20f5ed421c97309a9e007e46Daniel Dunbarifeq ($(SHOW_DIAGNOSTICS),1) 18458194307c1a45f6a20f5ed421c97309a9e007e46Daniel Dunbarclean-diagnostics: 18558194307c1a45f6a20f5ed421c97309a9e007e46Daniel Dunbar $(Verb) rm -f $(LLVM_OBJ_ROOT)/$(BuildMode)/diags 18658194307c1a45f6a20f5ed421c97309a9e007e46Daniel Dunbar.PHONY: clean-diagnostics 18758194307c1a45f6a20f5ed421c97309a9e007e46Daniel Dunbar 18858194307c1a45f6a20f5ed421c97309a9e007e46Daniel Dunbarall-local:: clean-diagnostics 18958194307c1a45f6a20f5ed421c97309a9e007e46Daniel Dunbarendif 19058194307c1a45f6a20f5ed421c97309a9e007e46Daniel Dunbar 191ca739c685b963b103ae2d201e038ac37e7af4b29Reid Spencer#------------------------------------------------------------------------ 192f214b80b8d9c87574dd0c99d54d3c79e13b60b0bDylan Noblesmith# Make sure the generated files are up-to-date. This must be kept in 193f214b80b8d9c87574dd0c99d54d3c79e13b60b0bDylan Noblesmith# sync with the AC_CONFIG_HEADER and AC_CONFIG_FILE invocations in 194f214b80b8d9c87574dd0c99d54d3c79e13b60b0bDylan Noblesmith# autoconf/configure.ac. 195f214b80b8d9c87574dd0c99d54d3c79e13b60b0bDylan Noblesmith# Note that Makefile.config is covered by its own separate rule 196f214b80b8d9c87574dd0c99d54d3c79e13b60b0bDylan Noblesmith# in Makefile.rules where it can be reused by sub-projects. 197ca739c685b963b103ae2d201e038ac37e7af4b29Reid Spencer#------------------------------------------------------------------------ 198ca739c685b963b103ae2d201e038ac37e7af4b29Reid SpencerFilesToConfig := \ 199f214b80b8d9c87574dd0c99d54d3c79e13b60b0bDylan Noblesmith bindings/ocaml/llvm/META.llvm \ 200f214b80b8d9c87574dd0c99d54d3c79e13b60b0bDylan Noblesmith docs/doxygen.cfg \ 201f214b80b8d9c87574dd0c99d54d3c79e13b60b0bDylan Noblesmith llvm.spec \ 202ca739c685b963b103ae2d201e038ac37e7af4b29Reid Spencer include/llvm/Config/config.h \ 203f214b80b8d9c87574dd0c99d54d3c79e13b60b0bDylan Noblesmith include/llvm/Config/llvm-config.h \ 2041555a23335400143f2b54a66aedc4b5cbbb79f8dDouglas Gregor include/llvm/Config/Targets.def \ 205f87ea4dd9ac9816131ee52ee6393c7b4012f2e68Daniel Dunbar include/llvm/Config/AsmPrinters.def \ 206f87ea4dd9ac9816131ee52ee6393c7b4012f2e68Daniel Dunbar include/llvm/Config/AsmParsers.def \ 207f87ea4dd9ac9816131ee52ee6393c7b4012f2e68Daniel Dunbar include/llvm/Config/Disassemblers.def \ 208f11750633d31a474b8092d7103f50ca5af275d8dEric Christopher include/llvm/Support/DataTypes.h 209ca739c685b963b103ae2d201e038ac37e7af4b29Reid SpencerFilesToConfigPATH := $(addprefix $(LLVM_OBJ_ROOT)/,$(FilesToConfig)) 210ca739c685b963b103ae2d201e038ac37e7af4b29Reid Spencer 211ca739c685b963b103ae2d201e038ac37e7af4b29Reid Spencerall-local:: $(FilesToConfigPATH) 212ef5dc7072fb96a66cc744c0fd6550def9e7f7159Misha Brukman$(FilesToConfigPATH) : $(LLVM_OBJ_ROOT)/% : $(LLVM_SRC_ROOT)/%.in 213ca739c685b963b103ae2d201e038ac37e7af4b29Reid Spencer $(Echo) Regenerating $* 214ca739c685b963b103ae2d201e038ac37e7af4b29Reid Spencer $(Verb) cd $(LLVM_OBJ_ROOT) && $(ConfigStatusScript) $* 215ca739c685b963b103ae2d201e038ac37e7af4b29Reid Spencer.PRECIOUS: $(FilesToConfigPATH) 216e22f3c004a04806dbe45936ab0b5e48e6c5bc016Reid Spencer 21738ab6d887c660c7e2fe08707e8f982ab451fb224Chris Lattner# NOTE: This needs to remain as the last target definition in this file so 21838ab6d887c660c7e2fe08707e8f982ab451fb224Chris Lattner# that it gets executed last. 219569c45cab2354a2ce5e2657f6cd159d8ab84cd5aAnton Korobeynikovifneq ($(BUILD_DIRS_ONLY),1) 220ef5dc7072fb96a66cc744c0fd6550def9e7f7159Misha Brukmanall:: 2218246adc1f0e2d28374da3aeab864aee5ff03f3ffDuncan Sands $(Echo) '*****' Completed $(BuildMode) Build 2222b48c33936d5cbfcb8b48331963c71e99d88c8aeDuncan Sandsifneq ($(ENABLE_OPTIMIZED),1) 223e22f3c004a04806dbe45936ab0b5e48e6c5bc016Reid Spencer $(Echo) '*****' Note: Debug build can be 10 times slower than an 224e22f3c004a04806dbe45936ab0b5e48e6c5bc016Reid Spencer $(Echo) '*****' optimized build. Use 'make ENABLE_OPTIMIZED=1' to 2252ae19553980ac99a8881445623f55cc8f153cce3Gabor Greif $(Echo) '*****' make an optimized build. Alternatively you can 2262ae19553980ac99a8881445623f55cc8f153cce3Gabor Greif $(Echo) '*****' configure with --enable-optimized. 22758194307c1a45f6a20f5ed421c97309a9e007e46Daniel Dunbarifeq ($(SHOW_DIAGNOSTICS),1) 22858194307c1a45f6a20f5ed421c97309a9e007e46Daniel Dunbar $(Verb) if test -s $(LLVM_OBJ_ROOT)/$(BuildMode)/diags; then \ 229b16ec681a5dfdf99564f0f19f0c186fdac2f0342Daniel Dunbar $(LLVM_SRC_ROOT)/utils/clang-parse-diagnostics-file -a \ 23058194307c1a45f6a20f5ed421c97309a9e007e46Daniel Dunbar $(LLVM_OBJ_ROOT)/$(BuildMode)/diags; \ 23158194307c1a45f6a20f5ed421c97309a9e007e46Daniel Dunbar fi 23258194307c1a45f6a20f5ed421c97309a9e007e46Daniel Dunbarendif 233e22f3c004a04806dbe45936ab0b5e48e6c5bc016Reid Spencerendif 234569c45cab2354a2ce5e2657f6cd159d8ab84cd5aAnton Korobeynikovendif 23538ab6d887c660c7e2fe08707e8f982ab451fb224Chris Lattner 2365b30ee1c13a742f0c1843f867a6f75680c14e894Reid Spencercheck-llvm2cpp: 23742f98e54d11b40c76e13d852bfb30b6be9719663Reid Spencer $(Verb)$(MAKE) check TESTSUITE=Feature RUNLLVM2CPP=1 2385720be4138bba4fafb72a0f3034cfe47af40b696Chris Lattner 239ef5dc7072fb96a66cc744c0fd6550def9e7f7159Misha Brukmansrpm: $(LLVM_OBJ_ROOT)/llvm.spec 240f7c75a6832d86885db3af408307c42e7f1a1adacReid Spencer rpmbuild -bs $(LLVM_OBJ_ROOT)/llvm.spec 241f7c75a6832d86885db3af408307c42e7f1a1adacReid Spencer 242ef5dc7072fb96a66cc744c0fd6550def9e7f7159Misha Brukmanrpm: $(LLVM_OBJ_ROOT)/llvm.spec 243f7c75a6832d86885db3af408307c42e7f1a1adacReid Spencer rpmbuild -bb --target $(TARGET_TRIPLE) $(LLVM_OBJ_ROOT)/llvm.spec 244f7c75a6832d86885db3af408307c42e7f1a1adacReid Spencer 2451e46ae47b1dfe2d8f59da9cac9cedb52390c50feReid Spencershow-footprint: 2461e46ae47b1dfe2d8f59da9cac9cedb52390c50feReid Spencer $(Verb) du -sk $(LibDir) 2471e46ae47b1dfe2d8f59da9cac9cedb52390c50feReid Spencer $(Verb) du -sk $(ToolDir) 2481e46ae47b1dfe2d8f59da9cac9cedb52390c50feReid Spencer $(Verb) du -sk $(ExmplDir) 2491e46ae47b1dfe2d8f59da9cac9cedb52390c50feReid Spencer $(Verb) du -sk $(ObjDir) 2501e46ae47b1dfe2d8f59da9cac9cedb52390c50feReid Spencer 25151cf6426bf2ec569d843418077af59e7080e7f3eReid Spencerbuild-for-llvm-top: 25251cf6426bf2ec569d843418077af59e7080e7f3eReid Spencer $(Verb) if test ! -f ./config.status ; then \ 25351cf6426bf2ec569d843418077af59e7080e7f3eReid Spencer ./configure --prefix="$(LLVM_TOP)/install" \ 25451cf6426bf2ec569d843418077af59e7080e7f3eReid Spencer --with-llvm-gcc="$(LLVM_TOP)/llvm-gcc" ; \ 25551cf6426bf2ec569d843418077af59e7080e7f3eReid Spencer fi 25651cf6426bf2ec569d843418077af59e7080e7f3eReid Spencer $(Verb) $(MAKE) tools-only 25751cf6426bf2ec569d843418077af59e7080e7f3eReid Spencer 2581d7ca713bacb12a356b3b3de0f6a942eb3c085a1Gabor GreifSVN = svn 2599fa4226925cbc4d1aa54fc3eaecf95c898713e73Gabor GreifSVN-UPDATE-OPTIONS = 2601d7ca713bacb12a356b3b3de0f6a942eb3c085a1Gabor GreifAWK = awk 261410b46a3900729aa7f1f0083651068cf57ad643dEdwin Vane 262410b46a3900729aa7f1f0083651068cf57ad643dEdwin Vane# Multiline variable defining a recursive function for finding svn repos rooted at 263410b46a3900729aa7f1f0083651068cf57ad643dEdwin Vane# a given path. svnup() requires one argument: the root to search from. 264410b46a3900729aa7f1f0083651068cf57ad643dEdwin Vanedefine SUB_SVN_DIRS 265410b46a3900729aa7f1f0083651068cf57ad643dEdwin Vanesvnup() { 266bf361f58df152df70972fe1e212dc83880463f01Craig Topper dirs=`svn status --no-ignore $$1 | awk '/^(I|\?) / {print $$2}' | LC_ALL=C xargs svn info 2>/dev/null | awk '/^Path:\ / {print $$2}'`; 267410b46a3900729aa7f1f0083651068cf57ad643dEdwin Vane if [ "$$dirs" = "" ]; then 268410b46a3900729aa7f1f0083651068cf57ad643dEdwin Vane return; 269410b46a3900729aa7f1f0083651068cf57ad643dEdwin Vane fi; 270410b46a3900729aa7f1f0083651068cf57ad643dEdwin Vane for f in $$dirs; do 271410b46a3900729aa7f1f0083651068cf57ad643dEdwin Vane echo $$f; 272410b46a3900729aa7f1f0083651068cf57ad643dEdwin Vane svnup $$f; 273410b46a3900729aa7f1f0083651068cf57ad643dEdwin Vane done 274410b46a3900729aa7f1f0083651068cf57ad643dEdwin Vane} 275410b46a3900729aa7f1f0083651068cf57ad643dEdwin Vaneendef 276410b46a3900729aa7f1f0083651068cf57ad643dEdwin Vaneexport SUB_SVN_DIRS 2771d7ca713bacb12a356b3b3de0f6a942eb3c085a1Gabor Greif 2781d7ca713bacb12a356b3b3de0f6a942eb3c085a1Gabor Greifupdate: 2798e0c20bf1b7f507621d765cc7d795362fda639ffGabor Greif $(SVN) $(SVN-UPDATE-OPTIONS) update $(LLVM_SRC_ROOT) 280410b46a3900729aa7f1f0083651068cf57ad643dEdwin Vane @eval $$SUB_SVN_DIRS; $(SVN) status --no-ignore $(LLVM_SRC_ROOT) | svnup $(LLVM_SRC_ROOT) | xargs $(SVN) $(SVN-UPDATE-OPTIONS) update 2811d7ca713bacb12a356b3b3de0f6a942eb3c085a1Gabor Greif 282312fa75bb827946b83fa2fdd8407545a20bb299aGabor Greifhappiness: update all check-all 2831d7ca713bacb12a356b3b3de0f6a942eb3c085a1Gabor Greif 2841d7ca713bacb12a356b3b3de0f6a942eb3c085a1Gabor Greif.PHONY: srpm rpm update happiness 28551cf6426bf2ec569d843418077af59e7080e7f3eReid Spencer 2862ae19553980ac99a8881445623f55cc8f153cce3Gabor Greif# declare all targets at this level to be serial: 2872ae19553980ac99a8881445623f55cc8f153cce3Gabor Greif 2882ae19553980ac99a8881445623f55cc8f153cce3Gabor Greif.NOTPARALLEL: 2892ae19553980ac99a8881445623f55cc8f153cce3Gabor Greif 2904a53e1ef9d137af590425f77f02a4e974f370656Stuart Hastingselse # Building "Apple-style." 2914a53e1ef9d137af590425f77f02a4e974f370656Stuart Hastings# In an Apple-style build, once configuration is done, lines marked 2924a53e1ef9d137af590425f77f02a4e974f370656Stuart Hastings# "Apple-style" are removed with sed! Please don't remove these! 2934a53e1ef9d137af590425f77f02a4e974f370656Stuart Hastings# Look for the string "Apple-style" in utils/buildit/build_llvm. 2944a53e1ef9d137af590425f77f02a4e974f370656Stuart Hastingsinclude $(shell find . -name GNUmakefile) # Building "Apple-style." 2954a53e1ef9d137af590425f77f02a4e974f370656Stuart Hastingsendif # Building "Apple-style." 296