From:	CSBVAX::CSBVAX::MRGATE::"SMTP::CRVAX.SRI.COM::RELAY-INFO-VAX" 23-JAN-1989 23:55
To:	MRGATE::"ARISIA::EVERHART"
Subj:	MAKE.SHAR (part 5 of 5; repackaged)


Received: From KL.SRI.COM by CRVAX.SRI.COM with TCP; Mon, 23 JAN 89 18:55:03 PDT
Received: from ucbvax.Berkeley.EDU by KL.SRI.COM with TCP; Mon, 23 Jan 89 18:53:48 PST
Received: by ucbvax.Berkeley.EDU (5.61/1.33)
	id AA12944; Mon, 23 Jan 89 18:41:04 -0800
Received: from USENET by ucbvax.Berkeley.EDU with netnews
	for info-vax@kl.sri.com (info-vax@kl.sri.com)
	(contact usenet@ucbvax.Berkeley.EDU if you have questions)
Date: 23 Jan 89 17:40:24 GMT
From: tektronix!gvgpsa!gvgpvd!tony@ucbvax.Berkeley.EDU  (Tony Ivanov)
Organization: Grass Valley Group, Inc., Grass Valley, CA
Subject: MAKE.SHAR (part 5 of 5; repackaged)
Message-Id: <1015@gvgpvd.GVG.TEK.COM>
Sender: info-vax-request@kl.sri.com
To: info-vax@kl.sri.com


+-+-+-+ Beginning of part 5 +-+-+-+
X#define N_DEFAULT`0090x20`009/* Default (in makefile name list) */
X
X/*
X *`009Definition of a target line.
X */
X
Xtypedef struct line
X`123
X    LINEP l_next;`009`009/* Next line (for ::) */
X    DEPENDP l_dep;`009`009/* Dependents for this line */
X    CMDP l_cmd;`009`009`009/* Commands for this line */
X`125   LINE;
X
X/*
X *`009List of dependents for a line
X */
Xtypedef struct depend
X`123
X    DEPENDP d_next;`009`009/* Next dependent */
X    NAMEP d_name;`009`009/* Name of dependent */
X`125   DEPEND;
X
X
X/*
X *`009Commands for a line
X */
Xtypedef struct cmd
X`123
X    CMDP c_next;`009`009/* Next command line */
X    char *c_cmd;`009`009/* Command line */
X`125   CMD;
X
X
X/*
X *`009Macro storage
X */
Xtypedef struct macro
X`123
X    MACROP m_next;`009`009/* Next variable */
X    char *m_name;`009`009/* Called ... */
X    char *m_val;`009`009/* Its value */
X    uchar m_flag;`009`009/* Infinite loop and permanent flags */
X`125   MACRO;
X
X#define M_SEEN`009`0090x01`009/* macro name seen in search loop */
X#define M_PERMANENT`0090x02`009/* macro is permanent (command line) */
X
X#define PERMANENT`009TRUE
X#define TEMPORARY`009FALSE
X
X
X/*
X *`009Default rules structure
X */
X
Xtypedef struct rule
X`123
X    char *r_target;`009`009/* target name */
X    char *r_command;`009`009/* commands to build target */
X`125   RULE;
X
Xextern int debug;
Xextern bool domake;
Xextern bool dotouch;
Xextern NAMEP firstname;
Xextern bool ignore;
Xextern int lineno;
Xextern MACROP macrohead;
Xextern char *myname;
Xextern struct name namehead;
Xextern bool quest;
Xextern bool rules;
Xextern bool silent;
Xextern char str1[];
X
X#ifndef VMS
Xextern int errno;
X#endif
X
X#ifdef ANSI`009`009`009/* ANSI function and argument type
X`009`009`009`009   declarations */
Xvoid`032
Xcheck(NAMEP);
Xvoid`032
Xcirch(void);
Xvoid`032
Xdocmd2(NAMEP, LINEP);
Xvoid`032
Xdocmds(NAMEP);
Xvoid`032
Xdoexp(char **, char *, int *, char *);
Xint`032
Xdosh(char *, char *);
Xbool`032
Xdyndep(NAMEP);
Xvoid`032
Xerror(char *);
Xvoid`032
Xexpand(char *);
Xvoid`032
Xfatal(char *);
Xchar *
Xgetenv(char *);
Xbool`032
Xgetline(char *, FILE *);
Xchar *
Xgetmacro(char *);
XMACROP`032
Xgetmp(char *);
Xchar *
Xgettok(char **);
Xchar *
Xindex(char *, char);
Xvoid`032
Xinput(FILE *);
Xvoid`032
Xmain(int, char **);
Xint`032
Xmake(NAMEP, int);
Xvoid`032
Xmake1(NAMEP, LINEP, DEPENDP);
Xvoid`032
Xmakeinit(void);
Xvoid`032
Xmakerules(void);
X
X#ifndef MSC
Xchar *
Xmalloc(int);
X#endif
X
Xvoid`032
Xmodtime(NAMEP);
XCMDP`032
Xnewcmd(char *, CMDP);
XDEPENDP`032
Xnewdep(NAMEP, DEPENDP);
Xvoid`032
Xnewline(NAMEP, DEPENDP, CMDP, bool);
XNAMEP`032
Xnewname(char *);
Xchar *
Xnewstring(char *, char *);
Xvoid`032
Xnewsuffix(char *);
Xvoid`032
Xprecious(void);
Xvoid`032
Xprt(void);
Xvoid`032
Xprtcmd(CMDP, int);
Xvoid`032
Xprtdepend(DEPENDP, int);
Xvoid`032
Xprtlevel(int);
Xvoid`032
Xprtline(LINEP, int);
Xvoid`032
Xprtname(NAMEP, int);
Xchar *
Xrindex(char *, char);
XMACROP`032
Xsetmacro(char *, char *, bool);
Xvoid`032
Xsqueeze(char *);
Xint`032
Xstrcm2(char *, char *);
Xchar *
Xsuffix(char *);
Xvoid`032
Xtouch(NAMEP);
Xvoid`032
Xusage(void);
X
X#else`009`009`009`009/* old-style function declarations */
X
Xvoid check();
Xvoid circh();
Xvoid docmd2();
Xvoid docmds();
Xvoid doexp();
Xint dosh();
Xbool dyndep();
Xvoid error();
Xvoid expand();
Xvoid fatal();
Xchar *getenv();
Xbool getline();
Xchar *getmacro();
XMACROP getmp();
Xchar *gettok();
Xchar *index();
Xvoid input();
Xvoid main();
Xint make();
Xvoid make1();
Xvoid makeinit();
Xvoid makerules();
X
X#ifndef MSC
Xchar *malloc();
X#endif
X
Xvoid modtime();
XCMDP newcmd();
XDEPENDP newdep();
Xvoid newline();
XNAMEP newname();
Xchar *newstring();
Xvoid newsuffix();
Xvoid precious();
Xvoid prt();
Xvoid prtcmd();
Xvoid prtdepend();
Xvoid prtlevel();
Xvoid prtline();
Xvoid prtname();
Xchar *rindex();
XMACROP setmacro();
Xvoid squeeze();
Xint strcm2();
Xchar *suffix();
Xvoid touch();
Xvoid usage();
X#endif
X
X/* Define some convenient shorthands for null typecasts */
X#define NULL_CHARP`009((char *)NULL)
X#define NULL_CMDP`009((CMDP)NULL)
X#define NULL_DEPENDP`009((DEPENDP)NULL)
X#define NULL_FILEP`009((FILE *)NULL)
X#define NULL_LINEP`009((LINEP)NULL)
X#define NULL_MACROP`009((MACROP)NULL)
X#define NULL_NAMEP`009((NAMEP)NULL)
X
X#ifdef CASE_INSENSITIVE
X#define strcmp strcm2`009`009/* host is not case-sensitive */
X#endif
$ GOSUB UNPACK_FILE
$ FILE_IS = "VAXC_SHARE.OPT"
$ CHECKSUM_IS = 1549289361
$ COPY SYS$INPUT VMS_SHARE_DUMMY.DUMMY
XSYS$LIBRARY:VAXCRTL.EXE/SHARE
$ GOSUB UNPACK_FILE
$ FILE_IS = "VMS_RULES.DOC"
$ CHECKSUM_IS = 809189236
$ COPY SYS$INPUT VMS_SHARE_DUMMY.DUMMY
XAMSTEX =`009AMSTeX
XAMSTEXFLAGS =`009/batch
XAS =`009`009macro
XCC =`009`009cc
XCFLAGS =`009/debug=(symbols,traceback)/nolist
XFC =`009`009fortran
XFFLAGS =`009/debug=(symbols,traceback)/nolist
XLATEX =`009`009LaTeX
XLATEXFLAGS =`009/batch
XMV =`009`009rename
XPC =`009`009pascal
XPFLAGS =`009/debug=(symbols,traceback)/nolist
XRM =`009`009delete
XSF3 =`009`009sf3
XSLITEX =`009SliTeX
XSLITEXFLAGS =`009/batch
XTEX =`009`009TeX
XTEXFLAGS =`009/batch
XYACC =`009`009yacc
X
X.atx.dvi .amstex.dvi:
X`009$(AMSTEX) $(AMSTEXFLAGS) $<
X.c.obj:
X`009$(CC) $(CFLAGS) $<
X.for.obj .f.obj .ftn.obj:
X`009$(FC) $(FFLAGS) $<
X.ltx.dvi .latex.dvi:
X`009$(LATEX) $(LATEXFLAGS) $<
X.mar.obj:
X`009$(AS) $(AFLAGS) $<
X.pas.obj .p.obj:
X`009$(PC) $(PFLAGS) $<
X.sf3.for:
X`009$(SF3) $(SF3FLAGS) $<
X.stx.dvi .slitex.dvi:
X`009$(SLITEX) $(SLITEXFLAGS) $<
X.tex.dvi:
X`009$(TEX) $(TEXFLAGS) $<
X.y.c:
X`009$(YACC) $(YFLAGS) $<
X`009$(MV) ytab.c $@
X.y.obj:
X`009$(YACC) $(YFLAGS) $<
X`009$(CC) $(CFLAGS) ytab.c
X`009$(RM) ytab.c
X`009$(MV) ytab.obj $@
X
V.SUFFIXES: .exe .obj .dvi .c .y .l .mar .sf3 for .f .ftn .pas .p .tex .latex
X .ltx .slitex .stx .amstex .atx .inc .h";
$ GOSUB UNPACK_FILE
$ FILE_IS = "TYPES.H"
$ CHECKSUM_IS = 1400252915
$ COPY SYS$INPUT VMS_SHARE_DUMMY.DUMMY
X# ifndef _GVG_TYPES_
X# define _GVG_TYPES_
X
Xtypedef unsigned char`009bool;
Xtypedef char`009`009byte;
Xtypedef unsigned char`009ubyte;
Xtypedef unsigned char`009uchar;
Xtypedef unsigned short`009ushort;
Xtypedef unsigned int`009uint;
Xtypedef unsigned long`009ulong;
X
X# endif _GVG_TYPES_
$ GOSUB UNPACK_FILE
$ EXIT
-+-+-+-+-+ End of part 5 +-+-+-+-+-
-- 
/* My opinions...             *  Tony Ivanov   MS-4B       *  ...ucbvax!   */
/* shared by my company?!...  *  Grass Valley Group, Inc.  *  tektronix!   */
/* you've got to be kidding!  *  P.O. Box 1114             *  gvgpsa!      */
/* "tony@gvgpvd.GVG.TEK.COM"  *  Grass Valley, CA  95945   *  gvgpvd!tony  */

