From 93b9f6446b92e1940703dff732436b1c39c16b7f Mon Sep 17 00:00:00 2001 From: Andreas Baumann Date: Sun, 8 Sep 2013 11:14:35 +0200 Subject: tested and added support for 'clang' LLVM C frontend --- README | 3 ++- makefiles/gmake/compiler.mk | 10 ++++++++++ makefiles/gmake/guess_env | 25 ++++++++++++++++++++++--- 3 files changed, 34 insertions(+), 4 deletions(-) diff --git a/README b/README index d8f09df..1e44cc4 100644 --- a/README +++ b/README @@ -1,6 +1,7 @@ Requirements -* an ANSI C99 compiler like gcc, Intel icc, Sun Forte, tcc, pcc +* an ANSI C99 compiler like gcc, Intel icc, Sun Forte, tcc, pcc or + clang * gengetopt for the test daemon binary 'testd' (see http://www.gnu.org/software/gengetopt/gengetopt.html) * doxygen for generating documentation (optionally graphviz for diff --git a/makefiles/gmake/compiler.mk b/makefiles/gmake/compiler.mk index bde55a0..c2183d8 100644 --- a/makefiles/gmake/compiler.mk +++ b/makefiles/gmake/compiler.mk @@ -251,6 +251,12 @@ PTHREADS_LIBS = endif endif +ifeq "$(COMPILER)" "clang" +PTHREADS_CFLAGS = -D_REENTRANT -pthread +PTHREADS_LDFLAGS = -pthread +PTHREADS_LIBS = +endif + endif # set flags for position independend code (as required for shared libraries @@ -298,6 +304,10 @@ endif #endif #endif +ifeq "$(COMPILER)" "clang" +SO_COMPILE_FLAGS = +endif + ALL_CFLAGS = $(CFLAGS) $(COMPILE_FLAGS) $(PLATFORM_COMPILE_FLAGS) $(INCLUDE_DIRS) $(INCLUDE_CFLAGS) $(PTHREADS_CFLAGS) ALL_LDFLAGS = $(LDFLAGS) $(INCLUDE_LDFLAGS) $(PTHREADS_LDFLAGS) $(LDFLAGS_NET) $(LDFLAGS_LT) $(LDFLAGS_DL) diff --git a/makefiles/gmake/guess_env b/makefiles/gmake/guess_env index 697d160..dc07d5b 100755 --- a/makefiles/gmake/guess_env +++ b/makefiles/gmake/guess_env @@ -122,15 +122,20 @@ else if test $? = 0; then COMPILER='icc' else - ( $CC -xhelp=readme | head -n 1 | grep 'Sun Studio' ) >/dev/null + ( $CC -xhelp=readme 2>&1 | head -n 1 | grep 'Sun Studio' ) >/dev/null if test $? = 0; then COMPILER='spro' else - ( $CC -v | head -n 1 | grep 'pcc' ) >/dev/null + ( $CC -v 2>&1 | head -n 1 | grep 'pcc' ) >/dev/null if test $? = 0; then COMPILER='pcc' else - COMPILER='unknown' + ( $CC --version 2>&1 | head -n 1 | grep 'clang' ) >/dev/null + if test $? = 0; then + COMPILER='clang' + else + COMPILER='unknown' + fi fi fi fi @@ -176,6 +181,14 @@ if test $COMPILER = "pcc"; then PCC_MINOR_VERSION=`echo $PCC_VERSION | cut -d . -f 2` fi +# version of clang (LLVM C frontend) + +if test $COMPILER = "clang"; then + CLANG_VERSION=`$CC --version | head -n 1 | cut -d ' ' -f 3` + CLANG_MAJOR_VERSION=`echo $CLANG_VERSION | cut -d . -f 1` + CLANG_MINOR_VERSION=`echo $CLANG_VERSION | cut -d . -f 2` +fi + case "$1" in --platform) echo $PLATFORM ;; @@ -218,6 +231,12 @@ case "$1" in --pcc-minor-version) echo $PCC_MINOR_VERSION ;; + + --clang-major-version) echo $CLANG_MAJOR_VERSION + ;; + + --clang-minor-version) echo $CLANG_MINOR_VERSION + ;; esac MAKEFILE_DIR="$3/$4" -- cgit v1.2.3-54-g00ecf