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

.

parent 72308431
...@@ -40,6 +40,7 @@ all : pyext wcfs/wcfs ...@@ -40,6 +40,7 @@ all : pyext wcfs/wcfs
ccan_config := 3rdparty/ccan/config.h ccan_config := 3rdparty/ccan/config.h
pyext : $(ccan_config) FORCE pyext : $(ccan_config) FORCE
$(PYTHON) setup.py build_dso --inplace
$(PYTHON) setup.py ll_build_ext --inplace $(PYTHON) setup.py ll_build_ext --inplace
wcfs/wcfs: FORCE wcfs/wcfs: FORCE
......
...@@ -17,8 +17,8 @@ ...@@ -17,8 +17,8 @@
# #
# See COPYING file for full licensing terms. # See COPYING file for full licensing terms.
# See https://www.nexedi.com/licensing for rationale and options. # 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 golang.pyx.build import setup, DSO, Extension as PyGoExt, build_ext as _build_ext
from setuptools_dso import DSO, Extension from setuptools_dso import Extension
from setuptools import Command, find_packages from setuptools import Command, find_packages
from setuptools.command.build_py import build_py as _build_py from setuptools.command.build_py import build_py as _build_py
from pkg_resources import working_set, EntryPoint from pkg_resources import working_set, EntryPoint
...@@ -29,58 +29,26 @@ import os ...@@ -29,58 +29,26 @@ import os
import sys 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 = Extension('wendelin.bigfile._bigfile',
_bigfile = PyGoExt('wendelin.bigfile._bigfile', _bigfile = PyGoExt('wendelin.bigfile._bigfile',
sources = [ sources = [
'bigfile/_bigfile.c', 'bigfile/_bigfile.c',
# TODO split -> libvirtmem ## TODO split -> libvirtmem
'bigfile/pagefault.c', #'bigfile/pagefault.c',
'bigfile/pagemap.c', #'bigfile/pagemap.c',
'bigfile/ram.c', #'bigfile/ram.c',
'bigfile/ram_shmfs.c', #'bigfile/ram_shmfs.c',
'bigfile/ram_hugetlbfs.c', #'bigfile/ram_hugetlbfs.c',
'bigfile/virtmem.c', #'bigfile/virtmem.c',
'lib/bug.c', #'lib/bug.c',
'lib/utils.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_dirs = [
'./include', './include',
...@@ -110,7 +78,7 @@ _bigfile = PyGoExt('wendelin.bigfile._bigfile', ...@@ -110,7 +78,7 @@ _bigfile = PyGoExt('wendelin.bigfile._bigfile',
# '-Wl,--no-undefined', # check DSO for undefined symbols at link time # '-Wl,--no-undefined', # check DSO for undefined symbols at link time
#] #]
#dsos = ['wendelin.bigfile.libvirtmem'], dsos = ['wendelin.bigfile.libvirtmem'],
) )
...@@ -273,11 +241,45 @@ setup( ...@@ -273,11 +241,45 @@ setup(
keywords = 'bigdata out-of-core numpy virtual-memory', 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 = [ ext_modules = [
_bigfile, _bigfile,
PyGoExt('wcfs.internal._wcfs', PyGoExt('wendelin.wcfs.internal._wcfs',
['wcfs/internal/_wcfs.pyx', ['wcfs/internal/_wcfs.pyx',
'wcfs/internal/wcfs_virtmem.cpp', 'wcfs/internal/wcfs_virtmem.cpp',
'wcfs/internal/wcfs_watchlink.cpp', 'wcfs/internal/wcfs_watchlink.cpp',
...@@ -290,15 +292,17 @@ setup( ...@@ -290,15 +292,17 @@ setup(
], ],
extra_compile_args = [ extra_compile_args = [
'-std=gnu++11', # not c++11 since we use typeof '-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']), ['wcfs/internal/wcfs_test.pyx']),
Extension('wcfs.internal.io', Extension('wendelin.wcfs.internal.io',
['wcfs/internal/io.pyx']), ['wcfs/internal/io.pyx']),
Extension('wcfs.internal.mm', Extension('wendelin.wcfs.internal.mm',
['wcfs/internal/mm.pyx']), ['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