1
0
mirror of https://github.com/samba-team/samba.git synced 2025-02-02 09:47:23 +03:00

build: added CHECK_SIZEOF()

This commit is contained in:
Andrew Tridgell 2010-03-07 15:18:05 +11:00
parent 39807fd091
commit f7ed3e544c

View File

@ -27,7 +27,7 @@ def CHECK_HEADER(conf, h, add_headers=True):
@conf
def CHECK_HEADERS(conf, list, add_headers=True):
ret = True
for hdr in list.split():
for hdr in to_list(list):
if not CHECK_HEADER(conf, hdr, add_headers):
ret = False
return ret
@ -35,7 +35,7 @@ def CHECK_HEADERS(conf, list, add_headers=True):
@conf
def CHECK_TYPES(conf, list):
ret = True
for t in list.split():
for t in to_list(list):
if not conf.check(type_name=t, header_name=conf.env.hlist):
ret = False
return ret
@ -58,7 +58,7 @@ def CHECK_TYPE(conf, t, alternate):
def CHECK_VARIABLE(conf, v, define=None, always=False, headers=None):
hdrs=''
if headers is not None:
hlist = headers.split()
hlist = to_list(headers)
else:
hlist = conf.env.hlist
for h in hlist:
@ -73,7 +73,7 @@ def CHECK_VARIABLE(conf, v, define=None, always=False, headers=None):
void *_x; _x=(void *)&%s;
#endif
return 0;
}\n
}
''' % (hdrs, v, v),
execute=0,
msg="Checking for variable %s" % v):
@ -91,7 +91,7 @@ def CHECK_DECLS(conf, vars, reverse=False, headers=None):
When reverse==True then use HAVE_xxx_DECL instead of HAVE_DECL_xxx
'''
ret = True
for v in vars.split():
for v in to_list(vars):
if not reverse:
define='HAVE_DECL_%s' % v.upper()
else:
@ -109,11 +109,35 @@ def CHECK_FUNC(conf, f):
@conf
def CHECK_FUNCS(conf, list):
ret = True
for f in list.split():
for f in to_list(list):
if not CHECK_FUNC(conf, f):
ret = False
return ret
@conf
def CHECK_SIZEOF(conf, vars, headers=None):
hdrs=''
if headers is not None:
hlist = to_list(headers)
else:
hlist = conf.env.hlist
for h in hlist:
hdrs += '#include <%s>\n' % h
for v in to_list(vars):
conf.check(fragment=
'''
%s
int main(void) {
printf("%%u\\n", (unsigned)sizeof(%s));
return 0;
}
''' % (hdrs, v),
execute=1,
define_ret=True,
define_name='SIZEOF_%s' % v.upper(),
quote=False,
msg="Checking size of %s" % v)
#################################################
# return True if a configuration option was found
@ -140,11 +164,11 @@ def CHECK_FUNCS_IN(conf, list, library, mandatory=False, checklibc=False):
# first see if the functions are in libc
if checklibc:
remaining = []
for f in list.split():
for f in to_list(list):
if not CHECK_FUNC(conf, f):
remaining.append(f)
else:
remaining = list.split()
remaining = to_list(list)
if remaining == []:
LOCAL_CACHE_SET(conf, 'EMPTY_TARGETS', library.upper(), True)
@ -192,7 +216,7 @@ def CONFIG_PATH(conf, name, default):
def ADD_CFLAGS(conf, flags):
if not 'EXTRA_CFLAGS' in conf.env:
conf.env['EXTRA_CFLAGS'] = []
conf.env['EXTRA_CFLAGS'].extend(flags.split())
conf.env['EXTRA_CFLAGS'].extend(to_list(flags))
##############################################################
# add some extra include directories to all builds
@ -200,7 +224,7 @@ def ADD_CFLAGS(conf, flags):
def ADD_EXTRA_INCLUDES(conf, includes):
if not 'EXTRA_INCLUDES' in conf.env:
conf.env['EXTRA_INCLUDES'] = []
conf.env['EXTRA_INCLUDES'].extend(includes.split())
conf.env['EXTRA_INCLUDES'].extend(to_list(includes))
##############################################################
@ -210,6 +234,6 @@ def CURRENT_CFLAGS(bld, cflags):
list = []
else:
list = bld.env['EXTRA_CFLAGS'];
ret = cflags.split()
ret = to_list(cflags)
ret.extend(list)
return ret