From 6513cfc82fa7c5ed0587c25306429d60dccc1b84 Mon Sep 17 00:00:00 2001 From: Roman Divacky Date: Wed, 9 Jun 2010 19:57:20 +0000 Subject: [PATCH] Hook clang into the build on i386/amd64/powerpc. Approved by: ed (mentor) --- Makefile.inc1 | 8 ++++++++ etc/mtree/BSD.include.dist | 4 ++++ lib/Makefile | 7 ++++++- share/mk/bsd.own.mk | 15 +++++++++++++++ usr.bin/Makefile | 5 +++++ 5 files changed, 38 insertions(+), 1 deletion(-) diff --git a/Makefile.inc1 b/Makefile.inc1 index 6342de4bea04..2cbedd8aaf20 100644 --- a/Makefile.inc1 +++ b/Makefile.inc1 @@ -956,6 +956,13 @@ _gensnmptree= usr.sbin/bsnmpd/gensnmptree _crunchgen= usr.sbin/crunch/crunchgen .endif +# XXX: There is no way to specify bootstrap tools depending on MK-flags +# with different per-architecture default values. Always build tblgen. +_clang_tblgen= \ + lib/clang/libllvmsupport \ + lib/clang/libllvmsystem \ + usr.bin/clang/tblgen + .if ${MK_CDDL} != "no" _dtrace_tools= cddl/usr.bin/sgsmsg cddl/lib/libctf lib/libelf \ lib/libdwarf cddl/usr.bin/ctfconvert cddl/usr.bin/ctfmerge @@ -963,6 +970,7 @@ _dtrace_tools= cddl/usr.bin/sgsmsg cddl/lib/libctf lib/libelf \ bootstrap-tools: .for _tool in \ + ${_clang_tblgen} \ ${_dtrace_tools} \ ${_strfile} \ ${_gperf} \ diff --git a/etc/mtree/BSD.include.dist b/etc/mtree/BSD.include.dist index bf75eb7d84b6..a138bbaa0c7d 100644 --- a/etc/mtree/BSD.include.dist +++ b/etc/mtree/BSD.include.dist @@ -83,6 +83,10 @@ scsi .. .. + clang + 2.0 + .. + .. crypto .. dev diff --git a/lib/Makefile b/lib/Makefile index f80629050377..7748b988f958 100644 --- a/lib/Makefile +++ b/lib/Makefile @@ -108,7 +108,8 @@ SUBDIR= ${SUBDIR_ORDERED} \ libwrap \ liby \ libz \ - ${_bind} + ${_bind} \ + ${_clang} .if exists(${.CURDIR}/csu/${MACHINE_ARCH}-elf) _csu=csu/${MACHINE_ARCH}-elf @@ -137,6 +138,10 @@ _libsdp= libsdp _libbsnmp= libbsnmp .endif +.if ${MK_CLANG} != "no" +_clang= clang +.endif + .if ${MK_GPIB} != "no" _libgpib= libgpib .endif diff --git a/share/mk/bsd.own.mk b/share/mk/bsd.own.mk index 6690d68e9d83..8839bb4d1e0b 100644 --- a/share/mk/bsd.own.mk +++ b/share/mk/bsd.own.mk @@ -287,6 +287,18 @@ _no_fdt= FDT _no_fdt= FDT .endif +# +# Default behaviour of MK_CLANG depends on the architecture. +# +.if ${MACHINE_ARCH} == "amd64" || ${MACHINE_ARCH} == "i386" || \ + ${MACHINE_ARCH} == "powerpc" +_clang_yes=CLANG +_clang_no= +.else +_clang_yes= +_clang_no=CLANG +.endif + # # MK_* options which default to "yes". # @@ -314,6 +326,7 @@ _no_fdt= FDT BZIP2 \ CALENDAR \ CDDL \ + ${_clang_yes} \ CPP \ CRYPT \ CTM \ @@ -417,6 +430,7 @@ MK_${var}:= yes BIND_LIBS \ BIND_SIGCHASE \ BIND_XML \ + ${_clang_no} \ ${_no_fdt} \ HESIOD \ IDEA @@ -497,6 +511,7 @@ MK_GROFF:= no .endif .if ${MK_TOOLCHAIN} == "no" +MK_CLANG:= no MK_GDB:= no .endif diff --git a/usr.bin/Makefile b/usr.bin/Makefile index 29564455c983..14e3526463ff 100644 --- a/usr.bin/Makefile +++ b/usr.bin/Makefile @@ -35,6 +35,7 @@ SUBDIR= alias \ ${_chkey} \ chpass \ cksum \ + ${_clang} \ cmp \ col \ ${_colcrt} \ @@ -279,6 +280,10 @@ _cpio= cpio _calendar= calendar .endif +.if ${MK_CLANG} != "no" +_clang= clang +.endif + .if ${MK_HESIOD} != "no" _hesinfo= hesinfo .endif