From 0bda3bae4cd68285e106261ffe79a1da1f778861 Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Thu, 15 Apr 2010 14:43:43 +1000 Subject: build: throw a fatal error for duplicate target declarations We don't want someone to declare two subsystems of the same name but with different source files Pair-Programmed-With: Andrew Bartlett --- buildtools/wafsamba/samba_autoproto.py | 5 ++++- buildtools/wafsamba/samba_utils.py | 8 ++++---- buildtools/wafsamba/wafsamba.py | 10 ---------- 3 files changed, 8 insertions(+), 15 deletions(-) diff --git a/buildtools/wafsamba/samba_autoproto.py b/buildtools/wafsamba/samba_autoproto.py index 2a903d9f1f..edabc7e44c 100644 --- a/buildtools/wafsamba/samba_autoproto.py +++ b/buildtools/wafsamba/samba_autoproto.py @@ -29,8 +29,11 @@ Build.BuildContext.HEIMDAL_AUTOPROTO_PRIVATE = HEIMDAL_AUTOPROTO_PRIVATE def SAMBA_AUTOPROTO(bld, header, source): '''rule for samba prototype generation''' bld.SET_BUILD_GROUP('prototypes') - SET_TARGET_TYPE(bld, header, 'PROTOTYPE') + relpath = os_path_relpath(bld.curdir, bld.srcnode.abspath()) + name = os.path.join(relpath, header) + SET_TARGET_TYPE(bld, name, 'PROTOTYPE') t = bld( + name = name, source = source, target = header, on_results=True, diff --git a/buildtools/wafsamba/samba_utils.py b/buildtools/wafsamba/samba_utils.py index bf051afa3b..94975c6519 100644 --- a/buildtools/wafsamba/samba_utils.py +++ b/buildtools/wafsamba/samba_utils.py @@ -16,10 +16,10 @@ def SET_TARGET_TYPE(ctx, target, value): '''set the target type of a target''' cache = LOCAL_CACHE(ctx, 'TARGET_TYPE') if target in cache and cache[target] != 'EMPTY': - ASSERT(ctx, cache[target] == value, - "Target '%s' re-defined as %s - was %s" % (target, value, cache[target])) - debug("task_gen: Skipping duplicate target %s (curdir=%s)" % (target, ctx.curdir)) - return False + Logs.error("ERROR: Target '%s' in directory %s re-defined as %s - was %s" % (target, + ctx.curdir, + value, cache[target])) + sys.exit(1) LOCAL_CACHE_SET(ctx, 'TARGET_TYPE', target, value) debug("task_gen: Target '%s' created of type '%s' in %s" % (target, value, ctx.curdir)) return True diff --git a/buildtools/wafsamba/wafsamba.py b/buildtools/wafsamba/wafsamba.py index dd9cbd604c..633484bd68 100644 --- a/buildtools/wafsamba/wafsamba.py +++ b/buildtools/wafsamba/wafsamba.py @@ -187,12 +187,6 @@ def SAMBA_LIBRARY(bld, libname, source, if link_name: t.link_name = link_name - if autoproto is not None: - bld.SAMBA_AUTOPROTO(autoproto, source) - - if public_headers is not None: - bld.PUBLIC_HEADERS(public_headers, header_path=header_path) - if pc_files is not None: bld.PKG_CONFIG_FILES(pc_files, vnum=vnum) @@ -278,10 +272,6 @@ def SAMBA_BINARY(bld, binname, source, if subsystem_name is not None: bld.TARGET_ALIAS(subsystem_name, binname) - if autoproto is not None: - bld.SAMBA_AUTOPROTO(autoproto, source) - if public_headers is not None: - bld.PUBLIC_HEADERS(public_headers, header_path=header_path) Build.BuildContext.SAMBA_BINARY = SAMBA_BINARY -- cgit