home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 11 Util / 11-Util.zip / PAMAKE18.ZIP / H.H < prev    next >
C/C++ Source or Header  |  1989-09-30  |  8KB  |  204 lines

  1. /*************************************************************************
  2. |                                                                        |
  3. |   H.H                                                         30.09.89 |
  4. |   PAMAKE Utility:  header file                                         |
  5. |                                                                        |
  6. *************************************************************************/
  7.  
  8. #define uchar       unsigned char
  9. #define bool        uchar
  10. #define TRUE        (1)
  11. #define FALSE       (0)
  12. #define DEFN1       "makefile"              /*  Default names  */
  13. #define LIFNAME     "TEMP_LIF.TMP"
  14. #ifdef  VMS
  15. #define LZ          (4096)                  /*  Line size  */
  16. #else
  17. #define LZ          (1024)                  /*  Line size  */
  18. #endif
  19. #define DOLLAR      1                       /* special dollar processing */
  20.  
  21. #ifdef VMS
  22. #define PXNORMAL 1          /* normal exit() arg */
  23. #define PXERROR  0          /* error exit() arg */
  24. #define unlink(filename) remove(filename)
  25. #else
  26. #define PXNORMAL 0          /* normal exit() arg */
  27. #define PXERROR  1          /* error exit() arg */
  28. #define PFPROTO  1          /* use function prototypes */
  29. #endif
  30.  
  31. #ifdef __TSC__
  32. #define PAMDOS 1
  33. #endif
  34.  
  35. #ifdef __TURBOC__
  36. #define PAMAKE_FTIME 1
  37. #define PAMDOS 1
  38. #endif
  39.  
  40. #ifdef LATTICE
  41. #define PAMAKE_FTIME 1
  42. #define PAMOS2 1
  43. #endif
  44.  
  45. #ifndef DOLLAR
  46. #define dollar(p) (p)       /* dont bother to strip special dollars */
  47. #endif
  48.  
  49. struct name
  50. {
  51.     struct name *           n_next;         /* Next in the list of names */
  52.     char *                  n_name;         /* Called */
  53.     struct line *           n_line;         /* Dependencies */
  54.     long                    n_time;         /* Modify time of this name */
  55.     uchar                   n_flag;         /* Info about the name */
  56. };
  57.  
  58. #define N_MARK              0x01            /* For cycle check */
  59. #define N_DONE              0x02            /* Name looked at */
  60. #define N_TARG              0x04            /* Name is a target */
  61. #define N_PREC              0x08            /* Target is precious */
  62. #define N_DYND              0x10            /* Name was made by dyndep */
  63. #define N_DOUBLE            0x20            /* Double colon */
  64.  
  65. struct  line
  66. {
  67.     struct line *           l_next;         /* Next line (for ::) */
  68.     struct depend *         l_dep;          /* Dependents for this line */
  69.     struct cmd *            l_cmd;          /* Commands for this line */
  70. };
  71.  
  72. struct  depend
  73. {
  74.     struct depend *         d_next;         /* Next dependent */
  75.     struct name *           d_name;         /* Name of dependent */
  76. };
  77.  
  78. struct  cmd
  79. {
  80.     struct cmd *            c_next;         /* Next command line */
  81.     struct lif *            c_lif;          /* LIF lines for this command */
  82.     char *                  c_cmd;          /* Command line */
  83. };
  84.  
  85. struct  lif
  86. {
  87.     struct lif *            f_next;         /* Next LIF line */
  88.     char *                  f_lif;          /* LIF line */
  89. };
  90.  
  91. struct  macro
  92. {
  93.     struct macro *          m_next;         /* Next variable */
  94.     char *                  m_name;         /* Called ... */
  95.     char *                  m_val;          /* Its value */
  96.     char *                  m_sub;          /* Temp subst value */
  97.     uchar                   m_flag;         /* Infinite loop check */
  98. };
  99.  
  100. #define M_LOOPCHK           0x01            /* For loop check */
  101. #define M_ENV               0x02            /* ex-environment macro */
  102. #define M_PERM              0x04            /* not resetable */
  103.  
  104. extern char *           myname;
  105. extern struct name      namehead;
  106. extern struct macro *   macrohead;
  107. extern struct name *    firstname;
  108. extern bool             silent;
  109. extern bool             confirm;
  110. extern bool             ignore;
  111. extern bool             rules;
  112. extern bool             dotouch;
  113. extern bool             quest;
  114. extern bool             domake;
  115. extern bool             display;
  116. extern char             str1[];
  117. extern char             str2[];
  118. extern int              lineno;
  119. extern uchar            macrotype;
  120. extern unsigned char    pamakeos2;
  121.  
  122. extern FILE *           ifile[4];
  123. extern int              fln[4];
  124. extern char             fname[4][80];
  125. extern int              nestlvl;
  126.  
  127. #ifdef PFPROTO
  128. extern  void            check(struct name *np);
  129. extern  void            checklif(struct cmd *cp);
  130. extern  void            circh(void);
  131. extern  void            cleardynflag(struct name *np);
  132. extern  unsigned long   curtime(void);
  133. extern  void            docmds1(struct name *np,struct line *lp);
  134. extern  void            docmds(struct name *np);
  135. extern  void            dodisp(char *name,long t);
  136. extern  void            doexp(char * *to,char *from,int *len,char *buf);
  137. extern  char *          dollar(char *);
  138. extern  void            dosetcmd(char *p);
  139. extern  void            dostatcmd(char *p);
  140. extern  int             dosh(char *p,int shell);
  141. extern  int             dos_internal(char *s);
  142. extern  bool            dyndep(struct name *np);
  143. extern  void            expand(char *str);
  144. extern  void            ifeoc(void);
  145. extern  void            ifeof(void);
  146. extern  int             ifproc(char *s,int n);
  147. extern  void            input(void);
  148. extern  int             istrue(char *s);
  149. extern  bool            getline(char *str);
  150. extern  struct macro *  getmp(char *name);
  151. extern  char *          gettok(char * *ptr);
  152. extern  void            killlif(void);
  153. extern  void            main(int argc,char * *argv,char * *envp);
  154. extern  int             make(struct name *np,int level);
  155. extern  void            make1(struct name *np,struct line *lp,struct depend *qdp);
  156. extern  void            makelif(struct cmd *cp);
  157. extern  void            makerules(void);
  158. extern  void            markmacros(void);
  159. extern  void            modtime(struct name *np);
  160. extern  struct name *   newname(char *name);
  161. extern  struct depend * newdep(struct name *np,struct depend *dp);
  162. extern  struct cmd *    newcmd(char *str,struct cmd *cp,struct cmd * *crp);
  163. extern  struct lif *    newlif(char *str,struct lif *lp);
  164. extern  void            newline(struct name *np,struct depend *dp,struct cmd *cp,int flag);
  165. extern  void            precious(void);
  166. extern  void            prt(void);
  167. extern  char *          pstrstr(char *, char *);
  168. extern  void            setdmacros(struct name *np,struct depend *qdp);
  169. extern  struct macro *  setmacro(char *name,char *val);
  170. extern  char *          suffix(char *name);
  171. extern  void            touch(struct name *np);
  172. extern  void            usage(void);
  173. extern  int             pspace(int);
  174. #ifdef __TSC__
  175. #pragma save, call (reg_param => ())
  176. extern  void            error(char *msg,...);
  177. extern  void            fatal(char *msg,...);
  178. #pragma restore
  179. #else
  180. extern  void            error(char *msg,...);
  181. extern  void            fatal(char *msg,...);
  182. #endif
  183. #else
  184. unsigned long           curtime();
  185. char *                  dollar();
  186. void                    error();
  187. void                    fatal();
  188. char *                  getmacro();
  189. struct macro *          getmp();
  190. char *                  gettok();
  191. void                    input();
  192. int                     make();
  193. void                    makerules();
  194. struct cmd *            newcmd();
  195. struct depend *         newdep();
  196. void                    newline();
  197. struct name *           newname();
  198. void                    precious();
  199. char *                  pstrstr();
  200. struct macro *          setmacro();
  201. char *                  suffix();
  202. void                    touch();
  203. #endif
  204.