v14i047: dmake version 3.5 patch 1 part 02/04

Dennis Vadura dvadura at watdragon.waterloo.edu
Sat Aug 4 09:27:20 AEST 1990


Posting-number: Volume 14, Issue 47
Submitted-by: dvadura at watdragon.waterloo.edu (Dennis Vadura)
Archive-name: dmake/patch01pt2

#!/bin/sh
# this is part 2 of a multipart archive
# do not concatenate these parts, unpack them in order with /bin/sh
# file dmake-3.5-patch1 continued
#
CurArch=2
if test ! -r s2_seq_.tmp
then echo "Please unpack part 1 first!"
     exit 1; fi
( read Scheck
  if test "$Scheck" != $CurArch
  then echo "Please unpack part $Scheck next!"
       exit 1;
  else exit 0; fi
) < s2_seq_.tmp || exit 1
sed 's/^X//' << 'SHAR_EOF' >> dmake-3.5-patch1
XX
XX/* Define the getcwd function that is used in the code, since BSD does
XX * not have getcwd, but call it getwd instead. */
XXextern char *getcwd ANSI((char *, int));
XX
XX/* Define setvbuf, SysV doesn't have one */
XX#define setvbuf(fp, bp, type, len) setbuf( fp, NULL );
XX
XX/* need to define size_t */
XXtypedef long size_t;
XSHAR_EOF
Xchmod 0440 unix/sysvr1/config.h || echo "restore of unix/sysvr1/config.h fails"
Xset `wc -c unix/sysvr1/config.h`;Sum=$1
Xif test "$Sum" != "2003"
Xthen echo original size 2003, current size $Sum;fi
Xsed 's/^X//' << 'SHAR_EOF' > unix/sysvr1/config.mk &&
XX# This is the SysV R3 UNIX configuration file for DMAKE
XX#	It simply modifies the values of SRC, and checks to see if
XX#	OSENVIRONMENT is defined.  If so it includes the appropriate
XX#	config.mk file.
XX#
XX# It also sets the values of .SOURCE.c and .SOURCE.h to include the local
XX# directory.
XX#
XXosrdir := $(OS)$(DIRSEPSTR)$(OSRELEASE)
XX
XX# The following are required sources
XXOSDSRC := runargv.c vfprintf.c
XXSRC    += $(OSDSRC)
XX.SETDIR=$(osrdir) : $(OSDSRC)
XX
XX.SOURCE.h : $(osrdir)
XX
XX# Local configuration modifications for CFLAGS, there's local SysV includes
XX# too.
XXCFLAGS += -I$(osrdir)
XX
XX# See if we modify anything in the lower levels.
XX.IF $(OSENVIRONMENT) != $(NULL)
XX   .INCLUDE .IGNORE : $(osrdir)$(DIRSEPSTR)$(OSENVIRONMENT)$(DIRSEPSTR)config.mk
XX.END
XSHAR_EOF
Xchmod 0640 unix/sysvr1/config.mk || echo "restore of unix/sysvr1/config.mk fails"
Xset `wc -c unix/sysvr1/config.mk`;Sum=$1
Xif test "$Sum" != "745"
Xthen echo original size 745, current size $Sum;fi
Xsed 's/^X//' << 'SHAR_EOF' > unix/sysvr1/make.sh &&
XXmkdir objects
XXcc -c -DHELP -I. -Icommon -Iunix -Iunix/sysvr1 -O infer.c
XXmv infer.o objects 
XXcc -c -DHELP -I. -Icommon -Iunix -Iunix/sysvr1 -O make.c
XXmv make.o objects 
XXcc -c -DHELP -I. -Icommon -Iunix -Iunix/sysvr1 -O stat.c
XXmv stat.o objects 
XXcc -c -DHELP -I. -Icommon -Iunix -Iunix/sysvr1 -O expand.c
XXmv expand.o objects 
XXcc -c -DHELP -I. -Icommon -Iunix -Iunix/sysvr1 -O string.c
XXmv string.o objects 
XXcc -c -DHELP -I. -Icommon -Iunix -Iunix/sysvr1 -O hash.c
XXmv hash.o objects 
XXcc -c -DHELP -I. -Icommon -Iunix -Iunix/sysvr1 -O dag.c
XXmv dag.o objects 
XXcc -c -DHELP -I. -Icommon -Iunix -Iunix/sysvr1 -O dmake.c
XXmv dmake.o objects 
XXcc -c -DHELP -I. -Icommon -Iunix -Iunix/sysvr1 -O path.c
XXmv path.o objects 
XXcc -c -DHELP -I. -Icommon -Iunix -Iunix/sysvr1 -O imacs.c
XXmv imacs.o objects 
XXcc -c -DHELP -I. -Icommon -Iunix -Iunix/sysvr1 -O sysintf.c
XXmv sysintf.o objects 
XXcc -c -DHELP -I. -Icommon -Iunix -Iunix/sysvr1 -O parse.c
XXmv parse.o objects 
XXcc -c -DHELP -I. -Icommon -Iunix -Iunix/sysvr1 -O getinp.c
XXmv getinp.o objects 
XXcc -c -DHELP -I. -Icommon -Iunix -Iunix/sysvr1 -O quit.c
XXmv quit.o objects 
XXcc -c -DHELP -I. -Icommon -Iunix -Iunix/sysvr1 -O basename.c
XXmv basename.o objects 
XXcc -c -DHELP -I. -Icommon -Iunix -Iunix/sysvr1 -O dump.c
XXmv dump.o objects 
XXcc -c -DHELP -I. -Icommon -Iunix -Iunix/sysvr1 -O macparse.c
XXmv macparse.o objects 
XXcc -c -DHELP -I. -Icommon -Iunix -Iunix/sysvr1 -O rulparse.c
XXmv rulparse.o objects 
XXcc -c -DHELP -I. -Icommon -Iunix -Iunix/sysvr1 -O percent.c
XXmv percent.o objects 
XXcc -c -DHELP -I. -Icommon -Iunix -Iunix/sysvr1 -O unix/arlib.c
XXmv arlib.o objects 
XXcc -c -DHELP -I. -Icommon -Iunix -Iunix/sysvr1 -O unix/dirbrk.c
XXmv dirbrk.o objects 
XXcc -c -DHELP -I. -Icommon -Iunix -Iunix/sysvr1 -O unix/explode.c
XXmv explode.o objects 
XXcc -c -DHELP -I. -Icommon -Iunix -Iunix/sysvr1 -O unix/rmprq.c
XXmv rmprq.o objects 
XXcc -c -DHELP -I. -Icommon -Iunix -Iunix/sysvr1 -O unix/ruletab.c
XXmv ruletab.o objects 
XXcc -c -DHELP -I. -Icommon -Iunix -Iunix/sysvr1 -O unix/sysvr1/runargv.c
XXmv runargv.o objects 
XXcc -c -DHELP -I. -Icommon -Iunix -Iunix/sysvr1 -O unix/sysvr1/vfprintf.c
XXmv vfprintf.o objects 
XXcc  -o dmake  objects/infer.o objects/make.o objects/stat.o objects/expand.o objects/string.o objects/hash.o objects/dag.o objects/dmake.o objects/path.o objects/imacs.o objects/sysintf.o objects/parse.o objects/getinp.o objects/quit.o objects/basename.o objects/dump.o objects/macparse.o objects/rulparse.o objects/percent.o objects/arlib.o objects/dirbrk.o objects/explode.o objects/rmprq.o objects/ruletab.o objects/runargv.o objects/vfprintf.o 
XSHAR_EOF
Xchmod 0640 unix/sysvr1/make.sh || echo "restore of unix/sysvr1/make.sh fails"
Xset `wc -c unix/sysvr1/make.sh`;Sum=$1
Xif test "$Sum" != "2576"
Xthen echo original size 2576, current size $Sum;fi
Xsed 's/^X//' << 'SHAR_EOF' > unix/sysvr1/putenv.c &&
XX/* RCS      -- $Header: /u2/dvadura/src/generic/dmake/src/unix/sysvr1/RCS/putenv.c,v 1.1 90/07/31 11:00:17 dvadura Exp $
XX-- SYNOPSIS -- our own putenv for BSD systems.
XX-- 
XX-- DESCRIPTION
XX-- 	This originally came from MKS, but I rewrote it to fix a bug with
XX--	replacing existing strings, probably never happened but the code
XX--	was wrong nonetheless.
XX--
XX-- AUTHOR
XX--      Dennis Vadura, dvadura at watdragon.uwaterloo.ca
XX--      CS DEPT, University of Waterloo, Waterloo, Ont., Canada
XX--
XX-- COPYRIGHT
XX--      Copyright (c) 1990 by Dennis Vadura.  All rights reserved.
XX-- 
XX--      This program is free software; you can redistribute it and/or
XX--      modify it under the terms of the GNU General Public License
XX--      (version 1), as published by the Free Software Foundation, and
XX--      found in the file 'LICENSE' included with this distribution.
XX-- 
XX--      This program is distributed in the hope that it will be useful,
XX--      but WITHOUT ANY WARRANTY; without even the implied warrant of
XX--      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
XX--      GNU General Public License for more details.
XX-- 
XX--      You should have received a copy of the GNU General Public License
XX--      along with this program;  if not, write to the Free Software
XX--      Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
XX--
XX-- LOG
XX--     $Log:	putenv.c,v $
XX * Revision 1.1  90/07/31  11:00:17  dvadura
XX * Initial Revision Dmake 3.5
XX * 
XX*/
XX
XX#include <string.h>
XX#include <stdio.h>
XX
XX/* Put a string containing "name=value" into the environment.
XX *
XX * First search the environment for the string name, if found then
XX * replace that string with the new one.  Otherwise add the string to the
XX * environment as a new string.
XX *
XX * Return 0 if OK, non-zero otherwise.
XX */
XXint
XXputenv(string)
XXchar *string;
XX{
XX   extern   char **environ;
XX   static   char **newenv = NULL;
XX   register char *tmp;
XX   register char **env;
XX   register int  size;
XX
XX   for( env = environ; (tmp = *env) != NULL; env++ ) {
XX      register char *np = string;
XX      register char c;
XX
XX      /* Search the strings in environ, if name= matches then replace the
XX       * string with the new one. */
XX      while( (c = *tmp++) == *np++ ) {
XX	 if( c == '\0' ) break;		/* skip this string */
XX	 if( c == '='  ) {
XX	    *env = string;
XX	    return (0);
XX	 }
XX      }
XX   }
XX
XX   /* Need to grow the environment, so compute its new size */
XX   size = (env-environ)+2;
XX
XX   /* make sure we don't try to realloc the original environment */
XX   if( environ != newenv ) {
XX      if( (newenv = (char**) malloc(size*sizeof(char))) == NULL )
XX	 return(1);
XX
XX      memcpy((char*)newenv, (char*)environ, (size-2)*sizeof(char));
XX   }
XX   else
XX      /* realloc the environment to make room for the new string. */
XX      if( (newenv = (char**) realloc(environ, size*sizeof(char*))) == NULL )
XX	 return(1);
XX
XX   newenv[--size] = NULL;
XX   newenv[--size] = string;
XX   environ = newenv;
XX
XX   return (0);
XX}
XSHAR_EOF
Xchmod 0440 unix/sysvr1/putenv.c || echo "restore of unix/sysvr1/putenv.c fails"
Xset `wc -c unix/sysvr1/putenv.c`;Sum=$1
Xif test "$Sum" != "2929"
Xthen echo original size 2929, current size $Sum;fi
Xsed 's/^X//' << 'SHAR_EOF' > unix/sysvr1/runargv.c &&
XX/* RCS      -- $Header: /u2/dvadura/src/generic/dmake/src/unix/sysvr1/RCS/runargv.c,v 1.1 90/07/31 11:00:17 dvadura Exp $
XX-- SYNOPSIS -- invoke a sub process.
XX-- 
XX-- DESCRIPTION
XX-- 	Use the standard methods of executing a sub process.
XX--
XX-- AUTHOR
XX--      Dennis Vadura, dvadura at watdragon.uwaterloo.ca
XX--      CS DEPT, University of Waterloo, Waterloo, Ont., Canada
XX--
XX-- COPYRIGHT
XX--      Copyright (c) 1990 by Dennis Vadura.  All rights reserved.
XX-- 
XX--      This program is free software; you can redistribute it and/or
XX--      modify it under the terms of the GNU General Public License
XX--      (version 1), as published by the Free Software Foundation, and
XX--      found in the file 'LICENSE' included with this distribution.
XX-- 
XX--      This program is distributed in the hope that it will be useful,
XX--      but WITHOUT ANY WARRANTY; without even the implied warrant of
XX--      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
XX--      GNU General Public License for more details.
XX-- 
XX--      You should have received a copy of the GNU General Public License
XX--      along with this program;  if not, write to the Free Software
XX--      Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
XX--
XX-- LOG
XX--     $Log:	runargv.c,v $
XX * Revision 1.1  90/07/31  11:00:17  dvadura
XX * Initial Revision Dmake 3.5
XX * 
XX*/
XX
XX#include <signal.h>
XX#include "extern.h"
XX#include "sysintf.h"
XX#include "alloc.h"
XX
XXtypedef struct prp {
XX   char *prp_cmd;
XX   int   prp_group;
XX   int   prp_ignore;
XX   int   prp_last;
XX   struct prp *prp_next;
XX   char  *prp_dir;
XX} RCP, *RCPPTR;
XX
XXtypedef struct pr {
XX   int		pr_valid;
XX   int		pr_pid;
XX   CELLPTR	pr_target;
XX   HOWPTR	pr_how;
XX   int		pr_ignore;
XX   int		pr_last;
XX   RCPPTR  	pr_recipe;
XX   RCPPTR  	pr_recipe_end;
XX} PR;
XX
XXstatic PR  *_procs    = NIL(PR);
XXstatic int  _proc_cnt = 0;
XXstatic int  _abort_flg= FALSE;
XXstatic int  _use_i    = -1;
XXstatic int  _do_upd   = 0;
XX
XXstatic  void	_add_child ANSI((int, CELLPTR, HOWPTR, int, int));
XXstatic  void	_attach_cmd ANSI((char *, int, int, CELLPTR, HOWPTR, int));
XXstatic  void    _finished_child ANSI((int, int));
XXstatic  int     _running ANSI((CELLPTR, HOWPTR));
XX
XXint
XXrunargv(target, how, ignore, group, last, cmd)
XXCELLPTR target;
XXHOWPTR  how;
XXint     ignore;
XXint	group;
XXint	last;
XXchar	*cmd;
XX{
XX   extern  int  errno;
XX   extern  char *sys_errlist[];
XX   int          pid;
XX   char         *argv[MAXARGV];
XX
XX   if( _running(target, how) /*&& Max_proc != 1*/ ) {
XX      /* The command will be executed when the previous recipe
XX       * line completes. */
XX      _attach_cmd( cmd, group, ignore, target, how, last );
XX      return(1);
XX   }
XX
XX   Pack_argv( argv, MAXARGV, group, cmd );
XX
XX   while( _proc_cnt == Max_proc )
XX      if( Wait_for_child(FALSE, -1) == -1 )  Fatal( "Lost a child" );
XX
XX   switch( pid=fork() ){
XX      int   wid;
XX      int   status;
XX
XX   case -1: /* fork failed */
XX      Error("%s: %s", argv[0], sys_errlist[errno]);
XX      Handle_result(-1, ignore, _abort_flg, target);
XX      return(-1);
XX
XX   case 0:  /* child */
XX      execvp(argv[0], argv);
XX      Continue = TRUE;   /* survive error message */
XX      Error("%s: %s", argv[0], sys_errlist[errno]);
XX      kill(getpid(), SIGTERM);
XX      /*NOTREACHED*/
XX
XX   default: /* parent */
XX      _add_child(pid, target, how, ignore, last);
XX   }
XX
XX   return(1);
XX}
XX
XX
XXint
XXWait_for_child( abort_flg, pid )
XXint abort_flg;
XXint pid;
XX{
XX   int wid;
XX   int status;
XX   int waitchild;
XX
XX   waitchild = (pid == -1)? FALSE : Wait_for_completion;
XX
XX   do {
XX      if( (wid = wait(&status)) == -1 ) return(-1);
XX
XX      _abort_flg = abort_flg;
XX      _finished_child(wid, status);
XX      _abort_flg = FALSE;
XX   }
XX   while( waitchild && pid != wid );
XX
XX   return(0);
XX}
XX
XX
XXvoid
XXClean_up_processes()
XX{
XX   register int i;
XX
XX   if( _procs != NIL(PR) ) {
XX      for( i=0; i<Max_proc; i++ )
XX	 if( _procs[i].pr_valid )
XX	    kill(_procs[i].pr_pid, SIGTERM);
XX
XX      while( Wait_for_child(TRUE, -1) != -1 );
XX   }
XX}
XX
XX
XXstatic void
XX_add_child( pid, target, how, ignore, last )
XXint	pid;
XXCELLPTR target;
XXHOWPTR  how;
XXint	ignore;
XXint     last;
XX{
XX   register int i;
XX   register PR *pp;
XX
XX   if( _procs == NIL(PR) ) {
XX      TALLOC( _procs, Max_proc, PR );
XX   }
XX
XX   if( (i = _use_i) == -1 )
XX      for( i=0; i<Max_proc; i++ )
XX	 if( !_procs[i].pr_valid )
XX	    break;
XX
XX   pp = _procs+i;
XX
XX   pp->pr_valid  = 1;
XX   pp->pr_pid    = pid;
XX   pp->pr_target = target;
XX   pp->pr_how    = how;
XX   pp->pr_ignore = ignore;
XX   pp->pr_last   = last;
XX
XX   Current_target = NIL(HOW);
XX
XX   _proc_cnt++;
XX
XX   if( Wait_for_completion ) Wait_for_child( FALSE, pid );
XX}
XX
XX
XXstatic void
XX_finished_child(pid, status)
XXint	pid;
XXint	status;
XX{
XX   register int i;
XX   register PR *pp;
XX
XX   for( i=0; i<Max_proc; i++ )
XX      if( _procs[i].pr_valid && _procs[i].pr_pid == pid )
XX	 break;
XX
XX   _procs[i].pr_valid = 0;
XX   _proc_cnt--;
XX
XX   if( _procs[i].pr_recipe != NIL(RCP) && !_abort_flg ) {
XX      RCPPTR rp = _procs[i].pr_recipe;
XX      char   *dir;
XX
XX      Current_target = _procs[i].pr_how;
XX      Handle_result( status, _procs[i].pr_ignore, FALSE, _procs[i].pr_target );
XX      Current_target = NIL(HOW);
XX
XX      _procs[i].pr_recipe = rp->prp_next;
XX
XX      _use_i = i;
XX      dir = _strdup(Get_current_dir());
XX      Set_dir( rp->prp_dir );
XX      runargv( _procs[i].pr_target, _procs[i].pr_how, rp->prp_ignore,
XX      	       rp->prp_group, rp->prp_last, rp->prp_cmd );
XX      Set_dir(dir);
XX      FREE(dir);
XX      FREE(rp->prp_dir);
XX      _use_i = -1;
XX
XX      FREE( rp->prp_cmd );
XX      FREE( rp );
XX
XX      if( _proc_cnt == Max_proc ) Wait_for_child( FALSE, -1 );
XX   }
XX   else {
XX      Unlink_temp_files( _procs[i].pr_how );
XX      Handle_result(status,_procs[i].pr_ignore,_abort_flg,_procs[i].pr_target);
XX
XX      if( _procs[i].pr_last && !Doing_bang )
XX	 Update_time_stamp( _procs[i].pr_target, _procs[i].pr_how );
XX   }
XX}
XX
XX
XXstatic int
XX_running( cp, how )
XXCELLPTR cp;
XXHOWPTR  how;
XX{
XX   register int i;
XX
XX   if( !_procs ) return(FALSE);
XX
XX   for( i=0; i<Max_proc; i++ )
XX      if( _procs[i].pr_valid &&
XX	  _procs[i].pr_how == how &&
XX	  _procs[i].pr_target == cp  )
XX	 break;
XX	 
XX   return( i != Max_proc );
XX}
XX
XX
XXstatic void
XX_attach_cmd( cmd, group, ignore, cp, how, last )
XXchar    *cmd;
XXint	group;
XXint     ignore;
XXCELLPTR cp;
XXHOWPTR  how;
XXint     last;
XX{
XX   register int i;
XX   RCPPTR rp;
XX
XX   for( i=0; i<Max_proc; i++ )
XX      if( _procs[i].pr_valid &&
XX	  _procs[i].pr_how == how &&
XX	  _procs[i].pr_target == cp  )
XX	 break;
XX
XX   TALLOC( rp, 1, RCP );
XX   rp->prp_cmd   = _strdup(cmd);
XX   rp->prp_group = group;
XX   rp->prp_ignore= ignore;
XX   rp->prp_last  = last;
XX   rp->prp_dir   = _strdup(Get_current_dir());
XX
XX   if( _procs[i].pr_recipe == NIL(RCP) )
XX      _procs[i].pr_recipe = _procs[i].pr_recipe_end = rp;
XX   else {
XX      _procs[i].pr_recipe_end->prp_next = rp;
XX      _procs[i].pr_recipe_end = rp;
XX   }
XX}
XSHAR_EOF
Xchmod 0440 unix/sysvr1/runargv.c || echo "restore of unix/sysvr1/runargv.c fails"
Xset `wc -c unix/sysvr1/runargv.c`;Sum=$1
Xif test "$Sum" != "6722"
Xthen echo original size 6722, current size $Sum;fi
Xsed 's/^X//' << 'SHAR_EOF' > unix/sysvr1/startup.mk &&
XX# Generic UNIX DMAKE startup file.  Customize to suit your needs.
XX# Should work for both SYSV, and BSD 4.3
XX# See the documentation for a description of internally defined macros.
XX#
XX# Disable warnings for macros redefined here that were given
XX# on the command line.
XX__.SILENT := $(.SILENT)
XX.SILENT   := yes
XX
XX# Configuration parameters for DMAKE startup.mk file
XX# Set these to NON-NULL if you wish to turn the parameter on.
XX_HAVE_RCS	:= yes		# yes => RCS  is installed.
XX_HAVE_SCCS	:= yes		# yes => SCCS is installed.
XX
XX# Applicable suffix definitions
XXA := .a		# Libraries
XXE :=		# Executables
XXF := .f		# Fortran
XXO := .o		# Objects
XXP := .p		# Pascal
XXS := .s		# Assembler sources
XXV := ,v		# RCS suffix
XX
XX# Recipe execution configurations
XXSHELL		:= /bin/sh
XXSHELLFLAGS	:= -ce
XXGROUPSHELL	:= $(SHELL)
XXGROUPFLAGS	:= 
XXSHELLMETAS	:= |();&<>?*][$$:\\#`'"
XXGROUPSUFFIX	:=
XX
XX# Standard C-language command names and flags
XX   CPP	   := /lib/cpp		# C-preprocessor
XX   CC      := cc		# C-compiler and flags
XX   CFLAGS   =
XX
XX   AS      := as		# Assembler and flags
XX   ASFLAGS  = 
XX
XX   LD       = $(CC)		# Loader and flags
XX   LDFLAGS  =
XX   LDLIBS   =
XX
XX# Definition of $(MAKE) macro for recursive makes.
XX   MAKE = $(MAKECMD) $(MFLAGS)
XX
XX# Definition of Print command for this system.
XX   PRINT = lpr
XX
XX# Language and Parser generation Tools and their flags
XX   YACC	  := yacc		# standard yacc
XX   YFLAGS  =
XX   YTAB	  := y.tab		# yacc output files name stem.
XX
XX   LEX	  := lex		# standard lex
XX   LFLAGS  =
XX   LEXYY  := lex.yy		# lex output file
XX
XX# Other Compilers, Tools and their flags
XX   PC	:= pc			# pascal compiler
XX   RC	:= f77			# ratfor compiler
XX   FC	:= f77			# fortran compiler
XX
XX   CO	   := co		# check out for RCS
XX   COFLAGS := -q
XX
XX   AR     := ar			# archiver
XX   ARFLAGS = ruv
XX
XX   RM	   := /bin/rm		# remove a file command
XX   RMFLAGS  =
XX
XX# Implicit generation rules for making inferences.
XX# We don't provide .yr or .ye rules here.  They're obsolete.
XX# Rules for making *$O
XX   %$O : %.c ; $(CC) $(CFLAGS) -c $<
XX   %$O : %$P ; $(PC) $(PFLAGS) -c $<
XX   %$O : %$S ; $(AS) $<
XX   %$O : %.cl ; class -c $<
XX   %$O : %.e %.r %.F %$F
XX	$(FC) $(RFLAGS) $(EFLAGS) $(FFLAGS) -c $<
XX
XX# Executables
XX   %$E : %$O ; $(LD) $(LDFLAGS) -o $@ $< $(LDLIBES)
XX
XX# lex and yacc rules
XX   %.c : %.y ; $(YACC)  $(YFLAGS) $<; mv $(YTAB).c $@
XX   %.c : %.l ; $(LEX)   $(LFLAGS) $<; mv $(LEXYY).c $@
XX
XX# This rule tells how to make *.out from it's immediate list of prerequisites
XX# UNIX only.
XX   %.out :; $(LD) $(LDFLAGS) -o $@ $^ $(LDLIBS)
XX
XX# RCS support
XX.IF $(_HAVE_RCS)
XX   % : %$V $$(@:d)RCS/$$(@:f)$V;- $(CO) $(COFLAGS) $@
XX   .NOINFER : %$V $$(@:d)RCS/$$(@:f)$V
XX.END
XX
XX# SCCS support
XX.IF $(_HAVE_SCCS)
XX   % : s.% ; get $@
XX   .NOINFER : s.%
XX.END
XX
XX# Recipe to make archive files.
XX%$A :
XX[
XX   $(AR) $(ARFLAGS) $@ $?
XX   $(RM) $(RMFLAGS) $?
XX   ranlib $@
XX]
XX
XX# DMAKE uses this recipe to remove intermediate targets
XX.REMOVE :; $(RM) -f $<
XX
XX# AUGMAKE extensions for SYSV compatibility
XX at B = $(@:b)
XX at D = $(@:d)
XX at F = $(@:f)
XX*B = $(*:b)
XX*D = $(*:d)
XX*F = $(*:f)
XX<B = $(<:b)
XX<D = $(<:d)
XX<F = $(<:f)
XX?B = $(?:b)
XX?F = $(?:f)
XX?D = $(?:d)
XX
XX# Turn warnings back to previous setting.
XX.SILENT := $(__.SILENT)
XX
XX# Local startup file if any
XX.INCLUDE .IGNORE: "_startup.mk"
XSHAR_EOF
Xchmod 0640 unix/sysvr1/startup.mk || echo "restore of unix/sysvr1/startup.mk fails"
Xset `wc -c unix/sysvr1/startup.mk`;Sum=$1
Xif test "$Sum" != "3187"
Xthen echo original size 3187, current size $Sum;fi
Xsed 's/^X//' << 'SHAR_EOF' > unix/sysvr1/stdarg.h &&
XX/*
XX * stdarg.h
XX *
XX * defines ANSI style macros for accessing arguments of a function which takes
XX * a variable number of arguments
XX *
XX */
XX
XX#if !defined(__STDARG)
XX#define __STDARG
XX
XXtypedef char *va_list;
XX
XX#define va_dcl int va_alist
XX#define va_start(ap,v)  ap = (va_list)&va_alist
XX#define va_arg(ap,t)    ((t*)(ap += sizeof(t)))[-1]
XX#define va_end(ap)      ap = NULL
XX#endif
XSHAR_EOF
Xchmod 0440 unix/sysvr1/stdarg.h || echo "restore of unix/sysvr1/stdarg.h fails"
Xset `wc -c unix/sysvr1/stdarg.h`;Sum=$1
Xif test "$Sum" != "373"
Xthen echo original size 373, current size $Sum;fi
Xsed 's/^X//' << 'SHAR_EOF' > unix/sysvr1/stdlib.h &&
XX#ifndef _STDLIB_INCLUDED_
XX#define _STDLIB_INCLUDED_
XX
XXextern /*GOTO*/ _exit();
XXextern /*GOTO*/ exit();
XXextern /*GOTO*/ abort();
XXextern int system();
XXextern char *getenv();
XXextern char *calloc();
XXextern char *malloc();
XXextern char *realloc();
XXextern free();
XXextern int errno;
XX
XX#ifndef EIO
XX#	include <errno.h>
XX#endif
XX
XX#endif /* _STDLIB_INCLUDED_ */
XSHAR_EOF
Xchmod 0440 unix/sysvr1/stdlib.h || echo "restore of unix/sysvr1/stdlib.h fails"
Xset `wc -c unix/sysvr1/stdlib.h`;Sum=$1
Xif test "$Sum" != "346"
Xthen echo original size 346, current size $Sum;fi
Xsed 's/^X//' << 'SHAR_EOF' > unix/sysvr1/time.h &&
XX/*
XX** Berkeley get this wrong!
XX*/
XX#ifndef	TIME_h
XX#define	TIME_h
XX
XXtypedef	long	time_t;	/* this is the thing we use */
XX
XX#endif	TIME_h
XX
XSHAR_EOF
Xchmod 0440 unix/sysvr1/time.h || echo "restore of unix/sysvr1/time.h fails"
Xset `wc -c unix/sysvr1/time.h`;Sum=$1
Xif test "$Sum" != "133"
Xthen echo original size 133, current size $Sum;fi
Xsed 's/^X//' << 'SHAR_EOF' > unix/sysvr1/vfprintf.c &&
XX/* From:
XX * John Limpert            johnl at gronk.UUCP        uunet!n3dmc!gronk!johnl
XX */
XX
XX#include <stdio.h>
XX#include <varargs.h>
XX
XX#ifndef BUFSIZ
XX#include <stdio.h>
XX#endif
XX
XX#ifndef va_dcl
XX#include <varargs.h>
XX#endif
XX
XXint
XXvsprintf(str, fmt, ap)
XX	char *str, *fmt;
XX	va_list ap;
XX{
XX	FILE f;
XX	int len;
XX
XX	f._flag = _IOWRT+_IOMYBUF;
XX	f._ptr = (char *)str;	/* My copy of BSD stdio.h has this as (char *)
XX				 * with a comment that it should be
XX				 * (unsigned char *).  Since this code is
XX				 * intended for use on a vanilla BSD system,
XX				 * we'll stick with (char *) for now.
XX				 */
XX	f._cnt = 32767;
XX	len = _doprnt(fmt, ap, &f);
XX	*f._ptr = 0;
XX	return (len);
XX}
XX
XXint
XXvfprintf(iop, fmt, ap)
XX	FILE *iop;
XX	char *fmt;
XX	va_list ap;
XX{
XX	int len;
XX
XX	len = _doprnt(fmt, ap, iop);
XX	return (ferror(iop) ? EOF : len);
XX}
XX
XXint
XXvprintf(fmt, ap)
XX	char *fmt;
XX	va_list ap;
XX{
XX	int len;
XX
XX	len = _doprnt(fmt, ap, stdout);
XX	return (ferror(stdout) ? EOF : len);
XX}
XSHAR_EOF
Xchmod 0644 unix/sysvr1/vfprintf.c || echo "restore of unix/sysvr1/vfprintf.c fails"
Xset `wc -c unix/sysvr1/vfprintf.c`;Sum=$1
Xif test "$Sum" != "934"
Xthen echo original size 934, current size $Sum;fi
Xsed 's/^X//' << 'SHAR_EOF' > unix/sysvr3/runargv.c &&
XX/* RCS      -- $Header: /u2/dvadura/src/generic/dmake/src/unix/sysvr3/RCS/runargv.c,v 1.1 90/07/31 10:51:27 dvadura Exp $
XX-- SYNOPSIS -- invoke a sub process.
XX-- 
XX-- DESCRIPTION
XX-- 	Use the standard methods of executing a sub process.
XX--
XX-- AUTHOR
XX--      Dennis Vadura, dvadura at watdragon.uwaterloo.ca
XX--      CS DEPT, University of Waterloo, Waterloo, Ont., Canada
XX--
XX-- COPYRIGHT
XX--      Copyright (c) 1990 by Dennis Vadura.  All rights reserved.
XX-- 
XX--      This program is free software; you can redistribute it and/or
XX--      modify it under the terms of the GNU General Public License
XX--      (version 1), as published by the Free Software Foundation, and
XX--      found in the file 'LICENSE' included with this distribution.
XX-- 
XX--      This program is distributed in the hope that it will be useful,
XX--      but WITHOUT ANY WARRANTY; without even the implied warrant of
XX--      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
XX--      GNU General Public License for more details.
XX-- 
XX--      You should have received a copy of the GNU General Public License
XX--      along with this program;  if not, write to the Free Software
XX--      Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
XX--
XX-- LOG
XX--     $Log:	runargv.c,v $
XX * Revision 1.1  90/07/31  10:51:27  dvadura
XX * Initial Revision Dmake 3.5
XX * 
XX * Revision 1.1  90/07/20  16:54:53  dvadura
XX * Initial Revision of Version 3.5
XX * 
XX*/
XX
XX#include <signal.h>
XX#include "extern.h"
XX#include "sysintf.h"
XX#include "alloc.h"
XX
XXtypedef struct prp {
XX   char *prp_cmd;
XX   int   prp_group;
XX   int   prp_ignore;
XX   int   prp_last;
XX   struct prp *prp_next;
XX   char  *prp_dir;
XX} RCP, *RCPPTR;
XX
XXtypedef struct pr {
XX   int		pr_valid;
XX   int		pr_pid;
XX   CELLPTR	pr_target;
XX   HOWPTR	pr_how;
XX   int		pr_ignore;
XX   int		pr_last;
XX   RCPPTR  	pr_recipe;
XX   RCPPTR  	pr_recipe_end;
XX} PR;
XX
XXstatic PR  *_procs    = NIL(PR);
XXstatic int  _proc_cnt = 0;
XXstatic int  _abort_flg= FALSE;
XXstatic int  _use_i    = -1;
XXstatic int  _do_upd   = 0;
XX
XXstatic  void	_add_child ANSI((int, CELLPTR, HOWPTR, int, int));
XXstatic  void	_attach_cmd ANSI((char *, int, int, CELLPTR, HOWPTR, int));
XXstatic  void    _finished_child ANSI((int, int));
XXstatic  int     _running ANSI((CELLPTR, HOWPTR));
XX
XXint
XXrunargv(target, how, ignore, group, last, cmd)
XXCELLPTR target;
XXHOWPTR  how;
XXint     ignore;
XXint	group;
XXint	last;
XXchar	*cmd;
XX{
XX   extern  int  errno;
XX   extern  char *sys_errlist[];
XX   int          pid;
XX   char         *argv[MAXARGV];
XX
XX   if( _running(target, how) /*&& Max_proc != 1*/ ) {
XX      /* The command will be executed when the previous recipe
XX       * line completes. */
XX      _attach_cmd( cmd, group, ignore, target, how, last );
XX      return(1);
XX   }
XX
XX   Pack_argv( argv, MAXARGV, group, cmd );
XX
XX   while( _proc_cnt == Max_proc )
XX      if( Wait_for_child(FALSE, -1) == -1 )  Fatal( "Lost a child" );
XX
XX   switch( pid=fork() ){
XX      int   wid;
XX      int   status;
XX
XX   case -1: /* fork failed */
XX      Error("%s: %s", argv[0], sys_errlist[errno]);
XX      Handle_result(-1, ignore, _abort_flg, target);
XX      return(-1);
XX
XX   case 0:  /* child */
XX      execvp(argv[0], argv);
XX      Continue = TRUE;   /* survive error message */
XX      Error("%s: %s", argv[0], sys_errlist[errno]);
XX      kill(getpid(), SIGTERM);
XX      /*NOTREACHED*/
XX
XX   default: /* parent */
XX      _add_child(pid, target, how, ignore, last);
XX   }
XX
XX   return(1);
XX}
XX
XX
XXint
XXWait_for_child( abort_flg, pid )
XXint abort_flg;
XXint pid;
XX{
XX   int wid;
XX   int status;
XX   int waitchild;
XX
XX   waitchild = (pid == -1)? FALSE : Wait_for_completion;
XX
XX   do {
XX      if( (wid = wait(&status)) == -1 ) return(-1);
XX
XX      _abort_flg = abort_flg;
XX      _finished_child(wid, status);
XX      _abort_flg = FALSE;
XX   }
XX   while( waitchild && pid != wid );
XX
XX   return(0);
XX}
XX
XX
XXvoid
XXClean_up_processes()
XX{
XX   register int i;
XX
XX   if( _procs != NIL(PR) ) {
XX      for( i=0; i<Max_proc; i++ )
XX	 if( _procs[i].pr_valid )
XX	    kill(_procs[i].pr_pid, SIGTERM);
XX
XX      while( Wait_for_child(TRUE, -1) != -1 );
XX   }
XX}
XX
XX
XXstatic void
XX_add_child( pid, target, how, ignore, last )
XXint	pid;
XXCELLPTR target;
XXHOWPTR  how;
XXint	ignore;
XXint     last;
XX{
XX   register int i;
XX   register PR *pp;
XX
XX   if( _procs == NIL(PR) ) {
XX      TALLOC( _procs, Max_proc, PR );
XX   }
XX
XX   if( (i = _use_i) == -1 )
XX      for( i=0; i<Max_proc; i++ )
XX	 if( !_procs[i].pr_valid )
XX	    break;
XX
XX   pp = _procs+i;
XX
XX   pp->pr_valid  = 1;
XX   pp->pr_pid    = pid;
XX   pp->pr_target = target;
XX   pp->pr_how    = how;
XX   pp->pr_ignore = ignore;
XX   pp->pr_last   = last;
XX
XX   Current_target = NIL(HOW);
XX
XX   _proc_cnt++;
XX
XX   if( Wait_for_completion ) Wait_for_child( FALSE, pid );
XX}
XX
XX
XXstatic void
XX_finished_child(pid, status)
XXint	pid;
XXint	status;
XX{
XX   register int i;
XX   register PR *pp;
XX
XX   for( i=0; i<Max_proc; i++ )
XX      if( _procs[i].pr_valid && _procs[i].pr_pid == pid )
XX	 break;
XX
XX   _procs[i].pr_valid = 0;
XX   _proc_cnt--;
XX
XX   if( _procs[i].pr_recipe != NIL(RCP) && !_abort_flg ) {
XX      RCPPTR rp = _procs[i].pr_recipe;
XX      char   *dir;
XX
XX      Current_target = _procs[i].pr_how;
XX      Handle_result( status, _procs[i].pr_ignore, FALSE, _procs[i].pr_target );
XX      Current_target = NIL(HOW);
XX
XX      _procs[i].pr_recipe = rp->prp_next;
XX
XX      _use_i = i;
XX      dir = _strdup(Get_current_dir());
XX      Set_dir( rp->prp_dir );
XX      runargv( _procs[i].pr_target, _procs[i].pr_how, rp->prp_ignore,
XX      	       rp->prp_group, rp->prp_last, rp->prp_cmd );
XX      Set_dir(dir);
XX      FREE(dir);
XX      FREE(rp->prp_dir);
XX      _use_i = -1;
XX
XX      FREE( rp->prp_cmd );
XX      FREE( rp );
XX
XX      if( _proc_cnt == Max_proc ) Wait_for_child( FALSE, -1 );
XX   }
XX   else {
XX      Unlink_temp_files( _procs[i].pr_how );
XX      Handle_result(status,_procs[i].pr_ignore,_abort_flg,_procs[i].pr_target);
XX
XX      if( _procs[i].pr_last && !Doing_bang )
XX	 Update_time_stamp( _procs[i].pr_target, _procs[i].pr_how );
XX   }
XX}
XX
XX
XXstatic int
XX_running( cp, how )
XXCELLPTR cp;
XXHOWPTR  how;
XX{
XX   register int i;
XX
XX   if( !_procs ) return(FALSE);
XX
XX   for( i=0; i<Max_proc; i++ )
XX      if( _procs[i].pr_valid &&
XX	  _procs[i].pr_how == how &&
XX	  _procs[i].pr_target == cp  )
XX	 break;
XX	 
XX   return( i != Max_proc );
XX}
XX
XX
XXstatic void
XX_attach_cmd( cmd, group, ignore, cp, how, last )
XXchar    *cmd;
XXint	group;
XXint     ignore;
XXCELLPTR cp;
XXHOWPTR  how;
XXint     last;
XX{
XX   register int i;
XX   RCPPTR rp;
XX
XX   for( i=0; i<Max_proc; i++ )
XX      if( _procs[i].pr_valid &&
XX	  _procs[i].pr_how == how &&
XX	  _procs[i].pr_target == cp  )
XX	 break;
XX
XX   TALLOC( rp, 1, RCP );
XX   rp->prp_cmd   = _strdup(cmd);
XX   rp->prp_group = group;
XX   rp->prp_ignore= ignore;
XX   rp->prp_last  = last;
XX   rp->prp_dir   = _strdup(Get_current_dir());
XX
XX   if( _procs[i].pr_recipe == NIL(RCP) )
XX      _procs[i].pr_recipe = _procs[i].pr_recipe_end = rp;
XX   else {
XX      _procs[i].pr_recipe_end->prp_next = rp;
XX      _procs[i].pr_recipe_end = rp;
XX   }
XX}
XSHAR_EOF
Xchmod 0440 unix/sysvr3/runargv.c || echo "restore of unix/sysvr3/runargv.c fails"
Xset `wc -c unix/sysvr3/runargv.c`;Sum=$1
Xif test "$Sum" != "6806"
Xthen echo original size 6806, current size $Sum;fi
X
X
X# Now create the file of patches and apply patch appropriately
X# shar:	Shell Archiver  (v1.22)
X#
X#	Run the following text with /bin/sh to create:
X#	  _patches
X#
Xsed 's/^X//' << 'SHAR_EOF' > _patches &&
XX*** /u2/dvadura/src/generic/dmake/src.dist/vextern.h	Mon Jul 30 11:50:36 1990
XX--- vextern.h	Tue Jul 31 13:38:47 1990
XX***************
XX*** 1,4 ****
XX! /* RCS      -- $Header: /u2/dvadura/src/generic/dmake/src/RCS/vextern.h,v 1.1 90/07/19 13:55:39 dvadura Exp $
XX  -- SYNOPSIS -- global variable declarations.
XX  -- 
XX  -- DESCRIPTION
XX--- 1,4 ----
XX! /* RCS      -- $Header: /u2/dvadura/src/generic/dmake/src/RCS/vextern.h,v 1.2 90/07/31 11:10:51 dvadura Exp $
XX  -- SYNOPSIS -- global variable declarations.
XX  -- 
XX  -- DESCRIPTION
XX***************
XX*** 29,40 ****
XX  --
XX  -- LOG
XX  --     $Log:	vextern.h,v $
XX   * Revision 1.1  90/07/19  13:55:39  dvadura
XX   * Initial Revision of Version 3.5
XX   * 
XX  */
XX  #include <stdio.h>
XX! #include "macros.h"
XX  #include "struct.h"
XX  #include "dmake.h"
XX  
XX--- 29,43 ----
XX  --
XX  -- LOG
XX  --     $Log:	vextern.h,v $
XX+  * Revision 1.2  90/07/31  11:10:51  dvadura
XX+  * renamed macros.h include to stdmacs.h
XX+  * 
XX   * Revision 1.1  90/07/19  13:55:39  dvadura
XX   * Initial Revision of Version 3.5
XX   * 
XX  */
XX  #include <stdio.h>
XX! #include "stdmacs.h"
XX  #include "struct.h"
XX  #include "dmake.h"
XX  
XX*** /u2/dvadura/src/generic/dmake/src.dist/unix/sysvr3/make.sh	Mon Jul 30 11:50:39 1990
XX--- unix/sysvr3/make.sh	Tue Jul 31 20:26:17 1990
XX***************
XX*** 1,52 ****
XX  mkdir objects
XX  cc -c -DHELP -I. -Icommon -Iunix -Iunix/sysvr3 -O infer.c
XX! mv infer.o objects
XX  cc -c -DHELP -I. -Icommon -Iunix -Iunix/sysvr3 -O make.c
XX! mv make.o objects
XX  cc -c -DHELP -I. -Icommon -Iunix -Iunix/sysvr3 -O stat.c
XX! mv stat.o objects
XX  cc -c -DHELP -I. -Icommon -Iunix -Iunix/sysvr3 -O expand.c
XX! mv expand.o objects
XX  cc -c -DHELP -I. -Icommon -Iunix -Iunix/sysvr3 -O string.c
XX! mv string.o objects
XX  cc -c -DHELP -I. -Icommon -Iunix -Iunix/sysvr3 -O hash.c
XX! mv hash.o objects
XX  cc -c -DHELP -I. -Icommon -Iunix -Iunix/sysvr3 -O dag.c
XX! mv dag.o objects
XX  cc -c -DHELP -I. -Icommon -Iunix -Iunix/sysvr3 -O dmake.c
XX! mv dmake.o objects
XX  cc -c -DHELP -I. -Icommon -Iunix -Iunix/sysvr3 -O path.c
XX! mv path.o objects
XX  cc -c -DHELP -I. -Icommon -Iunix -Iunix/sysvr3 -O imacs.c
XX! mv imacs.o objects
XX  cc -c -DHELP -I. -Icommon -Iunix -Iunix/sysvr3 -O sysintf.c
XX! mv sysintf.o objects
XX  cc -c -DHELP -I. -Icommon -Iunix -Iunix/sysvr3 -O parse.c
XX! mv parse.o objects
XX  cc -c -DHELP -I. -Icommon -Iunix -Iunix/sysvr3 -O getinp.c
XX! mv getinp.o objects
XX  cc -c -DHELP -I. -Icommon -Iunix -Iunix/sysvr3 -O quit.c
XX! mv quit.o objects
XX  cc -c -DHELP -I. -Icommon -Iunix -Iunix/sysvr3 -O basename.c
XX! mv basename.o objects
XX  cc -c -DHELP -I. -Icommon -Iunix -Iunix/sysvr3 -O dump.c
XX! mv dump.o objects
XX  cc -c -DHELP -I. -Icommon -Iunix -Iunix/sysvr3 -O macparse.c
XX! mv macparse.o objects
XX  cc -c -DHELP -I. -Icommon -Iunix -Iunix/sysvr3 -O rulparse.c
XX! mv rulparse.o objects
XX  cc -c -DHELP -I. -Icommon -Iunix -Iunix/sysvr3 -O percent.c
XX! mv percent.o objects
XX  cc -c -DHELP -I. -Icommon -Iunix -Iunix/sysvr3 -O unix/arlib.c
XX! mv arlib.o objects
XX  cc -c -DHELP -I. -Icommon -Iunix -Iunix/sysvr3 -O unix/dirbrk.c
XX! mv dirbrk.o objects
XX  cc -c -DHELP -I. -Icommon -Iunix -Iunix/sysvr3 -O unix/explode.c
XX! mv explode.o objects
XX  cc -c -DHELP -I. -Icommon -Iunix -Iunix/sysvr3 -O unix/rmprq.c
XX! mv rmprq.o objects
XX  cc -c -DHELP -I. -Icommon -Iunix -Iunix/sysvr3 -O unix/ruletab.c
XX! mv ruletab.o objects
XX! cc -c -DHELP -I. -Icommon -Iunix -Iunix/sysvr3 -O unix/runargv.c
XX! mv runargv.o objects
XX  cc  -o dmake  objects/infer.o objects/make.o objects/stat.o objects/expand.o objects/string.o objects/hash.o objects/dag.o objects/dmake.o objects/path.o objects/imacs.o objects/sysintf.o objects/parse.o objects/getinp.o objects/quit.o objects/basename.o objects/dump.o objects/macparse.o objects/rulparse.o objects/percent.o objects/arlib.o objects/dirbrk.o objects/explode.o objects/rmprq.o objects/ruletab.o objects/runargv.o 
XX--- 1,52 ----
XX  mkdir objects
XX  cc -c -DHELP -I. -Icommon -Iunix -Iunix/sysvr3 -O infer.c
XX! mv infer.o objects 
XX  cc -c -DHELP -I. -Icommon -Iunix -Iunix/sysvr3 -O make.c
XX! mv make.o objects 
XX  cc -c -DHELP -I. -Icommon -Iunix -Iunix/sysvr3 -O stat.c
XX! mv stat.o objects 
XX  cc -c -DHELP -I. -Icommon -Iunix -Iunix/sysvr3 -O expand.c
XX! mv expand.o objects 
XX  cc -c -DHELP -I. -Icommon -Iunix -Iunix/sysvr3 -O string.c
XX! mv string.o objects 
XX  cc -c -DHELP -I. -Icommon -Iunix -Iunix/sysvr3 -O hash.c
XX! mv hash.o objects 
XX  cc -c -DHELP -I. -Icommon -Iunix -Iunix/sysvr3 -O dag.c
XX! mv dag.o objects 
XX  cc -c -DHELP -I. -Icommon -Iunix -Iunix/sysvr3 -O dmake.c
XX! mv dmake.o objects 
XX  cc -c -DHELP -I. -Icommon -Iunix -Iunix/sysvr3 -O path.c
XX! mv path.o objects 
XX  cc -c -DHELP -I. -Icommon -Iunix -Iunix/sysvr3 -O imacs.c
XX! mv imacs.o objects 
XX  cc -c -DHELP -I. -Icommon -Iunix -Iunix/sysvr3 -O sysintf.c
XX! mv sysintf.o objects 
XX  cc -c -DHELP -I. -Icommon -Iunix -Iunix/sysvr3 -O parse.c
XX! mv parse.o objects 
XX  cc -c -DHELP -I. -Icommon -Iunix -Iunix/sysvr3 -O getinp.c
XX! mv getinp.o objects 
XX  cc -c -DHELP -I. -Icommon -Iunix -Iunix/sysvr3 -O quit.c
XX! mv quit.o objects 
XX  cc -c -DHELP -I. -Icommon -Iunix -Iunix/sysvr3 -O basename.c
XX! mv basename.o objects 
XX  cc -c -DHELP -I. -Icommon -Iunix -Iunix/sysvr3 -O dump.c
XX! mv dump.o objects 
XX  cc -c -DHELP -I. -Icommon -Iunix -Iunix/sysvr3 -O macparse.c
XX! mv macparse.o objects 
XX  cc -c -DHELP -I. -Icommon -Iunix -Iunix/sysvr3 -O rulparse.c
XX! mv rulparse.o objects 
XX  cc -c -DHELP -I. -Icommon -Iunix -Iunix/sysvr3 -O percent.c
XX! mv percent.o objects 
XX  cc -c -DHELP -I. -Icommon -Iunix -Iunix/sysvr3 -O unix/arlib.c
XX! mv arlib.o objects 
XX  cc -c -DHELP -I. -Icommon -Iunix -Iunix/sysvr3 -O unix/dirbrk.c
XX! mv dirbrk.o objects 
XX  cc -c -DHELP -I. -Icommon -Iunix -Iunix/sysvr3 -O unix/explode.c
XX! mv explode.o objects 
XX  cc -c -DHELP -I. -Icommon -Iunix -Iunix/sysvr3 -O unix/rmprq.c
XX! mv rmprq.o objects 
XX  cc -c -DHELP -I. -Icommon -Iunix -Iunix/sysvr3 -O unix/ruletab.c
XX! mv ruletab.o objects 
XX! cc -c -DHELP -I. -Icommon -Iunix -Iunix/sysvr3 -O unix/sysvr3/runargv.c
XX! mv runargv.o objects 
XX  cc  -o dmake  objects/infer.o objects/make.o objects/stat.o objects/expand.o objects/string.o objects/hash.o objects/dag.o objects/dmake.o objects/path.o objects/imacs.o objects/sysintf.o objects/parse.o objects/getinp.o objects/quit.o objects/basename.o objects/dump.o objects/macparse.o objects/rulparse.o objects/percent.o objects/arlib.o objects/dirbrk.o objects/explode.o objects/rmprq.o objects/ruletab.o objects/runargv.o 
XX*** /u2/dvadura/src/generic/dmake/src.dist/unix/sysvr3/config.mk	Mon Jul 30 11:50:40 1990
XX--- unix/sysvr3/config.mk	Tue Jul 31 10:51:50 1990
XX***************
XX*** 8,17 ****
XX  #
XX  osrdir := $(OS)$(DIRSEPSTR)$(OSRELEASE)
XX  
XX! # The following sources are required for SysV R3
XX! SRC +=  #zero for now. we do have some .h's though
XX  
XX- #.SOURCE.c : $(osrdir)
XX  .SOURCE.h : $(osrdir)
XX  
XX  # Local configuration modifications for CFLAGS, there's local SysV includes
XX--- 8,18 ----
XX  #
XX  osrdir := $(OS)$(DIRSEPSTR)$(OSRELEASE)
XX  
XX! # The following are required sources
XX! OSDSRC := runargv.c
XX! SRC    += $(OSDSRC)
XX! .SETDIR=$(osrdir) : $(OSDSRC)
XX  
XX  .SOURCE.h : $(osrdir)
XX  
XX  # Local configuration modifications for CFLAGS, there's local SysV includes
XX*** /u2/dvadura/src/generic/dmake/src.dist/unix/sysvr3/config.h	Mon Jul 30 11:50:40 1990
XX--- unix/sysvr3/config.h	Tue Jul 31 10:51:27 1990
XX***************
XX*** 1,4 ****
XX! /* RCS      -- $Header$
XX  -- SYNOPSIS -- Configurarion include file.
XX  -- 
XX  -- DESCRIPTION
XX--- 1,4 ----
XX! /* RCS      -- $Header: /u2/dvadura/src/generic/dmake/src/unix/sysvr3/RCS/config.h,v 1.1 90/07/31 10:51:25 dvadura Exp $
XX  -- SYNOPSIS -- Configurarion include file.
XX  -- 
XX  -- DESCRIPTION
XX***************
XX*** 28,34 ****
XX  --      Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
XX  --
XX  -- LOG
XX! --     $Log$
XX  */
XX  
XX  /* define this for configurations that don't have the coreleft function
XX--- 28,37 ----
XX  --      Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
XX  --
XX  -- LOG
XX! --     $Log:	config.h,v $
XX!  * Revision 1.1  90/07/31  10:51:25  dvadura
XX!  * Initial Revision Dmake 3.5
XX!  * 
XX  */
XX  
XX  /* define this for configurations that don't have the coreleft function
SHAR_EOF
echo "End of part 2, continue with part 3"
echo "3" > s2_seq_.tmp
exit 0



More information about the Comp.sources.misc mailing list