-[BINARY::smbpython]
-PRIVATE_DEPENDENCIES = LIBPYTHON
-OBJ_FILES = smbpython.o
-
[SUBSYSTEM::LIBPYTHON]
PUBLIC_DEPENDENCIES = EXT_LIB_PYTHON
+PRIVATE_DEPENDENCIES = PYTALLOC
INIT_FUNCTION_SENTINEL = { NULL, NULL }
-OBJ_FILES = modules.o pytalloc.o
+
+LIBPYTHON_OBJ_FILES = $(addprefix $(pyscriptsrcdir)/, modules.o)
+
+[SUBSYSTEM::PYTALLOC]
+PUBLIC_DEPENDENCIES = EXT_LIB_PYTHON LIBTALLOC
+
+PYTALLOC_OBJ_FILES = ../lib/talloc/pytalloc.o
[PYTHON::python_uuid]
PRIVATE_DEPENDENCIES = LIBNDR
-OBJ_FILES = uuidmodule.o
-[PYTHON::python_misc]
-PRIVATE_DEPENDENCIES = LIBNDR LIBLDB SAMDB CREDENTIALS
-SWIG_FILE = misc.i
+python_uuid_OBJ_FILES = $(pyscriptsrcdir)/uuidmodule.o
-# Swig extensions
-swig:: pythonmods
+[PYTHON::python__glue]
+LIBRARY_REALNAME = samba/_glue.$(SHLIBEXT)
+PRIVATE_DEPENDENCIES = LIBNDR LIBLDB SAMDB CREDENTIALS pyldb python_dcerpc_misc python_dcerpc_security pyauth pyldb_util pyparam_util
-.SUFFIXES: _wrap.c .i
+python__glue_OBJ_FILES = $(pyscriptsrcdir)/pyglue.o
-.i_wrap.c:
- [ "$(SWIG)" == "no" ] || $(SWIG) -O -Wall -I$(srcdir)/scripting/swig -python -keyword $<
+$(python__glue_OBJ_FILES): CFLAGS+=-I$(ldbsrcdir)
-realdistclean::
- @echo "Removing SWIG output files"
- # FIXME: Remove _wrap.c files
+_PY_FILES = $(shell find $(pyscriptsrcdir)/samba -type f -name "*.py")
-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
+$(eval $(foreach pyfile, $(_PY_FILES),$(call python_py_module_template,$(patsubst $(pyscriptsrcdir)/%,%,$(pyfile)),$(pyfile))))
+PYDOCTOR = pydoctor
+PYDOCTOR_OPTIONS = --project-name Samba --project-url http://www.samba.org/ \
+ --make-html
pydoctor:: pythonmods
- LD_LIBRARY_PATH=bin/shared PYTHONPATH=bin/python pydoctor --project-name=Samba --make-html --docformat=restructuredtext --add-package scripting/python/samba/ $(addprefix --add-module , $(PYDOCTOR_MODULES))
+ LD_LIBRARY_PATH=bin/shared PYTHONPATH=$(pythonbuilddir) pydoctor --project-name=Samba --project-url=http://www.samba.org/ --make-html --docformat=restructuredtext $(addprefix --add-package $(pythonbuilddir)/, samba)
+
+install:: installpython
+
+PYFLAKES = pyflakes
-bin/python/%.py:
- mkdir -p $(@D)
- cp $< $@
+pyflakes::
+ $(PYFLAKES) $(pyscriptsrcdir)/samba
-installpython:: pythonmods
- @$(SHELL) $(srcdir)/script/installpython.sh \
- $(INSTALLPERMS) \
- $(DESTDIR)$(PYTHONDIR) \
- scripting/python bin/python
+PYLINT = pylint
-clean::
- @echo "Removing python modules"
- @rm -rf bin/python/*
+pylint:: pythonmods
+ PYTHONPATH=$(pyscriptsrcdir) $(PYLINT) -f parseable samba