#!/bin/sh PLATFORM=`uname` # Default srcdir to this directory srcdir=$(dirname $0) for option; do case "$option" in -*=*) optarg=`echo "$option" | sed 's/[-_a-zA-Z0-9]*=//'` ;; *) optarg= ;; esac case "$option" in --srcdir=*) srcdir="$optarg";; esac done if test -z "$CXX"; then CXX=`which clang++` fi echo -n "checking for llvm-config... " if test -z "$LLVMCONFIG"; then LLVMCONFIG=`which llvm-config` fi if test -z "$LLVMCONFIG"; then LLVMCONFIG=`dirname $CXX`/llvm-config fi if test ! -x "$LLVMCONFIG"; then echo "configure: error: Cannot find an llvm-config binary for building a clang plugin" 1>&2 exit 1 fi echo "$LLVMCONFIG" LLVMLIBS="core mc analysis asmparser mcparser bitreader" LLVMCXXFLAGS=`$LLVMCONFIG --cxxflags` LLVMLDFLAGS=`$LLVMCONFIG --ldflags` LLVMLDFLAGS="$LLVMLDFLAGS `$LLVMCONFIG --libs $LLVMLIBS`" if [ $PLATFORM == Darwin ]; then DSO_LDOPTS="-dynamiclib -shared" CLANGLDFLAGS="-lclangFrontend -lclangDriver -lclangSerialization \ -lclangParse -lclangSema -lclangAnalysis -lclangEdit -lclangAST \ -lclangLex -lclangBasic -lclangASTMatchers" DLL_SUFFIX="dylib" else DSO_LDOPTS="-shared" CLANGLDFLAGS=-lclangASTMatchers DLL_SUFFIX="so" fi CXXFLAGS="$CXXFLAGS $LLVMCXXFLAGS -fno-rtti -fno-exceptions" LDFLAGS="$LDFLAGS $LLVMLDFLAGS $CLANGLDFLAGS" cat $srcdir/Makefile.in | sed \ -e "s%@CXX@%$CXX%" \ -e "s%@CXXFLAGS@%$CXXFLAGS%" \ -e "s%@LDFLAGS@%$LDFLAGS%" \ -e "s%@srcdir@%$srcdir%" \ -e "s%@DSO_LDOPTS@%$DSO_LDOPTS%" \ -e "s%@DLL_SUFFIX@%$DLL_SUFFIX%" \ > Makefile