summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrdivacky <rdivacky@FreeBSD.org>2010-06-09 19:32:20 +0000
committerrdivacky <rdivacky@FreeBSD.org>2010-06-09 19:32:20 +0000
commitb45271f609e8549582d20aeb42901fd1bb0de186 (patch)
tree807a6949d3dcd7e0705ad73bc45f2bcd39f9baf9
parentaad55b23d0526ba56425551b7700ea1fbf2b1353 (diff)
downloadFreeBSD-src-b45271f609e8549582d20aeb42901fd1bb0de186.zip
FreeBSD-src-b45271f609e8549582d20aeb42901fd1bb0de186.tar.gz
Import the build makefiles for clang/LLVM.
Approved by: ed (mentor)
-rw-r--r--lib/clang/Makefile50
-rw-r--r--lib/clang/clang.build.mk73
-rw-r--r--lib/clang/clang.lib.mk9
-rw-r--r--lib/clang/include/ARMGenAsmWriter.inc2
-rw-r--r--lib/clang/include/ARMGenCallingConv.inc2
-rw-r--r--lib/clang/include/ARMGenCodeEmitter.inc2
-rw-r--r--lib/clang/include/ARMGenDAGISel.inc2
-rw-r--r--lib/clang/include/ARMGenInstrInfo.inc2
-rw-r--r--lib/clang/include/ARMGenInstrNames.inc2
-rw-r--r--lib/clang/include/ARMGenRegisterInfo.h.inc2
-rw-r--r--lib/clang/include/ARMGenRegisterInfo.inc2
-rw-r--r--lib/clang/include/ARMGenRegisterNames.inc2
-rw-r--r--lib/clang/include/ARMGenSubtarget.inc2
-rw-r--r--lib/clang/include/IA64GenAsmWriter.inc2
-rw-r--r--lib/clang/include/IA64GenDAGISel.inc2
-rw-r--r--lib/clang/include/IA64GenInstrInfo.inc2
-rw-r--r--lib/clang/include/IA64GenInstrNames.inc2
-rw-r--r--lib/clang/include/IA64GenRegisterInfo.h.inc2
-rw-r--r--lib/clang/include/IA64GenRegisterInfo.inc2
-rw-r--r--lib/clang/include/IA64GenRegisterNames.inc2
-rw-r--r--lib/clang/include/Makefile11
-rw-r--r--lib/clang/include/MipsGenAsmWriter.inc2
-rw-r--r--lib/clang/include/MipsGenCallingConv.inc2
-rw-r--r--lib/clang/include/MipsGenDAGISel.inc2
-rw-r--r--lib/clang/include/MipsGenInstrInfo.inc2
-rw-r--r--lib/clang/include/MipsGenInstrNames.inc2
-rw-r--r--lib/clang/include/MipsGenRegisterInfo.h.inc2
-rw-r--r--lib/clang/include/MipsGenRegisterInfo.inc2
-rw-r--r--lib/clang/include/MipsGenRegisterNames.inc2
-rw-r--r--lib/clang/include/MipsGenSubtarget.inc2
-rw-r--r--lib/clang/include/PPCGenAsmWriter.inc2
-rw-r--r--lib/clang/include/PPCGenCallingConv.inc2
-rw-r--r--lib/clang/include/PPCGenCodeEmitter.inc2
-rw-r--r--lib/clang/include/PPCGenDAGISel.inc2
-rw-r--r--lib/clang/include/PPCGenInstrInfo.inc2
-rw-r--r--lib/clang/include/PPCGenInstrNames.inc2
-rw-r--r--lib/clang/include/PPCGenRegisterInfo.h.inc2
-rw-r--r--lib/clang/include/PPCGenRegisterInfo.inc2
-rw-r--r--lib/clang/include/PPCGenRegisterNames.inc2
-rw-r--r--lib/clang/include/PPCGenSubtarget.inc2
-rw-r--r--lib/clang/include/X86GenAsmMatcher.inc2
-rw-r--r--lib/clang/include/X86GenAsmWriter.inc2
-rw-r--r--lib/clang/include/X86GenAsmWriter1.inc2
-rw-r--r--lib/clang/include/X86GenCallingConv.inc2
-rw-r--r--lib/clang/include/X86GenDAGISel.inc2
-rw-r--r--lib/clang/include/X86GenFastISel.inc2
-rw-r--r--lib/clang/include/X86GenInstrInfo.inc2
-rw-r--r--lib/clang/include/X86GenInstrNames.inc2
-rw-r--r--lib/clang/include/X86GenRegisterInfo.h.inc2
-rw-r--r--lib/clang/include/X86GenRegisterInfo.inc2
-rw-r--r--lib/clang/include/X86GenRegisterNames.inc2
-rw-r--r--lib/clang/include/X86GenSubtarget.inc2
-rw-r--r--lib/clang/include/clang/AST/StmtNodes.inc2
-rw-r--r--lib/clang/include/clang/Basic/DiagnosticASTKinds.inc2
-rw-r--r--lib/clang/include/clang/Basic/DiagnosticAnalysisKinds.inc2
-rw-r--r--lib/clang/include/clang/Basic/DiagnosticCommonKinds.inc2
-rw-r--r--lib/clang/include/clang/Basic/DiagnosticDriverKinds.inc2
-rw-r--r--lib/clang/include/clang/Basic/DiagnosticFrontendKinds.inc2
-rw-r--r--lib/clang/include/clang/Basic/DiagnosticGroups.inc2
-rw-r--r--lib/clang/include/clang/Basic/DiagnosticLexKinds.inc2
-rw-r--r--lib/clang/include/clang/Basic/DiagnosticParseKinds.inc2
-rw-r--r--lib/clang/include/clang/Basic/DiagnosticSemaKinds.inc2
-rw-r--r--lib/clang/include/clang/Driver/CC1AsOptions.inc2
-rw-r--r--lib/clang/include/clang/Driver/CC1Options.inc2
-rw-r--r--lib/clang/include/clang/Driver/Options.inc2
-rw-r--r--lib/clang/include/llvm/ADT/iterator.h78
-rw-r--r--lib/clang/include/llvm/Config/AsmParsers.def30
-rw-r--r--lib/clang/include/llvm/Config/AsmPrinters.def30
-rw-r--r--lib/clang/include/llvm/Config/Disassemblers.def30
-rw-r--r--lib/clang/include/llvm/Config/Targets.def29
-rw-r--r--lib/clang/include/llvm/Config/config.h569
-rw-r--r--lib/clang/include/llvm/Intrinsics.gen2
-rw-r--r--lib/clang/include/llvm/System/DataTypes.h113
-rw-r--r--lib/clang/libclanganalysis/Makefile12
-rw-r--r--lib/clang/libclangast/Makefile19
-rw-r--r--lib/clang/libclangbasic/Makefile15
-rw-r--r--lib/clang/libclangchecker/Makefile38
-rw-r--r--lib/clang/libclangcodegen/Makefile17
-rw-r--r--lib/clang/libclangdriver/Makefile14
-rw-r--r--lib/clang/libclangfrontend/Makefile25
-rw-r--r--lib/clang/libclanglex/Makefile15
-rw-r--r--lib/clang/libclangparse/Makefile14
-rw-r--r--lib/clang/libclangrewrite/Makefile11
-rw-r--r--lib/clang/libclangsema/Makefile23
-rw-r--r--lib/clang/libllvmanalysis/Makefile25
-rw-r--r--lib/clang/libllvmarmasmparser/Makefile11
-rw-r--r--lib/clang/libllvmarmasmprinter/Makefile12
-rw-r--r--lib/clang/libllvmarmcodegen/Makefile23
-rw-r--r--lib/clang/libllvmarminfo/Makefile11
-rw-r--r--lib/clang/libllvmasmprinter/Makefile9
-rw-r--r--lib/clang/libllvmbitreader/Makefile10
-rw-r--r--lib/clang/libllvmbitwriter/Makefile9
-rw-r--r--lib/clang/libllvmcodegen/Makefile40
-rw-r--r--lib/clang/libllvmcore/Makefile18
-rw-r--r--lib/clang/libllvminstcombine/Makefile16
-rw-r--r--lib/clang/libllvmipa/Makefile11
-rw-r--r--lib/clang/libllvmipo/Makefile17
-rw-r--r--lib/clang/libllvmmc/Makefile15
-rw-r--r--lib/clang/libllvmmcparser/Makefile9
-rw-r--r--lib/clang/libllvmmipsasmprinter/Makefile12
-rw-r--r--lib/clang/libllvmmipscodegen/Makefile15
-rw-r--r--lib/clang/libllvmmipsinfo/Makefile11
-rw-r--r--lib/clang/libllvmpowerpcasmprinter/Makefile12
-rw-r--r--lib/clang/libllvmpowerpccodegen/Makefile16
-rw-r--r--lib/clang/libllvmpowerpcinfo/Makefile11
-rw-r--r--lib/clang/libllvmscalaropts/Makefile18
-rw-r--r--lib/clang/libllvmselectiondag/Makefile17
-rw-r--r--lib/clang/libllvmsupport/Makefile19
-rw-r--r--lib/clang/libllvmsystem/Makefile12
-rw-r--r--lib/clang/libllvmtarget/Makefile12
-rw-r--r--lib/clang/libllvmtransformutils/Makefile17
-rw-r--r--lib/clang/libllvmx86asmparser/Makefile11
-rw-r--r--lib/clang/libllvmx86asmprinter/Makefile13
-rw-r--r--lib/clang/libllvmx86codegen/Makefile19
-rw-r--r--lib/clang/libllvmx86info/Makefile11
-rw-r--r--usr.bin/clang/Makefile5
-rw-r--r--usr.bin/clang/clang.prog.mk14
-rw-r--r--usr.bin/clang/clang/Makefile28
-rw-r--r--usr.bin/clang/tblgen/Makefile23
119 files changed, 1881 insertions, 0 deletions
diff --git a/lib/clang/Makefile b/lib/clang/Makefile
new file mode 100644
index 0000000..5cead23
--- /dev/null
+++ b/lib/clang/Makefile
@@ -0,0 +1,50 @@
+# $FreeBSD$
+
+SUBDIR= libclanganalysis \
+ libclangast \
+ libclangbasic \
+ libclangchecker \
+ libclangcodegen \
+ libclangdriver \
+ libclangfrontend \
+ libclanglex \
+ libclangparse \
+ libclangrewrite \
+ libclangsema \
+ \
+ libllvmanalysis \
+ libllvmasmprinter \
+ libllvmbitreader \
+ libllvmbitwriter \
+ libllvmcodegen \
+ libllvminstcombine \
+ libllvmcore \
+ libllvmipa \
+ libllvmipo \
+ libllvmmc \
+ libllvmmcparser \
+ libllvmscalaropts \
+ libllvmselectiondag \
+ libllvmsupport \
+ libllvmsystem \
+ libllvmtarget \
+ libllvmtransformutils \
+ \
+ libllvmarmasmparser \
+ libllvmarmasmprinter \
+ libllvmarmcodegen \
+ libllvmarminfo \
+ libllvmmipsasmprinter \
+ libllvmmipscodegen \
+ libllvmmipsinfo \
+ libllvmpowerpcasmprinter \
+ libllvmpowerpccodegen \
+ libllvmpowerpcinfo \
+ libllvmx86asmparser \
+ libllvmx86asmprinter \
+ libllvmx86codegen \
+ libllvmx86info \
+ \
+ include
+
+.include <bsd.subdir.mk>
diff --git a/lib/clang/clang.build.mk b/lib/clang/clang.build.mk
new file mode 100644
index 0000000..aa85a20
--- /dev/null
+++ b/lib/clang/clang.build.mk
@@ -0,0 +1,73 @@
+# $FreeBSD$
+
+CLANG_SRCS=${LLVM_SRCS}/tools/clang
+
+CFLAGS+=-I${LLVM_SRCS}/include -I${CLANG_SRCS}/include \
+ -I${LLVM_SRCS}/${SRCDIR} ${INCDIR:C/^/-I${LLVM_SRCS}\//} -I. \
+ -I${LLVM_SRCS}/../../lib/clang/include \
+ -DLLVM_ON_UNIX -DLLVM_ON_FREEBSD \
+ -D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS #-DNDEBUG
+
+TARGET_ARCH?= ${MACHINE_ARCH}
+# XXX: 8.0, to keep __FreeBSD_cc_version happy
+CFLAGS+=-DLLVM_HOSTTRIPLE=\"${TARGET_ARCH}-undermydesk-freebsd9.0\"
+
+.PATH: ${LLVM_SRCS}/${SRCDIR}
+
+TBLGEN=tblgen ${CFLAGS:M-I*}
+
+Intrinsics.inc.h: ${LLVM_SRCS}/include/llvm/Intrinsics.td
+ ${TBLGEN} -gen-intrinsic \
+ ${LLVM_SRCS}/include/llvm/Intrinsics.td > ${.TARGET}
+.for arch in \
+ ARM/ARM Mips/Mips PowerPC/PPC X86/X86
+. for hdr in \
+ AsmMatcher/-gen-asm-matcher \
+ AsmWriter1/-gen-asm-writer,-asmwriternum=1 \
+ AsmWriter/-gen-asm-writer \
+ CallingConv/-gen-callingconv \
+ CodeEmitter/-gen-emitter \
+ DAGISel/-gen-dag-isel \
+ FastISel/-gen-fast-isel \
+ InstrInfo/-gen-instr-desc \
+ InstrNames/-gen-instr-enums \
+ RegisterInfo.h/-gen-register-desc-header \
+ RegisterInfo/-gen-register-desc \
+ RegisterNames/-gen-register-enums \
+ Subtarget/-gen-subtarget
+${arch:T}Gen${hdr:H:C/$/.inc.h/}: ${LLVM_SRCS}/lib/Target/${arch:H}/${arch:T}.td
+ ${TBLGEN} ${hdr:T:C/,/ /g} \
+ ${LLVM_SRCS}/lib/Target/${arch:H}/${arch:T}.td > ${.TARGET}
+. endfor
+.endfor
+
+DiagnosticGroups.inc.h: ${CLANG_SRCS}/include/clang/Basic/Diagnostic.td
+ ${TBLGEN} -I${CLANG_SRCS}/include/clang/Basic \
+ -gen-clang-diag-groups \
+ ${CLANG_SRCS}/include/clang/Basic/Diagnostic.td > ${.TARGET}
+.for hdr in AST Analysis Common Driver Frontend Lex Parse Sema
+Diagnostic${hdr}Kinds.inc.h: ${CLANG_SRCS}/include/clang/Basic/Diagnostic.td
+ ${TBLGEN} -I${CLANG_SRCS}/include/clang/Basic \
+ -gen-clang-diags-defs -clang-component=${hdr} \
+ ${CLANG_SRCS}/include/clang/Basic/Diagnostic.td > ${.TARGET}
+.endfor
+CC1AsOptions.inc.h: ${CLANG_SRCS}/include/clang/Driver/CC1AsOptions.td
+ ${TBLGEN} -I${CLANG_SRCS}/include/clang/Driver \
+ -gen-opt-parser-defs \
+ ${CLANG_SRCS}/include/clang/Driver/CC1AsOptions.td > ${.TARGET}
+CC1Options.inc.h: ${CLANG_SRCS}/include/clang/Driver/CC1Options.td
+ ${TBLGEN} -I${CLANG_SRCS}/include/clang/Driver \
+ -gen-opt-parser-defs \
+ ${CLANG_SRCS}/include/clang/Driver/CC1Options.td > ${.TARGET}
+Options.inc.h: ${CLANG_SRCS}/include/clang/Driver/Options.td
+ ${TBLGEN} -I${CLANG_SRCS}/include/clang/Driver \
+ -gen-opt-parser-defs \
+ ${CLANG_SRCS}/include/clang/Driver/Options.td > ${.TARGET}
+StmtNodes.inc.h: ${CLANG_SRCS}/include/clang/AST/StmtNodes.td
+ ${TBLGEN} -I${CLANG_SRCS}/include/clang/AST \
+ -gen-clang-stmt-nodes \
+ ${CLANG_SRCS}/include/clang/AST/StmtNodes.td > ${.TARGET}
+
+SRCS+= ${TGHDRS:C/$/.inc.h/}
+DPADD+= ${TGHDRS:C/$/.inc.h/}
+CLEANFILES+= ${TGHDRS:C/$/.inc.h/}
diff --git a/lib/clang/clang.lib.mk b/lib/clang/clang.lib.mk
new file mode 100644
index 0000000..f7bd281
--- /dev/null
+++ b/lib/clang/clang.lib.mk
@@ -0,0 +1,9 @@
+# $FreeBSD$
+
+LLVM_SRCS=${.CURDIR}/../../../contrib/llvm
+
+.include "clang.build.mk"
+
+INTERNALLIB=
+
+.include <bsd.lib.mk>
diff --git a/lib/clang/include/ARMGenAsmWriter.inc b/lib/clang/include/ARMGenAsmWriter.inc
new file mode 100644
index 0000000..896bedd
--- /dev/null
+++ b/lib/clang/include/ARMGenAsmWriter.inc
@@ -0,0 +1,2 @@
+/* $FreeBSD$ */
+#include "ARMGenAsmWriter.inc.h"
diff --git a/lib/clang/include/ARMGenCallingConv.inc b/lib/clang/include/ARMGenCallingConv.inc
new file mode 100644
index 0000000..f7d850a
--- /dev/null
+++ b/lib/clang/include/ARMGenCallingConv.inc
@@ -0,0 +1,2 @@
+/* $FreeBSD$ */
+#include "ARMGenCallingConv.inc.h"
diff --git a/lib/clang/include/ARMGenCodeEmitter.inc b/lib/clang/include/ARMGenCodeEmitter.inc
new file mode 100644
index 0000000..083a6c3
--- /dev/null
+++ b/lib/clang/include/ARMGenCodeEmitter.inc
@@ -0,0 +1,2 @@
+/* $FreeBSD$ */
+#include "ARMGenCodeEmitter.inc.h"
diff --git a/lib/clang/include/ARMGenDAGISel.inc b/lib/clang/include/ARMGenDAGISel.inc
new file mode 100644
index 0000000..6ad15b1
--- /dev/null
+++ b/lib/clang/include/ARMGenDAGISel.inc
@@ -0,0 +1,2 @@
+/* $FreeBSD$ */
+#include "ARMGenDAGISel.inc.h"
diff --git a/lib/clang/include/ARMGenInstrInfo.inc b/lib/clang/include/ARMGenInstrInfo.inc
new file mode 100644
index 0000000..29c26ed
--- /dev/null
+++ b/lib/clang/include/ARMGenInstrInfo.inc
@@ -0,0 +1,2 @@
+/* $FreeBSD$ */
+#include "ARMGenInstrInfo.inc.h"
diff --git a/lib/clang/include/ARMGenInstrNames.inc b/lib/clang/include/ARMGenInstrNames.inc
new file mode 100644
index 0000000..9ecc271
--- /dev/null
+++ b/lib/clang/include/ARMGenInstrNames.inc
@@ -0,0 +1,2 @@
+/* $FreeBSD$ */
+#include "ARMGenInstrNames.inc.h"
diff --git a/lib/clang/include/ARMGenRegisterInfo.h.inc b/lib/clang/include/ARMGenRegisterInfo.h.inc
new file mode 100644
index 0000000..03bd3a2
--- /dev/null
+++ b/lib/clang/include/ARMGenRegisterInfo.h.inc
@@ -0,0 +1,2 @@
+/* $FreeBSD$ */
+#include "ARMGenRegisterInfo.h.inc.h"
diff --git a/lib/clang/include/ARMGenRegisterInfo.inc b/lib/clang/include/ARMGenRegisterInfo.inc
new file mode 100644
index 0000000..aa40e18
--- /dev/null
+++ b/lib/clang/include/ARMGenRegisterInfo.inc
@@ -0,0 +1,2 @@
+/* $FreeBSD$ */
+#include "ARMGenRegisterInfo.inc.h"
diff --git a/lib/clang/include/ARMGenRegisterNames.inc b/lib/clang/include/ARMGenRegisterNames.inc
new file mode 100644
index 0000000..7eb6a0d
--- /dev/null
+++ b/lib/clang/include/ARMGenRegisterNames.inc
@@ -0,0 +1,2 @@
+/* $FreeBSD$ */
+#include "ARMGenRegisterNames.inc.h"
diff --git a/lib/clang/include/ARMGenSubtarget.inc b/lib/clang/include/ARMGenSubtarget.inc
new file mode 100644
index 0000000..55d5e8e
--- /dev/null
+++ b/lib/clang/include/ARMGenSubtarget.inc
@@ -0,0 +1,2 @@
+/* $FreeBSD$ */
+#include "ARMGenSubtarget.inc.h"
diff --git a/lib/clang/include/IA64GenAsmWriter.inc b/lib/clang/include/IA64GenAsmWriter.inc
new file mode 100644
index 0000000..dddc793
--- /dev/null
+++ b/lib/clang/include/IA64GenAsmWriter.inc
@@ -0,0 +1,2 @@
+/* $FreeBSD$ */
+#include "IA64GenAsmWriter.inc.h"
diff --git a/lib/clang/include/IA64GenDAGISel.inc b/lib/clang/include/IA64GenDAGISel.inc
new file mode 100644
index 0000000..c6ae3dc
--- /dev/null
+++ b/lib/clang/include/IA64GenDAGISel.inc
@@ -0,0 +1,2 @@
+/* $FreeBSD$ */
+#include "IA64GenDAGISel.inc.h"
diff --git a/lib/clang/include/IA64GenInstrInfo.inc b/lib/clang/include/IA64GenInstrInfo.inc
new file mode 100644
index 0000000..7fe83f6
--- /dev/null
+++ b/lib/clang/include/IA64GenInstrInfo.inc
@@ -0,0 +1,2 @@
+/* $FreeBSD$ */
+#include "IA64GenInstrInfo.inc.h"
diff --git a/lib/clang/include/IA64GenInstrNames.inc b/lib/clang/include/IA64GenInstrNames.inc
new file mode 100644
index 0000000..6b2c58e
--- /dev/null
+++ b/lib/clang/include/IA64GenInstrNames.inc
@@ -0,0 +1,2 @@
+/* $FreeBSD$ */
+#include "IA64GenInstrNames.inc.h"
diff --git a/lib/clang/include/IA64GenRegisterInfo.h.inc b/lib/clang/include/IA64GenRegisterInfo.h.inc
new file mode 100644
index 0000000..38086d4
--- /dev/null
+++ b/lib/clang/include/IA64GenRegisterInfo.h.inc
@@ -0,0 +1,2 @@
+/* $FreeBSD$ */
+#include "IA64GenRegisterInfo.h.inc.h"
diff --git a/lib/clang/include/IA64GenRegisterInfo.inc b/lib/clang/include/IA64GenRegisterInfo.inc
new file mode 100644
index 0000000..89405ed
--- /dev/null
+++ b/lib/clang/include/IA64GenRegisterInfo.inc
@@ -0,0 +1,2 @@
+/* $FreeBSD$ */
+#include "IA64GenRegisterInfo.inc.h"
diff --git a/lib/clang/include/IA64GenRegisterNames.inc b/lib/clang/include/IA64GenRegisterNames.inc
new file mode 100644
index 0000000..d1f0970
--- /dev/null
+++ b/lib/clang/include/IA64GenRegisterNames.inc
@@ -0,0 +1,2 @@
+/* $FreeBSD$ */
+#include "IA64GenRegisterNames.inc.h"
diff --git a/lib/clang/include/Makefile b/lib/clang/include/Makefile
new file mode 100644
index 0000000..db85f80
--- /dev/null
+++ b/lib/clang/include/Makefile
@@ -0,0 +1,11 @@
+# $FreeBSD$
+
+.PATH: ${.CURDIR}/../../../contrib/llvm/tools/clang/lib/Headers
+
+INCSDIR=${INCLUDEDIR}/clang/2.0
+
+INCS= emmintrin.h mm_malloc.h mmintrin.h pmmintrin.h tmmintrin.h xmmintrin.h
+
+.include <bsd.init.mk>
+.include <bsd.incs.mk>
+.include <bsd.obj.mk>
diff --git a/lib/clang/include/MipsGenAsmWriter.inc b/lib/clang/include/MipsGenAsmWriter.inc
new file mode 100644
index 0000000..1f512f1
--- /dev/null
+++ b/lib/clang/include/MipsGenAsmWriter.inc
@@ -0,0 +1,2 @@
+/* $FreeBSD$ */
+#include "MipsGenAsmWriter.inc.h"
diff --git a/lib/clang/include/MipsGenCallingConv.inc b/lib/clang/include/MipsGenCallingConv.inc
new file mode 100644
index 0000000..6f6fee6
--- /dev/null
+++ b/lib/clang/include/MipsGenCallingConv.inc
@@ -0,0 +1,2 @@
+/* $FreeBSD$ */
+#include "MipsGenCallingConv.inc.h"
diff --git a/lib/clang/include/MipsGenDAGISel.inc b/lib/clang/include/MipsGenDAGISel.inc
new file mode 100644
index 0000000..cb63943
--- /dev/null
+++ b/lib/clang/include/MipsGenDAGISel.inc
@@ -0,0 +1,2 @@
+/* $FreeBSD$ */
+#include "MipsGenDAGISel.inc.h"
diff --git a/lib/clang/include/MipsGenInstrInfo.inc b/lib/clang/include/MipsGenInstrInfo.inc
new file mode 100644
index 0000000..ec57075
--- /dev/null
+++ b/lib/clang/include/MipsGenInstrInfo.inc
@@ -0,0 +1,2 @@
+/* $FreeBSD$ */
+#include "MipsGenInstrInfo.inc.h"
diff --git a/lib/clang/include/MipsGenInstrNames.inc b/lib/clang/include/MipsGenInstrNames.inc
new file mode 100644
index 0000000..78759ee
--- /dev/null
+++ b/lib/clang/include/MipsGenInstrNames.inc
@@ -0,0 +1,2 @@
+/* $FreeBSD$ */
+#include "MipsGenInstrNames.inc.h"
diff --git a/lib/clang/include/MipsGenRegisterInfo.h.inc b/lib/clang/include/MipsGenRegisterInfo.h.inc
new file mode 100644
index 0000000..af66c5f
--- /dev/null
+++ b/lib/clang/include/MipsGenRegisterInfo.h.inc
@@ -0,0 +1,2 @@
+/* $FreeBSD$ */
+#include "MipsGenRegisterInfo.h.inc.h"
diff --git a/lib/clang/include/MipsGenRegisterInfo.inc b/lib/clang/include/MipsGenRegisterInfo.inc
new file mode 100644
index 0000000..95a7b70
--- /dev/null
+++ b/lib/clang/include/MipsGenRegisterInfo.inc
@@ -0,0 +1,2 @@
+/* $FreeBSD$ */
+#include "MipsGenRegisterInfo.inc.h"
diff --git a/lib/clang/include/MipsGenRegisterNames.inc b/lib/clang/include/MipsGenRegisterNames.inc
new file mode 100644
index 0000000..3b00971
--- /dev/null
+++ b/lib/clang/include/MipsGenRegisterNames.inc
@@ -0,0 +1,2 @@
+/* $FreeBSD$ */
+#include "MipsGenRegisterNames.inc.h"
diff --git a/lib/clang/include/MipsGenSubtarget.inc b/lib/clang/include/MipsGenSubtarget.inc
new file mode 100644
index 0000000..9fb4a70
--- /dev/null
+++ b/lib/clang/include/MipsGenSubtarget.inc
@@ -0,0 +1,2 @@
+/* $FreeBSD$ */
+#include "MipsGenSubtarget.inc.h"
diff --git a/lib/clang/include/PPCGenAsmWriter.inc b/lib/clang/include/PPCGenAsmWriter.inc
new file mode 100644
index 0000000..e31e777
--- /dev/null
+++ b/lib/clang/include/PPCGenAsmWriter.inc
@@ -0,0 +1,2 @@
+/* $FreeBSD$ */
+#include "PPCGenAsmWriter.inc.h"
diff --git a/lib/clang/include/PPCGenCallingConv.inc b/lib/clang/include/PPCGenCallingConv.inc
new file mode 100644
index 0000000..6f28640
--- /dev/null
+++ b/lib/clang/include/PPCGenCallingConv.inc
@@ -0,0 +1,2 @@
+/* $FreeBSD$ */
+#include "PPCGenCallingConv.inc.h"
diff --git a/lib/clang/include/PPCGenCodeEmitter.inc b/lib/clang/include/PPCGenCodeEmitter.inc
new file mode 100644
index 0000000..525c853
--- /dev/null
+++ b/lib/clang/include/PPCGenCodeEmitter.inc
@@ -0,0 +1,2 @@
+/* $FreeBSD$ */
+#include "PPCGenCodeEmitter.inc.h"
diff --git a/lib/clang/include/PPCGenDAGISel.inc b/lib/clang/include/PPCGenDAGISel.inc
new file mode 100644
index 0000000..b783e11
--- /dev/null
+++ b/lib/clang/include/PPCGenDAGISel.inc
@@ -0,0 +1,2 @@
+/* $FreeBSD$ */
+#include "PPCGenDAGISel.inc.h"
diff --git a/lib/clang/include/PPCGenInstrInfo.inc b/lib/clang/include/PPCGenInstrInfo.inc
new file mode 100644
index 0000000..80a11d5
--- /dev/null
+++ b/lib/clang/include/PPCGenInstrInfo.inc
@@ -0,0 +1,2 @@
+/* $FreeBSD$ */
+#include "PPCGenInstrInfo.inc.h"
diff --git a/lib/clang/include/PPCGenInstrNames.inc b/lib/clang/include/PPCGenInstrNames.inc
new file mode 100644
index 0000000..67ae90d
--- /dev/null
+++ b/lib/clang/include/PPCGenInstrNames.inc
@@ -0,0 +1,2 @@
+/* $FreeBSD$ */
+#include "PPCGenInstrNames.inc.h"
diff --git a/lib/clang/include/PPCGenRegisterInfo.h.inc b/lib/clang/include/PPCGenRegisterInfo.h.inc
new file mode 100644
index 0000000..bce5f45
--- /dev/null
+++ b/lib/clang/include/PPCGenRegisterInfo.h.inc
@@ -0,0 +1,2 @@
+/* $FreeBSD$ */
+#include "PPCGenRegisterInfo.h.inc.h"
diff --git a/lib/clang/include/PPCGenRegisterInfo.inc b/lib/clang/include/PPCGenRegisterInfo.inc
new file mode 100644
index 0000000..9e26cb1
--- /dev/null
+++ b/lib/clang/include/PPCGenRegisterInfo.inc
@@ -0,0 +1,2 @@
+/* $FreeBSD$ */
+#include "PPCGenRegisterInfo.inc.h"
diff --git a/lib/clang/include/PPCGenRegisterNames.inc b/lib/clang/include/PPCGenRegisterNames.inc
new file mode 100644
index 0000000..09e7a2d
--- /dev/null
+++ b/lib/clang/include/PPCGenRegisterNames.inc
@@ -0,0 +1,2 @@
+/* $FreeBSD$ */
+#include "PPCGenRegisterNames.inc.h"
diff --git a/lib/clang/include/PPCGenSubtarget.inc b/lib/clang/include/PPCGenSubtarget.inc
new file mode 100644
index 0000000..7032e52
--- /dev/null
+++ b/lib/clang/include/PPCGenSubtarget.inc
@@ -0,0 +1,2 @@
+/* $FreeBSD$ */
+#include "PPCGenSubtarget.inc.h"
diff --git a/lib/clang/include/X86GenAsmMatcher.inc b/lib/clang/include/X86GenAsmMatcher.inc
new file mode 100644
index 0000000..6ed8afd
--- /dev/null
+++ b/lib/clang/include/X86GenAsmMatcher.inc
@@ -0,0 +1,2 @@
+/* $FreeBSD$ */
+#include "X86GenAsmMatcher.inc.h"
diff --git a/lib/clang/include/X86GenAsmWriter.inc b/lib/clang/include/X86GenAsmWriter.inc
new file mode 100644
index 0000000..4879a0c
--- /dev/null
+++ b/lib/clang/include/X86GenAsmWriter.inc
@@ -0,0 +1,2 @@
+/* $FreeBSD$ */
+#include "X86GenAsmWriter.inc.h"
diff --git a/lib/clang/include/X86GenAsmWriter1.inc b/lib/clang/include/X86GenAsmWriter1.inc
new file mode 100644
index 0000000..03f88b8
--- /dev/null
+++ b/lib/clang/include/X86GenAsmWriter1.inc
@@ -0,0 +1,2 @@
+/* $FreeBSD$ */
+#include "X86GenAsmWriter1.inc.h"
diff --git a/lib/clang/include/X86GenCallingConv.inc b/lib/clang/include/X86GenCallingConv.inc
new file mode 100644
index 0000000..dce5266
--- /dev/null
+++ b/lib/clang/include/X86GenCallingConv.inc
@@ -0,0 +1,2 @@
+/* $FreeBSD$ */
+#include "X86GenCallingConv.inc.h"
diff --git a/lib/clang/include/X86GenDAGISel.inc b/lib/clang/include/X86GenDAGISel.inc
new file mode 100644
index 0000000..5a5ab94
--- /dev/null
+++ b/lib/clang/include/X86GenDAGISel.inc
@@ -0,0 +1,2 @@
+/* $FreeBSD$ */
+#include "X86GenDAGISel.inc.h"
diff --git a/lib/clang/include/X86GenFastISel.inc b/lib/clang/include/X86GenFastISel.inc
new file mode 100644
index 0000000..4074cf6
--- /dev/null
+++ b/lib/clang/include/X86GenFastISel.inc
@@ -0,0 +1,2 @@
+/* $FreeBSD$ */
+#include "X86GenFastISel.inc.h"
diff --git a/lib/clang/include/X86GenInstrInfo.inc b/lib/clang/include/X86GenInstrInfo.inc
new file mode 100644
index 0000000..6222825
--- /dev/null
+++ b/lib/clang/include/X86GenInstrInfo.inc
@@ -0,0 +1,2 @@
+/* $FreeBSD$ */
+#include "X86GenInstrInfo.inc.h"
diff --git a/lib/clang/include/X86GenInstrNames.inc b/lib/clang/include/X86GenInstrNames.inc
new file mode 100644
index 0000000..9c856f4
--- /dev/null
+++ b/lib/clang/include/X86GenInstrNames.inc
@@ -0,0 +1,2 @@
+/* $FreeBSD$ */
+#include "X86GenInstrNames.inc.h"
diff --git a/lib/clang/include/X86GenRegisterInfo.h.inc b/lib/clang/include/X86GenRegisterInfo.h.inc
new file mode 100644
index 0000000..4a76e0d
--- /dev/null
+++ b/lib/clang/include/X86GenRegisterInfo.h.inc
@@ -0,0 +1,2 @@
+/* $FreeBSD$ */
+#include "X86GenRegisterInfo.h.inc.h"
diff --git a/lib/clang/include/X86GenRegisterInfo.inc b/lib/clang/include/X86GenRegisterInfo.inc
new file mode 100644
index 0000000..6d78e41
--- /dev/null
+++ b/lib/clang/include/X86GenRegisterInfo.inc
@@ -0,0 +1,2 @@
+/* $FreeBSD$ */
+#include "X86GenRegisterInfo.inc.h"
diff --git a/lib/clang/include/X86GenRegisterNames.inc b/lib/clang/include/X86GenRegisterNames.inc
new file mode 100644
index 0000000..ad3d722
--- /dev/null
+++ b/lib/clang/include/X86GenRegisterNames.inc
@@ -0,0 +1,2 @@
+/* $FreeBSD$ */
+#include "X86GenRegisterNames.inc.h"
diff --git a/lib/clang/include/X86GenSubtarget.inc b/lib/clang/include/X86GenSubtarget.inc
new file mode 100644
index 0000000..1e8907d
--- /dev/null
+++ b/lib/clang/include/X86GenSubtarget.inc
@@ -0,0 +1,2 @@
+/* $FreeBSD$ */
+#include "X86GenSubtarget.inc.h"
diff --git a/lib/clang/include/clang/AST/StmtNodes.inc b/lib/clang/include/clang/AST/StmtNodes.inc
new file mode 100644
index 0000000..cd35d7a
--- /dev/null
+++ b/lib/clang/include/clang/AST/StmtNodes.inc
@@ -0,0 +1,2 @@
+/* $FreeBSD$ */
+#include "StmtNodes.inc.h"
diff --git a/lib/clang/include/clang/Basic/DiagnosticASTKinds.inc b/lib/clang/include/clang/Basic/DiagnosticASTKinds.inc
new file mode 100644
index 0000000..bc558c5
--- /dev/null
+++ b/lib/clang/include/clang/Basic/DiagnosticASTKinds.inc
@@ -0,0 +1,2 @@
+/* $FreeBSD$ */
+#include "DiagnosticASTKinds.inc.h"
diff --git a/lib/clang/include/clang/Basic/DiagnosticAnalysisKinds.inc b/lib/clang/include/clang/Basic/DiagnosticAnalysisKinds.inc
new file mode 100644
index 0000000..5472209
--- /dev/null
+++ b/lib/clang/include/clang/Basic/DiagnosticAnalysisKinds.inc
@@ -0,0 +1,2 @@
+/* $FreeBSD$ */
+#include "DiagnosticAnalysisKinds.inc.h"
diff --git a/lib/clang/include/clang/Basic/DiagnosticCommonKinds.inc b/lib/clang/include/clang/Basic/DiagnosticCommonKinds.inc
new file mode 100644
index 0000000..b2ac7a3
--- /dev/null
+++ b/lib/clang/include/clang/Basic/DiagnosticCommonKinds.inc
@@ -0,0 +1,2 @@
+/* $FreeBSD$ */
+#include "DiagnosticCommonKinds.inc.h"
diff --git a/lib/clang/include/clang/Basic/DiagnosticDriverKinds.inc b/lib/clang/include/clang/Basic/DiagnosticDriverKinds.inc
new file mode 100644
index 0000000..b719c10
--- /dev/null
+++ b/lib/clang/include/clang/Basic/DiagnosticDriverKinds.inc
@@ -0,0 +1,2 @@
+/* $FreeBSD$ */
+#include "DiagnosticDriverKinds.inc.h"
diff --git a/lib/clang/include/clang/Basic/DiagnosticFrontendKinds.inc b/lib/clang/include/clang/Basic/DiagnosticFrontendKinds.inc
new file mode 100644
index 0000000..85dde99
--- /dev/null
+++ b/lib/clang/include/clang/Basic/DiagnosticFrontendKinds.inc
@@ -0,0 +1,2 @@
+/* $FreeBSD$ */
+#include "DiagnosticFrontendKinds.inc.h"
diff --git a/lib/clang/include/clang/Basic/DiagnosticGroups.inc b/lib/clang/include/clang/Basic/DiagnosticGroups.inc
new file mode 100644
index 0000000..1c5fa1a
--- /dev/null
+++ b/lib/clang/include/clang/Basic/DiagnosticGroups.inc
@@ -0,0 +1,2 @@
+/* $FreeBSD$ */
+#include "DiagnosticGroups.inc.h"
diff --git a/lib/clang/include/clang/Basic/DiagnosticLexKinds.inc b/lib/clang/include/clang/Basic/DiagnosticLexKinds.inc
new file mode 100644
index 0000000..8a0e527
--- /dev/null
+++ b/lib/clang/include/clang/Basic/DiagnosticLexKinds.inc
@@ -0,0 +1,2 @@
+/* $FreeBSD$ */
+#include "DiagnosticLexKinds.inc.h"
diff --git a/lib/clang/include/clang/Basic/DiagnosticParseKinds.inc b/lib/clang/include/clang/Basic/DiagnosticParseKinds.inc
new file mode 100644
index 0000000..5a4948e
--- /dev/null
+++ b/lib/clang/include/clang/Basic/DiagnosticParseKinds.inc
@@ -0,0 +1,2 @@
+/* $FreeBSD$ */
+#include "DiagnosticParseKinds.inc.h"
diff --git a/lib/clang/include/clang/Basic/DiagnosticSemaKinds.inc b/lib/clang/include/clang/Basic/DiagnosticSemaKinds.inc
new file mode 100644
index 0000000..d08c7f1
--- /dev/null
+++ b/lib/clang/include/clang/Basic/DiagnosticSemaKinds.inc
@@ -0,0 +1,2 @@
+/* $FreeBSD$ */
+#include "DiagnosticSemaKinds.inc.h"
diff --git a/lib/clang/include/clang/Driver/CC1AsOptions.inc b/lib/clang/include/clang/Driver/CC1AsOptions.inc
new file mode 100644
index 0000000..3d76958
--- /dev/null
+++ b/lib/clang/include/clang/Driver/CC1AsOptions.inc
@@ -0,0 +1,2 @@
+/* $FreeBSD$ */
+#include "CC1AsOptions.inc.h"
diff --git a/lib/clang/include/clang/Driver/CC1Options.inc b/lib/clang/include/clang/Driver/CC1Options.inc
new file mode 100644
index 0000000..33029a0
--- /dev/null
+++ b/lib/clang/include/clang/Driver/CC1Options.inc
@@ -0,0 +1,2 @@
+/* $FreeBSD$ */
+#include "CC1Options.inc.h"
diff --git a/lib/clang/include/clang/Driver/Options.inc b/lib/clang/include/clang/Driver/Options.inc
new file mode 100644
index 0000000..37422c1
--- /dev/null
+++ b/lib/clang/include/clang/Driver/Options.inc
@@ -0,0 +1,2 @@
+/* $FreeBSD$ */
+#include "Options.inc.h"
diff --git a/lib/clang/include/llvm/ADT/iterator.h b/lib/clang/include/llvm/ADT/iterator.h
new file mode 100644
index 0000000..b406266
--- /dev/null
+++ b/lib/clang/include/llvm/ADT/iterator.h
@@ -0,0 +1,78 @@
+/* include/llvm/ADT/iterator.h. Generated from iterator.h.in by configure. */
+//==-- llvm/ADT/iterator.h - Portable wrapper around <iterator> --*- C++ -*-==//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+//
+// This file provides a wrapper around the mysterious <iterator> header file.
+// In GCC 2.95.3, the file defines a bidirectional_iterator class (and other
+// friends), instead of the standard iterator class. In GCC 3.1, the
+// bidirectional_iterator class got moved out and the new, standards compliant,
+// iterator<> class was added. Because there is nothing that we can do to get
+// correct behavior on both compilers, we have this header with #ifdef's. Gross
+// huh?
+//
+// By #includ'ing this file, you get the contents of <iterator> plus the
+// following classes in the global namespace:
+//
+// 1. bidirectional_iterator
+// 2. forward_iterator
+//
+// The #if directives' expressions are filled in by Autoconf.
+//
+// $FreeBSD$
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_ADT_ITERATOR_H
+#define LLVM_ADT_ITERATOR_H
+
+#include <iterator>
+
+#define HAVE_BI_ITERATOR 0
+#define HAVE_STD_ITERATOR 1
+#define HAVE_FWD_ITERATOR 0
+
+#ifdef _MSC_VER
+# define HAVE_BI_ITERATOR 0
+# define HAVE_STD_ITERATOR 1
+# define HAVE_FWD_ITERATOR 0
+#endif
+
+#if !HAVE_BI_ITERATOR
+# if HAVE_STD_ITERATOR
+/// If the bidirectional iterator is not defined, we attempt to define it in
+/// terms of the C++ standard iterator. Otherwise, we import it with a "using"
+/// statement.
+///
+template<class Ty, class PtrDiffTy>
+struct bidirectional_iterator
+ : public std::iterator<std::bidirectional_iterator_tag, Ty, PtrDiffTy> {
+};
+# else
+# error "Need to have standard iterator to define bidirectional iterator!"
+# endif
+#else
+using std::bidirectional_iterator;
+#endif
+
+#if !HAVE_FWD_ITERATOR
+# if HAVE_STD_ITERATOR
+/// If the forward iterator is not defined, attempt to define it in terms of
+/// the C++ standard iterator. Otherwise, we import it with a "using" statement.
+///
+template<class Ty, class PtrDiffTy>
+struct forward_iterator
+ : public std::iterator<std::forward_iterator_tag, Ty, PtrDiffTy> {
+};
+# else
+# error "Need to have standard iterator to define forward iterator!"
+# endif
+#else
+using std::forward_iterator;
+#endif
+
+#endif // LLVM_ADT_ITERATOR_H
diff --git a/lib/clang/include/llvm/Config/AsmParsers.def b/lib/clang/include/llvm/Config/AsmParsers.def
new file mode 100644
index 0000000..c6e1ffd
--- /dev/null
+++ b/lib/clang/include/llvm/Config/AsmParsers.def
@@ -0,0 +1,30 @@
+/* $FreeBSD$ */
+//===- llvm/Config/AsmParsers.def - LLVM Assembly Parsers -------*- C++ -*-===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+//
+// This file enumerates all of the assembly-language parsers
+// supported by this build of LLVM. Clients of this file should define
+// the LLVM_ASM_PARSER macro to be a function-like macro with a
+// single parameter (the name of the target whose assembly can be
+// generated); including this file will then enumerate all of the
+// targets with assembly parsers.
+//
+// The set of targets supported by LLVM is generated at configuration
+// time, at which point this header is generated. Do not modify this
+// header directly.
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_ASM_PARSER
+# error Please define the macro LLVM_ASM_PARSER(TargetName)
+#endif
+
+LLVM_ASM_PARSER(ARM) LLVM_ASM_PARSER(X86)
+
+#undef LLVM_ASM_PARSER
diff --git a/lib/clang/include/llvm/Config/AsmPrinters.def b/lib/clang/include/llvm/Config/AsmPrinters.def
new file mode 100644
index 0000000..76e2377
--- /dev/null
+++ b/lib/clang/include/llvm/Config/AsmPrinters.def
@@ -0,0 +1,30 @@
+/* $FreeBSD$ */
+//===- llvm/Config/AsmPrinters.def - LLVM Assembly Printers -----*- C++ -*-===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+//
+// This file enumerates all of the assembly-language printers
+// supported by this build of LLVM. Clients of this file should define
+// the LLVM_ASM_PRINTER macro to be a function-like macro with a
+// single parameter (the name of the target whose assembly can be
+// generated); including this file will then enumerate all of the
+// targets with assembly printers.
+//
+// The set of targets supported by LLVM is generated at configuration
+// time, at which point this header is generated. Do not modify this
+// header directly.
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_ASM_PRINTER
+# error Please define the macro LLVM_ASM_PRINTER(TargetName)
+#endif
+
+LLVM_ASM_PRINTER(Mips) LLVM_ASM_PRINTER(ARM) LLVM_ASM_PRINTER(PowerPC) LLVM_ASM_PRINTER(X86)
+
+#undef LLVM_ASM_PRINTER
diff --git a/lib/clang/include/llvm/Config/Disassemblers.def b/lib/clang/include/llvm/Config/Disassemblers.def
new file mode 100644
index 0000000..bc79e01
--- /dev/null
+++ b/lib/clang/include/llvm/Config/Disassemblers.def
@@ -0,0 +1,30 @@
+/* $FreeBSD$ */
+//===- llvm/Config/Disassemblers.def - LLVM Assembly Parsers ----*- C++ -*-===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+//
+// This file enumerates all of the assembly-language parsers
+// supported by this build of LLVM. Clients of this file should define
+// the LLVM_ASM_PARSER macro to be a function-like macro with a
+// single parameter (the name of the target whose assembly can be
+// generated); including this file will then enumerate all of the
+// targets with assembly parsers.
+//
+// The set of targets supported by LLVM is generated at configuration
+// time, at which point this header is generated. Do not modify this
+// header directly.
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_DISASSEMBLER
+# error Please define the macro LLVM_DISASSEMBLER(TargetName)
+#endif
+
+LLVM_DISASSEMBLER(X86)
+
+#undef LLVM_DISASSEMBLER
diff --git a/lib/clang/include/llvm/Config/Targets.def b/lib/clang/include/llvm/Config/Targets.def
new file mode 100644
index 0000000..47ae809
--- /dev/null
+++ b/lib/clang/include/llvm/Config/Targets.def
@@ -0,0 +1,29 @@
+/* $FreeBSD$ */
+/*===- llvm/Config/Targets.def - LLVM Target Architectures ------*- C++ -*-===*\
+|* *|
+|* The LLVM Compiler Infrastructure *|
+|* *|
+|* This file is distributed under the University of Illinois Open Source *|
+|* License. See LICENSE.TXT for details. *|
+|* *|
+|*===----------------------------------------------------------------------===*|
+|* *|
+|* This file enumerates all of the target architectures supported by *|
+|* this build of LLVM. Clients of this file should define the *|
+|* LLVM_TARGET macro to be a function-like macro with a single *|
+|* parameter (the name of the target); including this file will then *|
+|* enumerate all of the targets. *|
+|* *|
+|* The set of targets supported by LLVM is generated at configuration *|
+|* time, at which point this header is generated. Do not modify this *|
+|* header directly. *|
+|* *|
+\*===----------------------------------------------------------------------===*/
+
+#ifndef LLVM_TARGET
+# error Please define the macro LLVM_TARGET(TargetName)
+#endif
+
+LLVM_TARGET(Mips) LLVM_TARGET(ARM) LLVM_TARGET(PowerPC) LLVM_TARGET(X86)
+
+#undef LLVM_TARGET
diff --git a/lib/clang/include/llvm/Config/config.h b/lib/clang/include/llvm/Config/config.h
new file mode 100644
index 0000000..d29dff5
--- /dev/null
+++ b/lib/clang/include/llvm/Config/config.h
@@ -0,0 +1,569 @@
+/* $FreeBSD$ */
+/* include/llvm/Config/config.h. Generated from config.h.in by configure. */
+/* include/llvm/Config/config.h.in. Generated from autoconf/configure.ac by autoheader. */
+
+/* 32 bit multilib directory. */
+#define CXX_INCLUDE_32BIT_DIR ""
+
+/* 64 bit multilib directory. */
+#define CXX_INCLUDE_64BIT_DIR ""
+
+/* Arch the libstdc++ headers. */
+#define CXX_INCLUDE_ARCH ""
+
+/* Directory with the libstdc++ headers. */
+#define CXX_INCLUDE_ROOT ""
+
+/* Directories clang will search for headers */
+#define C_INCLUDE_DIRS ""
+
+/* Define if CBE is enabled for printf %a output */
+#define ENABLE_CBE_PRINTF_A 1
+
+/* Define if position independent code is enabled */
+#define ENABLE_PIC 1
+
+/* Define if threads enabled */
+/* #undef ENABLE_THREADS */
+
+/* Define if timestamp information (e.g., __DATE___) is allowed */
+#define ENABLE_TIMESTAMPS 1
+
+/* Define to 1 if you have the `argz_append' function. */
+/* #undef HAVE_ARGZ_APPEND */
+
+/* Define to 1 if you have the `argz_create_sep' function. */
+/* #undef HAVE_ARGZ_CREATE_SEP */
+
+/* Define to 1 if you have the <argz.h> header file. */
+/* #undef HAVE_ARGZ_H */
+
+/* Define to 1 if you have the `argz_insert' function. */
+/* #undef HAVE_ARGZ_INSERT */
+
+/* Define to 1 if you have the `argz_next' function. */
+/* #undef HAVE_ARGZ_NEXT */
+
+/* Define to 1 if you have the `argz_stringify' function. */
+/* #undef HAVE_ARGZ_STRINGIFY */
+
+/* Define to 1 if you have the <assert.h> header file. */
+#define HAVE_ASSERT_H 1
+
+/* Define to 1 if you have the `backtrace' function. */
+/* #undef HAVE_BACKTRACE */
+
+/* Define to 1 if you have the `bcopy' function. */
+/* #undef HAVE_BCOPY */
+
+/* Define to 1 if you have the `ceilf' function. */
+#define HAVE_CEILF 1
+
+/* Define if the neat program is available */
+/* #undef HAVE_CIRCO */
+
+/* Define to 1 if you have the `closedir' function. */
+#define HAVE_CLOSEDIR 1
+
+/* Define to 1 if you have the <ctype.h> header file. */
+#define HAVE_CTYPE_H 1
+
+/* Define to 1 if you have the <dirent.h> header file, and it defines `DIR'.
+ */
+#define HAVE_DIRENT_H 1
+
+/* Define if you have the GNU dld library. */
+/* #undef HAVE_DLD */
+
+/* Define to 1 if you have the <dld.h> header file. */
+/* #undef HAVE_DLD_H */
+
+/* Define to 1 if you have the `dlerror' function. */
+#define HAVE_DLERROR 1
+
+/* Define to 1 if you have the <dlfcn.h> header file. */
+#define HAVE_DLFCN_H 1
+
+/* Define if dlopen() is available on this platform. */
+#define HAVE_DLOPEN 1
+
+/* Define to 1 if you have the <dl.h> header file. */
+/* #undef HAVE_DL_H */
+
+/* Define if the dot program is available */
+/* #undef HAVE_DOT */
+
+/* Define if the dotty program is available */
+/* #undef HAVE_DOTTY */
+
+/* Define if you have the _dyld_func_lookup function. */
+/* #undef HAVE_DYLD */
+
+/* Define to 1 if you have the <errno.h> header file. */
+#define HAVE_ERRNO_H 1
+
+/* Define to 1 if the system has the type `error_t'. */
+/* #undef HAVE_ERROR_T */
+
+/* Define to 1 if you have the <execinfo.h> header file. */
+/* #undef HAVE_EXECINFO_H */
+
+/* Define to 1 if you have the <fcntl.h> header file. */
+#define HAVE_FCNTL_H 1
+
+/* Define if the neat program is available */
+/* #undef HAVE_FDP */
+
+/* Define if libffi is available on this platform. */
+/* #undef HAVE_FFI_CALL */
+
+/* Define to 1 if you have the <ffi/ffi.h> header file. */
+/* #undef HAVE_FFI_FFI_H */
+
+/* Define to 1 if you have the <ffi.h> header file. */
+/* #undef HAVE_FFI_H */
+
+/* Set to 1 if the finite function is found in <ieeefp.h> */
+/* #undef HAVE_FINITE_IN_IEEEFP_H */
+
+/* Define to 1 if you have the `floorf' function. */
+#define HAVE_FLOORF 1
+
+/* Define to 1 if you have the `fmodf' function. */
+#define HAVE_FMODF 1
+
+/* Define to 1 if you have the `getcwd' function. */
+#define HAVE_GETCWD 1
+
+/* Define to 1 if you have the `getpagesize' function. */
+#define HAVE_GETPAGESIZE 1
+
+/* Define to 1 if you have the `getrlimit' function. */
+#define HAVE_GETRLIMIT 1
+
+/* Define to 1 if you have the `getrusage' function. */
+#define HAVE_GETRUSAGE 1
+
+/* Define to 1 if you have the `gettimeofday' function. */
+#define HAVE_GETTIMEOFDAY 1
+
+/* Define if the Graphviz program is available */
+/* #undef HAVE_GRAPHVIZ */
+
+/* Define if the gv program is available */
+/* #undef HAVE_GV */
+
+/* Define to 1 if you have the `index' function. */
+/* #undef HAVE_INDEX */
+
+/* Define to 1 if the system has the type `int64_t'. */
+#define HAVE_INT64_T 1
+
+/* Define to 1 if you have the <inttypes.h> header file. */
+#define HAVE_INTTYPES_H 1
+
+/* Define to 1 if you have the `isatty' function. */
+#define HAVE_ISATTY 1
+
+/* Set to 1 if the isinf function is found in <cmath> */
+#define HAVE_ISINF_IN_CMATH 1
+
+/* Set to 1 if the isinf function is found in <math.h> */
+#define HAVE_ISINF_IN_MATH_H 1
+
+/* Set to 1 if the isnan function is found in <cmath> */
+#define HAVE_ISNAN_IN_CMATH 1
+
+/* Set to 1 if the isnan function is found in <math.h> */
+#define HAVE_ISNAN_IN_MATH_H 1
+
+/* Define if you have the libdl library or equivalent. */
+#define HAVE_LIBDL 1
+
+/* Define to 1 if you have the `imagehlp' library (-limagehlp). */
+/* #undef HAVE_LIBIMAGEHLP */
+
+/* Define to 1 if you have the `m' library (-lm). */
+#define HAVE_LIBM 1
+
+/* Define to 1 if you have the `psapi' library (-lpsapi). */
+/* #undef HAVE_LIBPSAPI */
+
+/* Define to 1 if you have the `pthread' library (-lpthread). */
+#define HAVE_LIBPTHREAD 1
+
+/* Define to 1 if you have the `udis86' library (-ludis86). */
+/* #undef HAVE_LIBUDIS86 */
+
+/* Define to 1 if you have the <limits.h> header file. */
+#define HAVE_LIMITS_H 1
+
+/* Define if you can use -Wl,-export-dynamic. */
+#define HAVE_LINK_EXPORT_DYNAMIC 1
+
+/* Define to 1 if you have the <link.h> header file. */
+#define HAVE_LINK_H 1
+
+/* Define if you can use -Wl,-R. to pass -R. to the linker, in order to add
+ the current directory to the dynamic linker search path. */
+#define HAVE_LINK_R 1
+
+/* Define to 1 if you have the `longjmp' function. */
+#define HAVE_LONGJMP 1
+
+/* Define to 1 if you have the <mach/mach.h> header file. */
+/* #undef HAVE_MACH_MACH_H */
+
+/* Define to 1 if you have the <mach-o/dyld.h> header file. */
+/* #undef HAVE_MACH_O_DYLD_H */
+
+/* Define if mallinfo() is available on this platform. */
+/* #undef HAVE_MALLINFO */
+
+/* Define to 1 if you have the <malloc.h> header file. */
+/* #undef HAVE_MALLOC_H */
+
+/* Define to 1 if you have the <malloc/malloc.h> header file. */
+/* #undef HAVE_MALLOC_MALLOC_H */
+
+/* Define to 1 if you have the `malloc_zone_statistics' function. */
+/* #undef HAVE_MALLOC_ZONE_STATISTICS */
+
+/* Define to 1 if you have the `memcpy' function. */
+#define HAVE_MEMCPY 1
+
+/* Define to 1 if you have the `memmove' function. */
+#define HAVE_MEMMOVE 1
+
+/* Define to 1 if you have the <memory.h> header file. */
+#define HAVE_MEMORY_H 1
+
+/* Define to 1 if you have the `mkdtemp' function. */
+#define HAVE_MKDTEMP 1
+
+/* Define to 1 if you have the `mkstemp' function. */
+#define HAVE_MKSTEMP 1
+
+/* Define to 1 if you have the `mktemp' function. */
+#define HAVE_MKTEMP 1
+
+/* Define to 1 if you have a working `mmap' system call. */
+#define HAVE_MMAP 1
+
+/* Define if mmap() uses MAP_ANONYMOUS to map anonymous pages, or undefine if
+ it uses MAP_ANON */
+/* #undef HAVE_MMAP_ANONYMOUS */
+
+/* Define if mmap() can map files into memory */
+#define HAVE_MMAP_FILE
+
+/* Define to 1 if you have the <ndir.h> header file, and it defines `DIR'. */
+/* #undef HAVE_NDIR_H */
+
+/* Define to 1 if you have the `nearbyintf' function. */
+#define HAVE_NEARBYINTF 1
+
+/* Define if the neat program is available */
+/* #undef HAVE_NEATO */
+
+/* Define to 1 if you have the `opendir' function. */
+#define HAVE_OPENDIR 1
+
+/* Define to 1 if you have the `posix_spawn' function. */
+#define HAVE_POSIX_SPAWN 1
+
+/* Define to 1 if you have the `powf' function. */
+#define HAVE_POWF 1
+
+/* Define if libtool can extract symbol lists from object files. */
+#define HAVE_PRELOADED_SYMBOLS 1
+
+/* Define to have the %a format string */
+#define HAVE_PRINTF_A 1
+
+/* Have pthread_getspecific */
+#define HAVE_PTHREAD_GETSPECIFIC 1
+
+/* Define to 1 if you have the <pthread.h> header file. */
+#define HAVE_PTHREAD_H 1
+
+/* Have pthread_mutex_lock */
+#define HAVE_PTHREAD_MUTEX_LOCK 1
+
+/* Have pthread_rwlock_init */
+#define HAVE_PTHREAD_RWLOCK_INIT 1
+
+/* Define to 1 if srand48/lrand48/drand48 exist in <stdlib.h> */
+#define HAVE_RAND48 1
+
+/* Define to 1 if you have the `readdir' function. */
+#define HAVE_READDIR 1
+
+/* Define to 1 if you have the `realpath' function. */
+#define HAVE_REALPATH 1
+
+/* Define to 1 if you have the `rindex' function. */
+/* #undef HAVE_RINDEX */
+
+/* Define to 1 if you have the `rintf' function. */
+#define HAVE_RINTF 1
+
+/* Define to 1 if you have the `round' function. */
+#define HAVE_ROUND 1
+
+/* Define to 1 if you have the `roundf' function. */
+#define HAVE_ROUNDF 1
+
+/* Define to 1 if you have the `sbrk' function. */
+#define HAVE_SBRK 1
+
+/* Define to 1 if you have the `setenv' function. */
+#define HAVE_SETENV 1
+
+/* Define to 1 if you have the `setjmp' function. */
+#define HAVE_SETJMP 1
+
+/* Define to 1 if you have the <setjmp.h> header file. */
+#define HAVE_SETJMP_H 1
+
+/* Define to 1 if you have the `setrlimit' function. */
+#define HAVE_SETRLIMIT 1
+
+/* Define if you have the shl_load function. */
+/* #undef HAVE_SHL_LOAD */
+
+/* Define to 1 if you have the `siglongjmp' function. */
+#define HAVE_SIGLONGJMP 1
+
+/* Define to 1 if you have the <signal.h> header file. */
+#define HAVE_SIGNAL_H 1
+
+/* Define to 1 if you have the `sigsetjmp' function. */
+#define HAVE_SIGSETJMP 1
+
+/* Define to 1 if you have the <stdint.h> header file. */
+#define HAVE_STDINT_H 1
+
+/* Define to 1 if you have the <stdio.h> header file. */
+#define HAVE_STDIO_H 1
+
+/* Define to 1 if you have the <stdlib.h> header file. */
+#define HAVE_STDLIB_H 1
+
+/* Set to 1 if the std::isinf function is found in <cmath> */
+/* #undef HAVE_STD_ISINF_IN_CMATH */
+
+/* Set to 1 if the std::isnan function is found in <cmath> */
+#define HAVE_STD_ISNAN_IN_CMATH 1
+
+/* Define to 1 if you have the `strchr' function. */
+#define HAVE_STRCHR 1
+
+/* Define to 1 if you have the `strcmp' function. */
+#define HAVE_STRCMP 1
+
+/* Define to 1 if you have the `strdup' function. */
+#define HAVE_STRDUP 1
+
+/* Define to 1 if you have the `strerror' function. */
+#define HAVE_STRERROR 1
+
+/* Define to 1 if you have the `strerror_r' function. */
+#define HAVE_STRERROR_R 1
+
+/* Define to 1 if you have the `strerror_s' function. */
+/* #undef HAVE_STRERROR_S */
+
+/* Define to 1 if you have the <strings.h> header file. */
+#define HAVE_STRINGS_H 1
+
+/* Define to 1 if you have the <string.h> header file. */
+#define HAVE_STRING_H 1
+
+/* Define to 1 if you have the `strrchr' function. */
+#define HAVE_STRRCHR 1
+
+/* Define to 1 if you have the `strtof' function. */
+#define HAVE_STRTOF 1
+
+/* Define to 1 if you have the `strtoll' function. */
+#define HAVE_STRTOLL 1
+
+/* Define to 1 if you have the `strtoq' function. */
+#define HAVE_STRTOQ 1
+
+/* Define to 1 if you have the `sysconf' function. */
+#define HAVE_SYSCONF 1
+
+/* Define to 1 if you have the <sys/dir.h> header file, and it defines `DIR'.
+ */
+/* #undef HAVE_SYS_DIR_H */
+
+/* Define to 1 if you have the <sys/dl.h> header file. */
+/* #undef HAVE_SYS_DL_H */
+
+/* Define to 1 if you have the <sys/ioctl.h> header file. */
+#define HAVE_SYS_IOCTL_H 1
+
+/* Define to 1 if you have the <sys/mman.h> header file. */
+#define HAVE_SYS_MMAN_H 1
+
+/* Define to 1 if you have the <sys/ndir.h> header file, and it defines `DIR'.
+ */
+/* #undef HAVE_SYS_NDIR_H */
+
+/* Define to 1 if you have the <sys/param.h> header file. */
+#define HAVE_SYS_PARAM_H 1
+
+/* Define to 1 if you have the <sys/resource.h> header file. */
+#define HAVE_SYS_RESOURCE_H 1
+
+/* Define to 1 if you have the <sys/stat.h> header file. */
+#define HAVE_SYS_STAT_H 1
+
+/* Define to 1 if you have the <sys/time.h> header file. */
+#define HAVE_SYS_TIME_H 1
+
+/* Define to 1 if you have the <sys/types.h> header file. */
+#define HAVE_SYS_TYPES_H 1
+
+/* Define to 1 if you have <sys/wait.h> that is POSIX.1 compatible. */
+#define HAVE_SYS_WAIT_H 1
+
+/* Define to 1 if you have the <termios.h> header file. */
+#define HAVE_TERMIOS_H 1
+
+/* Define if the neat program is available */
+/* #undef HAVE_TWOPI */
+
+/* Define to 1 if the system has the type `uint64_t'. */
+#define HAVE_UINT64_T 1
+
+/* Define to 1 if you have the <unistd.h> header file. */
+#define HAVE_UNISTD_H 1
+
+/* Define to 1 if you have the <utime.h> header file. */
+#define HAVE_UTIME_H 1
+
+/* Define to 1 if the system has the type `u_int64_t'. */
+/* #undef HAVE_U_INT64_T */
+
+/* Define to 1 if you have the <valgrind/valgrind.h> header file. */
+/* #undef HAVE_VALGRIND_VALGRIND_H */
+
+/* Define to 1 if you have the <windows.h> header file. */
+/* #undef HAVE_WINDOWS_H */
+
+/* Define to 1 if you have the `__dso_handle' function. */
+#define HAVE___DSO_HANDLE 1
+
+/* Build multithreading support into LLVM */
+/* #undef LLVM_MULTITHREADED */
+
+/* LLVM architecture name for the native architecture, if available */
+#define LLVM_NATIVE_ARCH X86Target
+
+/* Define if this is Unixish platform */
+#define LLVM_ON_UNIX 1
+
+/* Define if this is Win32ish platform */
+/* #undef LLVM_ON_WIN32 */
+
+/* Define to path to circo program if found or 'echo circo' otherwise */
+/* #undef LLVM_PATH_CIRCO */
+
+/* Define to path to dot program if found or 'echo dot' otherwise */
+/* #undef LLVM_PATH_DOT */
+
+/* Define to path to dotty program if found or 'echo dotty' otherwise */
+/* #undef LLVM_PATH_DOTTY */
+
+/* Define to path to fdp program if found or 'echo fdp' otherwise */
+/* #undef LLVM_PATH_FDP */
+
+/* Define to path to Graphviz program if found or 'echo Graphviz' otherwise */
+/* #undef LLVM_PATH_GRAPHVIZ */
+
+/* Define to path to gv program if found or 'echo gv' otherwise */
+/* #undef LLVM_PATH_GV */
+
+/* Define to path to neato program if found or 'echo neato' otherwise */
+/* #undef LLVM_PATH_NEATO */
+
+/* Define to path to twopi program if found or 'echo twopi' otherwise */
+/* #undef LLVM_PATH_TWOPI */
+
+/* Installation prefix directory */
+#define LLVM_PREFIX "/usr/local"
+
+/* Define if the OS needs help to load dependent libraries for dlopen(). */
+#define LTDL_DLOPEN_DEPLIBS 1
+
+/* Define to the sub-directory in which libtool stores uninstalled libraries.
+ */
+#define LTDL_OBJDIR ".libs/"
+
+/* Define to the name of the environment variable that determines the dynamic
+ library search path. */
+#define LTDL_SHLIBPATH_VAR "LD_LIBRARY_PATH"
+
+/* Define to the extension used for shared libraries, say, ".so". */
+#define LTDL_SHLIB_EXT ".so"
+
+/* Define to the system default library search path. */
+#define LTDL_SYSSEARCHPATH "/lib:/usr/lib"
+
+/* Define if /dev/zero should be used when mapping RWX memory, or undefine if
+ its not necessary */
+/* #undef NEED_DEV_ZERO_FOR_MMAP */
+
+/* Define if dlsym() requires a leading underscore in symbol names. */
+/* #undef NEED_USCORE */
+
+/* Define to the address where bug reports for this package should be sent. */
+#define PACKAGE_BUGREPORT "llvmbugs@cs.uiuc.edu"
+
+/* Define to the full name of this package. */
+#define PACKAGE_NAME "llvm"
+
+/* Define to the full name and version of this package. */
+#define PACKAGE_STRING "llvm 2.8svn"
+
+/* Define to the one symbol short name of this package. */
+#define PACKAGE_TARNAME "-llvm-"
+
+/* Define to the version of this package. */
+#define PACKAGE_VERSION "2.8svn"
+
+/* Define as the return type of signal handlers (`int' or `void'). */
+#define RETSIGTYPE void
+
+/* Define to 1 if the `S_IS*' macros in <sys/stat.h> do not work properly. */
+/* #undef STAT_MACROS_BROKEN */
+
+/* Define to 1 if you have the ANSI C header files. */
+#define STDC_HEADERS 1
+
+/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
+#define TIME_WITH_SYS_TIME 1
+
+/* Define to 1 if your <sys/time.h> declares `struct tm'. */
+/* #undef TM_IN_SYS_TIME */
+
+/* Define if we have the oprofile JIT-support library */
+#define USE_OPROFILE 0
+
+/* Define if use udis86 library */
+#define USE_UDIS86 0
+
+/* Define to empty if `const' does not conform to ANSI C. */
+/* #undef const */
+
+/* Define to a type to use for `error_t' if it is not otherwise available. */
+#define error_t int
+
+/* Define to `int' if <sys/types.h> does not define. */
+/* #undef pid_t */
+
+/* Define to `unsigned int' if <sys/types.h> does not define. */
+/* #undef size_t */
diff --git a/lib/clang/include/llvm/Intrinsics.gen b/lib/clang/include/llvm/Intrinsics.gen
new file mode 100644
index 0000000..a3dbd63
--- /dev/null
+++ b/lib/clang/include/llvm/Intrinsics.gen
@@ -0,0 +1,2 @@
+/* $FreeBSD$ */
+#include "Intrinsics.inc.h"
diff --git a/lib/clang/include/llvm/System/DataTypes.h b/lib/clang/include/llvm/System/DataTypes.h
new file mode 100644
index 0000000..fcec26c
--- /dev/null
+++ b/lib/clang/include/llvm/System/DataTypes.h
@@ -0,0 +1,113 @@
+/* $FreeBSD$ */
+/* include/llvm/System/DataTypes.h. Generated from DataTypes.h.in by configure. */
+/*===-- include/System/DataTypes.h - Define fixed size types -----*- C -*-===*\
+|* *|
+|* The LLVM Compiler Infrastructure *|
+|* *|
+|* This file is distributed under the University of Illinois Open Source *|
+|* License. See LICENSE.TXT for details. *|
+|* *|
+|*===----------------------------------------------------------------------===*|
+|* *|
+|* This file contains definitions to figure out the size of _HOST_ data types.*|
+|* This file is important because different host OS's define different macros,*|
+|* which makes portability tough. This file exports the following *|
+|* definitions: *|
+|* *|
+|* [u]int(32|64)_t : typedefs for signed and unsigned 32/64 bit system types*|
+|* [U]INT(8|16|32|64)_(MIN|MAX) : Constants for the min and max values. *|
+|* *|
+|* No library is required when using these functinons. *|
+|* *|
+|*===----------------------------------------------------------------------===*/
+
+/* Please leave this file C-compatible. */
+
+#ifndef SUPPORT_DATATYPES_H
+#define SUPPORT_DATATYPES_H
+
+#define HAVE_SYS_TYPES_H 1
+#define HAVE_INTTYPES_H 1
+#define HAVE_STDINT_H 1
+#define HAVE_UINT64_T 1
+/* #undef HAVE_U_INT64_T */
+
+#ifdef __cplusplus
+#include <cmath>
+#else
+#include <math.h>
+#endif
+
+/* Note that this header's correct operation depends on __STDC_LIMIT_MACROS
+ being defined. We would define it here, but in order to prevent Bad Things
+ happening when system headers or C++ STL headers include stdint.h before we
+ define it here, we define it on the g++ command line (in Makefile.rules). */
+#if !defined(__STDC_LIMIT_MACROS)
+# error "Must #define __STDC_LIMIT_MACROS before #including System/DataTypes.h"
+#endif
+
+#if !defined(__STDC_CONSTANT_MACROS)
+# error "Must #define __STDC_CONSTANT_MACROS before " \
+ "#including System/DataTypes.h"
+#endif
+
+/* Note that <inttypes.h> includes <stdint.h>, if this is a C99 system. */
+#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+
+#ifdef HAVE_INTTYPES_H
+#include <inttypes.h>
+#endif
+
+#ifdef HAVE_STDINT_H
+#include <stdint.h>
+#endif
+
+#ifdef _AIX
+#include "llvm/System/AIXDataTypesFix.h"
+#endif
+
+/* Handle incorrect definition of uint64_t as u_int64_t */
+#ifndef HAVE_UINT64_T
+#ifdef HAVE_U_INT64_T
+typedef u_int64_t uint64_t;
+#else
+# error "Don't have a definition for uint64_t on this platform"
+#endif
+#endif
+
+#ifdef _OpenBSD_
+#define INT8_MAX 127
+#define INT8_MIN -128
+#define UINT8_MAX 255
+#define INT16_MAX 32767
+#define INT16_MIN -32768
+#define UINT16_MAX 65535
+#define INT32_MAX 2147483647
+#define INT32_MIN -2147483648
+#define UINT32_MAX 4294967295U
+#endif
+
+/* Set defaults for constants which we cannot find. */
+#if !defined(INT64_MAX)
+# define INT64_MAX 9223372036854775807LL
+#endif
+#if !defined(INT64_MIN)
+# define INT64_MIN ((-INT64_MAX)-1)
+#endif
+#if !defined(UINT64_MAX)
+# define UINT64_MAX 0xffffffffffffffffULL
+#endif
+
+#if __GNUC__ > 3
+#define END_WITH_NULL __attribute__((sentinel))
+#else
+#define END_WITH_NULL
+#endif
+
+#ifndef HUGE_VALF
+#define HUGE_VALF (float)HUGE_VAL
+#endif
+
+#endif /* SUPPORT_DATATYPES_H */
diff --git a/lib/clang/libclanganalysis/Makefile b/lib/clang/libclanganalysis/Makefile
new file mode 100644
index 0000000..c88d2b9
--- /dev/null
+++ b/lib/clang/libclanganalysis/Makefile
@@ -0,0 +1,12 @@
+# $FreeBSD$
+
+LIB= clanganalysis
+
+SRCDIR= tools/clang/lib/Analysis
+SRCS= AnalysisContext.cpp CFG.cpp LiveVariables.cpp \
+ PrintfFormatString.cpp ReachableCode.cpp \
+ UninitializedValues.cpp
+
+TGHDRS= DiagnosticAnalysisKinds DiagnosticCommonKinds StmtNodes
+
+.include "../clang.lib.mk"
diff --git a/lib/clang/libclangast/Makefile b/lib/clang/libclangast/Makefile
new file mode 100644
index 0000000..2061939
--- /dev/null
+++ b/lib/clang/libclangast/Makefile
@@ -0,0 +1,19 @@
+# $FreeBSD$
+
+LIB= clangast
+
+SRCDIR= tools/clang/lib/AST
+SRCS= APValue.cpp ASTConsumer.cpp ASTContext.cpp ASTDiagnostic.cpp \
+ ASTImporter.cpp AttrImpl.cpp CXXInheritance.cpp Decl.cpp \
+ DeclBase.cpp DeclCXX.cpp DeclFriend.cpp DeclGroup.cpp \
+ DeclObjC.cpp DeclPrinter.cpp DeclTemplate.cpp \
+ DeclarationName.cpp Expr.cpp ExprCXX.cpp ExprConstant.cpp \
+ FullExpr.cpp InheritViz.cpp NestedNameSpecifier.cpp \
+ ParentMap.cpp RecordLayout.cpp RecordLayoutBuilder.cpp \
+ Stmt.cpp StmtDumper.cpp StmtIterator.cpp StmtPrinter.cpp \
+ StmtProfile.cpp StmtViz.cpp TemplateBase.cpp TemplateName.cpp \
+ Type.cpp TypeLoc.cpp TypePrinter.cpp
+
+TGHDRS= DiagnosticASTKinds DiagnosticCommonKinds StmtNodes
+
+.include "../clang.lib.mk"
diff --git a/lib/clang/libclangbasic/Makefile b/lib/clang/libclangbasic/Makefile
new file mode 100644
index 0000000..48e90a2
--- /dev/null
+++ b/lib/clang/libclangbasic/Makefile
@@ -0,0 +1,15 @@
+# $FreeBSD$
+
+LIB= clangbasic
+
+SRCDIR= tools/clang/lib/Basic
+SRCS= Builtins.cpp ConvertUTF.c Diagnostic.cpp FileManager.cpp \
+ IdentifierTable.cpp SourceLocation.cpp SourceManager.cpp \
+ TargetInfo.cpp Targets.cpp TokenKinds.cpp Version.cpp
+
+TGHDRS= DiagnosticASTKinds DiagnosticAnalysisKinds \
+ DiagnosticCommonKinds DiagnosticDriverKinds \
+ DiagnosticFrontendKinds DiagnosticGroups DiagnosticLexKinds \
+ DiagnosticParseKinds DiagnosticSemaKinds
+
+.include "../clang.lib.mk"
diff --git a/lib/clang/libclangchecker/Makefile b/lib/clang/libclangchecker/Makefile
new file mode 100644
index 0000000..e052768
--- /dev/null
+++ b/lib/clang/libclangchecker/Makefile
@@ -0,0 +1,38 @@
+# $FreeBSD$
+
+LIB= clangchecker
+
+SRCDIR= tools/clang/lib/Checker
+SRCS= AdjustedReturnValueChecker.cpp AggExprVisitor.cpp \
+ ArrayBoundChecker.cpp AttrNonNullChecker.cpp \
+ BasicConstraintManager.cpp BasicObjCFoundationChecks.cpp \
+ BasicStore.cpp BasicValueFactory.cpp BugReporter.cpp \
+ BugReporterVisitors.cpp BuiltinFunctionChecker.cpp \
+ CFRefCount.cpp CallAndMessageChecker.cpp CallInliner.cpp \
+ CastSizeChecker.cpp CastToStructChecker.cpp \
+ CheckDeadStores.cpp CheckObjCDealloc.cpp \
+ CheckObjCInstMethSignature.cpp CheckSecuritySyntaxOnly.cpp \
+ CheckSizeofPointer.cpp Checker.cpp CocoaConventions.cpp \
+ DereferenceChecker.cpp DivZeroChecker.cpp Environment.cpp \
+ ExplodedGraph.cpp FixedAddressChecker.cpp FlatStore.cpp \
+ GRBlockCounter.cpp GRCXXExprEngine.cpp GRCoreEngine.cpp \
+ GRExprEngine.cpp GRExprEngineExperimentalChecks.cpp \
+ GRState.cpp LLVMConventionsChecker.cpp MacOSXAPIChecker.cpp \
+ MallocChecker.cpp ManagerRegistry.cpp MemRegion.cpp \
+ NSAutoreleasePoolChecker.cpp NSErrorChecker.cpp \
+ NoReturnFunctionChecker.cpp OSAtomicChecker.cpp \
+ ObjCUnusedIVarsChecker.cpp PathDiagnostic.cpp \
+ PointerArithChecker.cpp PointerSubChecker.cpp \
+ PthreadLockChecker.cpp RangeConstraintManager.cpp \
+ RegionStore.cpp ReturnPointerRangeChecker.cpp \
+ ReturnStackAddressChecker.cpp ReturnUndefChecker.cpp SVals.cpp \
+ SValuator.cpp SimpleConstraintManager.cpp SimpleSValuator.cpp \
+ Store.cpp SymbolManager.cpp UndefBranchChecker.cpp \
+ UndefCapturedBlockVarChecker.cpp UndefResultChecker.cpp \
+ UndefinedArraySubscriptChecker.cpp \
+ UndefinedAssignmentChecker.cpp \
+ UnixAPIChecker.cpp VLASizeChecker.cpp ValueManager.cpp
+
+TGHDRS= DiagnosticAnalysisKinds DiagnosticCommonKinds StmtNodes
+
+.include "../clang.lib.mk"
diff --git a/lib/clang/libclangcodegen/Makefile b/lib/clang/libclangcodegen/Makefile
new file mode 100644
index 0000000..0b9e2f5
--- /dev/null
+++ b/lib/clang/libclangcodegen/Makefile
@@ -0,0 +1,17 @@
+# $FreeBSD$
+
+LIB= clangcodegen
+
+SRCDIR= tools/clang/lib/CodeGen
+SRCS= CGBlocks.cpp CGBuiltin.cpp CGCXX.cpp CGCall.cpp CGClass.cpp \
+ CGDebugInfo.cpp CGDecl.cpp CGDeclCXX.cpp CGException.cpp \
+ CGExpr.cpp CGExprAgg.cpp CGExprCXX.cpp CGExprComplex.cpp \
+ CGExprConstant.cpp CGExprScalar.cpp CGObjC.cpp CGObjCGNU.cpp \
+ CGObjCMac.cpp CGRTTI.cpp CGRecordLayoutBuilder.cpp CGStmt.cpp \
+ CGTemporaries.cpp CGVTT.cpp CGVTables.cpp CodeGenFunction.cpp \
+ CodeGenModule.cpp CodeGenTypes.cpp ItaniumCXXABI.cpp \
+ Mangle.cpp ModuleBuilder.cpp TargetInfo.cpp
+
+TGHDRS= DiagnosticCommonKinds Intrinsics StmtNodes
+
+.include "../clang.lib.mk"
diff --git a/lib/clang/libclangdriver/Makefile b/lib/clang/libclangdriver/Makefile
new file mode 100644
index 0000000..7f05334
--- /dev/null
+++ b/lib/clang/libclangdriver/Makefile
@@ -0,0 +1,14 @@
+# $FreeBSD$
+
+LIB= clangdriver
+
+SRCDIR= tools/clang/lib/Driver
+SRCS= Action.cpp Arg.cpp ArgList.cpp CC1AsOptions.cpp CC1Options.cpp \
+ Compilation.cpp Driver.cpp DriverOptions.cpp HostInfo.cpp \
+ Job.cpp OptTable.cpp Option.cpp Phases.cpp Tool.cpp \
+ ToolChain.cpp ToolChains.cpp Tools.cpp Types.cpp
+
+TGHDRS= CC1AsOptions CC1Options DiagnosticCommonKinds \
+ DiagnosticDriverKinds Options
+
+.include "../clang.lib.mk"
diff --git a/lib/clang/libclangfrontend/Makefile b/lib/clang/libclangfrontend/Makefile
new file mode 100644
index 0000000..68c4620
--- /dev/null
+++ b/lib/clang/libclangfrontend/Makefile
@@ -0,0 +1,25 @@
+# $FreeBSD$
+
+LIB= clangfrontend
+
+SRCDIR= tools/clang/lib/Frontend
+SRCS= ASTConsumers.cpp ASTMerge.cpp ASTUnit.cpp AnalysisConsumer.cpp \
+ BoostConAction.cpp CacheTokens.cpp CodeGenAction.cpp \
+ CompilerInstance.cpp CompilerInvocation.cpp DeclXML.cpp \
+ DependencyFile.cpp DiagChecker.cpp DocumentXML.cpp \
+ FixItRewriter.cpp FrontendAction.cpp FrontendActions.cpp \
+ FrontendOptions.cpp GeneratePCH.cpp HTMLDiagnostics.cpp \
+ HTMLPrint.cpp InitHeaderSearch.cpp InitPreprocessor.cpp \
+ LangStandards.cpp PCHReader.cpp PCHReaderDecl.cpp \
+ PCHReaderStmt.cpp PCHWriter.cpp PCHWriterDecl.cpp \
+ PCHWriterStmt.cpp PlistDiagnostics.cpp \
+ PrintParserCallbacks.cpp PrintPreprocessedOutput.cpp \
+ RewriteMacros.cpp RewriteObjC.cpp RewriteTest.cpp StmtXML.cpp \
+ TextDiagnosticBuffer.cpp TextDiagnosticPrinter.cpp TypeXML.cpp \
+ VerifyDiagnosticsClient.cpp Warnings.cpp
+
+TGHDRS= CC1Options DiagnosticASTKinds DiagnosticCommonKinds \
+ DiagnosticDriverKinds DiagnosticFrontendKinds \
+ DiagnosticLexKinds DiagnosticSemaKinds StmtNodes
+
+.include "../clang.lib.mk"
diff --git a/lib/clang/libclanglex/Makefile b/lib/clang/libclanglex/Makefile
new file mode 100644
index 0000000..fc9f9b2
--- /dev/null
+++ b/lib/clang/libclanglex/Makefile
@@ -0,0 +1,15 @@
+# $FreeBSD$
+
+LIB= clanglex
+
+SRCDIR= tools/clang/lib/Lex
+SRCS= HeaderMap.cpp HeaderSearch.cpp Lexer.cpp LiteralSupport.cpp \
+ MacroArgs.cpp MacroInfo.cpp PPCaching.cpp PPDirectives.cpp \
+ PPExpressions.cpp PPLexerChange.cpp PPMacroExpansion.cpp \
+ PTHLexer.cpp Pragma.cpp PreprocessingRecord.cpp \
+ Preprocessor.cpp PreprocessorLexer.cpp ScratchBuffer.cpp \
+ TokenConcatenation.cpp TokenLexer.cpp
+
+TGHDRS= DiagnosticCommonKinds DiagnosticLexKinds
+
+.include "../clang.lib.mk"
diff --git a/lib/clang/libclangparse/Makefile b/lib/clang/libclangparse/Makefile
new file mode 100644
index 0000000..a755c65
--- /dev/null
+++ b/lib/clang/libclangparse/Makefile
@@ -0,0 +1,14 @@
+# $FreeBSD$
+
+LIB= clangparse
+
+SRCDIR= tools/clang/lib/Parse
+SRCS= AttributeList.cpp DeclSpec.cpp MinimalAction.cpp \
+ ParseCXXInlineMethods.cpp ParseDecl.cpp ParseDeclCXX.cpp \
+ ParseExpr.cpp ParseExprCXX.cpp ParseInit.cpp ParseObjc.cpp \
+ ParsePragma.cpp ParseStmt.cpp ParseTemplate.cpp \
+ ParseTentative.cpp Parser.cpp
+
+TGHDRS= DiagnosticCommonKinds DiagnosticParseKinds
+
+.include "../clang.lib.mk"
diff --git a/lib/clang/libclangrewrite/Makefile b/lib/clang/libclangrewrite/Makefile
new file mode 100644
index 0000000..c564283
--- /dev/null
+++ b/lib/clang/libclangrewrite/Makefile
@@ -0,0 +1,11 @@
+# $FreeBSD$
+
+LIB= clangrewrite
+
+SRCDIR= tools/clang/lib/Rewrite
+SRCS= DeltaTree.cpp HTMLRewrite.cpp RewriteRope.cpp Rewriter.cpp \
+ TokenRewriter.cpp
+
+TGHDRS= DiagnosticCommonKinds StmtNodes
+
+.include "../clang.lib.mk"
diff --git a/lib/clang/libclangsema/Makefile b/lib/clang/libclangsema/Makefile
new file mode 100644
index 0000000..9f69dc1
--- /dev/null
+++ b/lib/clang/libclangsema/Makefile
@@ -0,0 +1,23 @@
+# $FreeBSD$
+
+LIB= clangsema
+
+SRCDIR= tools/clang/lib/Sema
+SRCS= AnalysisBasedWarnings.cpp CodeCompleteConsumer.cpp \
+ IdentifierResolver.cpp IdentifierResolver.cpp \
+ JumpDiagnostics.cpp ParseAST.cpp Sema.cpp SemaAccess.cpp \
+ SemaAttr.cpp SemaCXXCast.cpp SemaCXXScopeSpec.cpp \
+ SemaChecking.cpp SemaCodeComplete.cpp SemaDecl.cpp \
+ SemaDeclAttr.cpp SemaDeclCXX.cpp SemaDeclObjC.cpp \
+ SemaExceptionSpec.cpp SemaExpr.cpp SemaExprCXX.cpp \
+ SemaExprObjC.cpp SemaInit.cpp SemaLookup.cpp \
+ SemaObjCProperty.cpp SemaOverload.cpp SemaStmt.cpp \
+ SemaTemplate.cpp SemaTemplateDeduction.cpp \
+ SemaTemplateInstantiate.cpp SemaTemplateInstantiate.cpp \
+ SemaTemplateInstantiateDecl.cpp SemaType.cpp \
+ TargetAttributesSema.cpp
+
+TGHDRS= DiagnosticASTKinds DiagnosticCommonKinds DiagnosticParseKinds \
+ DiagnosticSemaKinds StmtNodes
+
+.include "../clang.lib.mk"
diff --git a/lib/clang/libllvmanalysis/Makefile b/lib/clang/libllvmanalysis/Makefile
new file mode 100644
index 0000000..85da772
--- /dev/null
+++ b/lib/clang/libllvmanalysis/Makefile
@@ -0,0 +1,25 @@
+# $FreeBSD$
+
+LIB= llvmanalysis
+
+SRCDIR= lib/Analysis
+SRCS= AliasAnalysis.cpp AliasAnalysisCounter.cpp \
+ AliasAnalysisEvaluator.cpp AliasDebugger.cpp \
+ AliasSetTracker.cpp Analysis.cpp BasicAliasAnalysis.cpp \
+ CFGPrinter.cpp CaptureTracking.cpp ConstantFolding.cpp \
+ DbgInfoPrinter.cpp DebugInfo.cpp IVUsers.cpp InlineCost.cpp \
+ InstCount.cpp InstructionSimplify.cpp Interval.cpp \
+ IntervalPartition.cpp LazyValueInfo.cpp \
+ LibCallAliasAnalysis.cpp LibCallSemantics.cpp Lint.cpp \
+ LiveValues.cpp LoopDependenceAnalysis.cpp LoopInfo.cpp \
+ LoopPass.cpp MemoryBuiltins.cpp MemoryDependenceAnalysis.cpp \
+ PHITransAddr.cpp PointerTracking.cpp PostDominators.cpp \
+ ProfileEstimatorPass.cpp ProfileInfo.cpp ProfileInfoLoader.cpp \
+ ProfileInfoLoaderPass.cpp ProfileVerifierPass.cpp \
+ ScalarEvolution.cpp ScalarEvolutionAliasAnalysis.cpp \
+ ScalarEvolutionExpander.cpp ScalarEvolutionNormalization.cpp \
+ SparsePropagation.cpp Trace.cpp ValueTracking.cpp
+
+TGHDRS= Intrinsics
+
+.include "../clang.lib.mk"
diff --git a/lib/clang/libllvmarmasmparser/Makefile b/lib/clang/libllvmarmasmparser/Makefile
new file mode 100644
index 0000000..205ff38
--- /dev/null
+++ b/lib/clang/libllvmarmasmparser/Makefile
@@ -0,0 +1,11 @@
+# $FreeBSD$
+
+LIB= llvmarmasmparser
+
+SRCDIR= lib/Target/ARM/AsmParser
+INCDIR= lib/Target/ARM
+SRCS= ARMAsmParser.cpp ARMAsmLexer.cpp
+
+TGHDRS= ARMGenRegisterInfo.h ARMGenRegisterNames ARMGenInstrNames
+
+.include "../clang.lib.mk"
diff --git a/lib/clang/libllvmarmasmprinter/Makefile b/lib/clang/libllvmarmasmprinter/Makefile
new file mode 100644
index 0000000..b986b88
--- /dev/null
+++ b/lib/clang/libllvmarmasmprinter/Makefile
@@ -0,0 +1,12 @@
+# $FreeBSD$
+
+LIB= llvmarmasmprinter
+
+SRCDIR= lib/Target/ARM/AsmPrinter
+INCDIR= lib/Target/ARM
+SRCS= ARMAsmPrinter.cpp ARMInstPrinter.cpp ARMMCInstLower.cpp
+
+TGHDRS= ARMGenAsmWriter ARMGenInstrNames ARMGenRegisterInfo.h \
+ ARMGenRegisterNames
+
+.include "../clang.lib.mk"
diff --git a/lib/clang/libllvmarmcodegen/Makefile b/lib/clang/libllvmarmcodegen/Makefile
new file mode 100644
index 0000000..2e09d4b
--- /dev/null
+++ b/lib/clang/libllvmarmcodegen/Makefile
@@ -0,0 +1,23 @@
+# $FreeBSD$
+
+LIB= llvmarmcodegen
+
+SRCDIR= lib/Target/ARM
+SRCS= ARMBaseInstrInfo.cpp ARMBaseRegisterInfo.cpp \
+ ARMCodeEmitter.cpp ARMConstantIslandPass.cpp \
+ ARMConstantPoolValue.cpp ARMExpandPseudoInsts.cpp \
+ ARMISelDAGToDAG.cpp ARMISelLowering.cpp ARMInstrInfo.cpp \
+ ARMJITInfo.cpp ARMLoadStoreOptimizer.cpp \
+ ARMLoadStoreOptimizer.cpp ARMMCAsmInfo.cpp ARMRegisterInfo.cpp \
+ ARMSelectionDAGInfo.cpp ARMSubtarget.cpp ARMTargetMachine.cpp \
+ ARMTargetObjectFile.cpp NEONMoveFix.cpp NEONPreAllocPass.cpp \
+ Thumb1InstrInfo.cpp Thumb1RegisterInfo.cpp \
+ Thumb2ITBlockPass.cpp Thumb2InstrInfo.cpp \
+ Thumb2RegisterInfo.cpp Thumb2SizeReduction.cpp
+
+TGHDRS= ARMGenCallingConv ARMGenCodeEmitter ARMGenDAGISel \
+ ARMGenInstrInfo ARMGenInstrNames ARMGenRegisterInfo.h \
+ ARMGenRegisterInfo ARMGenRegisterNames ARMGenSubtarget \
+ Intrinsics
+
+.include "../clang.lib.mk"
diff --git a/lib/clang/libllvmarminfo/Makefile b/lib/clang/libllvmarminfo/Makefile
new file mode 100644
index 0000000..d087bbb
--- /dev/null
+++ b/lib/clang/libllvmarminfo/Makefile
@@ -0,0 +1,11 @@
+# $FreeBSD$
+
+LIB= llvmarminfo
+
+SRCDIR= lib/Target/ARM/TargetInfo/
+INCDIR= lib/Target/ARM
+SRCS= ARMTargetInfo.cpp
+
+TGHDRS= ARMGenRegisterNames ARMGenInstrNames
+
+.include "../clang.lib.mk"
diff --git a/lib/clang/libllvmasmprinter/Makefile b/lib/clang/libllvmasmprinter/Makefile
new file mode 100644
index 0000000..70f13f6
--- /dev/null
+++ b/lib/clang/libllvmasmprinter/Makefile
@@ -0,0 +1,9 @@
+# $FreeBSD$
+
+LIB= llvmasmprinter
+
+SRCDIR= lib/CodeGen/AsmPrinter
+SRCS= AsmPrinter.cpp AsmPrinterDwarf.cpp AsmPrinterInlineAsm.cpp \
+ DIE.cpp DwarfDebug.cpp DwarfException.cpp OcamlGCPrinter.cpp
+
+.include "../clang.lib.mk"
diff --git a/lib/clang/libllvmbitreader/Makefile b/lib/clang/libllvmbitreader/Makefile
new file mode 100644
index 0000000..e43f0f2
--- /dev/null
+++ b/lib/clang/libllvmbitreader/Makefile
@@ -0,0 +1,10 @@
+# $FreeBSD$
+
+LIB= llvmbitreader
+
+SRCDIR= lib/Bitcode/Reader
+SRCS= BitReader.cpp BitcodeReader.cpp
+
+TGHDRS= Intrinsics
+
+.include "../clang.lib.mk"
diff --git a/lib/clang/libllvmbitwriter/Makefile b/lib/clang/libllvmbitwriter/Makefile
new file mode 100644
index 0000000..82f5cc1
--- /dev/null
+++ b/lib/clang/libllvmbitwriter/Makefile
@@ -0,0 +1,9 @@
+# $FreeBSD$
+
+LIB= llvmbitwriter
+
+SRCDIR= lib/Bitcode/Writer
+SRCS= BitWriter.cpp BitcodeWriter.cpp BitcodeWriterPass.cpp \
+ ValueEnumerator.cpp
+
+.include "../clang.lib.mk"
diff --git a/lib/clang/libllvmcodegen/Makefile b/lib/clang/libllvmcodegen/Makefile
new file mode 100644
index 0000000..40ae083
--- /dev/null
+++ b/lib/clang/libllvmcodegen/Makefile
@@ -0,0 +1,40 @@
+# $FreeBSD$
+
+LIB= llvmcodegen
+
+SRCDIR= lib/CodeGen
+SRCS= AggressiveAntiDepBreaker.cpp Analysis.cpp BranchFolding.cpp \
+ CalcSpillWeights.cpp CodePlacementOpt.cpp \
+ CriticalAntiDepBreaker.cpp DeadMachineInstructionElim.cpp \
+ DwarfEHPrepare.cpp ELFCodeEmitter.cpp ELFWriter.cpp \
+ ExactHazardRecognizer.cpp GCMetadata.cpp GCMetadataPrinter.cpp \
+ GCStrategy.cpp IfConversion.cpp IntrinsicLowering.cpp \
+ LLVMTargetMachine.cpp LatencyPriorityQueue.cpp \
+ LiveInterval.cpp LiveIntervalAnalysis.cpp \
+ LiveStackAnalysis.cpp LiveVariables.cpp LowerSubregs.cpp \
+ MachineBasicBlock.cpp MachineCSE.cpp MachineDominators.cpp \
+ MachineFunction.cpp MachineFunctionAnalysis.cpp \
+ MachineFunctionPass.cpp MachineFunctionPrinterPass.cpp \
+ MachineInstr.cpp MachineLICM.cpp MachineLoopInfo.cpp \
+ MachineModuleInfo.cpp MachineModuleInfoImpls.cpp \
+ MachinePassRegistry.cpp MachineRegisterInfo.cpp \
+ MachineSSAUpdater.cpp MachineSink.cpp MachineVerifier.cpp \
+ ObjectCodeEmitter.cpp OcamlGC.cpp OptimizeExts.cpp \
+ OptimizePHIs.cpp PHIElimination.cpp Passes.cpp \
+ PostRASchedulerList.cpp PreAllocSplitting.cpp \
+ ProcessImplicitDefs.cpp PrologEpilogInserter.cpp \
+ PseudoSourceValue.cpp RegAllocFast.cpp RegAllocLinearScan.cpp \
+ RegAllocLocal.cpp RegAllocPBQP.cpp RegisterCoalescer.cpp \
+ RegisterScavenging.cpp ScheduleDAG.cpp ScheduleDAGEmit.cpp \
+ ScheduleDAGInstrs.cpp ScheduleDAGPrinter.cpp ShadowStackGC.cpp \
+ ShrinkWrapping.cpp SimpleRegisterCoalescing.cpp \
+ SjLjEHPrepare.cpp SlotIndexes.cpp Spiller.cpp \
+ StackProtector.cpp StackSlotColoring.cpp \
+ StrongPHIElimination.cpp TailDuplication.cpp \
+ TargetInstrInfoImpl.cpp TargetLoweringObjectFileImpl.cpp \
+ TwoAddressInstructionPass.cpp UnreachableBlockElim.cpp \
+ VirtRegMap.cpp VirtRegRewriter.cpp
+
+TGHDRS= Intrinsics
+
+.include "../clang.lib.mk"
diff --git a/lib/clang/libllvmcore/Makefile b/lib/clang/libllvmcore/Makefile
new file mode 100644
index 0000000..9d5fab2
--- /dev/null
+++ b/lib/clang/libllvmcore/Makefile
@@ -0,0 +1,18 @@
+# $FreeBSD$
+
+LIB= llvmcore
+
+SRCDIR= lib/VMCore
+SRCS= AsmWriter.cpp Attributes.cpp AutoUpgrade.cpp BasicBlock.cpp \
+ ConstantFold.cpp Constants.cpp Core.cpp DebugLoc.cpp \
+ Dominators.cpp Function.cpp GVMaterializer.cpp Globals.cpp \
+ IRBuilder.cpp InlineAsm.cpp Instruction.cpp Instructions.cpp \
+ IntrinsicInst.cpp LLVMContext.cpp LLVMContextImpl.cpp \
+ LeakDetector.cpp Metadata.cpp Module.cpp Pass.cpp \
+ PassManager.cpp PrintModulePass.cpp Type.cpp \
+ TypeSymbolTable.cpp Use.cpp Value.cpp ValueSymbolTable.cpp \
+ ValueTypes.cpp Verifier.cpp
+
+TGHDRS= Intrinsics
+
+.include "../clang.lib.mk"
diff --git a/lib/clang/libllvminstcombine/Makefile b/lib/clang/libllvminstcombine/Makefile
new file mode 100644
index 0000000..48ccc05
--- /dev/null
+++ b/lib/clang/libllvminstcombine/Makefile
@@ -0,0 +1,16 @@
+# $FreeBSD$
+
+LIB= llvminstcombine
+
+SRCDIR= lib/Transforms/InstCombine
+SRCS= InstCombineAddSub.cpp InstCombineAndOrXor.cpp \
+ InstCombineCalls.cpp InstCombineCasts.cpp \
+ InstCombineCompares.cpp InstCombineLoadStoreAlloca.cpp \
+ InstCombineMulDivRem.cpp InstCombinePHI.cpp \
+ InstCombineSelect.cpp InstCombineShifts.cpp \
+ InstCombineSimplifyDemanded.cpp InstCombineVectorOps.cpp \
+ InstructionCombining.cpp
+
+TGHDRS= Intrinsics
+
+.include "../clang.lib.mk"
diff --git a/lib/clang/libllvmipa/Makefile b/lib/clang/libllvmipa/Makefile
new file mode 100644
index 0000000..fa2a1f4
--- /dev/null
+++ b/lib/clang/libllvmipa/Makefile
@@ -0,0 +1,11 @@
+# $FreeBSD$
+
+LIB= llvmipa
+
+SRCDIR= lib/Analysis/IPA
+SRCS= CallGraph.cpp CallGraphSCCPass.cpp FindUsedTypes.cpp \
+ GlobalsModRef.cpp
+
+TGHDRS= Intrinsics
+
+.include "../clang.lib.mk"
diff --git a/lib/clang/libllvmipo/Makefile b/lib/clang/libllvmipo/Makefile
new file mode 100644
index 0000000..ab58283
--- /dev/null
+++ b/lib/clang/libllvmipo/Makefile
@@ -0,0 +1,17 @@
+# $FreeBSD$
+
+LIB= llvmipo
+
+SRCDIR= lib/Transforms/IPO
+SRCS= ArgumentPromotion.cpp ConstantMerge.cpp \
+ DeadArgumentElimination.cpp DeadTypeElimination.cpp \
+ ExtractGV.cpp FunctionAttrs.cpp GlobalDCE.cpp GlobalOpt.cpp \
+ IPConstantPropagation.cpp IPO.cpp InlineAlways.cpp \
+ InlineSimple.cpp Inliner.cpp Internalize.cpp LoopExtractor.cpp \
+ LowerSetJmp.cpp MergeFunctions.cpp PartialSpecialization.cpp \
+ PruneEH.cpp StripDeadPrototypes.cpp StripSymbols.cpp \
+ StructRetPromotion.cpp
+
+TGHDRS= Intrinsics
+
+.include "../clang.lib.mk"
diff --git a/lib/clang/libllvmmc/Makefile b/lib/clang/libllvmmc/Makefile
new file mode 100644
index 0000000..afe9731
--- /dev/null
+++ b/lib/clang/libllvmmc/Makefile
@@ -0,0 +1,15 @@
+# $FreeBSD$
+
+LIB= llvmmc
+
+SRCDIR= lib/MC
+SRCS= MCAsmInfo.cpp MCAsmInfoCOFF.cpp MCAsmInfoDarwin.cpp \
+ MCAsmStreamer.cpp MCAssembler.cpp MCCodeEmitter.cpp \
+ MCContext.cpp MCDisassembler.cpp MCExpr.cpp MCInst.cpp \
+ MCInstPrinter.cpp MCLoggingStreamer.cpp MCMachOStreamer.cpp \
+ MCNullStreamer.cpp MCObjectWriter.cpp MCSection.cpp \
+ MCSectionCOFF.cpp MCSectionELF.cpp MCSectionMachO.cpp \
+ MCStreamer.cpp MCSymbol.cpp MCValue.cpp MachObjectWriter.cpp \
+ TargetAsmBackend.cpp
+
+.include "../clang.lib.mk"
diff --git a/lib/clang/libllvmmcparser/Makefile b/lib/clang/libllvmmcparser/Makefile
new file mode 100644
index 0000000..df93925
--- /dev/null
+++ b/lib/clang/libllvmmcparser/Makefile
@@ -0,0 +1,9 @@
+# $FreeBSD$
+
+LIB= llvmmcparser
+
+SRCDIR= lib/MC/MCParser
+SRCS= AsmLexer.cpp AsmParser.cpp MCAsmLexer.cpp MCAsmParser.cpp \
+ TargetAsmParser.cpp
+
+.include "../clang.lib.mk"
diff --git a/lib/clang/libllvmmipsasmprinter/Makefile b/lib/clang/libllvmmipsasmprinter/Makefile
new file mode 100644
index 0000000..2ee9c8e
--- /dev/null
+++ b/lib/clang/libllvmmipsasmprinter/Makefile
@@ -0,0 +1,12 @@
+# $FreeBSD$
+
+LIB= llvmmipsasmprinter
+
+SRCDIR= lib/Target/Mips/AsmPrinter
+INCDIR= lib/Target/Mips
+SRCS= MipsAsmPrinter.cpp
+
+TGHDRS= MipsGenAsmWriter MipsGenInstrNames MipsGenRegisterInfo.h \
+ MipsGenRegisterNames
+
+.include "../clang.lib.mk"
diff --git a/lib/clang/libllvmmipscodegen/Makefile b/lib/clang/libllvmmipscodegen/Makefile
new file mode 100644
index 0000000..8d16aa9
--- /dev/null
+++ b/lib/clang/libllvmmipscodegen/Makefile
@@ -0,0 +1,15 @@
+# $FreeBSD$
+
+LIB= llvmmipscodegen
+
+SRCDIR= lib/Target/Mips
+SRCS= MipsDelaySlotFiller.cpp MipsISelDAGToDAG.cpp \
+ MipsISelLowering.cpp MipsInstrInfo.cpp MipsMCAsmInfo.cpp \
+ MipsRegisterInfo.cpp MipsSelectionDAGInfo.cpp MipsSubtarget.cpp \
+ MipsTargetMachine.cpp MipsTargetObjectFile.cpp
+
+TGHDRS= Intrinsics MipsGenAsmWriter MipsGenCallingConv MipsGenDAGISel \
+ MipsGenInstrInfo MipsGenInstrNames MipsGenRegisterInfo.h \
+ MipsGenRegisterInfo MipsGenRegisterNames MipsGenSubtarget
+
+.include "../clang.lib.mk"
diff --git a/lib/clang/libllvmmipsinfo/Makefile b/lib/clang/libllvmmipsinfo/Makefile
new file mode 100644
index 0000000..7a8a5eb
--- /dev/null
+++ b/lib/clang/libllvmmipsinfo/Makefile
@@ -0,0 +1,11 @@
+# $FreeBSD$
+
+LIB= llvmmipsinfo
+
+SRCDIR= lib/Target/Mips/TargetInfo/
+INCDIR= lib/Target/Mips
+SRCS= MipsTargetInfo.cpp
+
+TGHDRS= MipsGenRegisterNames MipsGenInstrNames
+
+.include "../clang.lib.mk"
diff --git a/lib/clang/libllvmpowerpcasmprinter/Makefile b/lib/clang/libllvmpowerpcasmprinter/Makefile
new file mode 100644
index 0000000..8b8eb2a
--- /dev/null
+++ b/lib/clang/libllvmpowerpcasmprinter/Makefile
@@ -0,0 +1,12 @@
+# $FreeBSD$
+
+LIB= llvmpowerpcasmprinter
+
+SRCDIR= lib/Target/PowerPC/AsmPrinter
+INCDIR= lib/Target/PowerPC
+SRCS= PPCAsmPrinter.cpp
+
+TGHDRS= PPCGenAsmWriter PPCGenInstrNames PPCGenRegisterInfo.h \
+ PPCGenRegisterNames
+
+.include "../clang.lib.mk"
diff --git a/lib/clang/libllvmpowerpccodegen/Makefile b/lib/clang/libllvmpowerpccodegen/Makefile
new file mode 100644
index 0000000..5248681
--- /dev/null
+++ b/lib/clang/libllvmpowerpccodegen/Makefile
@@ -0,0 +1,16 @@
+# $FreeBSD$
+
+LIB= llvmpowerpccodegen
+
+SRCDIR= lib/Target/PowerPC
+SRCS= PPCBranchSelector.cpp PPCCodeEmitter.cpp \
+ PPCHazardRecognizers.cpp PPCISelDAGToDAG.cpp \
+ PPCISelLowering.cpp PPCInstrInfo.cpp PPCJITInfo.cpp \
+ PPCMCAsmInfo.cpp PPCPredicates.cpp PPCRegisterInfo.cpp \
+ PPCSelectionDAGInfo.cpp PPCSubtarget.cpp PPCTargetMachine.cpp
+
+TGHDRS= Intrinsics PPCGenCallingConv PPCGenCodeEmitter PPCGenDAGISel \
+ PPCGenInstrInfo PPCGenInstrNames PPCGenRegisterInfo.h \
+ PPCGenRegisterInfo PPCGenRegisterNames PPCGenSubtarget
+
+.include "../clang.lib.mk"
diff --git a/lib/clang/libllvmpowerpcinfo/Makefile b/lib/clang/libllvmpowerpcinfo/Makefile
new file mode 100644
index 0000000..19ceb45
--- /dev/null
+++ b/lib/clang/libllvmpowerpcinfo/Makefile
@@ -0,0 +1,11 @@
+# $FreeBSD$
+
+LIB= llvmpowerpcinfo
+
+SRCDIR= lib/Target/PowerPC/TargetInfo/
+INCDIR= lib/Target/PowerPC
+SRCS= PowerPCTargetInfo.cpp
+
+TGHDRS= PPCGenRegisterNames PPCGenInstrNames
+
+.include "../clang.lib.mk"
diff --git a/lib/clang/libllvmscalaropts/Makefile b/lib/clang/libllvmscalaropts/Makefile
new file mode 100644
index 0000000..b6ee5cf
--- /dev/null
+++ b/lib/clang/libllvmscalaropts/Makefile
@@ -0,0 +1,18 @@
+# $FreeBSD$
+
+LIB= llvmscalaropts
+
+SRCDIR= lib/Transforms/Scalar
+SRCS= ADCE.cpp BasicBlockPlacement.cpp CodeGenPrepare.cpp \
+ ConstantProp.cpp DCE.cpp DeadStoreElimination.cpp \
+ GEPSplitter.cpp GVN.cpp IndVarSimplify.cpp JumpThreading.cpp \
+ LICM.cpp LoopDeletion.cpp LoopIndexSplit.cpp LoopRotation.cpp \
+ LoopStrengthReduce.cpp LoopUnrollPass.cpp LoopUnswitch.cpp \
+ MemCpyOptimizer.cpp Reassociate.cpp Reg2Mem.cpp SCCP.cpp \
+ Scalar.cpp ScalarReplAggregates.cpp SimplifyCFGPass.cpp \
+ SimplifyHalfPowrLibCalls.cpp SimplifyLibCalls.cpp \
+ TailDuplication.cpp TailRecursionElimination.cpp
+
+TGHDRS= Intrinsics
+
+.include "../clang.lib.mk"
diff --git a/lib/clang/libllvmselectiondag/Makefile b/lib/clang/libllvmselectiondag/Makefile
new file mode 100644
index 0000000..ad9e5dc
--- /dev/null
+++ b/lib/clang/libllvmselectiondag/Makefile
@@ -0,0 +1,17 @@
+# $FreeBSD$
+
+LIB= llvmselectiondag
+
+SRCDIR= lib/CodeGen/SelectionDAG
+SRCS= CallingConvLower.cpp DAGCombiner.cpp FastISel.cpp \
+ FunctionLoweringInfo.cpp InstrEmitter.cpp LegalizeDAG.cpp \
+ LegalizeFloatTypes.cpp LegalizeIntegerTypes.cpp LegalizeTypes.cpp \
+ LegalizeTypesGeneric.cpp LegalizeVectorOps.cpp LegalizeVectorTypes.cpp \
+ ScheduleDAGFast.cpp ScheduleDAGList.cpp ScheduleDAGRRList.cpp \
+ ScheduleDAGSDNodes.cpp SelectionDAG.cpp SelectionDAGBuilder.cpp \
+ SelectionDAGISel.cpp SelectionDAGPrinter.cpp TargetLowering.cpp \
+ TargetSelectionDAGInfo.cpp
+
+TGHDRS= Intrinsics
+
+.include "../clang.lib.mk"
diff --git a/lib/clang/libllvmsupport/Makefile b/lib/clang/libllvmsupport/Makefile
new file mode 100644
index 0000000..d113989
--- /dev/null
+++ b/lib/clang/libllvmsupport/Makefile
@@ -0,0 +1,19 @@
+# $FreeBSD$
+
+LIB= llvmsupport
+
+SRCDIR= lib/Support
+SRCS= APFloat.cpp APInt.cpp APSInt.cpp Allocator.cpp CommandLine.cpp \
+ ConstantRange.cpp Debug.cpp DeltaAlgorithm.cpp Dwarf.cpp \
+ ErrorHandling.cpp FileUtilities.cpp FoldingSet.cpp \
+ FormattedStream.cpp GraphWriter.cpp IsInf.cpp IsNAN.cpp \
+ ManagedStatic.cpp MemoryBuffer.cpp MemoryObject.cpp \
+ PluginLoader.cpp PrettyStackTrace.cpp Regex.cpp \
+ SlowOperationInformer.cpp SmallPtrSet.cpp SmallVector.cpp \
+ SourceMgr.cpp Statistic.cpp StringExtras.cpp StringMap.cpp \
+ StringPool.cpp StringRef.cpp SystemUtils.cpp \
+ TargetRegistry.cpp Timer.cpp Triple.cpp Twine.cpp \
+ circular_raw_ostream.cpp raw_os_ostream.cpp raw_ostream.cpp \
+ regcomp.c regerror.c regexec.c regfree.c regstrlcpy.c
+
+.include "../clang.lib.mk"
diff --git a/lib/clang/libllvmsystem/Makefile b/lib/clang/libllvmsystem/Makefile
new file mode 100644
index 0000000..ea4f3ba
--- /dev/null
+++ b/lib/clang/libllvmsystem/Makefile
@@ -0,0 +1,12 @@
+# $FreeBSD$
+
+LIB= llvmsystem
+
+SRCDIR= lib/System
+SRCS= Alarm.cpp Atomic.cpp Disassembler.cpp DynamicLibrary.cpp \
+ Errno.cpp Host.cpp IncludeFile.cpp Memory.cpp Mutex.cpp \
+ Path.cpp Process.cpp Program.cpp RWMutex.cpp \
+ SearchForAddressOfSpecialSymbol.cpp Signals.cpp \
+ ThreadLocal.cpp Threading.cpp TimeValue.cpp Valgrind.cpp
+
+.include "../clang.lib.mk"
diff --git a/lib/clang/libllvmtarget/Makefile b/lib/clang/libllvmtarget/Makefile
new file mode 100644
index 0000000..c49d9d2
--- /dev/null
+++ b/lib/clang/libllvmtarget/Makefile
@@ -0,0 +1,12 @@
+# $FreeBSD$
+
+LIB= llvmtarget
+
+SRCDIR= lib/Target
+SRCS= Mangler.cpp SubtargetFeature.cpp Target.cpp TargetAsmLexer.cpp \
+ TargetData.cpp TargetELFWriterInfo.cpp TargetFrameInfo.cpp \
+ TargetInstrInfo.cpp TargetIntrinsicInfo.cpp \
+ TargetLoweringObjectFile.cpp TargetMachine.cpp \
+ TargetRegisterInfo.cpp TargetSubtarget.cpp
+
+.include "../clang.lib.mk"
diff --git a/lib/clang/libllvmtransformutils/Makefile b/lib/clang/libllvmtransformutils/Makefile
new file mode 100644
index 0000000..7e5e052
--- /dev/null
+++ b/lib/clang/libllvmtransformutils/Makefile
@@ -0,0 +1,17 @@
+# $FreeBSD$
+
+LIB= llvmtransformutils
+
+SRCDIR= lib/Transforms/Utils
+SRCS= AddrModeMatcher.cpp BasicBlockUtils.cpp BasicInliner.cpp \
+ BreakCriticalEdges.cpp BuildLibCalls.cpp CloneFunction.cpp \
+ CloneLoop.cpp CloneModule.cpp CodeExtractor.cpp \
+ DemoteRegToStack.cpp InlineFunction.cpp InstructionNamer.cpp \
+ LCSSA.cpp Local.cpp LoopSimplify.cpp LoopUnroll.cpp \
+ LowerInvoke.cpp LowerSwitch.cpp Mem2Reg.cpp \
+ PromoteMemoryToRegister.cpp SSAUpdater.cpp SSI.cpp \
+ SimplifyCFG.cpp UnifyFunctionExitNodes.cpp ValueMapper.cpp
+
+TGHDRS= Intrinsics
+
+.include "../clang.lib.mk"
diff --git a/lib/clang/libllvmx86asmparser/Makefile b/lib/clang/libllvmx86asmparser/Makefile
new file mode 100644
index 0000000..717e75f
--- /dev/null
+++ b/lib/clang/libllvmx86asmparser/Makefile
@@ -0,0 +1,11 @@
+# $FreeBSD$
+
+LIB= llvmx86asmparser
+
+SRCDIR= lib/Target/X86/AsmParser
+INCDIR= lib/Target/X86
+SRCS= X86AsmParser.cpp X86AsmLexer.cpp
+
+TGHDRS= X86GenRegisterNames X86GenInstrNames X86GenAsmMatcher
+
+.include "../clang.lib.mk"
diff --git a/lib/clang/libllvmx86asmprinter/Makefile b/lib/clang/libllvmx86asmprinter/Makefile
new file mode 100644
index 0000000..ba4e23f
--- /dev/null
+++ b/lib/clang/libllvmx86asmprinter/Makefile
@@ -0,0 +1,13 @@
+# $FreeBSD$
+
+LIB= llvmx86asmprinter
+
+SRCDIR= lib/Target/X86/AsmPrinter
+INCDIR= lib/Target/X86
+SRCS= X86ATTInstPrinter.cpp X86AsmPrinter.cpp \
+ X86IntelInstPrinter.cpp X86MCInstLower.cpp
+
+TGHDRS= X86GenAsmWriter1 X86GenAsmWriter X86GenInstrInfo \
+ X86GenInstrNames X86GenRegisterInfo.h X86GenRegisterNames
+
+.include "../clang.lib.mk"
diff --git a/lib/clang/libllvmx86codegen/Makefile b/lib/clang/libllvmx86codegen/Makefile
new file mode 100644
index 0000000..1c77bb8
--- /dev/null
+++ b/lib/clang/libllvmx86codegen/Makefile
@@ -0,0 +1,19 @@
+# $FreeBSD$
+
+LIB= llvmx86codegen
+
+SRCDIR= lib/Target/X86
+SRCS= SSEDomainFix.cpp X86AsmBackend.cpp \
+ X86COFFMachineModuleInfo.cpp X86CodeEmitter.cpp \
+ X86ELFWriterInfo.cpp X86FastISel.cpp X86FloatingPoint.cpp \
+ X86FloatingPointRegKill.cpp X86ISelDAGToDAG.cpp \
+ X86ISelLowering.cpp X86InstrInfo.cpp X86JITInfo.cpp \
+ X86MCAsmInfo.cpp X86MCCodeEmitter.cpp X86RegisterInfo.cpp \
+ X86SelectionDAGInfo.cpp X86Subtarget.cpp X86TargetMachine.cpp \
+ X86TargetObjectFile.cpp
+
+TGHDRS= Intrinsics X86GenCallingConv X86GenDAGISel X86GenFastISel \
+ X86GenInstrInfo X86GenInstrNames X86GenRegisterInfo.h \
+ X86GenRegisterInfo X86GenRegisterNames X86GenSubtarget
+
+.include "../clang.lib.mk"
diff --git a/lib/clang/libllvmx86info/Makefile b/lib/clang/libllvmx86info/Makefile
new file mode 100644
index 0000000..b7aa9ab
--- /dev/null
+++ b/lib/clang/libllvmx86info/Makefile
@@ -0,0 +1,11 @@
+# $FreeBSD$
+
+LIB= llvmx86info
+
+SRCDIR= lib/Target/X86/TargetInfo/
+INCDIR= lib/Target/X86
+SRCS= X86TargetInfo.cpp
+
+TGHDRS= X86GenRegisterNames X86GenInstrNames
+
+.include "../clang.lib.mk"
diff --git a/usr.bin/clang/Makefile b/usr.bin/clang/Makefile
new file mode 100644
index 0000000..37bd04e
--- /dev/null
+++ b/usr.bin/clang/Makefile
@@ -0,0 +1,5 @@
+# $FreeBSD$
+
+SUBDIR= clang
+
+.include <bsd.subdir.mk>
diff --git a/usr.bin/clang/clang.prog.mk b/usr.bin/clang/clang.prog.mk
new file mode 100644
index 0000000..bf64177
--- /dev/null
+++ b/usr.bin/clang/clang.prog.mk
@@ -0,0 +1,14 @@
+# $FreeBSD$
+
+LLVM_SRCS=${.CURDIR}/../../../contrib/llvm
+
+.include "../../lib/clang/clang.build.mk"
+
+.for lib in ${LIBDEPS}
+DPADD+= ${.OBJDIR}/../../../lib/clang/lib${lib}/lib${lib}.a
+LDADD+= ${.OBJDIR}/../../../lib/clang/lib${lib}/lib${lib}.a
+.endfor
+
+BINDIR?=/usr/bin
+
+.include <bsd.prog.mk>
diff --git a/usr.bin/clang/clang/Makefile b/usr.bin/clang/clang/Makefile
new file mode 100644
index 0000000..d1c2254
--- /dev/null
+++ b/usr.bin/clang/clang/Makefile
@@ -0,0 +1,28 @@
+# $FreeBSD$
+
+.include <bsd.own.mk>
+
+PROG_CXX=clang
+
+SRCDIR= tools/clang/tools/driver
+SRCS= cc1_main.cpp cc1as_main.cpp driver.cpp
+MAN=
+
+LINKS= ${BINDIR}/clang ${BINDIR}/clang++
+
+TGHDRS= CC1AsOptions CC1Options DiagnosticCommonKinds \
+ DiagnosticDriverKinds DiagnosticFrontendKinds \
+ DiagnosticLexKinds DiagnosticSemaKinds Options
+LIBDEPS=clangfrontend clangdriver clangcodegen clangsema clangchecker \
+ clanganalysis clangrewrite clangast clangparse clanglex clangbasic \
+ \
+ llvminstcombine llvmipo llvmbitwriter llvmbitreader \
+ llvmpowerpccodegen llvmpowerpcasmprinter llvmpowerpcinfo \
+ llvmx86asmparser llvmx86asmprinter llvmx86codegen llvmx86info \
+ llvmmipsasmprinter llvmmipscodegen llvmmipsinfo \
+ llvmarmasmparser llvmarmasmprinter llvmarmcodegen \
+ llvmselectiondag llvmasmprinter llvmcodegen llvmscalaropts \
+ llvmtransformutils llvmmc llvmmcparser llvmipa llvmanalysis \
+ llvmtarget llvmmc llvmcore llvmarminfo llvmsupport llvmsystem
+
+.include "../clang.prog.mk"
diff --git a/usr.bin/clang/tblgen/Makefile b/usr.bin/clang/tblgen/Makefile
new file mode 100644
index 0000000..ea338bf
--- /dev/null
+++ b/usr.bin/clang/tblgen/Makefile
@@ -0,0 +1,23 @@
+# $FreeBSD$
+
+PROG_CXX=tblgen
+
+SRCDIR= utils/TableGen
+SRCS= ARMDecoderEmitter.cpp AsmMatcherEmitter.cpp \
+ AsmWriterEmitter.cpp AsmWriterInst.cpp CallingConvEmitter.cpp \
+ ClangASTNodesEmitter.cpp ClangDiagnosticsEmitter.cpp \
+ CodeEmitterGen.cpp CodeGenDAGPatterns.cpp \
+ CodeGenInstruction.cpp CodeGenTarget.cpp DAGISelEmitter.cpp \
+ DAGISelMatcher.cpp DAGISelMatcherEmitter.cpp \
+ DAGISelMatcherGen.cpp DAGISelMatcherOpt.cpp \
+ DisassemblerEmitter.cpp EDEmitter.cpp FastISelEmitter.cpp \
+ InstrEnumEmitter.cpp InstrInfoEmitter.cpp IntrinsicEmitter.cpp \
+ LLVMCConfigurationEmitter.cpp OptParserEmitter.cpp Record.cpp \
+ RegisterInfoEmitter.cpp SubtargetEmitter.cpp TGLexer.cpp \
+ TGParser.cpp TGValueTypes.cpp TableGen.cpp TableGenBackend.cpp \
+ X86DisassemblerTables.cpp X86RecognizableInstr.cpp
+MAN=
+
+LIBDEPS=llvmsupport llvmsystem
+
+.include "../clang.prog.mk"
OpenPOWER on IntegriCloud