Ignore:
Timestamp:
May 25, 2007, 5:27:53 AM (18 years ago)
Author:
bird
Message:

multi target explicit rules. partly done.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/gmakenew/file.c

    r910 r921  
    778778  for (d = file->also_make; d != 0; d = d->next)
    779779    d->file->command_state = state;
     780
     781#ifdef CONFIG_WITH_EXPLICIT_MULTITARGET
     782  if (file->multi_head)
     783    {
     784      assert (file == file->multi_head);
     785      for (file = file->multi_head; file != 0; file = file->multi_next)
     786        file->command_state = state;
     787    }
     788#endif
    780789}
    781790
     
    898907  if (!f->is_target)
    899908    puts (_("# Not a target:"));
    900   printf ("%s:%s", f->name, f->double_colon ? ":" : "");
     909#ifdef CONFIG_WITH_EXPLICIT_MULTITARGET
     910  if (f->multi_head)
     911    {
     912      const struct file *f2;
     913      if (f->multi_head == f)
     914        {
     915          int multi_maybe = -1;
     916          assert (!f->multi_maybe);
     917          assert (!f->double_colon);
     918
     919          printf ("%s", f->name);
     920          for (f2 = f->multi_next; f2 != 0; f2 = f2->multi_next)
     921            {
     922              printf (" %s%s", f2->multi_maybe != multi_maybe
     923                      ? f2->multi_maybe ? "+| " : "+ " : "",
     924                      f2->name);
     925              multi_maybe = f2->multi_maybe;
     926            }
     927          putchar (':');
     928        }
     929      else
     930        printf ("%s:%s", f->name, f->double_colon ? ":" : "");
     931    }
     932  else
     933#endif
     934    printf ("%s:%s", f->name, f->double_colon ? ":" : "");
    901935
    902936  /* Print all normal dependencies; note any order-only deps.  */
     
    917951
    918952  putchar ('\n');
     953
     954#ifdef CONFIG_WITH_EXPLICIT_MULTITARGET
     955  if (f->multi_head && f->multi_head != f)
     956    {
     957      const struct file *f2;
     958      fputs (_("#  In multi target list:"), stdout);
     959      for (f2 = f->multi_head; f2 != 0; f2 = f2->multi_next)
     960        printf (" %s%s", f2->name, f == f2 ? "(*)" : "");
     961      putchar ('\n');
     962      if (f->multi_maybe)
     963        puts (_("#  File is an optional multi target member."));
     964    }
     965#endif
    919966
    920967  if (f->precious)
Note: See TracChangeset for help on using the changeset viewer.