summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Baumann <abaumann@yahoo.com>2013-09-08 11:14:35 +0200
committerAndreas Baumann <abaumann@yahoo.com>2013-09-08 11:14:35 +0200
commit93b9f6446b92e1940703dff732436b1c39c16b7f (patch)
tree70743cb474de3a540e24e4103932a4ed81c38cbd
parente25b45bcddaaf55ce0ed4af12693c5a405b938f3 (diff)
downloadwolfbones-93b9f6446b92e1940703dff732436b1c39c16b7f.tar.gz
wolfbones-93b9f6446b92e1940703dff732436b1c39c16b7f.tar.bz2
tested and added support for 'clang' LLVM C frontend
-rw-r--r--README3
-rw-r--r--makefiles/gmake/compiler.mk10
-rwxr-xr-xmakefiles/gmake/guess_env25
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"