code: def conditional(self, condition, requirements):
          
          assert is_iterable_typed(condition, basestring)
          assert is_iterable_typed(requirements, basestring)
          c = string.join(condition, ",")
          if c.find(":") != -1:
              return [c + r for r in requirements]
          else:
              return [c + ":" + r for r in requirements]
docs: Calculates conditional requirements for multiple requirements
          at once. This is a shorthand to be reduce duplication and to
          keep an inline declarative syntax. For example:
  
              lib x : x.cpp : [ conditional <toolset>gcc <variant>debug :
                  <define>DEBUG_EXCEPTION <define>DEBUG_TRACE ] ;