#!/usr/bin/env python
-import string, Logs, Utils, Options, sys, Build, os, intltool, optparse, textwrap
+import string, Logs, Utils, Options, Build, os, optparse, textwrap
from samba_utils import EXPAND_VARIABLES, os_path_relpath
class SambaIndentedHelpFormatter (optparse.IndentedHelpFormatter):
'FHS-PATH': '${PYTHONARCHDIR}',
'OVERWRITE': True,
},
- 'MODULESDIR' : {
- 'STD-PATH': '${MODULESDIR}',
- 'FHS-PATH': '${MODULESDIR}/samba',
+ 'PERL_LIB_INSTALL_DIR' : {
+ 'STD-PATH': '${PERL_LIB_INSTALL_DIR}',
+ 'FHS-PATH': '${PERL_LIB_INSTALL_DIR}',
+ 'OVERWRITE': True,
+ },
+ 'PERL_ARCH_INSTALL_DIR' : {
+ 'STD-PATH': '${PERL_ARCH_INSTALL_DIR}',
+ 'FHS-PATH': '${PERL_ARCH_INSTALL_DIR}',
'OVERWRITE': True,
},
'INCLUDEDIR' : {
'STD-PATH': '${LIBDIR}/pkgconfig',
'FHS-PATH': '${LIBDIR}/pkgconfig',
},
- 'SWATDIR' : {
- 'STD-PATH': '${DATADIR}/swat',
- 'FHS-PATH': '${DATADIR}/samba/swat',
- },
'CODEPAGEDIR' : {
'STD-PATH': '${DATADIR}/codepages',
'FHS-PATH': '${DATADIR}/samba/codepages',
},
- 'PAMMODULESDIR' : {
+ 'PRIVATELIBDIR' : {
+ 'STD-PATH': '${LIBDIR}/private',
+ 'FHS-PATH': '${LIBDIR}/samba',
+ 'OPTION': '--with-privatelibdir',
+ 'HELPTEXT': 'Which directory to use for private Samba libraries',
+ 'OVERWRITE': True,
+ },
+ 'MODULESDIR' : {
'STD-PATH': '${LIBDIR}',
- 'FHS-PATH': '${LIBDIR}',
+ 'FHS-PATH': '${LIBDIR}/samba',
+ 'OPTION': '--with-modulesdir',
+ 'HELPTEXT': 'Which directory to use for Samba modules',
+ 'OVERWRITE': True,
+ },
+ 'PAMMODULESDIR' : {
+ 'STD-PATH': '${LIBDIR}/security',
+ 'FHS-PATH': '${LIBDIR}/security',
'OPTION': '--with-pammodulesdir',
'HELPTEXT': 'Which directory to use for PAM modules',
},
},
'STATEDIR' : {
'STD-PATH': '${LOCALSTATEDIR}/locks',
- 'FHS-PATH': '${LOCALSTATEDIR}/lib/samba/',
+ 'FHS-PATH': '${LOCALSTATEDIR}/lib/samba',
'OPTION': '--with-statedir',
'HELPTEXT': 'Where to put persistent state files',
},
'DELAY': True,
},
'NTP_SIGND_SOCKET_DIR' : {
- 'STD-PATH': '${SOCKET_DIR}/ntp_signd',
- 'FHS-PATH': '${SOCKET_DIR}/ntp_signd',
+ 'STD-PATH': '${PRIVILEGED_SOCKET_DIR}/ntp_signd',
+ 'FHS-PATH': '${PRIVILEGED_SOCKET_DIR}/ntp_signd',
'DELAY': True,
},
'NCALRPCDIR' : {
opt.parser.formatter = SambaIndentedHelpFormatter()
opt.parser.formatter.width=Utils.get_term_cols()
+ for k in ('--with-privatelibdir', '--with-modulesdir'):
+ option = opt.parser.get_option(k)
+ if option:
+ opt.parser.remove_option(k)
+ del opt.parser.defaults['PRIVATELIBDIR']
+ del opt.parser.defaults['MODULESDIR']
+
# get all the basic GNU options from the gnu_dirs tool
opt_group=opt.add_option_group('Samba-specific directory layout','')
fhs_help = "Use FHS-compliant paths (default no)\n"
fhs_help += "You should consider using this together with:\n"
- fhs_help += "--prefix=/usr --sysconfdir=/etc --locatestatedir=/var"
+ fhs_help += "--prefix=/usr --sysconfdir=/etc --localstatedir=/var"
opt_group.add_option('--enable-fhs', help=fhs_help,
action="store_true", dest='ENABLE_FHS', default=False)
conf.start_msg("Dynconfig[%s]: " % (varname))
conf.end_msg("'%s'" % (value), 'GREEN')
-def dynconfig_cflags(bld, list=None):
- '''work out the extra CFLAGS for dynconfig.c'''
- cflags = []
- # override some paths when running from the build directory
+def get_override(bld):
override = { 'MODULESDIR' : 'bin/modules',
'PYTHONDIR' : 'bin/python',
'PYTHONARCHDIR' : 'bin/python',
- 'CODEPAGEDIR' : os.path.join(bld.env.srcdir, 'codepages'),
- 'SCRIPTSBINDIR' : os.path.join(bld.env.srcdir, 'source4/scripting/bin'),
- 'SETUPDIR' : os.path.join(bld.env.srcdir, 'source4/setup') }
+ 'BINDIR' : 'bin',
+ 'SBINDIR' : 'bin',
+ 'CODEPAGEDIR' : 'codepages',
+ 'SCRIPTSBINDIR' : 'source4/scripting/bin',
+ 'SETUPDIR' : 'source4/setup'
+ }
+ return override
+
+def dynconfig_cflags(bld, list=None):
+ '''work out the extra CFLAGS for dynconfig.c'''
+ cflags = []
for varname in dynconfig.keys():
if list and not varname in list:
continue
value = bld.env[varname]
- if not Options.is_install:
+ if not bld.is_install:
+ override = get_override(bld)
if varname in override:
- value = os.path.join(os.getcwd(), override[varname])
+ value = os.path.join(bld.env.srcdir, override[varname])
cflags.append('-D%s="%s"' % (varname, value))
return cflags
Build.BuildContext.dynconfig_cflags = dynconfig_cflags
+def dynconfig_varnames(bld, list=None):
+ '''work out the dynconfig variables'''
+ varnames = []
+ for varname in dynconfig.keys():
+ if list and not varname in list:
+ continue
+ varnames.append(varname)
+ return varnames
+Build.BuildContext.dynconfig_varnames = dynconfig_varnames
+
+def pathconfig_entities(bld, list=None):
+ '''work out the extra entities for the docs'''
+ entities = []
+ for varname in dynconfig.keys():
+ if list and not varname in list:
+ continue
+ value = bld.env[varname]
+ if not bld.is_install:
+ override = get_override(bld)
+ if varname in override:
+ value = os.path.join(bld.env.srcdir, override[varname])
+ entities.append("<!ENTITY pathconfig.%s '%s'>" % (varname, value))
+ return entities
+Build.BuildContext.pathconfig_entities = pathconfig_entities
+
def build(bld):
cflags = bld.dynconfig_cflags()
version_header = 'version.h'
- if not os.getenv('TOPLEVEL_BUILD'):
- version_header = 'include/version.h'
bld.SAMBA_SUBSYSTEM('DYNCONFIG',
'dynconfig.c',
- deps='replace talloc',
+ deps='replace',
public_headers=os_path_relpath(os.path.join(Options.launch_dir, version_header), bld.curdir),
header_path='samba',
cflags=cflags)