# a waf tool to add extension based build patterns for Samba
-import Task
-from TaskGen import extension
-from samba_utils import *
+import Build
from wafsamba import samba_version_file
def write_version_header(task):
'''print version.h contents'''
src = task.inputs[0].srcpath(task.env)
- tgt = task.outputs[0].bldpath(task.env)
- version = samba_version_file(src, task.env.srcdir, env=task.env, is_install=task.env.is_install)
+ version = samba_version_file(src, task.env.srcdir, env=task.env, is_install=task.generator.bld.is_install)
string = str(version)
- f = open(tgt, 'w')
- s = f.write(string)
- f.close()
+ task.outputs[0].write(string)
return 0
-def SAMBA_MKVERSION(bld, target):
+def SAMBA_MKVERSION(bld, target, source='VERSION'):
'''generate the version.h header for Samba'''
# We only force waf to re-generate this file if we are installing,
# git revision) included in the version.
t = bld.SAMBA_GENERATOR('VERSION',
rule=write_version_header,
- source= 'VERSION',
+ source=source,
target=target,
always=bld.is_install)
- t.env.is_install = bld.is_install
Build.BuildContext.SAMBA_MKVERSION = SAMBA_MKVERSION
fp.write("*/\n")
fp.write("\n")
fp.write("#include \"includes.h\"\n")
- fp.write("#include \"build_env.h\"\n")
fp.write("#include \"dynconfig/dynconfig.h\"\n")
fp.write("#include \"lib/cluster_support.h\"\n")
fp.write(" return;\n")
fp.write(" }\n")
fp.write("\n")
- fp.write("#ifdef _BUILD_ENV_H\n")
- fp.write(" /* Output information about the build environment */\n")
- fp.write(" output(screen,\"Build environment:\\n\");\n")
- fp.write(" output(screen,\" Built by: %s@%s\\n\",BUILD_ENV_USER,BUILD_ENV_HOST);\n")
- fp.write(" output(screen,\" Built on: %s\\n\",BUILD_ENV_DATE);\n")
- fp.write("\n")
- fp.write(" output(screen,\" Built using: %s\\n\",BUILD_ENV_COMPILER);\n")
- fp.write(" output(screen,\" Build host: %s\\n\",BUILD_ENV_UNAME);\n")
- fp.write(" output(screen,\" SRCDIR: %s\\n\",BUILD_ENV_SRCDIR);\n")
- fp.write(" output(screen,\" BUILDDIR: %s\\n\",BUILD_ENV_BUILDDIR);\n")
- fp.write("\n")
- fp.write("\n")
- fp.write("#endif\n")
fp.write("\n")
fp.write(" /* Output various paths to files and directories */\n")
fp.write(" output(screen,\"\\nPaths:\\n\");\n")
fp.write(" output(screen, \" sizeof(char): %lu\\n\",(unsigned long)sizeof(char));\n")
fp.write(" output(screen, \" sizeof(int): %lu\\n\",(unsigned long)sizeof(int));\n")
fp.write(" output(screen, \" sizeof(long): %lu\\n\",(unsigned long)sizeof(long));\n")
- fp.write("#if HAVE_LONGLONG\n")
fp.write(" output(screen, \" sizeof(long long): %lu\\n\",(unsigned long)sizeof(long long));\n")
- fp.write("#endif\n")
- fp.write(" output(screen, \" sizeof(uint8): %lu\\n\",(unsigned long)sizeof(uint8));\n")
- fp.write(" output(screen, \" sizeof(uint16): %lu\\n\",(unsigned long)sizeof(uint16));\n")
- fp.write(" output(screen, \" sizeof(uint32): %lu\\n\",(unsigned long)sizeof(uint32));\n")
+ fp.write(" output(screen, \" sizeof(uint8_t): %lu\\n\",(unsigned long)sizeof(uint8_t));\n")
+ fp.write(" output(screen, \" sizeof(uint16_t): %lu\\n\",(unsigned long)sizeof(uint16_t));\n")
+ fp.write(" output(screen, \" sizeof(uint32_t): %lu\\n\",(unsigned long)sizeof(uint32_t));\n")
fp.write(" output(screen, \" sizeof(short): %lu\\n\",(unsigned long)sizeof(short));\n")
fp.write(" output(screen, \" sizeof(void*): %lu\\n\",(unsigned long)sizeof(void*));\n")
fp.write(" output(screen, \" sizeof(size_t): %lu\\n\",(unsigned long)sizeof(size_t));\n")
keys_header_other.append(key)
else:
keys_option_have.append(key)
+ elif key.startswith("static_init_"):
+ l = key.split("(")
+ keys_misc.append(l[0])
else:
keys_misc.append(key)
'''generate the bld_options.c for Samba'''
t = bld.SAMBA_GENERATOR(target,
rule=write_build_options,
- target=target,
- always=True)
+ dep_vars=['defines'],
+ target=target)
Build.BuildContext.SAMBA_BLDOPTIONS = SAMBA_BLDOPTIONS