1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-25 23:21:54 +03:00

heimdal-build: Add HEIMDAL_BINARY convenience method.

This commit is contained in:
Jelmer Vernooij 2010-10-04 17:17:00 +02:00
parent e9224c6bd1
commit 3c0a57a99c

View File

@ -166,9 +166,9 @@ def HEIMDAL_LIBRARY(bld, libname, source, deps,
includes='',
cflags='',
vnum=None,
heimdal_autoproto=None,
heimdal_autoproto_options=None,
heimdal_autoproto_private=None,
autoproto=None,
autoproto_options=None,
autoproto_private=None,
is_bundled=True):
'''define a Heimdal library'''
@ -215,17 +215,16 @@ def HEIMDAL_LIBRARY(bld, libname, source, deps,
is_bundled = is_bundled,
)
if heimdal_autoproto is not None:
bld.HEIMDAL_AUTOPROTO(heimdal_autoproto, source,
options=heimdal_autoproto_options)
if heimdal_autoproto_private is not None:
bld.HEIMDAL_AUTOPROTO_PRIVATE(heimdal_autoproto_private, source)
if autoproto is not None:
bld.HEIMDAL_AUTOPROTO(autoproto, source,
options=autoproto_options)
if autoproto_private is not None:
bld.HEIMDAL_AUTOPROTO_PRIVATE(autoproto_private, source)
Build.BuildContext.HEIMDAL_LIBRARY = HEIMDAL_LIBRARY
def HEIMDAL_GENERATOR(bld, name, rule, source='', target='',
group='generators', enabled=True,
vars=None):
group='generators', enabled=True):
'''A generic source generator target'''
if not SET_TARGET_TYPE(bld, name, 'GENERATOR'):
@ -237,7 +236,7 @@ def HEIMDAL_GENERATOR(bld, name, rule, source='', target='',
bld.SET_BUILD_GROUP(group)
t = bld(
rule=rule,
source=bld.EXPAND_VARIABLES(source, vars=vars),
source=source,
target=target,
shell=isinstance(rule, str),
on_results=True,
@ -289,6 +288,63 @@ def HEIMDAL_SUBSYSTEM(bld, modname, source,
Build.BuildContext.HEIMDAL_SUBSYSTEM = HEIMDAL_SUBSYSTEM
def HEIMDAL_BINARY(bld, binname, source,
deps='',
includes='',
ldflags=None,
cflags='',
use_hostcc=False,
use_global_deps=True,
compiler=None,
group='binaries',
local_include=True,
install=True,
install_path=None,
enabled=True):
'''define a Samba binary'''
if not SET_TARGET_TYPE(bld, binname, 'BINARY'):
return
features = 'cc cprogram symlink_bin install_bin'
obj_target = binname + '.objlist'
# first create a target for building the object files for this binary
# by separating in this way, we avoid recompiling the C files
# separately for the install binary and the build binary
bld.SAMBA_SUBSYSTEM(obj_target,
source = source,
deps = deps,
includes = includes,
cflags = cflags,
group = group,
local_include = local_include,
use_hostcc = use_hostcc,
use_global_deps= use_global_deps)
bld.SET_BUILD_GROUP(group)
# the binary itself will depend on that object target
deps = TO_LIST(deps)
deps.append(obj_target)
t = bld(
features = features,
source = [],
target = binname,
samba_cflags = CURRENT_CFLAGS(bld, binname, cflags),
samba_deps = deps,
samba_includes = includes,
local_include = local_include,
top = True,
install_path = None,
samba_install = install
)
Build.BuildContext.HEIMDAL_BINARY = HEIMDAL_BINARY
bld.HEIMDAL_GENERATOR(
name="HEIMDAL_ERRORLIST",
rule="${PYTHON} ${SRC[0].abspath()} ${SRC[1].abspath()} ${SRC[1].parent.abspath(env)}",
@ -515,8 +571,8 @@ bld.HEIMDAL_LIBRARY('roken',
bld.HEIMDAL_LIBRARY('kdc',
source='../heimdal/kdc/default_config.c ../heimdal/kdc/kerberos5.c ../heimdal/kdc/krb5tgs.c ../heimdal/kdc/pkinit.c ../heimdal/kdc/log.c ../heimdal/kdc/misc.c ../heimdal/kdc/kaserver.c ../heimdal/kdc/digest.c ../heimdal/kdc/process.c ../heimdal/kdc/windc.c ../heimdal/kdc/kx509.c',
includes='../heimdal/kdc',
heimdal_autoproto='../heimdal/kdc/kdc-protos.h',
heimdal_autoproto_private='../heimdal/kdc/kdc-private.h',
autoproto='../heimdal/kdc/kdc-protos.h',
autoproto_private='../heimdal/kdc/kdc-private.h',
deps='roken krb5 hdb HEIMDAL_HEIM_ASN1 HEIMDAL_DIGEST_ASN1 HEIMDAL_KX509_ASN1 heimntlm HEIMDAL_HCRYPTO',
)
@ -524,7 +580,7 @@ bld.HEIMDAL_LIBRARY('kdc',
bld.HEIMDAL_LIBRARY('heimntlm',
source='../heimdal/lib/ntlm/ntlm.c',
includes='../heimdal/lib/ntlm',
heimdal_autoproto='../heimdal/lib/ntlm/heimntlm-protos.h',
autoproto='../heimdal/lib/ntlm/heimntlm-protos.h',
deps='roken HEIMDAL_HCRYPTO krb5',
)
@ -542,8 +598,8 @@ bld.HEIMDAL_LIBRARY('hdb',
../heimdal/lib/hdb/mkey.c ../heimdal/lib/hdb/ndbm.c ../heimdal/lib/hdb/hdb_err.c
hdb-glue.c''',
includes='../heimdal/lib/hdb',
heimdal_autoproto='../heimdal/lib/hdb/hdb-protos.h',
heimdal_autoproto_private='../heimdal/lib/hdb/hdb-private.h',
autoproto='../heimdal/lib/hdb/hdb-protos.h',
autoproto_private='../heimdal/lib/hdb/hdb-private.h',
deps='HDB_LDB krb5 HEIMDAL_HDB_KEYS roken HEIMDAL_HCRYPTO com_err HEIMDAL_HDB_ASN1',
)
@ -645,9 +701,9 @@ bld.HEIMDAL_LIBRARY('krb5',
v4_glue.c version.c warn.c krb5_err.c
heim_err.c k524_err.c krb_err.c''') + ' krb5-glue.c',
includes='../heimdal/lib/krb5 ../heimdal/lib/asn1',
heimdal_autoproto='../heimdal/lib/krb5/krb5-protos.h',
heimdal_autoproto_options='-E KRB5_LIB -q -P comment -o',
heimdal_autoproto_private='../heimdal/lib/krb5/krb5-private.h',
autoproto='../heimdal/lib/krb5/krb5-protos.h',
autoproto_options='-E KRB5_LIB -q -P comment -o',
autoproto_private='../heimdal/lib/krb5/krb5-private.h',
cflags = bld.dynconfig_cflags(),
deps='roken HEIMDAL_PKINIT_ASN1 wind HEIMDAL_KRB5_ASN1 hx509 HEIMDAL_HCRYPTO LIBSAMBA-HOSTCONFIG intl com_err',
)
@ -708,7 +764,7 @@ if not bld.CONFIG_SET('USING_SYSTEM_COM_ERR'):
)
# here is the asn1 compiler build rule
bld.SAMBA_BINARY('asn1_compile',
bld.HEIMDAL_BINARY('asn1_compile',
'../heimdal/lib/asn1/main.c ../heimdal/lib/asn1/gen.c ../heimdal/lib/asn1/gen_copy.c ../heimdal/lib/asn1/gen_decode.c ../heimdal/lib/asn1/gen_encode.c ../heimdal/lib/asn1/gen_free.c ../heimdal/lib/asn1/gen_glue.c ../heimdal/lib/asn1/gen_length.c ../heimdal/lib/asn1/gen_seq.c ../heimdal/lib/asn1/gen_template.c ../heimdal/lib/asn1/hash.c ../heimdal/lib/asn1/symbol.c ../heimdal/lib/asn1/asn1parse.c ../heimdal/lib/asn1/lex.c ../heimdal/lib/vers/print_version.c',
use_hostcc=True,
use_global_deps=False,
@ -721,7 +777,7 @@ bld.SAMBA_BINARY('asn1_compile',
if not bld.CONFIG_SET('USING_SYSTEM_COMPILE_ET'):
bld.SAMBA_BINARY('compile_et',
bld.HEIMDAL_BINARY('compile_et',
'../heimdal/lib/vers/print_version.c ../heimdal/lib/com_err/parse.c ../heimdal/lib/com_err/lex.c ../heimdal/lib/com_err/compile_et.c',
use_hostcc=True,
use_global_deps=False,
@ -733,7 +789,7 @@ if not bld.CONFIG_SET('USING_SYSTEM_COMPILE_ET'):
)
bld.env['COMPILE_ET'] = os.path.join(bld.env['BUILD_DIRECTORY'], 'compile_et')
bld.SAMBA_BINARY('samba4kinit',
bld.HEIMDAL_BINARY('samba4kinit',
'../heimdal/kuser/kinit.c ../heimdal/lib/vers/print_version.c',
includes='../heimdal/lib/roken',
deps='krb5 heimntlm',
@ -741,7 +797,7 @@ bld.SAMBA_BINARY('samba4kinit',
)
bld.SAMBA_BINARY('samba4kpasswd',
bld.HEIMDAL_BINARY('samba4kpasswd',
'../heimdal/kpasswd/kpasswd.c ../heimdal/lib/vers/print_version.c',
includes='../heimdal/lib/roken',
deps='krb5 heimntlm',
@ -749,7 +805,7 @@ bld.SAMBA_BINARY('samba4kpasswd',
)
bld.SAMBA_BINARY('rkpty',
bld.HEIMDAL_BINARY('rkpty',
'../heimdal/lib/roken/rkpty.c',
deps='roken OPENPTY',
cflags='-DPACKAGE="Samba"',