blob: c01db5488e6c40dab97f844f01ab7bd309d52ffe [file] [log] [blame]
Daniel Dunbar3ede8d02009-03-02 19:59:07 +00001##===- tools/driver/Makefile -------------------------------*- Makefile -*-===##
Daniel Dunbar21085772009-12-11 22:20:12 +00002#
Daniel Dunbar3ede8d02009-03-02 19:59:07 +00003# The LLVM Compiler Infrastructure
4#
5# This file is distributed under the University of Illinois Open Source
6# License. See LICENSE.TXT for details.
Daniel Dunbar21085772009-12-11 22:20:12 +00007#
Daniel Dunbar3ede8d02009-03-02 19:59:07 +00008##===----------------------------------------------------------------------===##
Daniel Dunbarafed0992010-06-08 20:34:18 +00009CLANG_LEVEL := ../..
Daniel Dunbar3ede8d02009-03-02 19:59:07 +000010
Daniel Dunbar7ec3daf2009-03-24 03:07:05 +000011TOOLNAME = clang
Daniel Dunbar3f693d22010-01-18 17:52:48 +000012ifndef CLANG_IS_PRODUCTION
Daniel Dunbarf4961da2009-11-19 00:21:33 +000013TOOLALIAS = clang++
Daniel Dunbar5d93ed32010-04-01 18:21:41 +000014else
15 ifdef CLANGXX_IS_PRODUCTION
16 TOOLALIAS = clang++
17 endif
Daniel Dunbar3f693d22010-01-18 17:52:48 +000018endif
Daniel Dunbar3ede8d02009-03-02 19:59:07 +000019
Daniel Dunbarb08fab82010-09-10 21:42:03 +000020# We don't currently expect production Clang builds to be interested in
21# plugins. This is important for startup performance.
22ifdef CLANG_IS_PRODUCTION
23TOOL_NO_EXPORTS := 1
24endif
25
Daniel Dunbar6dbcaf32010-09-16 00:42:38 +000026ifdef CLANG_ORDER_FILE
27TOOL_ORDER_FILE := $(CLANG_ORDER_FILE)
28endif
29
Daniel Dunbar7bad56c2010-07-15 19:33:44 +000030# Include tool version information on OS X.
31TOOL_INFO_PLIST := Info.plist
32
Daniel Dunbar21085772009-12-11 22:20:12 +000033# Include this here so we can get the configuration of the targets that have
34# been configured for construction. We have to do this early so we can set up
35# LINK_COMPONENTS before including Makefile.rules
Daniel Dunbarafed0992010-06-08 20:34:18 +000036include $(CLANG_LEVEL)/../../Makefile.config
Daniel Dunbar3ede8d02009-03-02 19:59:07 +000037
Daniel Dunbar4cbbd942010-06-07 23:27:59 +000038LINK_COMPONENTS := $(TARGETS_TO_BUILD) asmparser bitreader bitwriter codegen \
39 ipo selectiondag
Peter Collingbourne1b7255d2010-08-24 00:31:22 +000040USEDLIBS = clangFrontendTool.a clangFrontend.a clangDriver.a \
41 clangSerialization.a clangCodeGen.a clangParse.a clangSema.a \
Zhongxing Xu0742f182011-01-10 09:23:01 +000042 clangStaticAnalyzerCheckers.a clangStaticAnalyzerCore.a \
43 clangAnalysis.a clangIndex.a clangRewrite.a \
Peter Collingbourne1b7255d2010-08-24 00:31:22 +000044 clangAST.a clangLex.a clangBasic.a
Daniel Dunbar21085772009-12-11 22:20:12 +000045
Daniel Dunbarafed0992010-06-08 20:34:18 +000046include $(CLANG_LEVEL)/Makefile
Daniel Dunbarf44c5852009-09-22 22:31:13 +000047
Daniel Dunbar7bad56c2010-07-15 19:33:44 +000048# Set the tool version information values.
49ifeq ($(HOST_OS),Darwin)
50ifdef CLANG_VENDOR
51TOOL_INFO_NAME := $(CLANG_VENDOR) clang
52else
53TOOL_INFO_NAME := clang
54endif
55
56ifdef CLANG_VENDOR_UTI
57TOOL_INFO_UTI := $(CLANG_VENDOR_UTI)
58else
59TOOL_INFO_UTI := org.llvm.clang
60endif
61
62TOOL_INFO_VERSION := $(word 3,$(shell grep "CLANG_VERSION " \
63 $(PROJ_OBJ_DIR)/$(CLANG_LEVEL)/include/clang/Basic/Version.inc))
64ifdef LLVM_SUBMIT_VERSION
65TOOL_INFO_BUILD_VERSION := $(LLVM_SUBMIT_VERSION).$(LLVM_SUBMIT_SUBVERSION)
66else
67TOOL_INFO_BUILD_VERSION :=
68endif
69endif
70
Daniel Dunbarf44c5852009-09-22 22:31:13 +000071# Translate make variable to define when building a "production" clang.
72ifdef CLANG_IS_PRODUCTION
73CPP.Defines += -DCLANG_IS_PRODUCTION
74endif
Daniel Dunbar5d93ed32010-04-01 18:21:41 +000075ifdef CLANGXX_IS_PRODUCTION
76CPP.Defines += -DCLANGXX_IS_PRODUCTION
77endif