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