home *** CD-ROM | disk | FTP | other *** search
/ Frozen Fish 1: Amiga / FrozenFish-Apr94.iso / bbs / alib / d5xx / d523 / bmake.lha / BMake / source.lzh / dumprules.c < prev    next >
C/C++ Source or Header  |  1991-07-07  |  2KB  |  101 lines

  1. /*    dumprules.c
  2.  *    (c) Copyright 1991 by Ben Eng, All Rights Reserved
  3.  *
  4.  */
  5.  
  6. #include "make.h"
  7. #include "depend.h"
  8.  
  9. #if DEBUG
  10.  
  11. void
  12. dump_macros( struct List *mlist )
  13. {
  14.     struct macro *mac;
  15.  
  16.     debugprintf( 2,( "** Macros **\n" ));
  17.  
  18.     for( mac = mlist->lh_Head; mac->node.ln_Succ; mac =
  19.         mac->node.ln_Succ ) {
  20.         logprintf( "%s %s %s\n", mac->name,
  21.             (mac->flags & MF_SIMPLE) ? ":=" : "=", mac->expansion );
  22.     }
  23.     logprintf( "\n" );
  24. }
  25.  
  26. static void
  27. dump_dependencies( struct List *dlist )
  28. {
  29.     struct depend *dep;
  30.  
  31.     for( dep = dlist->lh_Head; dep->node.ln_Succ; dep =
  32.         dep->node.ln_Succ ) {
  33.         logprintf( " %s", dep->name );
  34.     }
  35.     logprintf( "\n" );
  36. }
  37.  
  38. static void
  39. dump_commands( struct List *clist )
  40. {
  41.     struct command *cmd;
  42.  
  43.     for( cmd = clist->lh_Head; cmd->node.ln_Succ; cmd =
  44.         cmd->node.ln_Succ ) {
  45.         logprintf( "\t%s\n", cmd->cmd );
  46.     }
  47. }
  48.  
  49. void
  50. dump_targets( struct List *tlist )
  51. {
  52.     struct target *targ;
  53.  
  54.     debugprintf( 2, ( "** Target Rules **\n" ));
  55.  
  56.     for( targ = tlist->lh_Head; targ->node.ln_Succ; targ =
  57.         targ->node.ln_Succ ) {
  58.         logprintf( "\n%s", targ->name );
  59.         if( targ->flags & TF_BUILTIN ) logprintf( " [BUILTIN]" );
  60.         if( targ->flags & TF_PHONY ) logprintf( " [PHONY]" );
  61.         if( targ->flags & TF_ALWAYS ) logprintf( " [ALWAYS]" );
  62.         if( targ->flags & TF_NEVER ) logprintf( " [NEVER]" );
  63.         if( targ->flags & TF_ONCE ) logprintf( " [ONCE]" );
  64.         logprintf( ":" );
  65.         dump_dependencies( &targ->dependlist );
  66.         if( targ->flags & TF_OWNER )
  67.             dump_commands( &targ->commandlist );
  68.         else
  69.             dump_commands( targ->alternate );
  70.     }
  71. }
  72.  
  73. void
  74. dump_patternrules( struct List *plist )
  75. {
  76.     struct patternrule *pr;
  77.  
  78.     debugprintf( 2, ( "** Pattern Rules **\n" ));
  79.  
  80.     for( pr = plist->lh_Head; pr->node.ln_Succ; pr =
  81.         pr->node.ln_Succ ) {
  82.         logprintf( "\n%s : %s\n", pr->tar_pat, pr->dep_pat );
  83.         if( pr->targ->flags & TF_OWNER )
  84.             dump_commands( &pr->targ->commandlist );
  85.         else
  86.             dump_commands( pr->targ->alternate );
  87.     }
  88. }
  89.  
  90.  
  91. void
  92. dump_all( void )
  93. {
  94.     debugprintf( 2, ("\n** Debug output for rules ** \n" ));
  95.     dump_macros( &Global.macrolist );
  96.     dump_patternrules( &Global.patternlist );
  97.     dump_targets( &Global.targetlist );    
  98. }
  99.  
  100. #endif
  101.