build shared libraries; updated version to 1.3; add Status accessors
This commit is contained in:
parent
a1ad4d1995
commit
bc1ee4d25e
44
Makefile
44
Makefile
@ -2,8 +2,10 @@
|
|||||||
# Use of this source code is governed by a BSD-style license that can be
|
# Use of this source code is governed by a BSD-style license that can be
|
||||||
# found in the LICENSE file. See the AUTHORS file for names of contributors.
|
# found in the LICENSE file. See the AUTHORS file for names of contributors.
|
||||||
|
|
||||||
|
# Inherit some settings from environment variables, if available
|
||||||
CXX ?= g++
|
CXX ?= g++
|
||||||
CC ?= gcc
|
CC ?= gcc
|
||||||
|
INSTALL_PATH ?= $(CURDIR)
|
||||||
|
|
||||||
#-----------------------------------------------
|
#-----------------------------------------------
|
||||||
# Uncomment exactly one of the lines labelled (A), (B), and (C) below
|
# Uncomment exactly one of the lines labelled (A), (B), and (C) below
|
||||||
@ -19,8 +21,8 @@ $(shell sh ./build_detect_platform)
|
|||||||
# this file is generated by build_detect_platform to set build flags and sources
|
# this file is generated by build_detect_platform to set build flags and sources
|
||||||
include build_config.mk
|
include build_config.mk
|
||||||
|
|
||||||
CFLAGS += -c -I. -I./include $(PLATFORM_CCFLAGS) $(OPT)
|
CFLAGS += -I. -I./include $(PLATFORM_CCFLAGS) $(OPT)
|
||||||
CXXFLAGS += -c -I. -I./include $(PLATFORM_CXXFLAGS) $(OPT)
|
CXXFLAGS += -I. -I./include $(PLATFORM_CXXFLAGS) $(OPT)
|
||||||
|
|
||||||
LDFLAGS += $(PLATFORM_LDFLAGS)
|
LDFLAGS += $(PLATFORM_LDFLAGS)
|
||||||
|
|
||||||
@ -55,15 +57,33 @@ BENCHMARKS = db_bench_sqlite3 db_bench_tree_db
|
|||||||
LIBRARY = libleveldb.a
|
LIBRARY = libleveldb.a
|
||||||
MEMENVLIBRARY = libmemenv.a
|
MEMENVLIBRARY = libmemenv.a
|
||||||
|
|
||||||
all: $(LIBRARY)
|
default: all
|
||||||
|
|
||||||
check: $(PROGRAMS) $(TESTS)
|
# Should we build shared libraries?
|
||||||
|
ifneq ($(PLATFORM_SHARED_EXT),)
|
||||||
|
# Update db.h if you change these.
|
||||||
|
SHARED_MAJOR = 1
|
||||||
|
SHARED_MINOR = 3
|
||||||
|
SHARED1 = libleveldb.$(PLATFORM_SHARED_EXT)
|
||||||
|
SHARED2 = $(SHARED1).$(SHARED_MAJOR)
|
||||||
|
SHARED3 = $(SHARED1).$(SHARED_MAJOR).$(SHARED_MINOR)
|
||||||
|
SHARED = $(SHARED1) $(SHARED2) $(SHARED3)
|
||||||
|
$(SHARED3):
|
||||||
|
$(CXX) $(LDFLAGS) $(PLATFORM_SHARED_LDFLAGS)$(INSTALL_PATH)/$(SHARED2) $(CXXFLAGS) $(PLATFORM_SHARED_CFLAGS) $(SOURCES) -o $(SHARED3)
|
||||||
|
$(SHARED2): $(SHARED3)
|
||||||
|
ln -fs $(SHARED3) $(SHARED2)
|
||||||
|
$(SHARED1): $(SHARED3)
|
||||||
|
ln -fs $(SHARED3) $(SHARED1)
|
||||||
|
endif
|
||||||
|
|
||||||
|
all: $(SHARED) $(LIBRARY)
|
||||||
|
|
||||||
|
check: all $(PROGRAMS) $(TESTS)
|
||||||
for t in $(TESTS); do echo "***** Running $$t"; ./$$t || exit 1; done
|
for t in $(TESTS); do echo "***** Running $$t"; ./$$t || exit 1; done
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
-rm -f $(PROGRAMS) $(BENCHMARKS) $(LIBRARY) $(MEMENVLIBRARY) */*.o */*/*.o ios-x86/*/*.o ios-arm/*/*.o
|
-rm -f $(PROGRAMS) $(BENCHMARKS) $(LIBRARY) $(SHARED) $(MEMENVLIBRARY) */*.o */*/*.o ios-x86/*/*.o ios-arm/*/*.o build_config.mk
|
||||||
-rm -rf ios-x86/* ios-arm/*
|
-rm -rf ios-x86/* ios-arm/*
|
||||||
-rm build_config.mk
|
|
||||||
|
|
||||||
$(LIBRARY): $(LIBOBJECTS)
|
$(LIBRARY): $(LIBOBJECTS)
|
||||||
rm -f $@
|
rm -f $@
|
||||||
@ -142,22 +162,22 @@ IOSVERSION=$(shell defaults read /Developer/Platforms/iPhoneOS.platform/version
|
|||||||
|
|
||||||
.cc.o:
|
.cc.o:
|
||||||
mkdir -p ios-x86/$(dir $@)
|
mkdir -p ios-x86/$(dir $@)
|
||||||
$(SIMULATORROOT)/usr/bin/$(CXX) $(CXXFLAGS) -isysroot $(SIMULATORROOT)/SDKs/iPhoneSimulator$(IOSVERSION).sdk -arch i686 $< -o ios-x86/$@
|
$(SIMULATORROOT)/usr/bin/$(CXX) $(CXXFLAGS) -isysroot $(SIMULATORROOT)/SDKs/iPhoneSimulator$(IOSVERSION).sdk -arch i686 -c $< -o ios-x86/$@
|
||||||
mkdir -p ios-arm/$(dir $@)
|
mkdir -p ios-arm/$(dir $@)
|
||||||
$(DEVICEROOT)/usr/bin/$(CXX) $(CXXFLAGS) -isysroot $(DEVICEROOT)/SDKs/iPhoneOS$(IOSVERSION).sdk -arch armv6 -arch armv7 $< -o ios-arm/$@
|
$(DEVICEROOT)/usr/bin/$(CXX) $(CXXFLAGS) -isysroot $(DEVICEROOT)/SDKs/iPhoneOS$(IOSVERSION).sdk -arch armv6 -arch armv7 -c $< -o ios-arm/$@
|
||||||
lipo ios-x86/$@ ios-arm/$@ -create -output $@
|
lipo ios-x86/$@ ios-arm/$@ -create -output $@
|
||||||
|
|
||||||
.c.o:
|
.c.o:
|
||||||
mkdir -p ios-x86/$(dir $@)
|
mkdir -p ios-x86/$(dir $@)
|
||||||
$(SIMULATORROOT)/usr/bin/$(CC) $(CFLAGS) -isysroot $(SIMULATORROOT)/SDKs/iPhoneSimulator$(IOSVERSION).sdk -arch i686 $< -o ios-x86/$@
|
$(SIMULATORROOT)/usr/bin/$(CC) $(CFLAGS) -isysroot $(SIMULATORROOT)/SDKs/iPhoneSimulator$(IOSVERSION).sdk -arch i686 -c $< -o ios-x86/$@
|
||||||
mkdir -p ios-arm/$(dir $@)
|
mkdir -p ios-arm/$(dir $@)
|
||||||
$(DEVICEROOT)/usr/bin/$(CC) $(CFLAGS) -isysroot $(DEVICEROOT)/SDKs/iPhoneOS$(IOSVERSION).sdk -arch armv6 -arch armv7 $< -o ios-arm/$@
|
$(DEVICEROOT)/usr/bin/$(CC) $(CFLAGS) -isysroot $(DEVICEROOT)/SDKs/iPhoneOS$(IOSVERSION).sdk -arch armv6 -arch armv7 -c $< -o ios-arm/$@
|
||||||
lipo ios-x86/$@ ios-arm/$@ -create -output $@
|
lipo ios-x86/$@ ios-arm/$@ -create -output $@
|
||||||
|
|
||||||
else
|
else
|
||||||
.cc.o:
|
.cc.o:
|
||||||
$(CXX) $(CXXFLAGS) $< -o $@
|
$(CXX) $(CXXFLAGS) -c $< -o $@
|
||||||
|
|
||||||
.c.o:
|
.c.o:
|
||||||
$(CC) $(CFLAGS) $< -o $@
|
$(CC) $(CFLAGS) -c $< -o $@
|
||||||
endif
|
endif
|
||||||
|
@ -5,6 +5,9 @@
|
|||||||
#
|
#
|
||||||
# build_config.mk will set the following variables:
|
# build_config.mk will set the following variables:
|
||||||
# PLATFORM_LDFLAGS Linker flags
|
# PLATFORM_LDFLAGS Linker flags
|
||||||
|
# PLATFORM_SHARED_EXT Extension for shared libraries
|
||||||
|
# PLATFORM_SHARED_LDFLAGS Flags for building shared library
|
||||||
|
# PLATFORM_SHARED_CFLAGS Flags for compiling objects for shared library
|
||||||
# PLATFORM_CCFLAGS C compiler flags
|
# PLATFORM_CCFLAGS C compiler flags
|
||||||
# PLATFORM_CXXFLAGS C++ compiler flags. Will contain:
|
# PLATFORM_CXXFLAGS C++ compiler flags. Will contain:
|
||||||
# -DLEVELDB_PLATFORM_POSIX if cstdatomic is present
|
# -DLEVELDB_PLATFORM_POSIX if cstdatomic is present
|
||||||
@ -29,12 +32,17 @@ COMMON_FLAGS=
|
|||||||
PLATFORM_CCFLAGS=
|
PLATFORM_CCFLAGS=
|
||||||
PLATFORM_CXXFLAGS=
|
PLATFORM_CXXFLAGS=
|
||||||
PLATFORM_LDFLAGS=
|
PLATFORM_LDFLAGS=
|
||||||
|
PLATFORM_SHARED_EXT="so"
|
||||||
|
PLATFORM_SHARED_LDFLAGS="-shared -Wl,-soname -Wl,"
|
||||||
|
PLATFORM_SHARED_CFLAGS="-fPIC"
|
||||||
|
|
||||||
# On GCC, we pick libc's memcmp over GCC's memcmp via -fno-builtin-memcmp
|
# On GCC, we pick libc's memcmp over GCC's memcmp via -fno-builtin-memcmp
|
||||||
case "$TARGET_OS" in
|
case "$TARGET_OS" in
|
||||||
Darwin)
|
Darwin)
|
||||||
PLATFORM=OS_MACOSX
|
PLATFORM=OS_MACOSX
|
||||||
COMMON_FLAGS="-fno-builtin-memcmp -DOS_MACOSX"
|
COMMON_FLAGS="-fno-builtin-memcmp -DOS_MACOSX"
|
||||||
|
PLATFORM_SHARED_EXT=dylib
|
||||||
|
PLATFORM_SHARED_LDFLAGS="-dynamiclib -install_name "
|
||||||
PORT_FILE=port/port_posix.cc
|
PORT_FILE=port/port_posix.cc
|
||||||
;;
|
;;
|
||||||
Linux)
|
Linux)
|
||||||
@ -143,3 +151,6 @@ echo "PLATFORM=$PLATFORM" >> build_config.mk
|
|||||||
echo "PLATFORM_LDFLAGS=$PLATFORM_LDFLAGS" >> build_config.mk
|
echo "PLATFORM_LDFLAGS=$PLATFORM_LDFLAGS" >> build_config.mk
|
||||||
echo "PLATFORM_CCFLAGS=$PLATFORM_CCFLAGS" >> build_config.mk
|
echo "PLATFORM_CCFLAGS=$PLATFORM_CCFLAGS" >> build_config.mk
|
||||||
echo "PLATFORM_CXXFLAGS=$PLATFORM_CXXFLAGS" >> build_config.mk
|
echo "PLATFORM_CXXFLAGS=$PLATFORM_CXXFLAGS" >> build_config.mk
|
||||||
|
echo "PLATFORM_SHARED_CFLAGS=$PLATFORM_SHARED_CFLAGS" >> build_config.mk
|
||||||
|
echo "PLATFORM_SHARED_EXT=$PLATFORM_SHARED_EXT" >> build_config.mk
|
||||||
|
echo "PLATFORM_SHARED_LDFLAGS=$PLATFORM_SHARED_LDFLAGS" >> build_config.mk
|
||||||
|
@ -105,7 +105,8 @@ class SkipList {
|
|||||||
port::AtomicPointer max_height_; // Height of the entire list
|
port::AtomicPointer max_height_; // Height of the entire list
|
||||||
|
|
||||||
inline int GetMaxHeight() const {
|
inline int GetMaxHeight() const {
|
||||||
return reinterpret_cast<intptr_t>(max_height_.NoBarrier_Load());
|
return static_cast<int>(
|
||||||
|
reinterpret_cast<intptr_t>(max_height_.NoBarrier_Load()));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Read/written only by Insert().
|
// Read/written only by Insert().
|
||||||
|
@ -12,8 +12,9 @@
|
|||||||
|
|
||||||
namespace leveldb {
|
namespace leveldb {
|
||||||
|
|
||||||
|
// Update Makefile if you change these
|
||||||
static const int kMajorVersion = 1;
|
static const int kMajorVersion = 1;
|
||||||
static const int kMinorVersion = 2;
|
static const int kMinorVersion = 3;
|
||||||
|
|
||||||
struct Options;
|
struct Options;
|
||||||
struct ReadOptions;
|
struct ReadOptions;
|
||||||
|
@ -54,6 +54,12 @@ class Status {
|
|||||||
// Returns true iff the status indicates a NotFound error.
|
// Returns true iff the status indicates a NotFound error.
|
||||||
bool IsNotFound() const { return code() == kNotFound; }
|
bool IsNotFound() const { return code() == kNotFound; }
|
||||||
|
|
||||||
|
// Returns true iff the status indicates a Corruption error.
|
||||||
|
bool IsCorruption() const { return code() == kCorruption; }
|
||||||
|
|
||||||
|
// Returns true iff the status indicates an IOError.
|
||||||
|
bool IsIOError() const { return code() == kIOError; }
|
||||||
|
|
||||||
// Return a string representation of this status suitable for printing.
|
// Return a string representation of this status suitable for printing.
|
||||||
// Returns the string "OK" for success.
|
// Returns the string "OK" for success.
|
||||||
std::string ToString() const;
|
std::string ToString() const;
|
||||||
|
Loading…
Reference in New Issue
Block a user