This patch force to only build the python bindings, and to do so, we modify the setup.py file in oder that finds our compiled libraries (libleveldb.so and libsnappy.so) --- leveldb-0.194/setup.py.orig 2016-09-17 02:05:55.000000000 +0200 +++ leveldb-0.194/setup.py 2019-02-26 16:57:40.997435911 +0100 @@ -11,44 +11,25 @@ import platform import sys from setuptools import setup, Extension +from os import environ system, node, release, version, machine, processor = platform.uname() -common_flags = [ - '-I./leveldb/include', - '-I./leveldb', - '-I./snappy', +extra_compile_args = [ + '-I{}/include'.format(environ.get('LEVELDB_BUILD_PATH')), + '-I{}'.format(environ.get('LEVELDB_BUILD_PATH')), + '-I{}'.format(environ.get('SNAPPY_BUILD_PATH')), + '-I.', '-I.', - '-fno-builtin-memcmp', '-O2', '-fPIC', '-DNDEBUG', '-DSNAPPY', + '-pthread', + '-Wall', + '-D_REENTRANT', + '-DOS_ANDROID', ] -if system == 'Darwin': - extra_compile_args = common_flags + [ - '-DOS_MACOSX', - '-DLEVELDB_PLATFORM_POSIX', - '-Wno-error=unused-command-line-argument-hard-error-in-future', - ] -elif system == 'Linux': - extra_compile_args = common_flags + [ - '-pthread', - '-Wall', - '-DOS_LINUX', - '-DLEVELDB_PLATFORM_POSIX', - ] -elif system == 'SunOS': - extra_compile_args = common_flags + [ - '-pthread', - '-Wall', - '-DOS_SOLARIS', - '-DLEVELDB_PLATFORM_POSIX', - ] -else: - sys.stderr.write("Don't know how to compile leveldb for %s!\n" % system) - sys.exit(1) - setup( name = 'leveldb', version = '0.194', @@ -81,57 +62,11 @@ setup( ext_modules = [ Extension('leveldb', sources = [ - # snappy - './snappy/snappy.cc', - './snappy/snappy-stubs-internal.cc', - './snappy/snappy-sinksource.cc', - './snappy/snappy-c.cc', - - #leveldb - 'leveldb/db/builder.cc', - 'leveldb/db/c.cc', - 'leveldb/db/db_impl.cc', - 'leveldb/db/db_iter.cc', - 'leveldb/db/dbformat.cc', - 'leveldb/db/filename.cc', - 'leveldb/db/log_reader.cc', - 'leveldb/db/log_writer.cc', - 'leveldb/db/memtable.cc', - 'leveldb/db/repair.cc', - 'leveldb/db/table_cache.cc', - 'leveldb/db/version_edit.cc', - 'leveldb/db/version_set.cc', - 'leveldb/db/write_batch.cc', - 'leveldb/table/block.cc', - 'leveldb/table/block_builder.cc', - 'leveldb/table/filter_block.cc', - 'leveldb/table/format.cc', - 'leveldb/table/iterator.cc', - 'leveldb/table/merger.cc', - 'leveldb/table/table.cc', - 'leveldb/table/table_builder.cc', - 'leveldb/table/two_level_iterator.cc', - 'leveldb/util/arena.cc', - 'leveldb/util/bloom.cc', - 'leveldb/util/cache.cc', - 'leveldb/util/coding.cc', - 'leveldb/util/comparator.cc', - 'leveldb/util/crc32c.cc', - 'leveldb/util/env.cc', - 'leveldb/util/env_posix.cc', - 'leveldb/util/filter_policy.cc', - 'leveldb/util/hash.cc', - 'leveldb/util/histogram.cc', - 'leveldb/util/logging.cc', - 'leveldb/util/options.cc', - 'leveldb/util/status.cc', - 'leveldb/port/port_posix.cc', - # python stuff 'leveldb_ext.cc', 'leveldb_object.cc', ], - libraries = ['stdc++'], + libraries = ['snappy', 'leveldb', 'stdc++', 'c++_shared'], extra_compile_args = extra_compile_args, ) ]