setup.py
来自「samba-3.0.22.tar.gz 编译smb服务器的源码」· Python 代码 · 共 215 行
PY
215 行
# -*- mode: python -*-## Unix SMB/CIFS implementation.# Module packaging setup for Samba python extensions## Copyright (C) Tim Potter, 2002-2003# Copyright (C) Martin Pool, 2002## This program is free software; you can redistribute it and/or modify# it under the terms of the GNU General Public License as published by# the Free Software Foundation; either version 2 of the License, or# (at your option) any later version.# # This program is distributed in the hope that it will be useful,# but WITHOUT ANY WARRANTY; without even the implied warranty of# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the# GNU General Public License for more details.# # You should have received a copy of the GNU General Public License# along with this program; if not, write to the Free Software# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.#from distutils.core import setupfrom distutils.extension import Extensionimport sys, string, os# The Makefile passes in environment variable $PYTHON_OBJ as being the# list of Samba objects. This kind of goes against the distutils.cmd# method of adding setup commands and will also confuse people who are# familiar with the python Distutils module.samba_objs = os.environ.get("PYTHON_OBJS", "")samba_cflags = os.environ.get("PYTHON_CFLAGS", "")samba_srcdir = os.environ.get("SRCDIR", "")compiler = os.environ.get("CC", "")# These variables are filled in by configuresamba_libs = os.environ.get("LIBS", "")obj_list = string.split(samba_objs)# Unfortunately the samba_libs variable contains both shared libraries# and linker flags. The python distutils doesn't like this so we have# to split $samba_libs into a flags component and a library component.libraries = []library_dirs = []next_is_path = 0next_is_flag = 0for lib in string.split(samba_libs): if next_is_path != 0: library_dirs.append(lib); next_is_path = 0; elif next_is_flag != 0: next_is_flag = 0; elif lib == "-Wl,-rpath": next_is_path = 1; elif lib[0:2] == ("-l"): libraries.append(lib[2:]) elif lib[0:8] == ("-pthread"): pass # Skip linker flags elif lib[0:2] == "-L": library_dirs.append(lib[2:]) elif lib[0:2] in ("-W","-s"): pass # Skip linker flags elif lib[0:2] == "-z": next_is_flag = 1 # Skip linker flags else: print "Unknown entry '%s' in $LIBS variable passed to setup.py" % lib sys.exit(1)flags_list = string.split(samba_cflags)# Invoke distutils.setupsetup( # Overview information name = "Samba Python Extensions", version = "0.1", author = "Tim Potter", author_email = "tpot@samba.org", license = "GPL", # Get the "samba" directory of Python source. At the moment this # just contains the __init__ file that makes it work as a # subpackage. This is needed even though everything else is an # extension module. package_dir = {"samba": os.path.join(samba_srcdir, "python", "samba")}, packages = ["samba"], # Module list ext_package = "samba", ext_modules = [ # SPOOLSS pipe module Extension(name = "spoolss", sources = [samba_srcdir + "python/py_spoolss.c", samba_srcdir + "python/py_common.c", samba_srcdir + "python/py_conv.c", samba_srcdir + "python/py_ntsec.c", samba_srcdir + "python/py_spoolss_common.c", samba_srcdir + "python/py_spoolss_forms.c", samba_srcdir + "python/py_spoolss_forms_conv.c", samba_srcdir + "python/py_spoolss_drivers.c", samba_srcdir + "python/py_spoolss_drivers_conv.c", samba_srcdir + "python/py_spoolss_printers.c", samba_srcdir + "python/py_spoolss_printers_conv.c", samba_srcdir + "python/py_spoolss_printerdata.c", samba_srcdir + "python/py_spoolss_ports.c", samba_srcdir + "python/py_spoolss_ports_conv.c", samba_srcdir + "python/py_spoolss_jobs.c", samba_srcdir + "python/py_spoolss_jobs_conv.c", ], libraries = libraries, library_dirs = ["/usr/kerberos/lib"] + library_dirs, extra_compile_args = flags_list, extra_objects = obj_list), # LSA pipe module Extension(name = "lsa", sources = [samba_srcdir + "python/py_lsa.c", samba_srcdir + "python/py_common.c", samba_srcdir + "python/py_ntsec.c"], libraries = libraries, library_dirs = ["/usr/kerberos/lib"] + library_dirs, extra_compile_args = flags_list, extra_objects = obj_list), # SAMR pipe module Extension(name = "samr", sources = [samba_srcdir + "python/py_samr.c", samba_srcdir + "python/py_conv.c", samba_srcdir + "python/py_samr_conv.c", samba_srcdir + "python/py_common.c"], libraries = libraries, library_dirs = ["/usr/kerberos/lib"] + library_dirs, extra_compile_args = flags_list, extra_objects = obj_list), # winbind client module Extension(name = "winbind", sources = [samba_srcdir + "python/py_winbind.c", samba_srcdir + "python/py_winbind_conv.c", samba_srcdir + "python/py_conv.c", samba_srcdir + "python/py_common.c"], libraries = libraries, library_dirs = ["/usr/kerberos/lib"] + library_dirs, extra_compile_args = flags_list, extra_objects = obj_list), # WINREG pipe module Extension(name = "winreg", sources = [samba_srcdir + "python/py_winreg.c", samba_srcdir + "python/py_common.c"], libraries = libraries, library_dirs = ["/usr/kerberos/lib"] + library_dirs, extra_compile_args = flags_list, extra_objects = obj_list), # SRVSVC pipe module Extension(name = "srvsvc", sources = [samba_srcdir + "python/py_srvsvc.c", samba_srcdir + "python/py_conv.c", samba_srcdir + "python/py_srvsvc_conv.c", samba_srcdir + "python/py_common.c"], libraries = libraries, library_dirs = ["/usr/kerberos/lib"] + library_dirs, extra_compile_args = flags_list, extra_objects = obj_list), # tdb module Extension(name = "tdb", sources = [samba_srcdir + "python/py_tdb.c"], libraries = libraries, library_dirs = ["/usr/kerberos/lib"] + library_dirs, extra_compile_args = flags_list, extra_objects = obj_list), # libsmb module Extension(name = "smb", sources = [samba_srcdir + "python/py_smb.c", samba_srcdir + "python/py_common.c", samba_srcdir + "python/py_ntsec.c"], libraries = libraries, library_dirs = ["/usr/kerberos/lib"] + library_dirs, extra_compile_args = flags_list, extra_objects = obj_list), # tdbpack/unpack extensions. Does not actually link to any Samba # code, although it implements a compatible data format. Extension(name = "tdbpack", sources = [os.path.join(samba_srcdir, "python", "py_tdbpack.c")], extra_compile_args = ["-I."]) ],)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?