16d47bae50b63d47441321d6a367c37625e38d390Chris Lattner##===- tools/Makefile --------------------------------------*- Makefile -*-===## 2113ec35f7f69bd66c0fbab7b42e2b9d59eddb946Mikhail Glushenkov# 3e2fab734ade8a2e3e8679c11cac7236b920d567bJohn Criswell# The LLVM Compiler Infrastructure 4e2fab734ade8a2e3e8679c11cac7236b920d567bJohn Criswell# 551167848265a0fa006c32557caa4aeb3f482f45eChris Lattner# This file is distributed under the University of Illinois Open Source 651167848265a0fa006c32557caa4aeb3f482f45eChris Lattner# License. See LICENSE.TXT for details. 7113ec35f7f69bd66c0fbab7b42e2b9d59eddb946Mikhail Glushenkov# 8e2fab734ade8a2e3e8679c11cac7236b920d567bJohn Criswell##===----------------------------------------------------------------------===## 96d47bae50b63d47441321d6a367c37625e38d390Chris Lattner 10698e9ce56864223fe73b1ebefaf19845daf0c3d7Chris LattnerLEVEL := .. 110a26891ce9b6de840c087d73c04324729c3d1a8bMike Stump 12e5ab51d51f6e5cebf57db76c7f8527febc6a2b71NAKAMURA Takumiinclude $(LEVEL)/Makefile.config 13e5ab51d51f6e5cebf57db76c7f8527febc6a2b71NAKAMURA Takumi 140a26891ce9b6de840c087d73c04324729c3d1a8bMike Stump# Build clang if present. 15e5ab51d51f6e5cebf57db76c7f8527febc6a2b71NAKAMURA Takumi 16e5ab51d51f6e5cebf57db76c7f8527febc6a2b71NAKAMURA Takumiifneq ($(CLANG_SRC_ROOT),) 17e5ab51d51f6e5cebf57db76c7f8527febc6a2b71NAKAMURA Takumi OPTIONAL_PARALLEL_DIRS := $(CLANG_SRC_ROOT) 18e5ab51d51f6e5cebf57db76c7f8527febc6a2b71NAKAMURA Takumielse 19e5ab51d51f6e5cebf57db76c7f8527febc6a2b71NAKAMURA Takumi OPTIONAL_PARALLEL_DIRS := clang 20e5ab51d51f6e5cebf57db76c7f8527febc6a2b71NAKAMURA Takumiendif 210a26891ce9b6de840c087d73c04324729c3d1a8bMike Stump 22cd81d94322a39503e4a3e87b6ee03d4fcb3465fbStephen Hines# Build LLD and LLDB if present. Note LLDB must be built last as it depends on 23cd81d94322a39503e4a3e87b6ee03d4fcb3465fbStephen Hines# the wider LLVM infrastructure (including Clang). 24cd81d94322a39503e4a3e87b6ee03d4fcb3465fbStephen HinesOPTIONAL_DIRS := lld lldb 25ebccf0891a2f6b75c2ac8de97557ca0cf5ad61c3Stephen Wilson 26113ec35f7f69bd66c0fbab7b42e2b9d59eddb946Mikhail Glushenkov# NOTE: The tools are organized into five groups of four consisting of one 27113ec35f7f69bd66c0fbab7b42e2b9d59eddb946Mikhail Glushenkov# large and three small executables. This is done to minimize memory load 2836a987eed00886f6508668942df140fa053256caReid Spencer# in parallel builds. Please retain this ordering. 291cb19a4470533be84eb61e8f5fc40aa9d45f86f9Jim GrosbachDIRS := llvm-config 30dd5d86d992eb129ecd0bb013d2db2d6a0e8d2605Chandler CarruthPARALLEL_DIRS := opt llvm-as llvm-dis llc llvm-ar llvm-nm llvm-link \ 31b6adb4216cbc466cae62eff75ec9b2b552ecf866Chandler Carruth lli llvm-extract llvm-mc bugpoint llvm-bcanalyzer llvm-diff \ 32b6adb4216cbc466cae62eff75ec9b2b552ecf866Chandler Carruth macho-dump llvm-objdump llvm-readobj llvm-rtdyld \ 33b6adb4216cbc466cae62eff75ec9b2b552ecf866Chandler Carruth llvm-dwarfdump llvm-cov llvm-size llvm-stress llvm-mcmarkup \ 3436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines llvm-profdata llvm-symbolizer obj2yaml yaml2obj llvm-c-test 35041b3f835682588cb63df7e609d726369dd6b7d3Bill Wendling 36b709f9fe5a578e05c371ff58771b9d1582ff259fAndrew Kaylor# If Intel JIT Events support is configured, build an extra tool to test it. 37b709f9fe5a578e05c371ff58771b9d1582ff259fAndrew Kaylorifeq ($(USE_INTEL_JITEVENTS), 1) 38b709f9fe5a578e05c371ff58771b9d1582ff259fAndrew Kaylor PARALLEL_DIRS += llvm-jitlistener 39b709f9fe5a578e05c371ff58771b9d1582ff259fAndrew Kaylorendif 40b709f9fe5a578e05c371ff58771b9d1582ff259fAndrew Kaylor 41069429062d15a020047a3e52680822709aeb6d51Chris Lattner# Let users override the set of tools to build from the command line. 42069429062d15a020047a3e52680822709aeb6d51Chris Lattnerifdef ONLY_TOOLS 43069429062d15a020047a3e52680822709aeb6d51Chris Lattner OPTIONAL_PARALLEL_DIRS := 44ebccf0891a2f6b75c2ac8de97557ca0cf5ad61c3Stephen Wilson OPTIONAL_DIRS := $(findstring lldb,$(ONLY_TOOLS)) 45ebccf0891a2f6b75c2ac8de97557ca0cf5ad61c3Stephen Wilson PARALLEL_DIRS := $(filter-out lldb,$(ONLY_TOOLS)) 46069429062d15a020047a3e52680822709aeb6d51Chris Lattnerendif 47069429062d15a020047a3e52680822709aeb6d51Chris Lattner 4823e6d2b88a34e4a7aea9120446683c598da470d7Chris Lattner# These libraries build as dynamic libraries (.dylib /.so), they can only be 4923e6d2b88a34e4a7aea9120446683c598da470d7Chris Lattner# built if ENABLE_PIC is set. 50b8810a38865974ed41420ce85f21495e77990a80Daniel Dunbarifndef ONLY_TOOLS 51e9742d2f6c21522afda3a5c79936b9469be3e6d3Nick Lewyckyifeq ($(ENABLE_PIC),1) 52b4b544debac44da375d316e410ec447d967036a9NAKAMURA Takumi # gold only builds if binutils is around. It requires "lto" to build before 5388fae0edcce84920ba7c5685c36f6bd6cfb9b86dPeter Collingbourne # it so it is added to DIRS. llvm-lto also requires lto 5488fae0edcce84920ba7c5685c36f6bd6cfb9b86dPeter Collingbourne DIRS += lto llvm-lto 55b4b544debac44da375d316e410ec447d967036a9NAKAMURA Takumi ifdef BINUTILS_INCDIR 5688fae0edcce84920ba7c5685c36f6bd6cfb9b86dPeter Collingbourne DIRS += gold 57b4b544debac44da375d316e410ec447d967036a9NAKAMURA Takumi endif 58847da55716e9c1d39c08ed052bc86d28796cb91fChris Lattner 59b4b544debac44da375d316e410ec447d967036a9NAKAMURA Takumi PARALLEL_DIRS += bugpoint-passes 60294492b25f9a953e9210e4e1a23465e1b599fef8Anton Korobeynikovendif 61ac28588def0093238a28c52952c37919190873f5Reid Spencer 62baaadb2672e70916eb7e35b48b5ca34bec772fb8Tobias Grosserifdef LLVM_HAS_POLLY 63baaadb2672e70916eb7e35b48b5ca34bec772fb8Tobias Grosser PARALLEL_DIRS += polly 64baaadb2672e70916eb7e35b48b5ca34bec772fb8Tobias Grosserendif 65b8810a38865974ed41420ce85f21495e77990a80Daniel Dunbarendif 66baaadb2672e70916eb7e35b48b5ca34bec772fb8Tobias Grosser 67f5f6588304f803f09e36e7fc23c8f756b200b127NAKAMURA Takumi# On Win32, loadable modules can be built with ENABLE_SHARED. 68f5f6588304f803f09e36e7fc23c8f756b200b127NAKAMURA Takumiifneq ($(ENABLE_SHARED),1) 690ae59f4c07a85ba8455c8119534c06c78a62614aNAKAMURA Takumi ifneq (,$(filter $(HOST_OS), Cygwin MingW)) 70f5f6588304f803f09e36e7fc23c8f756b200b127NAKAMURA Takumi PARALLEL_DIRS := $(filter-out bugpoint-passes, \ 71f5f6588304f803f09e36e7fc23c8f756b200b127NAKAMURA Takumi $(PARALLEL_DIRS)) 72f5f6588304f803f09e36e7fc23c8f756b200b127NAKAMURA Takumi endif 73f5f6588304f803f09e36e7fc23c8f756b200b127NAKAMURA Takumiendif 74f5f6588304f803f09e36e7fc23c8f756b200b127NAKAMURA Takumi 75cf8cb6d56445823a51965f00d54517594f36e0b6Chris Lattnerinclude $(LEVEL)/Makefile.common 76