From f51c1470437cb5838179b9c98f2bb884917517d0 Mon Sep 17 00:00:00 2001 From: Ingo Weinhold Date: Fri, 6 Apr 2007 02:39:37 +0000 Subject: [PATCH] Added rules NextID, which returns an numerical ID incremented with each invocation, and NewUniqueTarget, which returns a unique target name. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20597 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- build/jam/MiscRules | 38 +++++++++++++++++++++++++++++++++++--- 1 file changed, 35 insertions(+), 3 deletions(-) diff --git a/build/jam/MiscRules b/build/jam/MiscRules index e711ca8d4e..0246215686 100644 --- a/build/jam/MiscRules +++ b/build/jam/MiscRules @@ -29,7 +29,11 @@ rule SubIncludeGPL SubInclude $(1) ; } } - + + +# pragma mark - MakeLocate variants + + rule MakeLocateCommonPlatform { MakeLocate $(1) : $(COMMON_PLATFORM_LOCATE_TARGET) ; @@ -76,6 +80,13 @@ rule MakeLocateDebug } } + +# pragma mark - Deferred SubIncludes + + +# The variable used to collect the deferred SubIncludes. +HAIKU_DEFERRED_SUB_INCLUDES = ; + rule DeferredSubInclude params { # DeferredSubInclude ; @@ -125,5 +136,26 @@ rule HaikuSubInclude tokens } } -# The variable used to collect the deferred SubIncludes. -HAIKU_DEFERRED_SUB_INCLUDES = ; + +# pragma mark - Unique IDs/targets + + +# private to NextID; incremented with each NextID invocation +HAIKU_NEXT_ID = 0 ; + +rule NextID +{ + # NextID ; + + local result = $(HAIKU_NEXT_ID:J=) ; + HAIKU_NEXT_ID = [ AddNumAbs $(HAIKU_NEXT_ID) : 1 ] ; + return $(result) ; +} + +rule NewUniqueTarget basename +{ + # NewUniqueTarget [ basename ] ; + + local id = [ NextID ] ; + return $(basename[1]:E=_target:G=unique!target)_$(id) ; +}