VirtualBox

Changeset 1948 in kBuild for trunk


Ignore:
Timestamp:
Oct 26, 2008 4:15:46 AM (16 years ago)
Author:
bird
Message:

kmk: Fixed CONFIG_WITH_LAZY_DEPS_VARS bug. Files with multiple double colon rules cannot be handled lazily in any easy way.

Location:
trunk/src/kmk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/kmk/commands.c

    r1942 r1948  
    183183#endif /* CONFIG_WITH_RDONLY_VARIABLE_VALUE */
    184184
    185 #ifndef CONFIG_WITH_LAZY_DEPS_VARS
    186185  /* Compute the values for $^, $+, $?, and $|.  */
    187 
     186#ifdef CONFIG_WITH_LAZY_DEPS_VARS
     187  if (   file->double_colon
     188      && (   file->double_colon != file
     189          || file->last != file))
     190#endif
    188191  {
    189192    static char *plus_value=0, *bar_value=0, *qmark_value=0;
     
    325328    DEFINE_VARIABLE ("|", 1, bar_value);
    326329  }
    327 
    328 #else  /* CONFIG_WITH_LAZY_DEPS_VARS */
    329 
    330   /* Make a copy of the current dependency chain for later use in
    331      potential $(dep-pluss $@) calls.  Then drop duplicate deps.  */
    332 
    333   /* assert (file->org_deps == NULL); - FIXME? */
    334   free_dep_chain (file->org_deps);
    335   file->org_deps = copy_dep_chain (file->deps);
    336 
    337   uniquize_deps (file->deps);
    338 
     330#ifdef CONFIG_WITH_LAZY_DEPS_VARS
     331  else
     332    {
     333      /* Make a copy of the current dependency chain for later use in
     334         potential $(dep-pluss $@) calls.  Then drop duplicate deps.  */
     335
     336      /* assert (file->org_deps == NULL); - FIXME? */
     337      free_dep_chain (file->org_deps);
     338      file->org_deps = copy_dep_chain (file->deps);
     339
     340      uniquize_deps (file->deps);
     341   }
    339342#endif /* CONFIG_WITH_LAZY_DEPS_VARS */
    340343#undef  DEFINE_VARIABLE
  • trunk/src/kmk/function.c

    r1935 r1948  
    23022302      struct dep *d;
    23032303
     2304      if (   file->double_colon
     2305          && (   file->double_colon != file
     2306              || file->last != file))
     2307          error (NILF, _("$(%s ) cannot be used on files with multiple double colon rules like `%s'\n"),
     2308                 funcname, file->name);
     2309
    23042310      if (idx == 0 /* all */)
    23052311        {
     
    24272433      struct dep *d;
    24282434
     2435      if (   file->double_colon
     2436          && (   file->double_colon != file
     2437              || file->last != file))
     2438          error (NILF, _("$(%s ) cannot be used on files with multiple double colon rules like `%s'\n"),
     2439                 funcname, file->name);
     2440
    24292441      if (idx == 0 /* all */)
    24302442        {
     
    25512563      struct dep *deps = file->deps;
    25522564      struct dep *d;
     2565
     2566      if (   file->double_colon
     2567          && (   file->double_colon != file
     2568              || file->last != file))
     2569          error (NILF, _("$(%s ) cannot be used on files with multiple double colon rules like `%s'\n"),
     2570                 funcname, file->name);
    25532571
    25542572      if (idx == 0 /* all */)
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette