# $FreeBSD$

.include "../lldb.pre.mk"

LIB=		lldb
SRCDIR=		lldb/source

CFLAGS+=	-I${LLDB_SRCS}/include
CFLAGS+=	-I${LLDB_SRCS}/source
#CFLAGS+=	-I${LLDB_SRCS}/source/Plugins/Process/FreeBSD
#CFLAGS+=	-I${LLDB_SRCS}/source/Plugins/Process/POSIX
#CFLAGS+=	-I${LLDB_SRCS}/source/Plugins/Process/Utility
CFLAGS+=	-I${OBJTOP}/lib/clang/libllvm
CFLAGS+=	-I${OBJTOP}/lib/clang/libclang
CFLAGS+=	-I${OBJTOP}/lib/clang/liblldb
CFLAGS+=	-I${SRCTOP}/contrib/lua/src
CFLAGS+=	-I${SRCTOP}/lib/liblua

SRCS+=		API/SBAddress.cpp
SRCS+=		API/SBAttachInfo.cpp
SRCS+=		API/SBBlock.cpp
SRCS+=		API/SBBreakpoint.cpp
SRCS+=		API/SBBreakpointLocation.cpp
SRCS+=		API/SBBreakpointName.cpp
SRCS+=		API/SBBreakpointOptionCommon.cpp
SRCS+=		API/SBBroadcaster.cpp
SRCS+=		API/SBCommandInterpreter.cpp
SRCS+=		API/SBCommandInterpreterRunOptions.cpp
SRCS+=		API/SBCommandReturnObject.cpp
SRCS+=		API/SBCommunication.cpp
SRCS+=		API/SBCompileUnit.cpp
SRCS+=		API/SBData.cpp
SRCS+=		API/SBDebugger.cpp
SRCS+=		API/SBDeclaration.cpp
SRCS+=		API/SBEnvironment.cpp
SRCS+=		API/SBError.cpp
SRCS+=		API/SBEvent.cpp
SRCS+=		API/SBExecutionContext.cpp
SRCS+=		API/SBExpressionOptions.cpp
SRCS+=		API/SBFile.cpp
SRCS+=		API/SBFileSpec.cpp
SRCS+=		API/SBFileSpecList.cpp
SRCS+=		API/SBFrame.cpp
SRCS+=		API/SBFunction.cpp
SRCS+=		API/SBHostOS.cpp
SRCS+=		API/SBInstruction.cpp
SRCS+=		API/SBInstructionList.cpp
SRCS+=		API/SBLanguageRuntime.cpp
SRCS+=		API/SBLaunchInfo.cpp
SRCS+=		API/SBLineEntry.cpp
SRCS+=		API/SBListener.cpp
SRCS+=		API/SBMemoryRegionInfo.cpp
SRCS+=		API/SBMemoryRegionInfoList.cpp
SRCS+=		API/SBModule.cpp
SRCS+=		API/SBModuleSpec.cpp
SRCS+=		API/SBPlatform.cpp
SRCS+=		API/SBProcess.cpp
SRCS+=		API/SBProcessInfo.cpp
SRCS+=		API/SBQueue.cpp
SRCS+=		API/SBQueueItem.cpp
SRCS+=		API/SBReproducer.cpp
SRCS+=		API/SBSection.cpp
SRCS+=		API/SBSourceManager.cpp
SRCS+=		API/SBStream.cpp
SRCS+=		API/SBStringList.cpp
SRCS+=		API/SBStructuredData.cpp
SRCS+=		API/SBSymbol.cpp
SRCS+=		API/SBSymbolContext.cpp
SRCS+=		API/SBSymbolContextList.cpp
SRCS+=		API/SBTarget.cpp
SRCS+=		API/SBThread.cpp
SRCS+=		API/SBThreadCollection.cpp
SRCS+=		API/SBThreadPlan.cpp
SRCS+=		API/SBTrace.cpp
SRCS+=		API/SBTraceOptions.cpp
SRCS+=		API/SBType.cpp
SRCS+=		API/SBTypeCategory.cpp
SRCS+=		API/SBTypeEnumMember.cpp
SRCS+=		API/SBTypeFilter.cpp
SRCS+=		API/SBTypeFormat.cpp
SRCS+=		API/SBTypeNameSpecifier.cpp
SRCS+=		API/SBTypeSummary.cpp
SRCS+=		API/SBTypeSynthetic.cpp
SRCS+=		API/SBUnixSignals.cpp
SRCS+=		API/SBValue.cpp
SRCS+=		API/SBValueList.cpp
SRCS+=		API/SBVariablesOptions.cpp
SRCS+=		API/SBWatchpoint.cpp
SRCS+=		API/SystemInitializerFull.cpp
SRCS+=		Breakpoint/Breakpoint.cpp
SRCS+=		Breakpoint/BreakpointID.cpp
SRCS+=		Breakpoint/BreakpointIDList.cpp
SRCS+=		Breakpoint/BreakpointList.cpp
SRCS+=		Breakpoint/BreakpointLocation.cpp
SRCS+=		Breakpoint/BreakpointLocationCollection.cpp
SRCS+=		Breakpoint/BreakpointLocationList.cpp
SRCS+=		Breakpoint/BreakpointName.cpp
SRCS+=		Breakpoint/BreakpointOptions.cpp
SRCS+=		Breakpoint/BreakpointResolver.cpp
SRCS+=		Breakpoint/BreakpointResolverAddress.cpp
SRCS+=		Breakpoint/BreakpointResolverFileLine.cpp
SRCS+=		Breakpoint/BreakpointResolverFileRegex.cpp
SRCS+=		Breakpoint/BreakpointResolverName.cpp
SRCS+=		Breakpoint/BreakpointResolverScripted.cpp
SRCS+=		Breakpoint/BreakpointSite.cpp
SRCS+=		Breakpoint/BreakpointSiteList.cpp
SRCS+=		Breakpoint/Stoppoint.cpp
SRCS+=		Breakpoint/StoppointCallbackContext.cpp
SRCS+=		Breakpoint/StoppointLocation.cpp
SRCS+=		Breakpoint/Watchpoint.cpp
SRCS+=		Breakpoint/WatchpointList.cpp
SRCS+=		Breakpoint/WatchpointOptions.cpp
SRCS+=		Commands/CommandCompletions.cpp
SRCS+=		Commands/CommandObjectApropos.cpp
SRCS+=		Commands/CommandObjectBreakpoint.cpp
SRCS+=		Commands/CommandObjectBreakpointCommand.cpp
SRCS+=		Commands/CommandObjectCommands.cpp
SRCS+=		Commands/CommandObjectDisassemble.cpp
SRCS+=		Commands/CommandObjectExpression.cpp
SRCS+=		Commands/CommandObjectFrame.cpp
SRCS+=		Commands/CommandObjectGUI.cpp
SRCS+=		Commands/CommandObjectHelp.cpp
SRCS+=		Commands/CommandObjectLanguage.cpp
SRCS+=		Commands/CommandObjectLog.cpp
SRCS+=		Commands/CommandObjectMemory.cpp
SRCS+=		Commands/CommandObjectMultiword.cpp
SRCS+=		Commands/CommandObjectPlatform.cpp
SRCS+=		Commands/CommandObjectPlugin.cpp
SRCS+=		Commands/CommandObjectProcess.cpp
SRCS+=		Commands/CommandObjectQuit.cpp
SRCS+=		Commands/CommandObjectRegister.cpp
SRCS+=		Commands/CommandObjectReproducer.cpp
SRCS+=		Commands/CommandObjectSettings.cpp
SRCS+=		Commands/CommandObjectSource.cpp
SRCS+=		Commands/CommandObjectStats.cpp
SRCS+=		Commands/CommandObjectTarget.cpp
SRCS+=		Commands/CommandObjectThread.cpp
SRCS+=		Commands/CommandObjectType.cpp
SRCS+=		Commands/CommandObjectVersion.cpp
SRCS+=		Commands/CommandObjectWatchpoint.cpp
SRCS+=		Commands/CommandObjectWatchpointCommand.cpp
SRCS+=		Core/Address.cpp
SRCS+=		Core/AddressRange.cpp
SRCS+=		Core/AddressResolver.cpp
SRCS+=		Core/AddressResolverFileLine.cpp
SRCS+=		Core/AddressResolverName.cpp
SRCS+=		Core/Communication.cpp
SRCS+=		Core/Debugger.cpp
SRCS+=		Core/Disassembler.cpp
SRCS+=		Core/DumpDataExtractor.cpp
SRCS+=		Core/DumpRegisterValue.cpp
SRCS+=		Core/DynamicLoader.cpp
SRCS+=		Core/EmulateInstruction.cpp
SRCS+=		Core/FileLineResolver.cpp
SRCS+=		Core/FileSpecList.cpp
SRCS+=		Core/FormatEntity.cpp
SRCS+=		Core/Highlighter.cpp
SRCS+=		Core/IOHandler.cpp
SRCS+=		Core/IOHandlerCursesGUI.cpp
SRCS+=		Core/Mangled.cpp
SRCS+=		Core/Module.cpp
SRCS+=		Core/ModuleChild.cpp
SRCS+=		Core/ModuleList.cpp
SRCS+=		Core/Opcode.cpp
SRCS+=		Core/PluginManager.cpp
SRCS+=		Core/RichManglingContext.cpp
SRCS+=		Core/SearchFilter.cpp
SRCS+=		Core/Section.cpp
SRCS+=		Core/SourceManager.cpp
SRCS+=		Core/StreamAsynchronousIO.cpp
SRCS+=		Core/StreamFile.cpp
SRCS+=		Core/UserSettingsController.cpp
SRCS+=		Core/Value.cpp
SRCS+=		Core/ValueObject.cpp
SRCS+=		Core/ValueObjectCast.cpp
SRCS+=		Core/ValueObjectChild.cpp
SRCS+=		Core/ValueObjectConstResult.cpp
SRCS+=		Core/ValueObjectConstResultCast.cpp
SRCS+=		Core/ValueObjectConstResultChild.cpp
SRCS+=		Core/ValueObjectConstResultImpl.cpp
SRCS+=		Core/ValueObjectDynamicValue.cpp
SRCS+=		Core/ValueObjectList.cpp
SRCS+=		Core/ValueObjectMemory.cpp
SRCS+=		Core/ValueObjectRegister.cpp
SRCS+=		Core/ValueObjectSyntheticFilter.cpp
SRCS+=		Core/ValueObjectVariable.cpp
SRCS+=		DataFormatters/CXXFunctionPointer.cpp
SRCS+=		DataFormatters/DataVisualization.cpp
SRCS+=		DataFormatters/DumpValueObjectOptions.cpp
SRCS+=		DataFormatters/FormatCache.cpp
SRCS+=		DataFormatters/FormatClasses.cpp
SRCS+=		DataFormatters/FormatManager.cpp
SRCS+=		DataFormatters/FormattersHelpers.cpp
SRCS+=		DataFormatters/LanguageCategory.cpp
SRCS+=		DataFormatters/StringPrinter.cpp
SRCS+=		DataFormatters/TypeCategory.cpp
SRCS+=		DataFormatters/TypeCategoryMap.cpp
SRCS+=		DataFormatters/TypeFormat.cpp
SRCS+=		DataFormatters/TypeSummary.cpp
SRCS+=		DataFormatters/TypeSynthetic.cpp
SRCS+=		DataFormatters/ValueObjectPrinter.cpp
SRCS+=		DataFormatters/VectorType.cpp
SRCS+=		Expression/DWARFExpression.cpp
SRCS+=		Expression/DiagnosticManager.cpp
SRCS+=		Expression/Expression.cpp
SRCS+=		Expression/ExpressionVariable.cpp
SRCS+=		Expression/FunctionCaller.cpp
SRCS+=		Expression/IRExecutionUnit.cpp
SRCS+=		Expression/IRInterpreter.cpp
SRCS+=		Expression/IRMemoryMap.cpp
SRCS+=		Expression/LLVMUserExpression.cpp
SRCS+=		Expression/Materializer.cpp
SRCS+=		Expression/REPL.cpp
SRCS+=		Expression/UserExpression.cpp
SRCS+=		Expression/UtilityFunction.cpp
SRCS+=		Host/common/Editline.cpp
SRCS+=		Host/common/File.cpp
SRCS+=		Host/common/FileAction.cpp
SRCS+=		Host/common/FileCache.cpp
SRCS+=		Host/common/FileSystem.cpp
SRCS+=		Host/common/Host.cpp
SRCS+=		Host/common/HostInfoBase.cpp
SRCS+=		Host/common/HostNativeThreadBase.cpp
SRCS+=		Host/common/HostProcess.cpp
SRCS+=		Host/common/HostThread.cpp
SRCS+=		Host/common/LZMA.cpp
SRCS+=		Host/common/LockFileBase.cpp
SRCS+=		Host/common/MainLoop.cpp
SRCS+=		Host/common/MonitoringProcessLauncher.cpp
SRCS+=		Host/common/NativeWatchpointList.cpp
SRCS+=		Host/common/OptionParser.cpp
SRCS+=		Host/common/PipeBase.cpp
SRCS+=		Host/common/ProcessLaunchInfo.cpp
SRCS+=		Host/common/ProcessRunLock.cpp
SRCS+=		Host/common/PseudoTerminal.cpp
SRCS+=		Host/common/Socket.cpp
SRCS+=		Host/common/SocketAddress.cpp
SRCS+=		Host/common/StringConvert.cpp
SRCS+=		Host/common/TCPSocket.cpp
SRCS+=		Host/common/Terminal.cpp
SRCS+=		Host/common/ThreadLauncher.cpp
SRCS+=		Host/common/UDPSocket.cpp
SRCS+=		Host/common/XML.cpp
SRCS+=		Host/freebsd/Host.cpp
SRCS+=		Host/freebsd/HostInfoFreeBSD.cpp
SRCS+=		Host/posix/ConnectionFileDescriptorPosix.cpp
SRCS+=		Host/posix/DomainSocket.cpp
SRCS+=		Host/posix/FileSystemPosix.cpp
SRCS+=		Host/posix/HostInfoPosix.cpp
SRCS+=		Host/posix/HostProcessPosix.cpp
SRCS+=		Host/posix/HostThreadPosix.cpp
SRCS+=		Host/posix/LockFilePosix.cpp
SRCS+=		Host/posix/PipePosix.cpp
SRCS+=		Host/posix/ProcessLauncherPosixFork.cpp
SRCS+=		Initialization/SystemInitializer.cpp
SRCS+=		Initialization/SystemInitializerCommon.cpp
SRCS+=		Initialization/SystemLifetimeManager.cpp
SRCS+=		Interpreter/CommandAlias.cpp
SRCS+=		Interpreter/CommandHistory.cpp
SRCS+=		Interpreter/CommandInterpreter.cpp
SRCS+=		Interpreter/CommandObject.cpp
SRCS+=		Interpreter/CommandObjectRegexCommand.cpp
SRCS+=		Interpreter/CommandObjectScript.cpp
SRCS+=		Interpreter/CommandOptionValidators.cpp
SRCS+=		Interpreter/CommandReturnObject.cpp
SRCS+=		Interpreter/OptionArgParser.cpp
SRCS+=		Interpreter/OptionGroupArchitecture.cpp
SRCS+=		Interpreter/OptionGroupBoolean.cpp
SRCS+=		Interpreter/OptionGroupFile.cpp
SRCS+=		Interpreter/OptionGroupFormat.cpp
SRCS+=		Interpreter/OptionGroupOutputFile.cpp
SRCS+=		Interpreter/OptionGroupPlatform.cpp
SRCS+=		Interpreter/OptionGroupPythonClassWithDict.cpp
SRCS+=		Interpreter/OptionGroupString.cpp
SRCS+=		Interpreter/OptionGroupUInt64.cpp
SRCS+=		Interpreter/OptionGroupUUID.cpp
SRCS+=		Interpreter/OptionGroupValueObjectDisplay.cpp
SRCS+=		Interpreter/OptionGroupVariable.cpp
SRCS+=		Interpreter/OptionGroupWatchpoint.cpp
SRCS+=		Interpreter/OptionValue.cpp
SRCS+=		Interpreter/OptionValueArch.cpp
SRCS+=		Interpreter/OptionValueArray.cpp
SRCS+=		Interpreter/OptionValueBoolean.cpp
SRCS+=		Interpreter/OptionValueChar.cpp
SRCS+=		Interpreter/OptionValueDictionary.cpp
SRCS+=		Interpreter/OptionValueEnumeration.cpp
SRCS+=		Interpreter/OptionValueFileSpec.cpp
SRCS+=		Interpreter/OptionValueFileSpecList.cpp
SRCS+=		Interpreter/OptionValueFormat.cpp
SRCS+=		Interpreter/OptionValueFormatEntity.cpp
SRCS+=		Interpreter/OptionValueLanguage.cpp
SRCS+=		Interpreter/OptionValuePathMappings.cpp
SRCS+=		Interpreter/OptionValueProperties.cpp
SRCS+=		Interpreter/OptionValueRegex.cpp
SRCS+=		Interpreter/OptionValueSInt64.cpp
SRCS+=		Interpreter/OptionValueString.cpp
SRCS+=		Interpreter/OptionValueUInt64.cpp
SRCS+=		Interpreter/OptionValueUUID.cpp
SRCS+=		Interpreter/Options.cpp
SRCS+=		Interpreter/Property.cpp
SRCS+=		Interpreter/ScriptInterpreter.cpp
SRCS+=		Plugins/ABI/AArch64/ABIAArch64.cpp
SRCS+=		Plugins/ABI/AArch64/ABISysV_arm64.cpp
SRCS+=		Plugins/ABI/ARM/ABIARM.cpp
SRCS+=		Plugins/ABI/ARM/ABISysV_arm.cpp
SRCS+=		Plugins/ABI/Mips/ABIMips.cpp
SRCS+=		Plugins/ABI/Mips/ABISysV_mips.cpp
SRCS+=		Plugins/ABI/Mips/ABISysV_mips64.cpp
SRCS+=		Plugins/ABI/PowerPC/ABIPowerPC.cpp
SRCS+=		Plugins/ABI/PowerPC/ABISysV_ppc.cpp
SRCS+=		Plugins/ABI/PowerPC/ABISysV_ppc64.cpp
SRCS+=		Plugins/ABI/X86/ABISysV_i386.cpp
SRCS+=		Plugins/ABI/X86/ABISysV_x86_64.cpp
SRCS+=		Plugins/ABI/X86/ABIX86.cpp
SRCS+=		Plugins/Architecture/Arm/ArchitectureArm.cpp
SRCS+=		Plugins/Architecture/Mips/ArchitectureMips.cpp
SRCS+=		Plugins/Architecture/PPC64/ArchitecturePPC64.cpp
SRCS+=		Plugins/Disassembler/LLVMC/DisassemblerLLVMC.cpp
SRCS+=		Plugins/DynamicLoader/POSIX-DYLD/DYLDRendezvous.cpp
SRCS+=		Plugins/DynamicLoader/POSIX-DYLD/DynamicLoaderPOSIXDYLD.cpp
SRCS+=		Plugins/DynamicLoader/Static/DynamicLoaderStatic.cpp
SRCS+=		Plugins/ExpressionParser/Clang/ASTResultSynthesizer.cpp
SRCS+=		Plugins/ExpressionParser/Clang/ASTStructExtractor.cpp
SRCS+=		Plugins/ExpressionParser/Clang/ASTUtils.cpp
SRCS+=		Plugins/ExpressionParser/Clang/ClangASTImporter.cpp
SRCS+=		Plugins/ExpressionParser/Clang/ClangASTMetadata.cpp
SRCS+=		Plugins/ExpressionParser/Clang/ClangASTSource.cpp
SRCS+=		Plugins/ExpressionParser/Clang/ClangDeclVendor.cpp
SRCS+=		Plugins/ExpressionParser/Clang/ClangExpressionDeclMap.cpp
SRCS+=		Plugins/ExpressionParser/Clang/ClangExpressionParser.cpp
SRCS+=		Plugins/ExpressionParser/Clang/ClangExpressionSourceCode.cpp
SRCS+=		Plugins/ExpressionParser/Clang/ClangExpressionVariable.cpp
SRCS+=		Plugins/ExpressionParser/Clang/ClangExternalASTSourceCallbacks.cpp
SRCS+=		Plugins/ExpressionParser/Clang/ClangFunctionCaller.cpp
SRCS+=		Plugins/ExpressionParser/Clang/ClangHost.cpp
SRCS+=		Plugins/ExpressionParser/Clang/ClangModulesDeclVendor.cpp
SRCS+=		Plugins/ExpressionParser/Clang/ClangPersistentVariables.cpp
SRCS+=		Plugins/ExpressionParser/Clang/ClangUserExpression.cpp
SRCS+=		Plugins/ExpressionParser/Clang/ClangUtil.cpp
SRCS+=		Plugins/ExpressionParser/Clang/ClangUtilityFunction.cpp
SRCS+=		Plugins/ExpressionParser/Clang/CppModuleConfiguration.cpp
SRCS+=		Plugins/ExpressionParser/Clang/CxxModuleHandler.cpp
SRCS+=		Plugins/ExpressionParser/Clang/IRDynamicChecks.cpp
SRCS+=		Plugins/ExpressionParser/Clang/IRForTarget.cpp
SRCS+=		Plugins/ExpressionParser/Clang/NameSearchContext.cpp
SRCS+=		Plugins/Instruction/ARM/EmulateInstructionARM.cpp
SRCS+=		Plugins/Instruction/ARM/EmulationStateARM.cpp
SRCS+=		Plugins/Instruction/ARM64/EmulateInstructionARM64.cpp
SRCS+=		Plugins/Instruction/MIPS/EmulateInstructionMIPS.cpp
SRCS+=		Plugins/Instruction/MIPS64/EmulateInstructionMIPS64.cpp
SRCS+=		Plugins/Instruction/PPC64/EmulateInstructionPPC64.cpp
SRCS+=		Plugins/InstrumentationRuntime/ASan/InstrumentationRuntimeASan.cpp
SRCS+=		Plugins/InstrumentationRuntime/MainThreadChecker/InstrumentationRuntimeMainThreadChecker.cpp
SRCS+=		Plugins/InstrumentationRuntime/TSan/InstrumentationRuntimeTSan.cpp
SRCS+=		Plugins/InstrumentationRuntime/UBSan/InstrumentationRuntimeUBSan.cpp
SRCS+=		Plugins/JITLoader/GDB/JITLoaderGDB.cpp
SRCS+=		Plugins/Language/CPlusPlus/BlockPointer.cpp
SRCS+=		Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp
SRCS+=		Plugins/Language/CPlusPlus/CPlusPlusNameParser.cpp
SRCS+=		Plugins/Language/CPlusPlus/CxxStringTypes.cpp
SRCS+=		Plugins/Language/CPlusPlus/LibCxx.cpp
SRCS+=		Plugins/Language/CPlusPlus/LibCxxAtomic.cpp
SRCS+=		Plugins/Language/CPlusPlus/LibCxxBitset.cpp
SRCS+=		Plugins/Language/CPlusPlus/LibCxxInitializerList.cpp
SRCS+=		Plugins/Language/CPlusPlus/LibCxxList.cpp
SRCS+=		Plugins/Language/CPlusPlus/LibCxxMap.cpp
SRCS+=		Plugins/Language/CPlusPlus/LibCxxOptional.cpp
SRCS+=		Plugins/Language/CPlusPlus/LibCxxQueue.cpp
SRCS+=		Plugins/Language/CPlusPlus/LibCxxTuple.cpp
SRCS+=		Plugins/Language/CPlusPlus/LibCxxUnorderedMap.cpp
SRCS+=		Plugins/Language/CPlusPlus/LibCxxVariant.cpp
SRCS+=		Plugins/Language/CPlusPlus/LibCxxVector.cpp
SRCS+=		Plugins/Language/CPlusPlus/LibStdcpp.cpp
SRCS+=		Plugins/Language/CPlusPlus/LibStdcppTuple.cpp
SRCS+=		Plugins/Language/CPlusPlus/LibStdcppUniquePointer.cpp
SRCS+=		Plugins/Language/CPlusPlus/MSVCUndecoratedNameParser.cpp
SRCS+=		Plugins/Language/ClangCommon/ClangHighlighter.cpp
SRCS+=		Plugins/Language/ObjC/CF.cpp
SRCS+=		Plugins/Language/ObjC/Cocoa.cpp
SRCS+=		Plugins/Language/ObjC/NSArray.cpp
SRCS+=		Plugins/Language/ObjC/NSDictionary.cpp
SRCS+=		Plugins/Language/ObjC/NSError.cpp
SRCS+=		Plugins/Language/ObjC/NSException.cpp
SRCS+=		Plugins/Language/ObjC/NSIndexPath.cpp
SRCS+=		Plugins/Language/ObjC/NSSet.cpp
SRCS+=		Plugins/Language/ObjC/NSString.cpp
SRCS+=		Plugins/Language/ObjC/ObjCLanguage.cpp
SRCS+=		Plugins/LanguageRuntime/CPlusPlus/ItaniumABI/ItaniumABILanguageRuntime.cpp
SRCS+=		Plugins/LanguageRuntime/CPlusPlus/CPPLanguageRuntime.cpp
SRCS+=		Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntime.cpp
SRCS+=		Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCTrampolineHandler.cpp
SRCS+=		Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleThreadPlanStepThroughObjCTrampoline.cpp
SRCS+=		Plugins/LanguageRuntime/ObjC/ObjCLanguageRuntime.cpp
SRCS+=		Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptRuntime.cpp
SRCS+=		Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptExpressionOpts.cpp
SRCS+=		Plugins/MemoryHistory/asan/MemoryHistoryASan.cpp
SRCS+=		Plugins/ObjectContainer/BSD-Archive/ObjectContainerBSDArchive.cpp
SRCS+=		Plugins/ObjectFile/Breakpad/BreakpadRecords.cpp
SRCS+=		Plugins/ObjectFile/Breakpad/ObjectFileBreakpad.cpp
SRCS+=		Plugins/ObjectFile/ELF/ELFHeader.cpp
SRCS+=		Plugins/ObjectFile/ELF/ObjectFileELF.cpp
SRCS+=		Plugins/ObjectFile/JIT/ObjectFileJIT.cpp
SRCS+=		Plugins/Platform/FreeBSD/PlatformFreeBSD.cpp
SRCS+=		Plugins/Platform/POSIX/PlatformPOSIX.cpp
SRCS+=		Plugins/Platform/gdb-server/PlatformRemoteGDBServer.cpp
SRCS+=		Plugins/Process/FreeBSD/FreeBSDThread.cpp
SRCS+=		Plugins/Process/FreeBSD/POSIXStopInfo.cpp
SRCS+=		Plugins/Process/FreeBSD/ProcessFreeBSD.cpp
SRCS+=		Plugins/Process/FreeBSD/ProcessMonitor.cpp
SRCS+=		Plugins/Process/FreeBSD/RegisterContextPOSIXProcessMonitor_arm.cpp
SRCS+=		Plugins/Process/FreeBSD/RegisterContextPOSIXProcessMonitor_arm64.cpp
SRCS+=		Plugins/Process/FreeBSD/RegisterContextPOSIXProcessMonitor_mips64.cpp
SRCS+=		Plugins/Process/FreeBSD/RegisterContextPOSIXProcessMonitor_powerpc.cpp
SRCS+=		Plugins/Process/FreeBSD/RegisterContextPOSIXProcessMonitor_x86.cpp
SRCS+=		Plugins/Process/POSIX/CrashReason.cpp
SRCS+=		Plugins/Process/POSIX/ProcessMessage.cpp
SRCS+=		Plugins/Process/POSIX/ProcessPOSIXLog.cpp
SRCS+=		Plugins/Process/Utility/AuxVector.cpp
SRCS+=		Plugins/Process/Utility/DynamicRegisterInfo.cpp
SRCS+=		Plugins/Process/Utility/FreeBSDSignals.cpp
SRCS+=		Plugins/Process/Utility/GDBRemoteSignals.cpp
SRCS+=		Plugins/Process/Utility/HistoryThread.cpp
SRCS+=		Plugins/Process/Utility/HistoryUnwind.cpp
SRCS+=		Plugins/Process/Utility/InferiorCallPOSIX.cpp
SRCS+=		Plugins/Process/Utility/LinuxSignals.cpp
SRCS+=		Plugins/Process/Utility/MipsLinuxSignals.cpp
SRCS+=		Plugins/Process/Utility/NetBSDSignals.cpp
SRCS+=		Plugins/Process/Utility/RegisterContextDarwin_i386.cpp
SRCS+=		Plugins/Process/Utility/RegisterContextDarwin_x86_64.cpp
SRCS+=		Plugins/Process/Utility/RegisterContextDummy.cpp
SRCS+=		Plugins/Process/Utility/RegisterContextFreeBSD_i386.cpp
SRCS+=		Plugins/Process/Utility/RegisterContextFreeBSD_mips64.cpp
SRCS+=		Plugins/Process/Utility/RegisterContextFreeBSD_powerpc.cpp
SRCS+=		Plugins/Process/Utility/RegisterContextFreeBSD_x86_64.cpp
SRCS+=		Plugins/Process/Utility/RegisterContextHistory.cpp
SRCS+=		Plugins/Process/Utility/RegisterContextLinux_i386.cpp
SRCS+=		Plugins/Process/Utility/RegisterContextLinux_mips.cpp
SRCS+=		Plugins/Process/Utility/RegisterContextLinux_mips64.cpp
SRCS+=		Plugins/Process/Utility/RegisterContextLinux_x86_64.cpp
SRCS+=		Plugins/Process/Utility/RegisterContextMemory.cpp
SRCS+=		Plugins/Process/Utility/RegisterContextNetBSD_i386.cpp
SRCS+=		Plugins/Process/Utility/RegisterContextNetBSD_x86_64.cpp
SRCS+=		Plugins/Process/Utility/RegisterContextOpenBSD_i386.cpp
SRCS+=		Plugins/Process/Utility/RegisterContextOpenBSD_x86_64.cpp
SRCS+=		Plugins/Process/Utility/RegisterContextPOSIX_arm.cpp
SRCS+=		Plugins/Process/Utility/RegisterContextPOSIX_arm64.cpp
SRCS+=		Plugins/Process/Utility/RegisterContextPOSIX_mips64.cpp
SRCS+=		Plugins/Process/Utility/RegisterContextPOSIX_powerpc.cpp
SRCS+=		Plugins/Process/Utility/RegisterContextPOSIX_ppc64le.cpp
SRCS+=		Plugins/Process/Utility/RegisterContextPOSIX_x86.cpp
SRCS+=		Plugins/Process/Utility/RegisterContextThreadMemory.cpp
SRCS+=		Plugins/Process/Utility/RegisterInfoPOSIX_arm.cpp
SRCS+=		Plugins/Process/Utility/RegisterInfoPOSIX_arm64.cpp
SRCS+=		Plugins/Process/Utility/RegisterInfoPOSIX_ppc64le.cpp
SRCS+=		Plugins/Process/Utility/StopInfoMachException.cpp
SRCS+=		Plugins/Process/Utility/ThreadMemory.cpp
SRCS+=		Plugins/Process/elf-core/ProcessElfCore.cpp
SRCS+=		Plugins/Process/elf-core/RegisterContextPOSIXCore_arm.cpp
SRCS+=		Plugins/Process/elf-core/RegisterContextPOSIXCore_arm64.cpp
SRCS+=		Plugins/Process/elf-core/RegisterContextPOSIXCore_mips64.cpp
SRCS+=		Plugins/Process/elf-core/RegisterContextPOSIXCore_powerpc.cpp
SRCS+=		Plugins/Process/elf-core/RegisterContextPOSIXCore_ppc64le.cpp
SRCS+=		Plugins/Process/elf-core/RegisterContextPOSIXCore_x86_64.cpp
SRCS+=		Plugins/Process/elf-core/RegisterUtilities.cpp
SRCS+=		Plugins/Process/elf-core/ThreadElfCore.cpp
SRCS+=		Plugins/Process/gdb-remote/GDBRemoteClientBase.cpp
SRCS+=		Plugins/Process/gdb-remote/GDBRemoteCommunication.cpp
SRCS+=		Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp
SRCS+=		Plugins/Process/gdb-remote/GDBRemoteCommunicationHistory.cpp
SRCS+=		Plugins/Process/gdb-remote/GDBRemoteCommunicationReplayServer.cpp
SRCS+=		Plugins/Process/gdb-remote/GDBRemoteCommunicationServer.cpp
SRCS+=		Plugins/Process/gdb-remote/GDBRemoteCommunicationServerCommon.cpp
SRCS+=		Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp
SRCS+=		Plugins/Process/gdb-remote/GDBRemoteCommunicationServerPlatform.cpp
SRCS+=		Plugins/Process/gdb-remote/GDBRemoteRegisterContext.cpp
SRCS+=		Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
SRCS+=		Plugins/Process/gdb-remote/ProcessGDBRemoteLog.cpp
SRCS+=		Plugins/Process/gdb-remote/ThreadGDBRemote.cpp
SRCS+=		Plugins/ScriptInterpreter/Lua/Lua.cpp
SRCS+=		Plugins/ScriptInterpreter/Lua/ScriptInterpreterLua.cpp
SRCS+=		Plugins/ScriptInterpreter/None/ScriptInterpreterNone.cpp
SRCS+=		Plugins/SymbolFile/Breakpad/SymbolFileBreakpad.cpp
SRCS+=		Plugins/SymbolFile/DWARF/AppleDWARFIndex.cpp
SRCS+=		Plugins/SymbolFile/DWARF/DebugNamesDWARFIndex.cpp
SRCS+=		Plugins/SymbolFile/DWARF/DIERef.cpp
SRCS+=		Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp
SRCS+=		Plugins/SymbolFile/DWARF/DWARFAbbreviationDeclaration.cpp
SRCS+=		Plugins/SymbolFile/DWARF/DWARFAttribute.cpp
SRCS+=		Plugins/SymbolFile/DWARF/DWARFBaseDIE.cpp
SRCS+=		Plugins/SymbolFile/DWARF/DWARFCompileUnit.cpp
SRCS+=		Plugins/SymbolFile/DWARF/DWARFContext.cpp
SRCS+=		Plugins/SymbolFile/DWARF/DWARFDIE.cpp
SRCS+=		Plugins/SymbolFile/DWARF/DWARFDataExtractor.cpp
SRCS+=		Plugins/SymbolFile/DWARF/DWARFDebugAbbrev.cpp
SRCS+=		Plugins/SymbolFile/DWARF/DWARFDebugArangeSet.cpp
SRCS+=		Plugins/SymbolFile/DWARF/DWARFDebugAranges.cpp
SRCS+=		Plugins/SymbolFile/DWARF/DWARFDebugInfo.cpp
SRCS+=		Plugins/SymbolFile/DWARF/DWARFDebugInfoEntry.cpp
SRCS+=		Plugins/SymbolFile/DWARF/DWARFDebugMacro.cpp
SRCS+=		Plugins/SymbolFile/DWARF/DWARFDebugRanges.cpp
SRCS+=		Plugins/SymbolFile/DWARF/DWARFDeclContext.cpp
SRCS+=		Plugins/SymbolFile/DWARF/DWARFDefines.cpp
SRCS+=		Plugins/SymbolFile/DWARF/DWARFFormValue.cpp
SRCS+=		Plugins/SymbolFile/DWARF/DWARFIndex.cpp
SRCS+=		Plugins/SymbolFile/DWARF/DWARFTypeUnit.cpp
SRCS+=		Plugins/SymbolFile/DWARF/DWARFUnit.cpp
SRCS+=		Plugins/SymbolFile/DWARF/HashedNameToDIE.cpp
SRCS+=		Plugins/SymbolFile/DWARF/LogChannelDWARF.cpp
SRCS+=		Plugins/SymbolFile/DWARF/ManualDWARFIndex.cpp
SRCS+=		Plugins/SymbolFile/DWARF/NameToDIE.cpp
SRCS+=		Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
SRCS+=		Plugins/SymbolFile/DWARF/SymbolFileDWARFDebugMap.cpp
SRCS+=		Plugins/SymbolFile/DWARF/SymbolFileDWARFDwo.cpp
SRCS+=		Plugins/SymbolFile/DWARF/UniqueDWARFASTType.cpp
SRCS+=		Plugins/SymbolFile/Symtab/SymbolFileSymtab.cpp
SRCS+=		Plugins/SymbolVendor/ELF/SymbolVendorELF.cpp
SRCS+=		Plugins/TypeSystem/Clang/TypeSystemClang.cpp
SRCS+=		Plugins/UnwindAssembly/InstEmulation/UnwindAssemblyInstEmulation.cpp
SRCS+=		Plugins/UnwindAssembly/x86/UnwindAssembly-x86.cpp
SRCS+=		Plugins/UnwindAssembly/x86/x86AssemblyInspectionEngine.cpp
SRCS+=		Symbol/ArmUnwindInfo.cpp
SRCS+=		Symbol/Block.cpp
SRCS+=		Symbol/CompactUnwindInfo.cpp
SRCS+=		Symbol/CompileUnit.cpp
SRCS+=		Symbol/CompilerDecl.cpp
SRCS+=		Symbol/CompilerDeclContext.cpp
SRCS+=		Symbol/CompilerType.cpp
SRCS+=		Symbol/DWARFCallFrameInfo.cpp
SRCS+=		Symbol/DebugMacros.cpp
SRCS+=		Symbol/DeclVendor.cpp
SRCS+=		Symbol/Declaration.cpp
SRCS+=		Symbol/FuncUnwinders.cpp
SRCS+=		Symbol/Function.cpp
SRCS+=		Symbol/LineEntry.cpp
SRCS+=		Symbol/LineTable.cpp
SRCS+=		Symbol/LocateSymbolFile.cpp
SRCS+=		Symbol/ObjectFile.cpp
SRCS+=		Symbol/PostfixExpression.cpp
SRCS+=		Symbol/Symbol.cpp
SRCS+=		Symbol/SymbolContext.cpp
SRCS+=		Symbol/SymbolFile.cpp
SRCS+=		Symbol/SymbolVendor.cpp
SRCS+=		Symbol/Symtab.cpp
SRCS+=		Symbol/Type.cpp
SRCS+=		Symbol/TypeList.cpp
SRCS+=		Symbol/TypeMap.cpp
SRCS+=		Symbol/TypeSystem.cpp
SRCS+=		Symbol/UnwindPlan.cpp
SRCS+=		Symbol/UnwindTable.cpp
SRCS+=		Symbol/Variable.cpp
SRCS+=		Symbol/VariableList.cpp
SRCS+=		Target/ABI.cpp
SRCS+=		Target/AssertFrameRecognizer.cpp
SRCS+=		Target/ExecutionContext.cpp
SRCS+=		Target/InstrumentationRuntime.cpp
SRCS+=		Target/InstrumentationRuntimeStopInfo.cpp
SRCS+=		Target/JITLoader.cpp
SRCS+=		Target/JITLoaderList.cpp
SRCS+=		Target/Language.cpp
SRCS+=		Target/LanguageRuntime.cpp
SRCS+=		Target/Memory.cpp
SRCS+=		Target/MemoryHistory.cpp
SRCS+=		Target/MemoryRegionInfo.cpp
SRCS+=		Target/ModuleCache.cpp
SRCS+=		Target/OperatingSystem.cpp
SRCS+=		Target/PathMappingList.cpp
SRCS+=		Target/Platform.cpp
SRCS+=		Target/Process.cpp
SRCS+=		Target/Queue.cpp
SRCS+=		Target/QueueItem.cpp
SRCS+=		Target/QueueList.cpp
SRCS+=		Target/RegisterContext.cpp
SRCS+=		Target/RegisterContextUnwind.cpp
SRCS+=		Target/RegisterNumber.cpp
SRCS+=		Target/RemoteAwarePlatform.cpp
SRCS+=		Target/SectionLoadHistory.cpp
SRCS+=		Target/SectionLoadList.cpp
SRCS+=		Target/StackFrame.cpp
SRCS+=		Target/StackFrameList.cpp
SRCS+=		Target/StackFrameRecognizer.cpp
SRCS+=		Target/StackID.cpp
SRCS+=		Target/StopInfo.cpp
SRCS+=		Target/SystemRuntime.cpp
SRCS+=		Target/Target.cpp
SRCS+=		Target/TargetList.cpp
SRCS+=		Target/Thread.cpp
SRCS+=		Target/ThreadCollection.cpp
SRCS+=		Target/ThreadList.cpp
SRCS+=		Target/ThreadPlan.cpp
SRCS+=		Target/ThreadPlanBase.cpp
SRCS+=		Target/ThreadPlanCallFunction.cpp
SRCS+=		Target/ThreadPlanCallFunctionUsingABI.cpp
SRCS+=		Target/ThreadPlanCallUserExpression.cpp
SRCS+=		Target/ThreadPlanPython.cpp
SRCS+=		Target/ThreadPlanRunToAddress.cpp
SRCS+=		Target/ThreadPlanShouldStopHere.cpp
SRCS+=		Target/ThreadPlanStack.cpp
SRCS+=		Target/ThreadPlanStepInRange.cpp
SRCS+=		Target/ThreadPlanStepInstruction.cpp
SRCS+=		Target/ThreadPlanStepOut.cpp
SRCS+=		Target/ThreadPlanStepOverBreakpoint.cpp
SRCS+=		Target/ThreadPlanStepOverRange.cpp
SRCS+=		Target/ThreadPlanStepRange.cpp
SRCS+=		Target/ThreadPlanStepThrough.cpp
SRCS+=		Target/ThreadPlanStepUntil.cpp
SRCS+=		Target/ThreadPlanTracer.cpp
SRCS+=		Target/ThreadSpec.cpp
SRCS+=		Target/UnixSignals.cpp
SRCS+=		Target/UnwindAssembly.cpp
SRCS+=		Target/UnwindLLDB.cpp
SRCS+=		Utility/ArchSpec.cpp
SRCS+=		Utility/Args.cpp
SRCS+=		Utility/Baton.cpp
SRCS+=		Utility/Broadcaster.cpp
SRCS+=		Utility/CompletionRequest.cpp
SRCS+=		Utility/Connection.cpp
SRCS+=		Utility/ConstString.cpp
SRCS+=		Utility/DataBufferHeap.cpp
SRCS+=		Utility/DataBufferLLVM.cpp
SRCS+=		Utility/DataEncoder.cpp
SRCS+=		Utility/DataExtractor.cpp
SRCS+=		Utility/Environment.cpp
SRCS+=		Utility/Event.cpp
SRCS+=		Utility/FileSpec.cpp
SRCS+=		Utility/GDBRemote.cpp
SRCS+=		Utility/IOObject.cpp
SRCS+=		Utility/LLDBAssert.cpp
SRCS+=		Utility/Listener.cpp
SRCS+=		Utility/Log.cpp
SRCS+=		Utility/Logging.cpp
SRCS+=		Utility/NameMatches.cpp
SRCS+=		Utility/ProcessInfo.cpp
SRCS+=		Utility/RegisterValue.cpp
SRCS+=		Utility/RegularExpression.cpp
SRCS+=		Utility/Reproducer.cpp
SRCS+=		Utility/ReproducerInstrumentation.cpp
SRCS+=		Utility/Scalar.cpp
SRCS+=		Utility/SelectHelper.cpp
SRCS+=		Utility/State.cpp
SRCS+=		Utility/Status.cpp
SRCS+=		Utility/Stream.cpp
SRCS+=		Utility/StreamCallback.cpp
SRCS+=		Utility/StreamString.cpp
SRCS+=		Utility/StringExtractor.cpp
SRCS+=		Utility/StringExtractorGDBRemote.cpp
SRCS+=		Utility/StringLexer.cpp
SRCS+=		Utility/StringList.cpp
SRCS+=		Utility/StructuredData.cpp
SRCS+=		Utility/TildeExpressionResolver.cpp
SRCS+=		Utility/Timer.cpp
SRCS+=		Utility/UUID.cpp
SRCS+=		Utility/UriParser.cpp
SRCS+=		Utility/UserID.cpp
SRCS+=		Utility/UserIDResolver.cpp
SRCS+=		Utility/VASprintf.cpp
SRCS+=		Utility/VMRange.cpp
SRCS+=		LLDBWrapLua.cpp
SRCS+=		lldb.cpp

LLDB_TBLGEN?=	lldb-tblgen

CommandOptions.inc: ${LLDB_SRCS}/source/Commands/Options.td
	${LLDB_TBLGEN} -gen-lldb-option-defs \
	    -I ${LLDB_SRCS}/source/Commands -d ${.TARGET:C/$/.d/} \
	    -o ${.TARGET} ${LLDB_SRCS}/source/Commands/Options.td
TGHDRS+=	CommandOptions.inc

.for path in \
	Core/Core \
	Interpreter/Interpreter \
	Plugins/JITLoader/GDB/JITLoaderGDB \
	Plugins/Process/gdb-remote/ProcessGDBRemote \
	Plugins/SymbolFile/DWARF/SymbolFileDWARF \
	Target/Target
${path:T}Properties.inc: ${LLDB_SRCS}/source/${path}Properties.td
	${LLDB_TBLGEN} -gen-lldb-property-defs \
	    -I ${LLDB_SRCS}/source/${path:H} -d ${.TARGET:C/$/.d/} \
	    -o ${.TARGET} ${LLDB_SRCS}/source/${path}Properties.td
TGHDRS+=	${path:T}Properties.inc

${path:T}PropertiesEnum.inc: ${LLDB_SRCS}/source/${path}Properties.td
	${LLDB_TBLGEN} -gen-lldb-property-enum-defs \
	    -I ${LLDB_SRCS}/source/${path:H} -d ${.TARGET:C/$/.d/} \
	    -o ${.TARGET} ${LLDB_SRCS}/source/${path}Properties.td
TGHDRS+=	${path:T}PropertiesEnum.inc
.endfor

DPSRCS+=	${TGHDRS}
CLEANFILES+=	${TGHDRS} ${TGHDRS:C/$/.d/}

.include "../clang.build.mk"

INTERNALLIB=

# Building lldb's bindings requires swig, but we do not want to include it in
# the FreeBSD base system (as a build tool) because it has non-trivial
# dependencies.  As a workaround we commit the generated file.  Requires the
# swig package.
#
# After importing an updated llvm/lldb into FreeBSD run `make run-swig` in
# this directory to generate generate LLDBWrapLua.cpp, and commit the result.
.PHONY:	run-swig
run-swig:
	swig -I${LLDB_SRCS}/include \
	    -c++ -features autodoc -lua -w503 \
	    -o ${.CURDIR}/LLDBWrapLua.cpp ${LLDB_SRCS}/bindings/lua.swig

.include <bsd.lib.mk>