from pypy.translator.tool.cbuild import ExternalCompilationInfo from pypy.translator.platform import platform as compiler from pypy.rlib.rarithmetic import intmask, r_longlong import sys if compiler.name == "msvc": libname = 'libbz2' else: libname = 'bz2' eci = ExternalCompilationInfo( includes = ['stdio.h', 'sys/types.h', 'bzlib.h'], libraries = [libname], ) eci = platform.configure_external_library( 'bz2', eci, [dict(prefix='bzip2-')]) if not eci: raise ImportError("Could not find bzip2 library") class CConfig: _compilation_info_ = eci calling_conv = 'c' CHECK_LIBRARY = platform.Has('dump("x", (int)&BZ2_bzCompress)') off_t = platform.SimpleType("off_t", rffi.LONGLONG) size_t = platform.SimpleType("size_t", rffi.ULONG) BUFSIZ = platform.ConstantInteger("BUFSIZ") _alloc_type = lltype.FuncType([rffi.VOIDP, rffi.INT, rffi.INT], rffi.VOIDP) _free_type = lltype.FuncType([rffi.VOIDP, rffi.VOIDP], lltype.Void)
separate_module_sources=separate_module_sources, include_dirs=platform.include_dirs_for_libffi(), library_dirs=platform.library_dirs_for_libffi(), link_files=link_files, testonly_libraries=["ffi"], ) elif _MINGW: includes = ["ffi.h"] libraries = ["libffi-5"] eci = ExternalCompilationInfo( libraries=libraries, includes=includes, export_symbols=[], separate_module_sources=separate_module_sources ) eci = rffi_platform.configure_external_library( "libffi", eci, [dict(prefix="libffi-", include_dir="include", library_dir=".libs")] ) else: libffidir = py.path.local(pypydir).join("translator", "c", "src", "libffi_msvc") eci = ExternalCompilationInfo( includes=["ffi.h", "windows.h"], libraries=["kernel32"], include_dirs=[libffidir], separate_module_sources=separate_module_sources, separate_module_files=[ libffidir.join("ffi.c"), libffidir.join("prep_cif.c"), libffidir.join("win32.c"), libffidir.join("pypy_ffi.c"), ], export_symbols=["ffi_call", "ffi_prep_cif", "ffi_prep_closure", "pypy_get_libc_handle"],
import sys import py if sys.platform == "win32": libname = 'libexpat' else: libname = 'expat' eci = ExternalCompilationInfo( libraries=[libname], includes=['expat.h'], ) eci = rffi_platform.configure_external_library( libname, eci, [dict(prefix='expat-', include_dir='lib', library_dir='win32/bin/release'), ]) XML_Content_Ptr = lltype.Ptr(lltype.ForwardReference()) XML_Parser = rffi.COpaquePtr(typedef='XML_Parser') xml_error_list = [ "XML_ERROR_NO_MEMORY", "XML_ERROR_SYNTAX", "XML_ERROR_NO_ELEMENTS", "XML_ERROR_INVALID_TOKEN", "XML_ERROR_UNCLOSED_TOKEN", "XML_ERROR_PARTIAL_CHAR", "XML_ERROR_TAG_MISMATCH", "XML_ERROR_DUPLICATE_ATTRIBUTE",
from pypy.rpython.lltypesystem import rffi, lltype from pypy.rpython.tool import rffi_platform from pypy.translator.tool.cbuild import ExternalCompilationInfo from pypy.translator.platform import platform as compiler, CompilationError if compiler.name == "msvc": libname = 'zlib' else: libname = 'z' eci = ExternalCompilationInfo( libraries=[libname], includes=['zlib.h'] ) try: eci = rffi_platform.configure_external_library( libname, eci, [dict(prefix='zlib-'), ]) except CompilationError: raise ImportError("Could not find a zlib library") constantnames = ''' Z_OK Z_STREAM_ERROR Z_BUF_ERROR Z_MEM_ERROR Z_STREAM_END Z_DEFLATED Z_DEFAULT_STRATEGY Z_DEFAULT_COMPRESSION Z_NO_FLUSH Z_FINISH Z_SYNC_FLUSH Z_FULL_FLUSH MAX_WBITS MAX_MEM_LEVEL Z_BEST_SPEED Z_BEST_COMPRESSION Z_DEFAULT_COMPRESSION Z_FILTERED Z_HUFFMAN_ONLY Z_DEFAULT_STRATEGY '''.split() class SimpleCConfig:
from pypy.rpython.tool import rffi_platform from pypy.translator.platform import platform as compiler, CompilationError from pypy.translator.tool.cbuild import ExternalCompilationInfo if compiler.name == "msvc": libname = 'zlib' else: libname = 'z' eci = ExternalCompilationInfo( libraries=[libname], includes=['zlib.h'] ) try: eci = rffi_platform.configure_external_library( libname, eci, [dict(prefix='zlib-'), ]) except CompilationError: raise ImportError("Could not find a zlib library") constantnames = ''' Z_OK Z_STREAM_ERROR Z_BUF_ERROR Z_MEM_ERROR Z_STREAM_END Z_DATA_ERROR Z_DEFLATED Z_DEFAULT_STRATEGY Z_DEFAULT_COMPRESSION Z_NO_FLUSH Z_FINISH Z_SYNC_FLUSH Z_FULL_FLUSH MAX_WBITS MAX_MEM_LEVEL Z_BEST_SPEED Z_BEST_COMPRESSION Z_DEFAULT_COMPRESSION Z_FILTERED Z_HUFFMAN_ONLY Z_DEFAULT_STRATEGY '''.split() class SimpleCConfig:
'openssl/x509v3.h'] eci = ExternalCompilationInfo( libraries = libraries, includes = includes, export_symbols = [], post_include_bits = [ # Unnamed structures are not supported by rffi_platform. # So we replace an attribute access with a macro call. '#define pypy_GENERAL_NAME_dirn(name) (name->d.dirn)', ], ) eci = rffi_platform.configure_external_library( 'openssl', eci, [dict(prefix='openssl-', include_dir='inc32', library_dir='out32'), ]) # WinSock does not use a bitmask in select, and uses # socket handles greater than FD_SETSIZE if sys.platform == 'win32': MAX_FD_SIZE = None else: from pypy.rlib._rsocket_rffi import FD_SETSIZE as MAX_FD_SIZE ASN1_STRING = lltype.Ptr(lltype.ForwardReference()) ASN1_ITEM = rffi.COpaquePtr('ASN1_ITEM') X509_NAME = rffi.COpaquePtr('X509_NAME') class CConfig:
from pypy.rlib import rpoll import sys if sys.platform == "win32": libraries = ["libeay32", "ssleay32", "user32", "advapi32", "gdi32"] else: libraries = ["ssl", "crypto"] eci = ExternalCompilationInfo( libraries=libraries, includes=["openssl/ssl.h"], export_symbols=["SSL_load_error_strings"] ) eci = rffi_platform.configure_external_library( "openssl", eci, [dict(prefix="openssl-", include_dir="inc32", library_dir="out32")] ) ## user defined constants X509_NAME_MAXLEN = 256 ## # these mirror ssl.h PY_SSL_ERROR_NONE, PY_SSL_ERROR_SSL = 0, 1 PY_SSL_ERROR_WANT_READ, PY_SSL_ERROR_WANT_WRITE = 2, 3 PY_SSL_ERROR_WANT_X509_LOOKUP = 4 PY_SSL_ERROR_SYSCALL = 5 # look at error stack/return value/errno PY_SSL_ERROR_ZERO_RETURN, PY_SSL_ERROR_WANT_CONNECT = 6, 7 # start of non ssl.h errorcodes PY_SSL_ERROR_EOF = 8 # special case of SSL_ERROR_SYSCALL PY_SSL_ERROR_INVALID_ERROR_CODE = 9 SOCKET_IS_NONBLOCKING, SOCKET_IS_BLOCKING = 0, 1
testonly_libraries = ['ffi'], ) elif _MINGW: includes = ['ffi.h'] libraries = ['libffi-5'] eci = ExternalCompilationInfo( libraries = libraries, includes = includes, export_symbols = [], separate_module_sources = separate_module_sources, ) eci = rffi_platform.configure_external_library( 'libffi', eci, [dict(prefix='libffi-', include_dir='include', library_dir='.libs'), ]) else: libffidir = py.path.local(pypydir).join('translator', 'c', 'src', 'libffi_msvc') eci = ExternalCompilationInfo( includes = ['ffi.h', 'windows.h'], libraries = ['kernel32'], include_dirs = [libffidir], separate_module_sources = separate_module_sources, separate_module_files = [libffidir.join('ffi.c'), libffidir.join('prep_cif.c'), libffidir.join('win32.c'), libffidir.join('pypy_ffi.c'), ], export_symbols = ['ffi_call', 'ffi_prep_cif', 'ffi_prep_closure',
import py if sys.platform == "win32": libname = 'libexpat' else: libname = 'expat' eci = ExternalCompilationInfo( libraries=[libname], library_dirs=platform.preprocess_library_dirs([]), includes=['expat.h'], include_dirs=platform.preprocess_include_dirs([]), ) eci = rffi_platform.configure_external_library( libname, eci, [dict(prefix='expat-', include_dir='lib', library_dir='win32/bin/release'), ]) XML_Content_Ptr = lltype.Ptr(lltype.ForwardReference()) XML_Parser = rffi.COpaquePtr(typedef='XML_Parser') xml_error_list = [ "XML_ERROR_NO_MEMORY", "XML_ERROR_SYNTAX", "XML_ERROR_NO_ELEMENTS", "XML_ERROR_INVALID_TOKEN", "XML_ERROR_UNCLOSED_TOKEN", "XML_ERROR_PARTIAL_CHAR", "XML_ERROR_TAG_MISMATCH", "XML_ERROR_DUPLICATE_ATTRIBUTE",
from pypy.interpreter.baseobjspace import Wrappable from pypy.interpreter.typedef import TypeDef, interp_attrproperty from pypy.interpreter.gateway import interp2app, unwrap_spec from pypy.rlib.streamio import Stream from pypy.translator.tool.cbuild import ExternalCompilationInfo from pypy.translator.platform import platform as compiler from pypy.rlib.rarithmetic import intmask, r_longlong import sys if compiler.name == "msvc": libname = "libbz2" else: libname = "bz2" eci = ExternalCompilationInfo(includes=["stdio.h", "sys/types.h", "bzlib.h"], libraries=[libname]) eci = platform.configure_external_library("bz2", eci, [dict(prefix="bzip2-")]) if not eci: raise ImportError("Could not find bzip2 library") class CConfig: _compilation_info_ = eci calling_conv = "c" CHECK_LIBRARY = platform.Has('dump("x", (int)&BZ2_bzCompress)') off_t = platform.SimpleType("off_t", rffi.LONGLONG) size_t = platform.SimpleType("size_t", rffi.ULONG) BUFSIZ = platform.ConstantInteger("BUFSIZ") _alloc_type = lltype.FuncType([rffi.VOIDP, rffi.INT, rffi.INT], rffi.VOIDP) _free_type = lltype.FuncType([rffi.VOIDP, rffi.VOIDP], lltype.Void)
if sys.platform == 'win32': libraries = ['libeay32', 'ssleay32', 'user32', 'advapi32', 'gdi32'] else: libraries = ['ssl', 'crypto'] eci = ExternalCompilationInfo( libraries=libraries, includes=[ 'openssl/ssl.h', ], export_symbols=['SSL_load_error_strings'], ) eci = rffi_platform.configure_external_library('openssl', eci, [ dict(prefix='openssl-', include_dir='inc32', library_dir='out32'), ]) ## user defined constants X509_NAME_MAXLEN = 256 ## # these mirror ssl.h PY_SSL_ERROR_NONE, PY_SSL_ERROR_SSL = 0, 1 PY_SSL_ERROR_WANT_READ, PY_SSL_ERROR_WANT_WRITE = 2, 3 PY_SSL_ERROR_WANT_X509_LOOKUP = 4 PY_SSL_ERROR_SYSCALL = 5 # look at error stack/return value/errno PY_SSL_ERROR_ZERO_RETURN, PY_SSL_ERROR_WANT_CONNECT = 6, 7 # start of non ssl.h errorcodes PY_SSL_ERROR_EOF = 8 # special case of SSL_ERROR_SYSCALL PY_SSL_ERROR_INVALID_ERROR_CODE = 9 SOCKET_IS_NONBLOCKING, SOCKET_IS_BLOCKING = 0, 1
testonly_libraries = ['ffi'], ) elif _MINGW: includes = ['ffi.h'] libraries = ['libffi-5'] eci = ExternalCompilationInfo( libraries = libraries, includes = includes, export_symbols = [], separate_module_sources = separate_module_sources, ) eci = rffi_platform.configure_external_library( 'libffi-5', eci, [dict(prefix='libffi-', include_dir='include', library_dir='.libs'), dict(prefix=r'c:\mingw64', include_dir='include', library_dir='lib'), ]) else: libffidir = py.path.local(pypydir).join('translator', 'c', 'src', 'libffi_msvc') if not _WIN64: asm_ifc = 'win32.c' else: asm_ifc = 'win64.asm' eci = ExternalCompilationInfo( includes = ['ffi.h', 'windows.h'], libraries = ['kernel32'], include_dirs = [libffidir], separate_module_sources = separate_module_sources, separate_module_files = [libffidir.join('ffi.c'), libffidir.join('prep_cif.c'),