mirror of
https://github.com/samba-team/samba.git
synced 2025-12-06 16:23:49 +03:00
python: Build shared python modules for generic use.
This commit is contained in:
@@ -182,7 +182,7 @@ sub check_python($$$)
|
||||
|
||||
$python->{SUBSYSTEM} = "LIBPYTHON";
|
||||
|
||||
check_module($INPUT, $python, $default_ot);
|
||||
check_module($INPUT, $python, ["SHARED_LIBRARY", "STATIC_LIBRARY"]);
|
||||
}
|
||||
|
||||
sub check_binary($$)
|
||||
|
||||
@@ -27,6 +27,7 @@ sub new($$$)
|
||||
$self->{torture_progs} = [];
|
||||
$self->{static_libs} = [];
|
||||
$self->{python_dsos} = [];
|
||||
$self->{python_pys} = [];
|
||||
$self->{shared_libs} = [];
|
||||
$self->{installable_shared_libs} = [];
|
||||
$self->{headers} = [];
|
||||
@@ -345,7 +346,7 @@ sub SharedModule($$)
|
||||
|
||||
push(@{$self->{all_objs}}, "\$($ctx->{TYPE}_$ctx->{NAME}_FULL_OBJ_LIST)");
|
||||
|
||||
if (defined($ctx->{INIT_FUNCTION})) {
|
||||
if (defined($ctx->{INIT_FUNCTION}) and $ctx->{TYPE} ne "PYTHON") {
|
||||
my $init_fn = $ctx->{INIT_FUNCTION_TYPE};
|
||||
$init_fn =~ s/\(\*\)/init_module/;
|
||||
my $proto_fn = $ctx->{INIT_FUNCTION_TYPE};
|
||||
@@ -539,7 +540,7 @@ sub PythonFiles($$)
|
||||
$self->output("$target: $source\n" .
|
||||
"\tmkdir -p \$(builddir)/bin/python\n" .
|
||||
"\tcp $source \$@\n\n");
|
||||
push (@{$self->{python_dsos}}, $target);
|
||||
push (@{$self->{python_pys}}, $target);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -714,6 +715,7 @@ sub write($$)
|
||||
$self->output("STATIC_LIBS = " . array2oneperline($self->{static_libs}) . "\n");
|
||||
$self->output("SHARED_LIBS = " . array2oneperline($self->{shared_libs}) . "\n");
|
||||
$self->output("PYTHON_DSOS = " . array2oneperline($self->{python_dsos}) . "\n");
|
||||
$self->output("PYTHON_PYS = " . array2oneperline($self->{python_pys}) . "\n");
|
||||
$self->output("INSTALLABLE_SHARED_LIBS = " . array2oneperline($self->{installable_shared_libs}) . "\n");
|
||||
$self->output("PUBLIC_HEADERS = " . array2oneperline($self->{headers}) . "\n");
|
||||
$self->output("PC_FILES = " . array2oneperline($self->{pc_files}) . "\n");
|
||||
|
||||
@@ -16,7 +16,7 @@ PRIVATE_DEPENDENCIES = LIBNDR LIBLDB SAMDB CREDENTIALS
|
||||
SWIG_FILE = misc.i
|
||||
|
||||
# Swig extensions
|
||||
swig: pythonmods
|
||||
swig:: pythonmods
|
||||
|
||||
.SUFFIXES: _wrap.c .i
|
||||
|
||||
@@ -28,13 +28,19 @@ realdistclean::
|
||||
@-rm -f bin/python/*
|
||||
# FIXME: Remove _wrap.c files
|
||||
|
||||
pythonmods: $(PYTHON_DSOS)
|
||||
pythonmods:: $(PYTHON_DSOS) $(PYTHON_PYS)
|
||||
|
||||
PYDOCTOR_MODULES=bin/python/ldb.py bin/python/auth.py bin/python/credentials.py bin/python/registry.py bin/python/tdb.py bin/python/security.py bin/python/events.py bin/python/net.py
|
||||
|
||||
pydoctor:: pythonmods
|
||||
LD_LIBRARY_PATH=bin/shared PYTHONPATH=bin/python pydoctor --make-html --docformat=restructuredtext --add-package scripting/python/samba/ $(addprefix --add-module , $(PYDOCTOR_MODULES))
|
||||
|
||||
installpython:: pythonmods
|
||||
@$(SHELL) $(srcdir)/script/installpython.sh \
|
||||
$(INSTALLPERMS) \
|
||||
$(DESTDIR)$(PYTHONDIR) \
|
||||
scripting/python bin/python
|
||||
|
||||
clean::
|
||||
@echo "Removing python modules"
|
||||
@rm -f bin/python/*
|
||||
|
||||
Reference in New Issue
Block a user