home *** CD-ROM | disk | FTP | other *** search
/ Club Amiga de Montreal - CAM / CAM_CD_1.iso / files / 529b.lha / BMake_v1.1 / make.h < prev    next >
C/C++ Source or Header  |  1991-07-02  |  3KB  |  134 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 copyright_string[];
  65.  
  66. extern void NewList( struct List * );
  67. extern char *basename( const char * );
  68.  
  69. #if DEBUG
  70. #define debugprintf(l,x) \
  71.     if( Param.debug && Param.verbosity >= (l)) logprintf x ;
  72. #else
  73. #define debugprintf(l,x)
  74. #endif
  75.  
  76. int parse_parameters( int argc, char *argv[] );
  77. void delete_params( void );
  78.  
  79. struct string_node *new_snode( const char *str );
  80. struct string_node *renew_snode( const struct string_node *old, const char *str );
  81. struct string_node *delete_snode( struct string_node *old );
  82. void delete_slist( struct List *list );
  83.  
  84. struct void *for_list( struct List *list, long (*node_fn)(void *));
  85. void attach_list( struct List *newlist, struct List *oldlist );
  86.  
  87. int help( void );
  88.  
  89. /*
  90. int prompt( BPTR tty, const char *str );
  91. void tty_gotoxy( BPTR tty, int x, int y );
  92. void tty_put( BPTR tty, char *str, long outsize );
  93. void tty_puts( BPTR tty, char *str );
  94. void tty_printf( BPTR tty, const char *fmt, ... );
  95. void tty_clear( BPTR tty );
  96. void tty_clear_eol( BPTR tty );
  97. void tty_open_line( BPTR tty );
  98. void tty_normal( BPTR tty );        
  99. void tty_bold( BPTR tty );        
  100. void tty_underline( BPTR tty );
  101. void tty_backspace( BPTR tty );
  102. void tty_scroll_up( BPTR tty, int lines );
  103. void tty_scroll_down( BPTR tty, int lines );
  104.  
  105. int tty_getchar( void );
  106. int hit_a_key( void );
  107. void statusline( const char *s );
  108. int get_string( char *buf, int mlen );
  109. int get_number( char *buf, int mlen );
  110. int get_valid_string( char *buf, int mlen, int (*validate)());
  111. */
  112.  
  113. int open_logfile( void );
  114. void close_logfile( void );
  115. void logfile( char *string );
  116. void logprintf( const char *fmt, ... );
  117.  
  118. long doCommand( char *command, BPTR other );
  119. long xsystem( char *cmd );
  120.  
  121. int input_makefile( const char *makefile );
  122. int make_filename( const char *goalname, int *made );
  123.  
  124. char *find_token( char *line, int tok );
  125. int isemptyline( char *line );
  126. char *parse_strtok( char *dest, char *source, int len, int (*isdelim)( int ));
  127. char *parse_str( char *dest, char *source, int len);
  128. int count_args(unsigned char *string);
  129. char *find_word( char *string, int word );
  130. void strip_trailspace( char *line );
  131. int isnotsuf( int ch );
  132.  
  133. int init_builtins( void );
  134.