aboutsummaryrefslogtreecommitdiff
path: root/lib/Makefile
blob: 44575fbfdbb8bf8daaa25e9e9ba2988994ccd797 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
##===- source/Makefile -------------------------------------*- Makefile -*-===##
# 
#                     The LLVM Compiler Infrastructure
#
# This file is distributed under the University of Illinois Open Source
# License. See LICENSE.TXT for details.
# 
##===----------------------------------------------------------------------===##

LEVEL := ../../..
LLDB_LEVEL := ..

LIBRARYNAME = lldb

#EXPORTED_SYMBOL_FILE = $(PROJ_SRC_DIR)/../resources/lldb-framework-exports
NO_BUILD_ARCHIVE = 1
LINK_LIBS_IN_SHARED = 1
SHARED_LIBRARY = 1

PYTHON_BUILD_FLAGS = $(shell python-config --ldflags)

# Include all archives in liblldb.a files
USEDLIBS = lldbAPI.a \
	lldbBreakpoint.a \
	lldbCommands.a \
	lldbCore.a \
	lldbExpression.a \
	lldbHostCommon.a \
	lldbInitAndLog.a \
	lldbInterpreter.a \
	lldbPluginABIMacOSX_arm.a \
	lldbPluginABIMacOSX_i386.a \
	lldbPluginABISysV_x86_64.a \
	lldbPluginDisassemblerLLVM.a \
	lldbPluginDynamicLoaderStatic.a \
	lldbPluginEmulateInstructionARM.a \
	lldbPluginLanguageRuntimeCPlusPlusItaniumABI.a \
	lldbPluginLanguageRuntimeObjCAppleObjCRuntime.a \
	lldbPluginObjectContainerBSDArchive.a \
	lldbPluginObjectFileELF.a \
	lldbPluginObjectFilePECOFF.a \
	lldbPluginPlatformGDBServer.a \
	lldbPluginProcessGDBRemote.a \
	lldbPluginSymbolFileDWARF.a \
	lldbPluginSymbolFileSymtab.a \
	lldbPluginUnwindAssemblyInstEmulation.a \
	lldbPluginUnwindAssemblyx86.a \
	lldbPluginUtility.a \
	lldbSymbol.a \
	lldbTarget.a \
	lldbUtility.a \
	clangAnalysis.a \
	clangAST.a \
	clangBasic.a \
	clangCodeGen.a \
	clangFrontend.a \
	clangDriver.a \
	clangIndex.a \
	clangLex.a \
	clangRewrite.a \
	clangParse.a \
	clangSema.a \
	clangSerialization.a \
	EnhancedDisassembly.a \
	LLVMMCDisassembler.a

include $(LLDB_LEVEL)/../../Makefile.config

LINK_COMPONENTS := $(TARGETS_TO_BUILD) asmparser bitreader bitwriter codegen \
                   instrumentation ipo selectiondag jit mc mcjit

ifeq ($(HOST_OS),Darwin)
  USEDLIBS += lldbHostMacOSX.a \
              lldbPluginDynamicLoaderMacOSX.a \
              lldbPluginDynamicLoaderDarwinKernel.a \
              lldbPluginObjectContainerUniversalMachO.a \
              lldbPluginObjectFileMachO.a \
              lldbPluginSymbolVendorMacOSX.a \
              lldbPluginPlatformMacOSX.a \
			  lldbPluginProcessDarwin.a
endif

ifeq ($(HOST_OS),Linux)
  USEDLIBS += lldbPluginProcessLinux.a \
              lldbPluginDynamicLoaderLinux.a \
              lldbPluginPlatformLinux.a \
              lldbHostLinux.a
endif

ifeq ($(HOST_OS),FreeBSD)
  USEDLIBS += lldbHostFreeBSD.a \
			  lldbPluginPlatformFreeBSD.a
endif

include $(LEVEL)/Makefile.common

ifeq ($(HOST_OS),Darwin)
    LLVMLibsOptions += -Wl,-all_load
    # set dylib internal version number to llvmCore submission number
    ifdef LLDB_SUBMIT_VERSION
        LLVMLibsOptions += -Wl,-current_version \
                           -Wl,$(LLDB_SUBMIT_VERSION).$(LLDB_SUBMIT_SUBVERSION) \
                           -Wl,-compatibility_version -Wl,1
    endif
    # extra options to override libtool defaults 
	LLVMLibsOptions += -F/System/Library/Frameworks -F/System/Library/PrivateFrameworks
	LLVMLibsOptions += -framework Foundation -framework CoreFoundation
	LLVMLibsOptions += -framework CoreServices -framework Carbon
	LLVMLibsOptions += -framework DebugSymbols $(PYTHON_BUILD_FLAGS) -lobjc
	LLVMLibsOptions += -Wl,-exported_symbols_list -Wl,"$(PROJ_SRC_DIR)/$(LLDB_LEVEL)/resources/lldb-framework-exports" 
    # Mac OS X 10.4 and earlier tools do not allow a second -install_name on command line
    DARWIN_VERS := $(shell echo $(TARGET_TRIPLE) | sed 's/.*darwin\([0-9]*\).*/\1/')
    ifneq ($(DARWIN_VERS),8)
       LLVMLibsOptions  += -Wl,-install_name \
                           -Wl,"@executable_path/../lib/lib$(LIBRARYNAME)$(SHLIBEXT)"
    endif
endif

ifeq ($(HOST_OS),Linux)
    # Include everything from the .a's into the shared library.
    ProjLibsOptions := -Wl,--whole-archive $(ProjLibsOptions) \
                       -Wl,--no-whole-archive
    # Don't allow unresolved symbols.
    LLVMLibsOptions += -Wl,--no-undefined
    # Link in python
    LD.Flags += $(PYTHON_BUILD_FLAGS) -lrt
endif

ifeq ($(HOST_OS),FreeBSD)
    # Include everything from the .a's into the shared library.
    ProjLibsOptions := -Wl,--whole-archive $(ProjLibsOptions) \
                       -Wl,--no-whole-archive
    # Don't allow unresolved symbols.
    LLVMLibsOptions += -Wl,--no-undefined
    # Link in python
    LD.Flags += $(PYTHON_BUILD_FLAGS) -lrt -L/usr/local/lib -lexecinfo
endif