blob: c6f726a12dd4aa9691464106aa7ab36e07d33e4c [file] [log] [blame]
Greg Clayton54e7afa2010-07-09 20:39:50 +00001##===- source/Makefile -------------------------------------*- Makefile -*-===##
2#
3# The LLVM Compiler Infrastructure
4#
5# This file is distributed under the University of Illinois Open Source
6# License. See LICENSE.TXT for details.
7#
8##===----------------------------------------------------------------------===##
9
10LEVEL := ../../..
11LLDB_LEVEL := ..
12
13LIBRARYNAME = lldb
14
15#EXPORTED_SYMBOL_FILE = $(PROJ_SRC_DIR)/../resources/lldb-framework-exports
16NO_BUILD_ARCHIVE = 1
17LINK_LIBS_IN_SHARED = 1
18SHARED_LIBRARY = 1
19
Greg Clayton1a2f3112011-02-05 02:32:19 +000020PYTHON_BUILD_FLAGS = -lpython2.6
21
Greg Clayton54e7afa2010-07-09 20:39:50 +000022# Include all archives in liblldb.a files
23USEDLIBS = lldbAPI.a \
24 lldbBreakpoint.a \
25 lldbCommands.a \
26 lldbCore.a \
27 lldbExpression.a \
Greg Clayton8f3b21d2010-09-07 20:11:56 +000028 lldbHostCommon.a \
Greg Clayton54e7afa2010-07-09 20:39:50 +000029 lldbInitAndLog.a \
30 lldbInterpreter.a \
31 lldbPluginABIMacOSX_i386.a \
32 lldbPluginABISysV_x86_64.a \
33 lldbPluginDisassemblerLLVM.a \
Stephen Wilson8be525a2011-03-08 03:57:00 +000034 lldbPluginDynamicLoaderStatic.a \
Greg Clayton54e7afa2010-07-09 20:39:50 +000035 lldbPluginObjectContainerBSDArchive.a \
Greg Clayton54e7afa2010-07-09 20:39:50 +000036 lldbPluginObjectFileELF.a \
Greg Clayton54e7afa2010-07-09 20:39:50 +000037 lldbPluginSymbolFileDWARF.a \
38 lldbPluginSymbolFileSymtab.a \
Stephen Wilson64dd0d72011-01-06 22:11:47 +000039 lldbPluginUtility.a \
Greg Clayton54e7afa2010-07-09 20:39:50 +000040 lldbSymbol.a \
41 lldbTarget.a \
42 lldbUtility.a \
Greg Clayton54e7afa2010-07-09 20:39:50 +000043 clangAnalysis.a \
44 clangAST.a \
45 clangBasic.a \
46 clangCodeGen.a \
47 clangFrontend.a \
48 clangDriver.a \
49 clangIndex.a \
50 clangLex.a \
51 clangRewrite.a \
52 clangParse.a \
53 clangSema.a \
Stephen Wilson64dd0d72011-01-06 22:11:47 +000054 clangSerialization.a \
Stephen Wilsonb6b6fae2011-01-25 23:03:42 +000055 EnhancedDisassembly.a
Greg Clayton54e7afa2010-07-09 20:39:50 +000056
Eli Friedman26f93ce2010-07-09 22:11:43 +000057include $(LLDB_LEVEL)/../../Makefile.config
58
59LINK_COMPONENTS := $(TARGETS_TO_BUILD) asmparser bitreader bitwriter codegen \
Stephen Wilson64dd0d72011-01-06 22:11:47 +000060 ipo selectiondag jit mc
Eli Friedman26f93ce2010-07-09 22:11:43 +000061
62ifeq ($(HOST_OS),Darwin)
63 USEDLIBS += lldbHostMacOSX.a \
64 lldbPluginDynamicLoaderMacOSX.a \
65 lldbPluginObjectContainerUniversalMachO.a \
66 lldbPluginObjectFileMachO.a \
67 lldbPluginProcessGDBRemote.a \
Stephen Wilsona3f015e2010-07-24 05:18:16 +000068 lldbPluginSymbolVendorMacOSX.a
Eli Friedman26f93ce2010-07-09 22:11:43 +000069endif
70
71ifeq ($(HOST_OS),Linux)
Stephen Wilson92241ef2011-01-16 19:45:39 +000072 USEDLIBS += lldbPluginProcessLinux.a \
73 lldbPluginDynamicLoaderLinux.a
Eli Friedman26f93ce2010-07-09 22:11:43 +000074endif
75
Greg Clayton54e7afa2010-07-09 20:39:50 +000076include $(LEVEL)/Makefile.common
77
Greg Clayton54e7afa2010-07-09 20:39:50 +000078ifeq ($(HOST_OS),Darwin)
Eli Friedman26f93ce2010-07-09 22:11:43 +000079 LLVMLibsOptions += -Wl,-all_load
Greg Clayton54e7afa2010-07-09 20:39:50 +000080 # set dylib internal version number to llvmCore submission number
81 ifdef LLDB_SUBMIT_VERSION
82 LLVMLibsOptions += -Wl,-current_version \
83 -Wl,$(LLDB_SUBMIT_VERSION).$(LLDB_SUBMIT_SUBVERSION) \
84 -Wl,-compatibility_version -Wl,1
85 endif
86 # extra options to override libtool defaults
87 LLVMLibsOptions += -avoid-version
88 LLVMLibsOptions += -F/System/Library/Frameworks -F/System/Library/PrivateFrameworks
89 LLVMLibsOptions += -framework Foundation -framework CoreFoundation
Greg Clayton1a2f3112011-02-05 02:32:19 +000090 LLVMLibsOptions += -framework DebugSymbols $(PYTHON_BUILD_FLAGS) -lobjc
Greg Clayton980d0672010-07-12 23:14:00 +000091 LLVMLibsOptions += -Wl,-exported_symbols_list -Wl,"$(PROJ_SRC_DIR)/$(LLDB_LEVEL)/resources/lldb-framework-exports"
Greg Clayton54e7afa2010-07-09 20:39:50 +000092 # Mac OS X 10.4 and earlier tools do not allow a second -install_name on command line
93 DARWIN_VERS := $(shell echo $(TARGET_TRIPLE) | sed 's/.*darwin\([0-9]*\).*/\1/')
94 ifneq ($(DARWIN_VERS),8)
95 LLVMLibsOptions += -no-undefined -Wl,-install_name \
96 -Wl,"@executable_path/../lib/lib$(LIBRARYNAME)$(SHLIBEXT)"
97 endif
98endif
99
100ifeq ($(HOST_OS), Linux)
101 # Include everything from the .a's into the shared library.
Eli Friedman26f93ce2010-07-09 22:11:43 +0000102 ProjLibsOptions := -Wl,--whole-archive $(ProjLibsOptions) \
Greg Clayton54e7afa2010-07-09 20:39:50 +0000103 -Wl,--no-whole-archive
104 # Don't allow unresolved symbols.
105 LLVMLibsOptions += -Wl,--no-undefined
Eli Friedman26f93ce2010-07-09 22:11:43 +0000106 # Link in python
Greg Clayton1a2f3112011-02-05 02:32:19 +0000107 LD.Flags += $(PYTHON_BUILD_FLAGS)
Greg Clayton54e7afa2010-07-09 20:39:50 +0000108endif