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

  1. /*    make.h
  2.  *    (c) Copyright 1991 by Ben Eng, All Rights Reserved
  3.  *
  4.  */
  5.  
  6. #include <exec/nodes.h>
  7. #include <exec/lists.h>
  8. #include <intuition/intuition.h>
  9. #include <dos/dos.h>
  10. #include <dos/dosextens.h>
  11. #include <stdio.h>
  12. #include <stdlib.h>
  13. #include <string.h>
  14. #include <stdarg.h>
  15.  
  16. #ifndef DEBUG
  17. #define DEBUG 1
  18. #endif
  19.  
  20. #ifndef MAXPATHNAME
  21. #define MAXPATHNAME    108
  22. #endif
  23.  
  24. struct parameters {
  25.     struct List filelist;
  26.     int MaxLine;    /* maximum line length */
  27.     int verbosity;    /* 0 = silent */
  28.     int log;
  29.     int debug;
  30.     int touch_mode;
  31.     int all_mode;
  32.     int no_builtins;
  33.     int pretend_mode;
  34.     int print_database;
  35.     char *makefile;
  36. };
  37.  
  38. struct globals {
  39.     struct Process *me;
  40.     FILE *logfile;
  41.  
  42.     struct List targetlist;    /* target rules */
  43.     struct List speciallist; /* special rules */
  44.     struct List patternlist; /* pattern rules */
  45.     struct List macrolist;    /* macros */
  46.  
  47.     int builtin_flag;
  48.     int recursion_level;
  49.     BPTR oldcwd;
  50. };
  51.  
  52. struct string_node {
  53.     struct Node node;
  54.     char data[2];
  55. };
  56.  
  57. #define min(a,b)    (((a) < (b)) ? (a) : (b))
  58. #define max(a,b)    (((a) > (b)) ? (a) : (b))
  59.  
  60.  
  61. extern struct parameters Param;
  62. extern struct globals Global;
  63. extern char version_string[];
  64. extern char verdate_string[];
  65. extern char copyright_string[];
  66.  
  67. extern void NewList( struct List * );
  68. extern char *basename( const char * );
  69.  
  70. #if DEBUG
  71. #define debugprintf(l,x) \
  72.     if( Param.debug && Param.verbosity >= (l)) logprintf x ;
  73. #else
  74. #define debugprintf(l,x)
  75. #endif
  76.  
  77. int parse_parameters( int argc, char *argv[] );
  78. void delete_params( void );
  79.  
  80. struct string_node *new_snode( const char *str );
  81. struct string_node *renew_snode( const struct string_node *old, const char *str );
  82. struct string_node *delete_snode( struct string_node *old );
  83. void delete_slist( struct List *list );
  84.  
  85. struct void *for_list( struct List *list, long (*node_fn)(void *));
  86. void attach_list( struct List *newlist, struct List *oldlist );
  87.  
  88. int help( void );
  89.  
  90. /*
  91. int prompt( BPTR tty, const char *str );
  92. void tty_gotoxy( BPTR tty, int x, int y );
  93. void tty_put( BPTR tty, char *str, long outsize );
  94. void tty_puts( BPTR tty, char *str );
  95. void tty_printf( BPTR tty, const char *fmt, ... );
  96. void tty_clear( BPTR tty );
  97. void tty_clear_eol( BPTR tty );
  98. void tty_open_line( BPTR tty );
  99. void tty_normal( BPTR tty );        
  100. void tty_bold( BPTR tty );        
  101. void tty_underline( BPTR tty );
  102. void tty_backspace( BPTR tty );
  103. void tty_scroll_up( BPTR tty, int lines );
  104. void tty_scroll_down( BPTR tty, int lines );
  105.  
  106. int tty_getchar( void );
  107. int hit_a_key( void );
  108. void statusline( const char *s );
  109. int get_string( char *buf, int mlen );
  110. int get_number( char *buf, int mlen );
  111. int get_valid_string( char *buf, int mlen, int (*validate)());
  112. */
  113.  
  114. int open_logfile( void );
  115. void close_logfile( void );
  116. void logfile( char *string );
  117. void logprintf( const char *fmt, ... );
  118.  
  119. long doCommand( char *command, BPTR other );
  120. long xsystem( char *cmd );
  121.  
  122. int input_makefile( const char *makefile );
  123. int make_filename( const char *goalname, int *made );
  124.  
  125. char *find_token( char *line, int tok );
  126. int isemptyline( char *line );
  127. char *parse_strtok( char *dest, char *source, int len, int (*isdelim)( int ));
  128. char *parse_str( char *dest, char *source, int len);
  129. int count_args(unsigned char *string);
  130. char *find_word( char *string, int word );
  131. void strip_trailspace( char *line );
  132. int isnotsuf( int ch );
  133.  
  134. int init_builtins( void );
  135.