mirror of https://github.com/llvm-mirror/libcxxabi
				
				
				
			
			You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			100 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Bash
		
	
			
		
		
	
	
			100 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Bash
		
	
#! /bin/sh
 | 
						|
#
 | 
						|
# Set the $TRIPLE environment variable to your system's triple before
 | 
						|
# running this script.  If you set $CXX, that will be used to compile
 | 
						|
# the library.  Otherwise we'll use clang++.
 | 
						|
 | 
						|
set -e
 | 
						|
 | 
						|
if [ `basename $(pwd)` != "lib" ]
 | 
						|
then
 | 
						|
	echo "current directory must be lib"
 | 
						|
	exit 1
 | 
						|
fi
 | 
						|
 | 
						|
if [ -z "$CXX" ]
 | 
						|
then
 | 
						|
	CXX=clang++
 | 
						|
fi
 | 
						|
 | 
						|
if [ -z "$CC" ]
 | 
						|
then
 | 
						|
    CC=clang
 | 
						|
fi
 | 
						|
 | 
						|
if [ -z $RC_ProjectSourceVersion ]
 | 
						|
then
 | 
						|
  RC_ProjectSourceVersion=1
 | 
						|
fi
 | 
						|
 | 
						|
EXTRA_FLAGS="-std=c++11 -stdlib=libc++ -fstrict-aliasing -Wstrict-aliasing=2 \
 | 
						|
             -Wsign-conversion -Wshadow -Wconversion -Wunused-variable \
 | 
						|
             -Wmissing-field-initializers -Wchar-subscripts -Wmismatched-tags \
 | 
						|
             -Wmissing-braces -Wshorten-64-to-32 -Wsign-compare \
 | 
						|
             -Wstrict-aliasing=2 -Wstrict-overflow=4 -Wunused-parameter \
 | 
						|
             -Wnewline-eof"
 | 
						|
 | 
						|
case $TRIPLE in
 | 
						|
  *-apple-*)
 | 
						|
    if [ -z $RC_XBS ]
 | 
						|
    then
 | 
						|
      RC_CFLAGS="-arch i386 -arch x86_64"
 | 
						|
    fi
 | 
						|
    SOEXT=dylib
 | 
						|
    if [ -n "$SDKROOT" ]
 | 
						|
    then
 | 
						|
        EXTRA_FLAGS+="-isysroot ${SDKROOT}"
 | 
						|
        CXX=`xcrun -sdk "${SDKROOT}"  -find clang++`
 | 
						|
        CC=`xcrun -sdk "${SDKROOT}"  -find clang`
 | 
						|
    fi
 | 
						|
    LDSHARED_FLAGS="-o libc++abi.dylib \
 | 
						|
        -dynamiclib -nodefaultlibs  \
 | 
						|
        -current_version ${RC_ProjectSourceVersion} \
 | 
						|
        -compatibility_version 1 \
 | 
						|
        -install_name /usr/lib/libc++abi.dylib \
 | 
						|
        -lSystem"
 | 
						|
	if [ -f "${SDKROOT}/usr/local/lib/libCrashReporterClient.a" ]
 | 
						|
	then
 | 
						|
		LDSHARED_FLAGS+=" -lCrashReporterClient"
 | 
						|
	fi
 | 
						|
    ;;
 | 
						|
  *-*-mingw*)
 | 
						|
    # FIXME: removing libgcc and libsupc++ dependencies means porting libcxxrt and LLVM/compiler-rt
 | 
						|
    SOEXT=dll
 | 
						|
    LDSHARED_FLAGS="-o libc++abi.dll \
 | 
						|
        -shared -nodefaultlibs -Wl,--export-all-symbols -Wl,--allow-multiple-definition -Wl,--out-implib,libc++abi.dll.a \
 | 
						|
        -lsupc++ -lpthread -lmingw32 -lgcc_s -lgcc -lmoldname -lmingwex -lmsvcr100 -ladvapi32 -lshell32 -luser32 -lkernel32 -lmingw32 -lgcc_s -lgcc -lmoldname -lmingwex -lmsvcrt"
 | 
						|
	;;
 | 
						|
  *)
 | 
						|
    RC_CFLAGS="-fPIC"
 | 
						|
    SOEXT=so
 | 
						|
    LDSHARED_FLAGS="-o libc++abi.so.1.0 \
 | 
						|
        -shared -nodefaultlibs -Wl,-soname,libc++abi.so.1 \
 | 
						|
        -lpthread -lrt -lc -lstdc++"
 | 
						|
    ;;
 | 
						|
esac
 | 
						|
 | 
						|
if [ -z $RC_XBS ]
 | 
						|
then
 | 
						|
    rm -f libc++abi.1.$SOEXT*
 | 
						|
fi
 | 
						|
 | 
						|
set -x
 | 
						|
 | 
						|
for FILE in ../src/*.cpp; do
 | 
						|
	$CXX -c -g -O3 $RC_CFLAGS $EXTRA_FLAGS -I../include $OPTIONS $FILE
 | 
						|
done
 | 
						|
case $TRIPLE in
 | 
						|
  *-*-mingw*)
 | 
						|
  for FILE in ../src/support/win32/*.cpp; do
 | 
						|
    $CXX -c -g -Os $RC_CFLAGS $EXTRA_FLAGS -I../include $OPTIONS $FILE
 | 
						|
  done
 | 
						|
  ;;
 | 
						|
esac
 | 
						|
$CC *.o $RC_CFLAGS $LDSHARED_FLAGS $EXTRA_FLAGS
 | 
						|
 | 
						|
if [ -z $RC_XBS ]
 | 
						|
then
 | 
						|
    rm *.o
 | 
						|
fi
 |