Commit 40b59cc4 authored by Kirill Smelkov's avatar Kirill Smelkov

.

parent 72308431
......@@ -40,6 +40,7 @@ all : pyext wcfs/wcfs
ccan_config := 3rdparty/ccan/config.h
pyext : $(ccan_config) FORCE
$(PYTHON) setup.py build_dso --inplace
$(PYTHON) setup.py ll_build_ext --inplace
wcfs/wcfs: FORCE
......
......@@ -17,8 +17,8 @@
#
# See COPYING file for full licensing terms.
# See https://www.nexedi.com/licensing for rationale and options.
from golang.pyx.build import setup, Extension as PyGoExt, build_ext as _build_ext
from setuptools_dso import DSO, Extension
from golang.pyx.build import setup, DSO, Extension as PyGoExt, build_ext as _build_ext
from setuptools_dso import Extension
from setuptools import Command, find_packages
from setuptools.command.build_py import build_py as _build_py
from pkg_resources import working_set, EntryPoint
......@@ -29,58 +29,26 @@ import os
import sys
"""
libvirtmem = DSO('wendelin.bigfile.libvirtmem',
['bigfile/pagefault.c',
'bigfile/pagemap.c',
'bigfile/ram.c',
'bigfile/ram_shmfs.c',
'bigfile/ram_hugetlbfs.c',
'bigfile/virtmem.c',
'lib/bug.c',
'lib/utils.c'],
include_dirs = [ # XXX dup
'./include',
'./3rdparty/ccan',
'./3rdparty/include'
],
define_macros = [('_GNU_SOURCE',None)], # XXX dup
extra_compile_args = [ # XXX dup
'-std=gnu99', # declarations inside for-loop
'-fplan9-extensions', # anonymous-structs + simple inheritance
'-fvisibility=hidden', # by default symbols not visible outside DSO
# # in C99 declaration after statement is ok, and we explicitly compile with -std=gnu99.
# # Python >= 3.4 however adds -Werror=declaration-after-statement even for extension
# # modules irregardless of their compilation flags:
# #
# # https://bugs.python.org/issue21121
# #
# # ensure there is no warnings / errors for decl-after-statements.
# '-Wno-declaration-after-statement',
# '-Wno-error=declaration-after-statement',
],
extra_link_args = [
'-Wl,--no-undefined', # check DSO for undefined symbols at link time
]
)
"""
#_bigfile = Extension('wendelin.bigfile._bigfile',
_bigfile = PyGoExt('wendelin.bigfile._bigfile',
sources = [
'bigfile/_bigfile.c',
# TODO split -> libvirtmem
'bigfile/pagefault.c',
'bigfile/pagemap.c',
'bigfile/ram.c',
'bigfile/ram_shmfs.c',
'bigfile/ram_hugetlbfs.c',
'bigfile/virtmem.c',
'lib/bug.c',
'lib/utils.c',
## TODO split -> libvirtmem
#'bigfile/pagefault.c',
#'bigfile/pagemap.c',
#'bigfile/ram.c',
#'bigfile/ram_shmfs.c',
#'bigfile/ram_hugetlbfs.c',
#'bigfile/virtmem.c',
#'lib/bug.c',
#'lib/utils.c',
## TODO split -> libwcfs
#'wcfs/internal/_wcfs.pyx',
#'wcfs/internal/wcfs_virtmem.cpp',
#'wcfs/internal/wcfs_watchlink.cpp',
#'wcfs/internal/wcfs_misc.cpp',
],
include_dirs = [
'./include',
......@@ -110,7 +78,7 @@ _bigfile = PyGoExt('wendelin.bigfile._bigfile',
# '-Wl,--no-undefined', # check DSO for undefined symbols at link time
#]
#dsos = ['wendelin.bigfile.libvirtmem'],
dsos = ['wendelin.bigfile.libvirtmem'],
)
......@@ -273,11 +241,45 @@ setup(
keywords = 'bigdata out-of-core numpy virtual-memory',
#x_dsos = [libvirtmem],
x_dsos = [DSO('wendelin.bigfile.libvirtmem',
['bigfile/pagefault.c',
'bigfile/pagemap.c',
'bigfile/ram.c',
'bigfile/ram_shmfs.c',
'bigfile/ram_hugetlbfs.c',
'bigfile/virtmem.c',
'lib/bug.c',
'lib/utils.c'],
include_dirs = [ # XXX dup
'./include',
'./3rdparty/ccan',
'./3rdparty/include'
],
define_macros = [('_GNU_SOURCE',None)], # XXX dup
extra_compile_args = [ # XXX dup
'-std=gnu99', # declarations inside for-loop
'-fplan9-extensions', # anonymous-structs + simple inheritance
'-fvisibility=hidden', # by default symbols not visible outside DSO
# # in C99 declaration after statement is ok, and we explicitly compile with -std=gnu99.
# # Python >= 3.4 however adds -Werror=declaration-after-statement even for extension
# # modules irregardless of their compilation flags:
# #
# # https://bugs.python.org/issue21121
# #
# # ensure there is no warnings / errors for decl-after-statements.
# '-Wno-declaration-after-statement',
# '-Wno-error=declaration-after-statement',
],
extra_link_args = [
'-Wl,--no-undefined', # check DSO for undefined symbols at link time
])],
ext_modules = [
_bigfile,
PyGoExt('wcfs.internal._wcfs',
PyGoExt('wendelin.wcfs.internal._wcfs',
['wcfs/internal/_wcfs.pyx',
'wcfs/internal/wcfs_virtmem.cpp',
'wcfs/internal/wcfs_watchlink.cpp',
......@@ -290,15 +292,17 @@ setup(
],
extra_compile_args = [
'-std=gnu++11', # not c++11 since we use typeof
]),
],
dsos=['wendelin.bigfile.libvirtmem']),
PyGoExt('wcfs.internal.wcfs_test',
PyGoExt('wendelin.wcfs.internal.wcfs_test',
['wcfs/internal/wcfs_test.pyx']),
Extension('wcfs.internal.io',
Extension('wendelin.wcfs.internal.io',
['wcfs/internal/io.pyx']),
Extension('wcfs.internal.mm',
Extension('wendelin.wcfs.internal.mm',
['wcfs/internal/mm.pyx']),
],
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment