blob: 731024763b3a9f8e4f26ac7468c5d821d85484d8 [file] [log] [blame]
Chris Lattner6d47bae2004-01-05 05:28:15 +00001##===- tools/Makefile --------------------------------------*- Makefile -*-===##
Mikhail Glushenkov113ec352008-11-25 21:38:12 +00002#
John Criswelle2fab732003-10-20 22:29:16 +00003# The LLVM Compiler Infrastructure
4#
Chris Lattner51167842007-12-29 20:07:17 +00005# This file is distributed under the University of Illinois Open Source
6# License. See LICENSE.TXT for details.
Mikhail Glushenkov113ec352008-11-25 21:38:12 +00007#
John Criswelle2fab732003-10-20 22:29:16 +00008##===----------------------------------------------------------------------===##
Chris Lattner6d47bae2004-01-05 05:28:15 +00009
Chris Lattner698e9ce2002-12-06 03:53:40 +000010LEVEL := ..
Mike Stump0a268912009-01-24 00:00:41 +000011
12# Build clang if present.
13OPTIONAL_PARALLEL_DIRS := clang
14
Stephen Wilsonebccf082011-02-20 04:17:15 +000015# Build LLDB if present. Note LLDB must be built last as it depends on the
16# wider LLVM infrastructure (including Clang).
17OPTIONAL_DIRS := lldb
18
Mikhail Glushenkov113ec352008-11-25 21:38:12 +000019# NOTE: The tools are organized into five groups of four consisting of one
20# large and three small executables. This is done to minimize memory load
Reid Spencer36a987e2007-02-09 17:02:07 +000021# in parallel builds. Please retain this ordering.
Chris Lattner847da552010-07-20 18:25:19 +000022DIRS := llvm-config
Chris Lattnere744ab22010-07-20 20:55:57 +000023PARALLEL_DIRS := opt llvm-as llvm-dis \
Reid Spencer36a987e2007-02-09 17:02:07 +000024 llc llvm-ranlib llvm-ar llvm-nm \
Chris Lattner8c2ec512008-03-30 18:58:05 +000025 llvm-ld llvm-prof llvm-link \
Chris Lattner847da552010-07-20 18:25:19 +000026 lli llvm-extract llvm-mc \
Rafael Espindola0b5b1022010-08-09 14:05:42 +000027 bugpoint llvm-bcanalyzer llvm-stub \
Michael J. Spencer92e1deb2011-01-20 06:39:06 +000028 llvmc llvm-diff macho-dump llvm-objdump
Bill Wendling041b3f82007-12-08 23:58:46 +000029
Chris Lattner06942902009-04-25 22:08:52 +000030# Let users override the set of tools to build from the command line.
31ifdef ONLY_TOOLS
32 OPTIONAL_PARALLEL_DIRS :=
Stephen Wilsonebccf082011-02-20 04:17:15 +000033 OPTIONAL_DIRS := $(findstring lldb,$(ONLY_TOOLS))
34 PARALLEL_DIRS := $(filter-out lldb,$(ONLY_TOOLS))
Chris Lattner06942902009-04-25 22:08:52 +000035endif
36
Chris Lattnercf8cb6d2006-09-08 18:33:49 +000037include $(LEVEL)/Makefile.config
Chris Lattner70c35372006-09-08 18:08:50 +000038
Chris Lattner847da552010-07-20 18:25:19 +000039
Chris Lattner23e6d2b2010-03-05 00:59:18 +000040# These libraries build as dynamic libraries (.dylib /.so), they can only be
41# built if ENABLE_PIC is set.
Daniel Dunbarb8810a32010-12-16 15:42:26 +000042ifndef ONLY_TOOLS
Nick Lewyckye9742d22009-03-03 07:45:09 +000043ifeq ($(ENABLE_PIC),1)
NAKAMURA Takumib4b544d2010-11-29 00:20:34 +000044 # gold only builds if binutils is around. It requires "lto" to build before
45 # it so it is added to DIRS.
46 ifdef BINUTILS_INCDIR
47 DIRS += lto gold
48 else
49 PARALLEL_DIRS += lto
50 endif
Chris Lattner847da552010-07-20 18:25:19 +000051
NAKAMURA Takumib4b544d2010-11-29 00:20:34 +000052 PARALLEL_DIRS += bugpoint-passes
Rafael Espindola0b5b1022010-08-09 14:05:42 +000053
NAKAMURA Takumib4b544d2010-11-29 00:20:34 +000054 # The edis library is only supported if ARM and/or X86 are enabled, and if
55 # LLVM is being built PIC on platforms that support dylibs.
56 ifneq ($(DISABLE_EDIS),1)
Chris Lattner847da552010-07-20 18:25:19 +000057 ifneq ($(filter $(TARGETS_TO_BUILD), X86 ARM),)
Chris Lattnere744ab22010-07-20 20:55:57 +000058 PARALLEL_DIRS += edis
Chris Lattner847da552010-07-20 18:25:19 +000059 endif
NAKAMURA Takumib4b544d2010-11-29 00:20:34 +000060 endif
Anton Korobeynikov294492b2006-09-08 18:00:43 +000061endif
Reid Spencerac285882006-05-30 21:20:55 +000062
Tobias Grosserbaaadb22010-10-30 00:54:26 +000063ifdef LLVM_HAS_POLLY
64 PARALLEL_DIRS += polly
65endif
Daniel Dunbarb8810a32010-12-16 15:42:26 +000066endif
Tobias Grosserbaaadb22010-10-30 00:54:26 +000067
NAKAMURA Takumif5f65882010-11-29 00:20:28 +000068# On Win32, loadable modules can be built with ENABLE_SHARED.
69ifneq ($(ENABLE_SHARED),1)
NAKAMURA Takumi0ae59f42010-11-29 08:58:11 +000070 ifneq (,$(filter $(HOST_OS), Cygwin MingW))
NAKAMURA Takumif5f65882010-11-29 00:20:28 +000071 PARALLEL_DIRS := $(filter-out bugpoint-passes, \
72 $(PARALLEL_DIRS))
73 endif
74endif
75
Chris Lattnercf8cb6d2006-09-08 18:33:49 +000076include $(LEVEL)/Makefile.common