lbrycrd/build_detect_platform

260 lines
8.5 KiB
Text
Raw Normal View History

#!/bin/sh
#
# Detects OS we're compiling on and outputs a file specified by the first
# argument, which in turn gets read while processing Makefile.
#
# The output will set the following variables:
# CC C Compiler path
# CXX C++ Compiler path
# PLATFORM_LDFLAGS Linker flags
# PLATFORM_LIBS Libraries flags
# PLATFORM_SHARED_EXT Extension for shared libraries
# PLATFORM_SHARED_LDFLAGS Flags for building shared library
# This flag is embedded just before the name
# of the shared library without intervening spaces
# PLATFORM_SHARED_CFLAGS Flags for compiling objects for shared library
# PLATFORM_CCFLAGS C compiler flags
# PLATFORM_CXXFLAGS C++ compiler flags. Will contain:
# PLATFORM_SHARED_VERSIONED Set to 'true' if platform supports versioned
# shared libraries, empty otherwise.
#
# The PLATFORM_CCFLAGS and PLATFORM_CXXFLAGS might include the following:
#
# -DLEVELDB_ATOMIC_PRESENT if <atomic> is present
# -DLEVELDB_PLATFORM_POSIX for Posix-based platforms
# -DSNAPPY if the Snappy library is present
#
OUTPUT=$1
PREFIX=$2
if test -z "$OUTPUT" || test -z "$PREFIX"; then
echo "usage: $0 <output-filename> <directory_prefix>" >&2
exit 1
fi
# Delete existing output, if it exists
rm -f $OUTPUT
touch $OUTPUT
if test -z "$CC"; then
CC=cc
fi
if test -z "$CXX"; then
CXX=g++
fi
Squashed 'src/leveldb/' changes from ae6c262..a02ddf9 a02ddf9 Added GNU/kFreeBSD kernel name (TARGET_OS) 8487468 CondVar::SignalAll was broken, leading to deadlocks on Windows builds. http://code.google.com/p/leveldb/issues/detail?id=149 f6d84d1 Allow files to be opened for reading multiple times cb8e3f7 Checking whether closing succeeds d5317e8 Print actual Win32 error that occurred on file creation failure. 907f308 Port leveldb to MinGW32 9def2bf Mingw support for Windows LevelDB port 0a7b074 Pre-Vista leveldb::port::InitOnce implementation 31a2b09 Native Windows LevelDB port 058a035 Remove Snappy support 5bd76dc Release leveldb 1.12 7b094f1 Release leveldb 1.11 28dad91 Release leveldb 1.10 514c943 Make DB::Open fail if sst files are missing. d84c825 Fix corruption bug found and analyzed by dhruba@gmail.com ea2e919 added utility to dump leveldb files REVERT: ae6c262 Merge branch 'leveldb' into ripple-fork REVERT: 28fa222 Looks like a bit more delay is needed to smooth the latency. REVERT: a18f3e6 Tidy up JobQueue, add ripple_core module REVERT: ab82e57 Release leveldb 1.12 REVERT: 02c6259 Release leveldb 1.11 REVERT: 5bbb544 Rate limit compactions with a 25ms pause after each complete file. REVERT: 8c29c47 LevelDB issue 178 fix: cannot resize a level 0 compaction set REVERT: 18b245c Added GNU/kFreeBSD kernel name (TARGET_OS) REVERT: 8be9d12 CondVar::SignalAll was broken, leading to deadlocks on Windows builds. http://code.google.com/p/leveldb/issues/detail?id=149 REVERT: c9fc070 Upgrade LevelDB to 1.10.0, mostly for better write stall logging. REVERT: 8215b15 Tweak to variable name to support unity build REVERT: aca1ffc Allow files to be opened for reading multiple times REVERT: 693a70c Checking whether closing succeeds REVERT: 0144d04 Print actual Win32 error that occurred on file creation failure. REVERT: 43ed517 Fix corruption bug found and analyzed by dhruba@gmail.com REVERT: 413c74c added utility to dump leveldb files REVERT: 96eda85 Port leveldb to MinGW32 REVERT: 0967260 Mingw support for Windows LevelDB port REVERT: ee3f9bd Pre-Vista leveldb::port::InitOnce implementation REVERT: f5d0a41 Native Windows LevelDB port REVERT: 28b35f1 Remove Snappy support git-subtree-dir: src/leveldb git-subtree-split: a02ddf9b14d145e88185ee209ab8b01d8826663a
2013-08-18 00:58:04 +02:00
if test -z "$TMPDIR"; then
TMPDIR=/tmp
fi
# Detect OS
if test -z "$TARGET_OS"; then
TARGET_OS=`uname -s`
fi
COMMON_FLAGS=
CROSS_COMPILE=
PLATFORM_CCFLAGS=
PLATFORM_CXXFLAGS=
PLATFORM_LDFLAGS=
PLATFORM_LIBS=
PLATFORM_SHARED_EXT="so"
PLATFORM_SHARED_LDFLAGS="-shared -Wl,-soname -Wl,"
PLATFORM_SHARED_CFLAGS="-fPIC"
PLATFORM_SHARED_VERSIONED=true
PLATFORM_SSEFLAGS=
MEMCMP_FLAG=
if [ "$CXX" = "g++" ]; then
# Use libc's memcmp instead of GCC's memcmp. This results in ~40%
# performance improvement on readrandom under gcc 4.4.3 on Linux/x86.
MEMCMP_FLAG="-fno-builtin-memcmp"
fi
case "$TARGET_OS" in
CYGWIN_*)
PLATFORM=OS_LINUX
COMMON_FLAGS="$MEMCMP_FLAG -lpthread -DOS_LINUX -DCYGWIN"
PLATFORM_LDFLAGS="-lpthread"
PORT_FILE=port/port_posix.cc
PORT_SSE_FILE=port/port_posix_sse.cc
;;
Darwin)
PLATFORM=OS_MACOSX
COMMON_FLAGS="$MEMCMP_FLAG -DOS_MACOSX"
PLATFORM_SHARED_EXT=dylib
[ -z "$INSTALL_PATH" ] && INSTALL_PATH=`pwd`
PLATFORM_SHARED_LDFLAGS="-dynamiclib -install_name $INSTALL_PATH/"
PORT_FILE=port/port_posix.cc
PORT_SSE_FILE=port/port_posix_sse.cc
;;
Linux)
PLATFORM=OS_LINUX
COMMON_FLAGS="$MEMCMP_FLAG -pthread -DOS_LINUX"
PLATFORM_LDFLAGS="-pthread"
PORT_FILE=port/port_posix.cc
PORT_SSE_FILE=port/port_posix_sse.cc
;;
SunOS)
PLATFORM=OS_SOLARIS
COMMON_FLAGS="$MEMCMP_FLAG -D_REENTRANT -DOS_SOLARIS"
PLATFORM_LIBS="-lpthread -lrt"
PORT_FILE=port/port_posix.cc
PORT_SSE_FILE=port/port_posix_sse.cc
;;
FreeBSD)
PLATFORM=OS_FREEBSD
COMMON_FLAGS="$MEMCMP_FLAG -D_REENTRANT -DOS_FREEBSD"
PLATFORM_LIBS="-lpthread"
PORT_FILE=port/port_posix.cc
PORT_SSE_FILE=port/port_posix_sse.cc
;;
GNU/kFreeBSD)
PLATFORM=OS_KFREEBSD
COMMON_FLAGS="$MEMCMP_FLAG -D_REENTRANT -DOS_KFREEBSD"
PLATFORM_LIBS="-lpthread"
PORT_FILE=port/port_posix.cc
;;
NetBSD)
PLATFORM=OS_NETBSD
COMMON_FLAGS="$MEMCMP_FLAG -D_REENTRANT -DOS_NETBSD"
PLATFORM_LIBS="-lpthread -lgcc_s"
PORT_FILE=port/port_posix.cc
PORT_SSE_FILE=port/port_posix_sse.cc
;;
OpenBSD)
PLATFORM=OS_OPENBSD
COMMON_FLAGS="$MEMCMP_FLAG -D_REENTRANT -DOS_OPENBSD"
PLATFORM_LDFLAGS="-pthread"
PORT_FILE=port/port_posix.cc
PORT_SSE_FILE=port/port_posix_sse.cc
;;
DragonFly)
PLATFORM=OS_DRAGONFLYBSD
COMMON_FLAGS="$MEMCMP_FLAG -D_REENTRANT -DOS_DRAGONFLYBSD"
PLATFORM_LIBS="-lpthread"
PORT_FILE=port/port_posix.cc
PORT_SSE_FILE=port/port_posix_sse.cc
;;
OS_ANDROID_CROSSCOMPILE)
PLATFORM=OS_ANDROID
COMMON_FLAGS="$MEMCMP_FLAG -D_REENTRANT -DOS_ANDROID -DLEVELDB_PLATFORM_POSIX"
PLATFORM_LDFLAGS="" # All pthread features are in the Android C library
PORT_FILE=port/port_posix.cc
PORT_SSE_FILE=port/port_posix_sse.cc
CROSS_COMPILE=true
;;
HP-UX)
PLATFORM=OS_HPUX
COMMON_FLAGS="$MEMCMP_FLAG -D_REENTRANT -DOS_HPUX"
PLATFORM_LDFLAGS="-pthread"
PORT_FILE=port/port_posix.cc
PORT_SSE_FILE=port/port_posix_sse.cc
# man ld: +h internal_name
PLATFORM_SHARED_LDFLAGS="-shared -Wl,+h -Wl,"
;;
IOS)
PLATFORM=IOS
COMMON_FLAGS="$MEMCMP_FLAG -DOS_MACOSX"
[ -z "$INSTALL_PATH" ] && INSTALL_PATH=`pwd`
PORT_FILE=port/port_posix.cc
PORT_SSE_FILE=port/port_posix_sse.cc
PLATFORM_SHARED_EXT=
PLATFORM_SHARED_LDFLAGS=
PLATFORM_SHARED_CFLAGS=
PLATFORM_SHARED_VERSIONED=
;;
OS_WINDOWS_CROSSCOMPILE | NATIVE_WINDOWS)
PLATFORM=OS_WINDOWS
COMMON_FLAGS="-fno-builtin-memcmp -D_REENTRANT -DOS_WINDOWS -DLEVELDB_PLATFORM_WINDOWS -DWINVER=0x0500 -D__USE_MINGW_ANSI_STDIO=1"
PLATFORM_SOURCES="util/env_win.cc"
PLATFORM_LIBS="-lshlwapi"
PORT_FILE=port/port_win.cc
CROSS_COMPILE=true
;;
*)
echo "Unknown platform!" >&2
exit 1
esac
# We want to make a list of all cc files within util, db, table, and helpers
# except for the test and benchmark files. By default, find will output a list
# of all files matching either rule, so we need to append -print to make the
# prune take effect.
DIRS="$PREFIX/db $PREFIX/util $PREFIX/table"
set -f # temporarily disable globbing so that our patterns aren't expanded
PRUNE_TEST="-name *test*.cc -prune"
PRUNE_BENCH="-name *_bench.cc -prune"
Squashed 'src/leveldb/' changes from 20ca81f..a31c8aa a31c8aa Add NewAppendableFile for win32 environment 1913d71 Merge upstream LevelDB 1.19 3080a45 Increase leveldb version to 1.19. fa6dc01 A zippy change broke test assumptions about the size of compressed output. Fix the tests by allowing more slop in zippy's behavior. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=123432472 06a191b fix problems in LevelDB's caching code a7bff69 Fix LevelDB build when asserts are enabled in release builds. (#367) ea992b4 Change std::uint64_t to uint64_t (#354) e84b5bd This CL fixes a bug encountered when reading records from leveldb files that have been split, as in a [] input task split. 3211343 Deleted redundant null ptr check prior to delete. 7306ef8 Merge pull request #348 from randomascii/master 6b18316 Fix signed/unsigned mismatch on VC++ builds adbe3eb Putting build artifacts in subdirectory. 2d0320a Merge pull request #329 from ralphtheninja/travis-badge dd1c3c3 add travis build badge 43fcf23 Merge pull request #328 from cmumford/master 9fcae61 Added a Travis CI build file. dac40d2 Merge pull request #284 from ideawu/master 8ec241a Merge pull request #317 from falvojr/patch-1 5d36bed Merge pull request #272 from vapier/master 4753c9b Added a contributors section to README.md e2446d0 Merge pull request #275 from paulirish/patch-1 706b7f8 Resolve race when getting approximate-memory-usage property 3c9ff3c Only compiling TrimSpace on linux. f8d205c Including atomic_pointer.h in port_posix 889de31 Let LevelDB use xcrun to determine Xcode.app path instead of using a hardcoded path. 528c2bc Add "approximate-memory-usage" property to leveldb::DB::GetProperty 359b6bc Add leveldb::Cache::Prune 50e77a8 Fix size_t/int comparison/conversion issues in leveldb. 5208e79 Added leveldb::Status::IsInvalidArgument() method. ce45404 Suppress error reporting after seeking but before a valid First or Full record is encountered. b9afa1f include <assert> -> <cassert> edf2939 Update README.md 65190ac Will not reuse manifest if reuse_logs options is false. ac1d69d LevelDB now attempts to reuse the preceding MANIFEST and log file when re-opened. 76bba13 fix indent 8fcceb2 log compaction output file's level along with number 0e0f074 documentation. improved link c85addc readme: improved documentation link ceff6f1 Fix Android/MIPS build. 77948e7 Add benchmark that measures cost of repeatedly opening the database. 34ad72e Move header guard below copyright banner. a75d435 Clean up layering of storage/leveldb/... b234f65 Added a new fault injection test. c4c38f9 Add arm64 support to leveldb. cea9b10 Fixed incorrect comment wording for Iterator::Seek. c00c569 Deleted old README file. git-subtree-dir: src/leveldb git-subtree-split: a31c8aa408d5594830f7cb20ead1ef1dff51b79e
2016-12-02 01:14:45 +01:00
PRUNE_TOOL="-name leveldbutil.cc -prune"
PORTABLE_FILES=`find $DIRS $PRUNE_TEST -o $PRUNE_BENCH -o $PRUNE_TOOL -o -name '*.cc' -print | sort | sed "s,^$PREFIX/,," | tr "\n" " "`
set +f # re-enable globbing
# The sources consist of the portable files, plus the platform-specific port
# file.
echo "SOURCES=$PORTABLE_FILES $PORT_FILE $PORT_SSE_FILE" >> $OUTPUT
echo "MEMENV_SOURCES=helpers/memenv/memenv.cc" >> $OUTPUT
if [ "$CROSS_COMPILE" = "true" ]; then
# Cross-compiling; do not try any compilation tests.
true
else
Squashed 'src/leveldb/' changes from ae6c262..a02ddf9 a02ddf9 Added GNU/kFreeBSD kernel name (TARGET_OS) 8487468 CondVar::SignalAll was broken, leading to deadlocks on Windows builds. http://code.google.com/p/leveldb/issues/detail?id=149 f6d84d1 Allow files to be opened for reading multiple times cb8e3f7 Checking whether closing succeeds d5317e8 Print actual Win32 error that occurred on file creation failure. 907f308 Port leveldb to MinGW32 9def2bf Mingw support for Windows LevelDB port 0a7b074 Pre-Vista leveldb::port::InitOnce implementation 31a2b09 Native Windows LevelDB port 058a035 Remove Snappy support 5bd76dc Release leveldb 1.12 7b094f1 Release leveldb 1.11 28dad91 Release leveldb 1.10 514c943 Make DB::Open fail if sst files are missing. d84c825 Fix corruption bug found and analyzed by dhruba@gmail.com ea2e919 added utility to dump leveldb files REVERT: ae6c262 Merge branch 'leveldb' into ripple-fork REVERT: 28fa222 Looks like a bit more delay is needed to smooth the latency. REVERT: a18f3e6 Tidy up JobQueue, add ripple_core module REVERT: ab82e57 Release leveldb 1.12 REVERT: 02c6259 Release leveldb 1.11 REVERT: 5bbb544 Rate limit compactions with a 25ms pause after each complete file. REVERT: 8c29c47 LevelDB issue 178 fix: cannot resize a level 0 compaction set REVERT: 18b245c Added GNU/kFreeBSD kernel name (TARGET_OS) REVERT: 8be9d12 CondVar::SignalAll was broken, leading to deadlocks on Windows builds. http://code.google.com/p/leveldb/issues/detail?id=149 REVERT: c9fc070 Upgrade LevelDB to 1.10.0, mostly for better write stall logging. REVERT: 8215b15 Tweak to variable name to support unity build REVERT: aca1ffc Allow files to be opened for reading multiple times REVERT: 693a70c Checking whether closing succeeds REVERT: 0144d04 Print actual Win32 error that occurred on file creation failure. REVERT: 43ed517 Fix corruption bug found and analyzed by dhruba@gmail.com REVERT: 413c74c added utility to dump leveldb files REVERT: 96eda85 Port leveldb to MinGW32 REVERT: 0967260 Mingw support for Windows LevelDB port REVERT: ee3f9bd Pre-Vista leveldb::port::InitOnce implementation REVERT: f5d0a41 Native Windows LevelDB port REVERT: 28b35f1 Remove Snappy support git-subtree-dir: src/leveldb git-subtree-split: a02ddf9b14d145e88185ee209ab8b01d8826663a
2013-08-18 00:58:04 +02:00
CXXOUTPUT="${TMPDIR}/leveldb_build_detect_platform-cxx.$$"
# If -std=c++0x works, use <atomic> as fallback for when memory barriers
# are not available.
Squashed 'src/leveldb/' changes from ae6c262..a02ddf9 a02ddf9 Added GNU/kFreeBSD kernel name (TARGET_OS) 8487468 CondVar::SignalAll was broken, leading to deadlocks on Windows builds. http://code.google.com/p/leveldb/issues/detail?id=149 f6d84d1 Allow files to be opened for reading multiple times cb8e3f7 Checking whether closing succeeds d5317e8 Print actual Win32 error that occurred on file creation failure. 907f308 Port leveldb to MinGW32 9def2bf Mingw support for Windows LevelDB port 0a7b074 Pre-Vista leveldb::port::InitOnce implementation 31a2b09 Native Windows LevelDB port 058a035 Remove Snappy support 5bd76dc Release leveldb 1.12 7b094f1 Release leveldb 1.11 28dad91 Release leveldb 1.10 514c943 Make DB::Open fail if sst files are missing. d84c825 Fix corruption bug found and analyzed by dhruba@gmail.com ea2e919 added utility to dump leveldb files REVERT: ae6c262 Merge branch 'leveldb' into ripple-fork REVERT: 28fa222 Looks like a bit more delay is needed to smooth the latency. REVERT: a18f3e6 Tidy up JobQueue, add ripple_core module REVERT: ab82e57 Release leveldb 1.12 REVERT: 02c6259 Release leveldb 1.11 REVERT: 5bbb544 Rate limit compactions with a 25ms pause after each complete file. REVERT: 8c29c47 LevelDB issue 178 fix: cannot resize a level 0 compaction set REVERT: 18b245c Added GNU/kFreeBSD kernel name (TARGET_OS) REVERT: 8be9d12 CondVar::SignalAll was broken, leading to deadlocks on Windows builds. http://code.google.com/p/leveldb/issues/detail?id=149 REVERT: c9fc070 Upgrade LevelDB to 1.10.0, mostly for better write stall logging. REVERT: 8215b15 Tweak to variable name to support unity build REVERT: aca1ffc Allow files to be opened for reading multiple times REVERT: 693a70c Checking whether closing succeeds REVERT: 0144d04 Print actual Win32 error that occurred on file creation failure. REVERT: 43ed517 Fix corruption bug found and analyzed by dhruba@gmail.com REVERT: 413c74c added utility to dump leveldb files REVERT: 96eda85 Port leveldb to MinGW32 REVERT: 0967260 Mingw support for Windows LevelDB port REVERT: ee3f9bd Pre-Vista leveldb::port::InitOnce implementation REVERT: f5d0a41 Native Windows LevelDB port REVERT: 28b35f1 Remove Snappy support git-subtree-dir: src/leveldb git-subtree-split: a02ddf9b14d145e88185ee209ab8b01d8826663a
2013-08-18 00:58:04 +02:00
$CXX $CXXFLAGS -std=c++0x -x c++ - -o $CXXOUTPUT 2>/dev/null <<EOF
#include <atomic>
int main() {}
EOF
if [ "$?" = 0 ]; then
COMMON_FLAGS="$COMMON_FLAGS -DLEVELDB_PLATFORM_POSIX -DLEVELDB_ATOMIC_PRESENT"
PLATFORM_CXXFLAGS="-std=c++0x"
else
COMMON_FLAGS="$COMMON_FLAGS -DLEVELDB_PLATFORM_POSIX"
fi
# Test whether tcmalloc is available
Squashed 'src/leveldb/' changes from ae6c262..a02ddf9 a02ddf9 Added GNU/kFreeBSD kernel name (TARGET_OS) 8487468 CondVar::SignalAll was broken, leading to deadlocks on Windows builds. http://code.google.com/p/leveldb/issues/detail?id=149 f6d84d1 Allow files to be opened for reading multiple times cb8e3f7 Checking whether closing succeeds d5317e8 Print actual Win32 error that occurred on file creation failure. 907f308 Port leveldb to MinGW32 9def2bf Mingw support for Windows LevelDB port 0a7b074 Pre-Vista leveldb::port::InitOnce implementation 31a2b09 Native Windows LevelDB port 058a035 Remove Snappy support 5bd76dc Release leveldb 1.12 7b094f1 Release leveldb 1.11 28dad91 Release leveldb 1.10 514c943 Make DB::Open fail if sst files are missing. d84c825 Fix corruption bug found and analyzed by dhruba@gmail.com ea2e919 added utility to dump leveldb files REVERT: ae6c262 Merge branch 'leveldb' into ripple-fork REVERT: 28fa222 Looks like a bit more delay is needed to smooth the latency. REVERT: a18f3e6 Tidy up JobQueue, add ripple_core module REVERT: ab82e57 Release leveldb 1.12 REVERT: 02c6259 Release leveldb 1.11 REVERT: 5bbb544 Rate limit compactions with a 25ms pause after each complete file. REVERT: 8c29c47 LevelDB issue 178 fix: cannot resize a level 0 compaction set REVERT: 18b245c Added GNU/kFreeBSD kernel name (TARGET_OS) REVERT: 8be9d12 CondVar::SignalAll was broken, leading to deadlocks on Windows builds. http://code.google.com/p/leveldb/issues/detail?id=149 REVERT: c9fc070 Upgrade LevelDB to 1.10.0, mostly for better write stall logging. REVERT: 8215b15 Tweak to variable name to support unity build REVERT: aca1ffc Allow files to be opened for reading multiple times REVERT: 693a70c Checking whether closing succeeds REVERT: 0144d04 Print actual Win32 error that occurred on file creation failure. REVERT: 43ed517 Fix corruption bug found and analyzed by dhruba@gmail.com REVERT: 413c74c added utility to dump leveldb files REVERT: 96eda85 Port leveldb to MinGW32 REVERT: 0967260 Mingw support for Windows LevelDB port REVERT: ee3f9bd Pre-Vista leveldb::port::InitOnce implementation REVERT: f5d0a41 Native Windows LevelDB port REVERT: 28b35f1 Remove Snappy support git-subtree-dir: src/leveldb git-subtree-split: a02ddf9b14d145e88185ee209ab8b01d8826663a
2013-08-18 00:58:04 +02:00
$CXX $CXXFLAGS -x c++ - -o $CXXOUTPUT -ltcmalloc 2>/dev/null <<EOF
int main() {}
EOF
if [ "$?" = 0 ]; then
PLATFORM_LIBS="$PLATFORM_LIBS -ltcmalloc"
fi
Squashed 'src/leveldb/' changes from ae6c262..a02ddf9 a02ddf9 Added GNU/kFreeBSD kernel name (TARGET_OS) 8487468 CondVar::SignalAll was broken, leading to deadlocks on Windows builds. http://code.google.com/p/leveldb/issues/detail?id=149 f6d84d1 Allow files to be opened for reading multiple times cb8e3f7 Checking whether closing succeeds d5317e8 Print actual Win32 error that occurred on file creation failure. 907f308 Port leveldb to MinGW32 9def2bf Mingw support for Windows LevelDB port 0a7b074 Pre-Vista leveldb::port::InitOnce implementation 31a2b09 Native Windows LevelDB port 058a035 Remove Snappy support 5bd76dc Release leveldb 1.12 7b094f1 Release leveldb 1.11 28dad91 Release leveldb 1.10 514c943 Make DB::Open fail if sst files are missing. d84c825 Fix corruption bug found and analyzed by dhruba@gmail.com ea2e919 added utility to dump leveldb files REVERT: ae6c262 Merge branch 'leveldb' into ripple-fork REVERT: 28fa222 Looks like a bit more delay is needed to smooth the latency. REVERT: a18f3e6 Tidy up JobQueue, add ripple_core module REVERT: ab82e57 Release leveldb 1.12 REVERT: 02c6259 Release leveldb 1.11 REVERT: 5bbb544 Rate limit compactions with a 25ms pause after each complete file. REVERT: 8c29c47 LevelDB issue 178 fix: cannot resize a level 0 compaction set REVERT: 18b245c Added GNU/kFreeBSD kernel name (TARGET_OS) REVERT: 8be9d12 CondVar::SignalAll was broken, leading to deadlocks on Windows builds. http://code.google.com/p/leveldb/issues/detail?id=149 REVERT: c9fc070 Upgrade LevelDB to 1.10.0, mostly for better write stall logging. REVERT: 8215b15 Tweak to variable name to support unity build REVERT: aca1ffc Allow files to be opened for reading multiple times REVERT: 693a70c Checking whether closing succeeds REVERT: 0144d04 Print actual Win32 error that occurred on file creation failure. REVERT: 43ed517 Fix corruption bug found and analyzed by dhruba@gmail.com REVERT: 413c74c added utility to dump leveldb files REVERT: 96eda85 Port leveldb to MinGW32 REVERT: 0967260 Mingw support for Windows LevelDB port REVERT: ee3f9bd Pre-Vista leveldb::port::InitOnce implementation REVERT: f5d0a41 Native Windows LevelDB port REVERT: 28b35f1 Remove Snappy support git-subtree-dir: src/leveldb git-subtree-split: a02ddf9b14d145e88185ee209ab8b01d8826663a
2013-08-18 00:58:04 +02:00
rm -f $CXXOUTPUT 2>/dev/null
# Test if gcc SSE 4.2 is supported
$CXX $CXXFLAGS -x c++ - -o $CXXOUTPUT -msse4.2 2>/dev/null <<EOF
int main() {}
EOF
if [ "$?" = 0 ]; then
PLATFORM_SSEFLAGS="-msse4.2"
fi
rm -f $CXXOUTPUT 2>/dev/null
fi
# Use the SSE 4.2 CRC32C intrinsics iff runtime checks indicate compiler supports them.
if [ -n "$PLATFORM_SSEFLAGS" ]; then
PLATFORM_SSEFLAGS="$PLATFORM_SSEFLAGS -DLEVELDB_PLATFORM_POSIX_SSE"
fi
PLATFORM_CCFLAGS="$PLATFORM_CCFLAGS $COMMON_FLAGS"
PLATFORM_CXXFLAGS="$PLATFORM_CXXFLAGS $COMMON_FLAGS"
echo "CC=$CC" >> $OUTPUT
echo "CXX=$CXX" >> $OUTPUT
echo "PLATFORM=$PLATFORM" >> $OUTPUT
echo "PLATFORM_LDFLAGS=$PLATFORM_LDFLAGS" >> $OUTPUT
echo "PLATFORM_LIBS=$PLATFORM_LIBS" >> $OUTPUT
echo "PLATFORM_CCFLAGS=$PLATFORM_CCFLAGS" >> $OUTPUT
echo "PLATFORM_CXXFLAGS=$PLATFORM_CXXFLAGS" >> $OUTPUT
echo "PLATFORM_SSEFLAGS=$PLATFORM_SSEFLAGS" >> $OUTPUT
echo "PLATFORM_SHARED_CFLAGS=$PLATFORM_SHARED_CFLAGS" >> $OUTPUT
echo "PLATFORM_SHARED_EXT=$PLATFORM_SHARED_EXT" >> $OUTPUT
echo "PLATFORM_SHARED_LDFLAGS=$PLATFORM_SHARED_LDFLAGS" >> $OUTPUT
echo "PLATFORM_SHARED_VERSIONED=$PLATFORM_SHARED_VERSIONED" >> $OUTPUT