home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Usenet 1994 October
/
usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso
/
misc
/
volume14
/
dmake
/
patch01pt2
< prev
next >
Wrap
Text File
|
1990-08-03
|
40KB
|
1,335 lines
Newsgroups: comp.sources.misc
subject: v14i047: dmake version 3.5 patch 1 part 02/04
From: dvadura@watdragon.waterloo.edu (Dennis Vadura)
Sender: allbery@uunet.UU.NET (Brandon S. Allbery - comp.sources.misc)
Posting-number: Volume 14, Issue 47
Submitted-by: dvadura@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@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@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@B = $(@:b)
XX@D = $(@:d)
XX@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@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@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