
/*
 *  DEFS.H
 *
 */

#include <exec/types.h>
#include <exec/lists.h>
#include <libraries/dos.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

typedef unsigned char ubyte;
typedef unsigned short uword;
typedef unsigned long ulong;

typedef struct Node	NODE;
typedef struct List	LIST;
typedef struct MinNode	MNODE;
typedef struct MinList	MLIST;
typedef struct DateStamp    DATESTAMP;
typedef struct FileInfoBlock FIB;

#define COMMON	struct _COMMON
#define DEPEND	struct _DEPEND
#define MACRO	struct _MACRO

#define TMPFILE "T:dmake%08lx.res"  /*  Used to get exit code   */
#define SCRFILE "T:dmake%08lx.scr"  /*  script file             */

#define DF_DIDTHIS	    0x01    /*	dependancy succeeded	*/
#define DF_ALLOWED	    0x02
#define DF_COLLECT	    0x04
#define DF_DATEDOK	    0x08
#define DF_OUTDATED	    0x10
#define DF_APPLYALL	    0x20
#define DF_EXPANDRIGHT	    0x40

COMMON {
    short   RefCnt;
    uword   Flags;
};

DEPEND {
    MNODE   Node;
    char    *Left;	/*  resolved file name	*/
    char    *Right;	/*  resolved file name	*/
    uword   Flags;
    uword   Order;
    COMMON  *Common;	/*  Comment structure	*/
    DEPEND  *ColDep;
    MLIST   *CmdList;
};

extern MLIST   DepList;    /*  Dependancies    */

extern char *getline();
extern char **parseline();
extern char *VirtuoExpand();
extern DEPEND *MakeOneDepend();

extern void MacroAssign();

extern short Verbose;
extern short LineNo;
extern short ForceAll;
extern short ListOnly;
extern short XDebug;
extern long  SaveLock;
extern char MakeFile[128];
extern char *VirtuoExpand();

extern void *GetHead();
extern void *GetSucc();
extern void *GetTail();
extern void *GetPred();
extern void *RemHead();
extern void *RemTail();

