dvadura@watdragon.waterloo.edu (Dennis Vadura) (07/27/90)
Posting-number: Volume 14, Issue 16 Submitted-by: dvadura@watdragon.waterloo.edu (Dennis Vadura) Archive-name: dmake/part06 #!/bin/sh # this is part 6 of a multipart archive # do not concatenate these parts, unpack them in order with /bin/sh # file parse.c continued # CurArch=6 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 echo "x - Continuing file parse.c" sed 's/^X//' << 'SHAR_EOF' >> parse.c X if( *_strspn( Buffer, " \t" ) == '\0' ) break; X X /* otherwise assume it was a line of unrecognized input, or a X * recipe line out of place so print a message */ X X Fatal( "Expecting macro or rule defn, found neither" ); X break; X X default: X Fatal( "Internal -- UNKNOWN Parser state %d", state ); X } X } X} X SHAR_EOF echo "File parse.c is complete" chmod 0440 parse.c || echo "restore of parse.c fails" echo mkdir - msdos mkdir msdos echo mkdir - msdos/tccdos mkdir msdos/tccdos echo "x - extracting msdos/tccdos/utime.c (Text)" sed 's/^X//' << 'SHAR_EOF' > msdos/tccdos/utime.c && X/* X** change access and modify times of file X*/ X#include <sys/stat.h> X#include <fcntl.h> X#include <time.h> X Xint Xutime(name, timep)/* X==================== X Broken for turbo C it only sets the file time to the current time by X touching a character in the file */ Xchar* name; Xtime_t timep[2]; X{ X struct stat buf; X int fil; X char data; X X if (stat(name, &buf) != 0) X return (-1); X if (buf.st_size != 0) { X if ((fil = open(name, O_RDWR, S_IWRITE)) < 0) X return (-1); X if (read(fil, &data, 1) < 1) { X close(fil); X return (-1); X } X lseek(fil, 0L, 0); X if (write(fil, &data, 1) < 1) { X close(fil); X return (-1); X } X close(fil); X return (0); X } else if ((fil = creat(name, S_IWRITE)) < 0) { X return (-1); X } else { X close(fil); X return (0); X } X} SHAR_EOF chmod 0640 msdos/tccdos/utime.c || echo "restore of msdos/tccdos/utime.c fails" echo "x - extracting msdos/tccdos/tempnam.c (Text)" sed 's/^X//' << 'SHAR_EOF' > msdos/tccdos/tempnam.c && X/*LINTLIBRARY*/ X#include <stdio.h> X#include <string.h> X#include <stdlib.h> X#include <time.h> X X#define max(A,B) (((A)<(B))?(B):(A)) X Xextern char *mktemp(); Xextern int access(); Xint _access(); X X/* Turbo C stdio.h doesn't define P_tmpdir, so let's do it here */ X/* Under DOS leave the default tmpdir pointing here! */ Xstatic char *P_tmpdir = ""; X Xchar * Xtempnam(dir, prefix) Xchar *dir; /* use this directory please (if non-NULL) */ Xchar *prefix; /* use this (if non-NULL) as filename prefix */ X{ X static int count = 0; X register char *p, *q, *tmpdir; X int tl=0, dl=0, pl; X char buf[30]; X X pl = strlen(P_tmpdir); X X if( (tmpdir = getenv("TMPDIR")) != NULL ) tl = strlen(tmpdir); X if( dir != NULL ) dl = strlen(dir); X X if( (p = malloc((unsigned)(max(max(dl,tl),pl)+12))) == NULL ) X return(NULL); X X *p = '\0'; X X if( (tl == 0) || (_access( strcpy(p, tmpdir), 0) != 0) ) X if( (dl == 0) || (_access( strcpy(p, dir), 0) != 0) ) X if( _access( strcpy(p, P_tmpdir), 0) != 0 ) X if( !prefix ) X prefix = "tp"; X X if(prefix) X { X *(p+strlen(p)+2) = '\0'; X (void)strncat(p, prefix, 2); X } X X sprintf( buf, "%ld", (long) time((time_t *)0) ); X (void)strcat(p, buf+strlen(buf)-6 ); X sprintf( buf, "%03d", count++ ); X q=p+strlen(p)-6; X *q++ = buf[0]; X *q++ = buf[1]; X *q++ = buf[2]; X X if( (q = strrchr(p,'.')) != NULL ) *q = '\0'; X X return(p); X} X X X X_access( name, flag ) Xchar *name; Xint flag; X{ X char *p; X int r; X X if( name == NULL || !*name ) return(1); /* NULL dir means current dir */ X r = access( name, flag ); X p = name+strlen(name)-1; X if(*p != '/' && *p != '\\') strcat( p, "/" ); X X return( r ); X} SHAR_EOF chmod 0640 msdos/tccdos/tempnam.c || echo "restore of msdos/tccdos/tempnam.c fails" echo "x - extracting msdos/tccdos/tccobj.rsp (Text)" sed 's/^X//' << 'SHAR_EOF' > msdos/tccdos/tccobj.rsp && Xc:\lib.tcc\c0s.obj+ Xobjects\infer.obj+ Xobjects\make.obj+ Xobjects\stat.obj+ Xobjects\expand.obj+ Xobjects\string.obj+ Xobjects\hash.obj+ Xobjects\dag.obj+ Xobjects\dmake.obj+ Xobjects\path.obj+ Xobjects\imacs.obj+ Xobjects\sysintf.obj+ Xobjects\parse.obj+ Xobjects\getinp.obj+ Xobjects\quit.obj+ Xobjects\basename.obj+ Xobjects\dump.obj+ Xobjects\macparse.obj+ Xobjects\rulparse.obj+ Xobjects\percent.obj+ Xobjects\ruletab.obj+ Xobjects\dirbrk.obj+ Xobjects\runargv.obj+ Xobjects\arlib.obj+ Xobjects\_chdir.obj+ Xobjects\switchar.obj+ Xobjects\rmprq.obj+ Xobjects\tempnam.obj+ Xobjects\utime.obj SHAR_EOF chmod 0640 msdos/tccdos/tccobj.rsp || echo "restore of msdos/tccdos/tccobj.rsp fails" echo "x - extracting msdos/tccdos/tcclib.rsp (Text)" sed 's/^X//' << 'SHAR_EOF' > msdos/tccdos/tcclib.rsp && Xc:\lib.tcc\emu+ Xc:\lib.tcc\maths+ Xc:\lib.tcc\cs SHAR_EOF chmod 0640 msdos/tccdos/tcclib.rsp || echo "restore of msdos/tccdos/tcclib.rsp fails" echo "x - extracting msdos/tccdos/tcc.rsp (Text)" sed 's/^X//' << 'SHAR_EOF' > msdos/tccdos/tcc.rsp && Xc:\lib.tcc\c0s.obj+ Xobjects\infer+ Xobjects\make+ Xobjects\stat+ Xobjects\expand+ Xobjects\string+ Xobjects\hash+ Xobjects\dag+ Xobjects\dmake+ Xobjects\path+ Xobjects\imacs+ Xobjects\sysintf+ Xobjects\parse+ Xobjects\getinp+ Xobjects\quit+ Xobjects\basename+ Xobjects\dump+ Xobjects\macparse+ Xobjects\rulparse+ Xobjects\percent+ Xobjects\ruletab+ Xobjects\dirsep+ Xobjects\runargv+ Xobjects\arlib+ Xobjects\_chdir+ Xobjects\switchar+ Xobjects\tempnam Xobjects\infer X/c/x Xc:\lib.tcc\EMU.LIB+ Xc:\lib.tcc\maths.lib+ SHAR_EOF chmod 0640 msdos/tccdos/tcc.rsp || echo "restore of msdos/tccdos/tcc.rsp fails" echo "x - extracting msdos/tccdos/startup.mk (Text)" sed 's/^X//' << 'SHAR_EOF' > msdos/tccdos/startup.mk && X# MSDOS DMAKE startup file. Customize to suit your needs. X# Assumes MKS toolkit for the tool commands, and Turbo-C. Change as req'd. X# See the documentation for a description of internally defined macros. X# X# Disable warnings for macros redefined here that were given X# on the command line. X__.SILENT := $(.SILENT) X.SILENT := yes X X# Configuration parameters for DMAKE startup.mk file X# Set these to NON-NULL if you wish to turn the parameter on. X_HAVE_RCS := yes # yes => RCS is installed. X_HAVE_SCCS := # yes => SCCS is installed. X X# Applicable suffix definitions XA := .lib # Libraries XE := .exe # Executables XF := .for # Fortran XO := .obj # Objects XP := .pas # Pascal XS := .asm # Assembler sources XV := # RCS suffix X X# See if these are defined XTMPDIR := $(ROOTDIR)/tmp X.IMPORT .IGNORE : TMPDIR SHELL COMSPEC X X# Recipe execution configurations X# First set SHELL, If it is not defined, use COMSPEC, otherwise X# it is assumed to be MKS Korn SHELL. X.IF $(SHELL) == $(NULL) X.IF $(COMSPEC) == $(NULL) X SHELL := $(ROOTDIR)/bin/sh$E X.ELSE X SHELL := $(COMSPEC) X.END X.END XGROUPSHELL := $(SHELL) X X# Now set remaining arguments depending on which SHELL we X# are going to use. COMSPEC (assumed to be command.com) or X# MKS Korn Shell. X.IF $(SHELL)==$(COMSPEC) XSHELLFLAGS := $(SWITCHAR)c XGROUPFLAGS := $(SHELLFLAGS) XSHELLMETAS := *"?<> XGROUPSUFFIX := .bat X.ELSE XSHELLFLAGS := -c XGROUPFLAGS := XSHELLMETAS := *"?<>|()&][$$\#`' XGROUPSUFFIX := .ksh X.END X X# Standard C-language command names and flags X CC := tcc # C-compiler and flags X CFLAGS = X X AS := tasm # Assembler and flags X ASFLAGS = X X LD = tlink # Loader and flags X LDFLAGS = X LDLIBS = X X# Definition of $(MAKE) macro for recursive makes. X MAKE = $(MAKECMD) $(MFLAGS) X X# Language and Parser generation Tools and their flags X YACC := yacc # standard yacc X YFLAGS = X YTAB := ytab # yacc output files name stem. X X LEX := lex # standard lex X LFLAGS = X LEXYY := lex_yy # lex output file X X# Other Compilers, Tools and their flags X PC := tpc # pascal compiler X RC := anyf77 # ratfor compiler X FC := anyf77 # fortran compiler X X CO := co # check out for RCS X COFLAGS := -q X X AR := ar # archiver X ARFLAGS = ruv X X RM := /bin/rm # remove a file command X RMFLAGS = X X# Implicit generation rules for making inferences. X# We don't provide .yr or .ye rules here. They're obsolete. X# Rules for making *$O X %$O : %.c ; $(CC) $(CFLAGS) -c $< X %$O : %$P ; $(PC) $(PFLAGS) -c $< X %$O : %$S ; $(AS) $< X %$O : %.cl ; class -c $< X %$O : %.e %.r %.F %$F ; $(FC) $(RFLAGS) $(EFLAGS) $(FFLAGS) -c $< X X# Executables X %$E : %$O ; $(LD) $(LDFLAGS) -e$@ $< $(LDLIBS) X X# lex and yacc rules X %.c : %.y ; $(YACC) $(YFLAGS) $<; mv $(YTAB).c $@ X %.c : %.l ; $(LEX) $(LFLAGS) $<; mv $(LEXYY).c $@ X X# RCS support X.IF $(_HAVE_RCS) X % : $$(@:d)RCS/$$(@:f)$V;- $(CO) $(COFLAGS) $@ X .NOINFER : $$(@:d)RCS/$$(@:f)$V X.END X X# SCCS support X.IF $(_HAVE_SCCS) X % : s.% ; get $@ X .NOINFER : s.% X.END X X# Recipe to make archive files. X%$A : X[ X $(AR) $(ARFLAGS) $@ $? X $(RM) $(RMFLAGS) $? X] X X# DMAKE uses this recipe to remove intermediate targets X.REMOVE :; $(RM) -f $< X X# AUGMAKE extensions for SYSV compatibility X@B = $(@:b) X@D = $(@:d) X@F = $(@:f) X*B = $(*:b) X*D = $(*:d) X*F = $(*:f) X<B = $(<:b) X<D = $(<:d) X<F = $(<:f) X?B = $(?:b) X?F = $(?:f) X?D = $(?:d) X X# Turn warnings back to previous setting. X.SILENT := $(__.SILENT) X X# Local init file if any, gets parsed before user makefile X.INCLUDE .IGNORE: "_startup.mk" SHAR_EOF chmod 0640 msdos/tccdos/startup.mk || echo "restore of msdos/tccdos/startup.mk fails" echo "x - extracting msdos/tccdos/make.bat (Text)" sed 's/^X//' << 'SHAR_EOF' > msdos/tccdos/make.bat && Xmkdir objects Xtcc -c -DHELP -I. -Icommon -Imsdos -Imsdos\tccdos -f- -d -1 -N- -w-nod infer.c Xmv infer.obj objects Xtcc -c -DHELP -I. -Icommon -Imsdos -Imsdos\tccdos -f- -d -1 -N- -w-nod make.c Xmv make.obj objects Xtcc -c -DHELP -I. -Icommon -Imsdos -Imsdos\tccdos -f- -d -1 -N- -w-nod stat.c Xmv stat.obj objects Xtcc -c -DHELP -I. -Icommon -Imsdos -Imsdos\tccdos -f- -d -1 -N- -w-nod expand.c Xmv expand.obj objects Xtcc -c -DHELP -I. -Icommon -Imsdos -Imsdos\tccdos -f- -d -1 -N- -w-nod string.c Xmv string.obj objects Xtcc -c -DHELP -I. -Icommon -Imsdos -Imsdos\tccdos -f- -d -1 -N- -w-nod hash.c Xmv hash.obj objects Xtcc -c -DHELP -I. -Icommon -Imsdos -Imsdos\tccdos -f- -d -1 -N- -w-nod dag.c Xmv dag.obj objects Xtcc -c -DHELP -I. -Icommon -Imsdos -Imsdos\tccdos -f- -d -1 -N- -w-nod dmake.c Xmv dmake.obj objects Xtcc -c -DHELP -I. -Icommon -Imsdos -Imsdos\tccdos -f- -d -1 -N- -w-nod path.c Xmv path.obj objects Xtcc -c -DHELP -I. -Icommon -Imsdos -Imsdos\tccdos -f- -d -1 -N- -w-nod imacs.c Xmv imacs.obj objects Xtcc -c -DHELP -I. -Icommon -Imsdos -Imsdos\tccdos -f- -d -1 -N- -w-nod sysintf.c Xmv sysintf.obj objects Xtcc -c -DHELP -I. -Icommon -Imsdos -Imsdos\tccdos -f- -d -1 -N- -w-nod parse.c Xmv parse.obj objects Xtcc -c -DHELP -I. -Icommon -Imsdos -Imsdos\tccdos -f- -d -1 -N- -w-nod getinp.c Xmv getinp.obj objects Xtcc -c -DHELP -I. -Icommon -Imsdos -Imsdos\tccdos -f- -d -1 -N- -w-nod quit.c Xmv quit.obj objects Xtcc -c -DHELP -I. -Icommon -Imsdos -Imsdos\tccdos -f- -d -1 -N- -w-nod basename.c Xmv basename.obj objects Xtcc -c -DHELP -I. -Icommon -Imsdos -Imsdos\tccdos -f- -d -1 -N- -w-nod dump.c Xmv dump.obj objects Xtcc -c -DHELP -I. -Icommon -Imsdos -Imsdos\tccdos -f- -d -1 -N- -w-nod macparse.c Xmv macparse.obj objects Xtcc -c -DHELP -I. -Icommon -Imsdos -Imsdos\tccdos -f- -d -1 -N- -w-nod rulparse.c Xmv rulparse.obj objects Xtcc -c -DHELP -I. -Icommon -Imsdos -Imsdos\tccdos -f- -d -1 -N- -w-nod percent.c Xmv percent.obj objects Xtcc -c -DHELP -I. -Icommon -Imsdos -Imsdos\tccdos -f- -d -1 -N- -w-nod msdos\ruletab.c Xmv ruletab.obj objects Xtcc -c -DHELP -I. -Icommon -Imsdos -Imsdos\tccdos -f- -d -1 -N- -w-nod msdos\dirbrk.c Xmv dirbrk.obj objects Xtcc -c -DHELP -I. -Icommon -Imsdos -Imsdos\tccdos -f- -d -1 -N- -w-nod msdos\runargv.c Xmv runargv.obj objects Xtcc -c -DHELP -I. -Icommon -Imsdos -Imsdos\tccdos -f- -d -1 -N- -w-nod msdos\arlib.c Xmv arlib.obj objects Xtcc -c -DHELP -I. -Icommon -Imsdos -Imsdos\tccdos -f- -d -1 -N- -w-nod msdos\_chdir.c Xmv _chdir.obj objects Xtcc -c -DHELP -I. -Icommon -Imsdos -Imsdos\tccdos -f- -d -1 -N- -w-nod msdos\switchar.c Xmv switchar.obj objects Xtcc -c -DHELP -I. -Icommon -Imsdos -Imsdos\tccdos -f- -d -1 -N- -w-nod msdos\rmprq.c Xmv rmprq.obj objects Xtcc -c -DHELP -I. -Icommon -Imsdos -Imsdos\tccdos -f- -d -1 -N- -w-nod msdos\tccdos\tempnam.c Xmv tempnam.obj objects Xtcc -c -DHELP -I. -Icommon -Imsdos -Imsdos\tccdos -f- -d -1 -N- -w-nod msdos\tccdos\utime.c Xmv utime.obj objects Xtlink @msdos\tccdos\tccobj.rsp,dmake.exe,NUL.MAP,@msdos\tccdos\tcclib.rsp SHAR_EOF chmod 0640 msdos/tccdos/make.bat || echo "restore of msdos/tccdos/make.bat fails" echo "x - extracting msdos/tccdos/config.mk (Text)" sed 's/^X//' << 'SHAR_EOF' > msdos/tccdos/config.mk && X# This is the Turbo C 2.0 DOSconfiguration file for DMAKE X# It simply modifies the values of SRC, and checks to see if X# OSENVIRONMENT is defined. If so it includes the appropriate X# config.mk file. X# X# It also sets the values of .SOURCE.c and .SOURCE.h to include the local X# directory. X# Xosrdir := $(OS)$(DIRSEPSTR)$(OSRELEASE) X X# tlink does not know how to deal with tmpfiles that have e:\ in their path. XTMPDIR := X.EXPORT : TMPDIR X X# Definition of macros for library, and C startup code. XLDLIBS = c:/lib.tcc/emu c:/lib.tcc/maths c:/lib.tcc/cs XCSTARTUP = c:/lib.tcc/c0s.obj X X# The following sources are required for TURBO C 2.0 XSRC += tempnam.c utime.c X X.SOURCE.c : $(osrdir) X.SOURCE.h : $(osrdir) X X# Local configuration modifications for CFLAGS, there's local BSD includes X# too. Make sure your turboc.cfg file contains a -D__STDC__=1 and -DM_I86=1, X# if not then uncomment the line below! X#CFLAGS += -I$(osrdir) -DM_I86=1 -D__STDC__=1 XCFLAGS += -I$(osrdir) -f- -d -1 -N- -w-nod X X# See if we modify anything in the lower levels. X.IF $(OSENVIRONMENT) != $(NULL) X .INCLUDE .IGNORE : $(osrdir)$(DIRSEPSTR)$(OSENVIRONMENT)$(DIRSEPSTR)config.mk X.END SHAR_EOF chmod 0640 msdos/tccdos/config.mk || echo "restore of msdos/tccdos/config.mk fails" echo "x - extracting msdos/tccdos/config.h (Text)" sed 's/^X//' << 'SHAR_EOF' > msdos/tccdos/config.h && X/* RCS -- $Header$ X-- SYNOPSIS -- Configurarion include file. X-- X-- DESCRIPTION X-- There is one of these for each specific machine configuration. X-- It can be used to further tweek the machine specific sources X-- so that they compile. X-- X-- AUTHOR X-- Dennis Vadura, dvadura@watdragon.uwaterloo.ca X-- CS DEPT, University of Waterloo, Waterloo, Ont., Canada X-- X-- COPYRIGHT X-- Copyright (c) 1990 by Dennis Vadura. All rights reserved. X-- X-- This program is free software; you can redistribute it and/or X-- modify it under the terms of the GNU General Public License X-- (version 1), as published by the Free Software Foundation, and X-- found in the file 'LICENSE' included with this distribution. X-- X-- This program is distributed in the hope that it will be useful, X-- but WITHOUT ANY WARRANTY; without even the implied warrant of X-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the X-- GNU General Public License for more details. X-- X-- You should have received a copy of the GNU General Public License X-- along with this program; if not, write to the Free Software X-- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. X-- X-- LOG X-- $Log$ X*/ X X/* define this for configurations that don't have the coreleft function X * so that the code compiles. To my knowledge coreleft exists only on X * Turbo C, but it is needed here since the function is used in many debug X * macros. */ X/*#define coreleft() 0L*/ Xextern unsigned int coreleft(); X#define SIGQUIT SIGTERM /* turbo C doesn't understand SIGQUIT */ X X/*No parallelism in DOS so don't need to explode the graph. */ X#define Explode_prq(a,b,c) SHAR_EOF chmod 0640 msdos/tccdos/config.h || echo "restore of msdos/tccdos/config.h fails" echo "x - extracting msdos/sysintf.h (Text)" sed 's/^X//' << 'SHAR_EOF' > msdos/sysintf.h && X/* X** assorted bits of system interface X*/ X#include <sys/types.h> X#include <sys/stat.h> X#include <signal.h> X X#define STAT stat X#define VOID_LCACHE(l,m) Xextern char * tempnam(); Xextern char * getcwd(); X X/*No parallelism in DOS so don't need to explode the graph. */ X#define Explode_prq(a,b,c) X X/* X** standard C items X*/ X X/* X** DOS interface standard items X*/ X#define chdir(p) _chdir(p) X X/* X** make parameters X*/ X#define MAXARGV 64 X#define MAX_PATH_LEN 64 X SHAR_EOF chmod 0440 msdos/sysintf.h || echo "restore of msdos/sysintf.h fails" echo "x - extracting msdos/switchar.c (Text)" sed 's/^X//' << 'SHAR_EOF' > msdos/switchar.c && X/* X** return switch char X*/ X#include <dos.h> X Xgetswitchar() X{ X#if defined(M_I86) X union REGS rg; X X rg.h.ah = 0x37; /* switch char request */ X rg.h.al = 0; /* get (not set) */ X X intdos(&rg, &rg); X return (rg.h.dl); X#endif X return ('-'); X} X SHAR_EOF chmod 0440 msdos/switchar.c || echo "restore of msdos/switchar.c fails" echo "x - extracting msdos/stdarg.h (Text)" sed 's/^X//' << 'SHAR_EOF' > msdos/stdarg.h && X/* X * stdarg.h X * X * defines ANSI style macros for accessing arguments of a function which takes X * a variable number of arguments X * X */ X X#if !defined(__STDARG) X#define __STDARG X Xtypedef char *va_list; X X#define va_dcl int va_alist X#define va_start(ap,v) ap = (va_list)&va_alist X#define va_arg(ap,t) ((t*)(ap += sizeof(t)))[-1] X#define va_end(ap) ap = NULL X#endif SHAR_EOF chmod 0440 msdos/stdarg.h || echo "restore of msdos/stdarg.h fails" echo "x - extracting msdos/startup.h (Text)" sed 's/^X//' << 'SHAR_EOF' > msdos/startup.h && X/* This file contains the default value of the MAKESTARTUP variable. X * You must set the quoted string below to the default path to the startup X * variable, so that it gets compiled in. LEAVE ROOTDIR at the front of X * the path. This allows the user to customize his environment for dmake X * by setting up a new ROOTDIR environment variable. */ X X"MAKESTARTUP := $(ROOTDIR)/etc/startup.mk", SHAR_EOF chmod 0440 msdos/startup.h || echo "restore of msdos/startup.h fails" echo "x - extracting msdos/runargv.c (Text)" sed 's/^X//' << 'SHAR_EOF' > msdos/runargv.c && X/* RCS -- $Header: /u2/dvadura/src/generic/dmake/src/msdos/RCS/runargv.c,v 1.1 90/07/19 14:10:45 dvadura Exp $ X-- SYNOPSIS -- run a sub process. X-- X-- DESCRIPTION X-- Use spawn to run a subprocess. X-- X-- AUTHOR X-- Dennis Vadura, dvadura@watdragon.uwaterloo.ca X-- CS DEPT, University of Waterloo, Waterloo, Ont., Canada X-- X-- COPYRIGHT X-- Copyright (c) 1990 by Dennis Vadura. All rights reserved. X-- X-- This program is free software; you can redistribute it and/or X-- modify it under the terms of the GNU General Public License X-- (version 1), as published by the Free Software Foundation, and X-- found in the file 'LICENSE' included with this distribution. X-- X-- This program is distributed in the hope that it will be useful, X-- but WITHOUT ANY WARRANTY; without even the implied warrant of X-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the X-- GNU General Public License for more details. X-- X-- You should have received a copy of the GNU General Public License X-- along with this program; if not, write to the Free Software X-- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. X-- X-- LOG X-- $Log: runargv.c,v $ X * Revision 1.1 90/07/19 14:10:45 dvadura X * Initial Revision of Version 3.5 X * X*/ X X#include "extern.h" X#include "sysintf.h" X#include <process.h> X#include <string.h> X#include <errno.h> X Xstatic int _abort_flg = FALSE; Xstatic void _add_child ANSI((CELLPTR, HOWPTR, int)); Xstatic void _finished_child ANSI((int)); X Xint Xrunargv(target, how, ignore, group, last, cmd) XCELLPTR target; XHOWPTR how; Xint ignore; Xint group; Xint last; Xchar *cmd; X{ X int status; X char *argv[MAXARGV]; X X Pack_argv( argv, MAXARGV, group, cmd ); X _add_child(target, how, ignore); X status = spawnvp(P_WAIT, argv[0], argv); X if( status == -1 ) Error("%s: %s", argv[0], strerror(errno)); X _finished_child(status); X if( last && !Doing_bang ) Update_time_stamp( target, how ); X X return( 0 ); X} X X Xvoid XClean_up_processes() X{ X _abort_flg = TRUE; X _finished_child(-1); X} X X Xint XWait_for_child( abort_flg, pid ) Xint abort_flg; Xint pid; X{ X return(1); X} X X Xstatic int _valid = -1; Xstatic CELLPTR _tg; Xstatic HOWPTR _how; Xstatic int _ignore; X Xstatic void X_add_child( target, how, ignore ) XCELLPTR target; XHOWPTR how; Xint ignore; X{ X _tg = target; X _ignore = ignore; X _how = how; X _valid = 0; X X Current_target = NIL(HOW); X} X X Xstatic void X_finished_child(status) Xint status; X{ X if( _valid == -1 ) return; X Unlink_temp_files( _how ); X _valid = -1; X Handle_result( status, _ignore, _abort_flg, _tg ); X} SHAR_EOF chmod 0440 msdos/runargv.c || echo "restore of msdos/runargv.c fails" echo "x - extracting msdos/ruletab.c (Text)" sed 's/^X//' << 'SHAR_EOF' > msdos/ruletab.c && X/* RCS -- $Header: /u2/dvadura/src/generic/dmake/src/msdos/RCS/ruletab.c,v 1.1 90/07/19 14:10:44 dvadura Exp $ X-- SYNOPSIS -- Default initial configuration of dmake. X-- X-- DESCRIPTION X-- Define here the initial set of rules that are defined before X-- dmake performs any processing. X-- X-- AUTHOR X-- Dennis Vadura, dvadura@watdragon.uwaterloo.ca X-- CS DEPT, University of Waterloo, Waterloo, Ont., Canada X-- X-- COPYRIGHT X-- Copyright (c) 1990 by Dennis Vadura. All rights reserved. X-- X-- This program is free software; you can redistribute it and/or X-- modify it under the terms of the GNU General Public License X-- (version 1), as published by the Free Software Foundation, and X-- found in the file 'LICENSE' included with this distribution. X-- X-- This program is distributed in the hope that it will be useful, X-- but WITHOUT ANY WARRANTY; without even the implied warrant of X-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the X-- GNU General Public License for more details. X-- X-- You should have received a copy of the GNU General Public License X-- along with this program; if not, write to the Free Software X-- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. X-- X-- LOG X-- $Log: ruletab.c,v $ X * Revision 1.1 90/07/19 14:10:44 dvadura X * Initial Revision of Version 3.5 X * X*/ X X/* These are control macros for dmake that MUST be defined at some point X * if they are NOT dmake will not work! These are default definitions. They X * may be overridden inside the .STARTUP makefile, they are here X * strictly so that dmake can parse the STARTUP makefile */ X Xstatic char *_rules[] = { X "MAXLINELENGTH := 2046", X "MAXPROCESSLIMIT := 1", X "MAXPROCESS := 1", X ".IMPORT .IGNORE: ROOTDIR", X ".MAKEFILES : makefile.mk makefile", X ".SOURCE : .NULL", X#include "startup.h" X 0 }; X Xchar **Rule_tab = _rules; /* for sundry reasons in Get_environment() */ X SHAR_EOF chmod 0440 msdos/ruletab.c || echo "restore of msdos/ruletab.c fails" echo "x - extracting msdos/rmprq.c (Text)" sed 's/^X//' << 'SHAR_EOF' > msdos/rmprq.c && X/* RCS -- $Header: /u2/dvadura/src/generic/dmake/src/msdos/RCS/rmprq.c,v 1.1 90/07/19 14:10:43 dvadura Exp $ X-- SYNOPSIS -- remove prerequisites code. X-- X-- DESCRIPTION X-- This code is different for DOS and for UNIX and parallel make X-- architectures since the parallel case requires the rm's to be X-- run in parallel, whereas DOS guarantees to run them sequentially. X-- X-- AUTHOR X-- Dennis Vadura, dvadura@watdragon.uwaterloo.ca X-- CS DEPT, University of Waterloo, Waterloo, Ont., Canada X-- X-- COPYRIGHT X-- Copyright (c) 1990 by Dennis Vadura. All rights reserved. X-- X-- This program is free software; you can redistribute it and/or X-- modify it under the terms of the GNU General Public License X-- (version 1), as published by the Free Software Foundation, and X-- found in the file 'LICENSE' included with this distribution. X-- X-- This program is distributed in the hope that it will be useful, X-- but WITHOUT ANY WARRANTY; without even the implied warrant of X-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the X-- GNU General Public License for more details. X-- X-- You should have received a copy of the GNU General Public License X-- along with this program; if not, write to the Free Software X-- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. X-- X-- LOG X-- $Log: rmprq.c,v $ X * Revision 1.1 90/07/19 14:10:43 dvadura X * Initial Revision of Version 3.5 X * X*/ X X#include "extern.h" X#include "alloc.h" X Xvoid XRemove_prq( tcp ) XCELLPTR tcp; X{ X tcp->ce_flag &= ~(F_MADE|F_VISITED); X tcp->CE_HOW->hw_flag &= ~(F_MADE|F_VISITED); X tcp->ce_time = 0L; X X Make( tcp, tcp->CE_HOW, NIL(CELL) ); X} SHAR_EOF chmod 0440 msdos/rmprq.c || echo "restore of msdos/rmprq.c fails" echo mkdir - msdos/mscdos mkdir msdos/mscdos echo "x - extracting msdos/mscdos/tempnam.c (Text)" sed 's/^X//' << 'SHAR_EOF' > msdos/mscdos/tempnam.c && X/*LINTLIBRARY*/ X#include <stdio.h> X#include <string.h> X#include <stdlib.h> X#include <time.h> X X#define max(A,B) (((A)<(B))?(B):(A)) X Xextern char *mktemp(); Xextern int access(); Xint _access(); X X/* MSC stdio.h defines P_tmpdir, so let's undo it here */ X/* Under DOS leave the default tmpdir pointing here! */ X#ifdef P_tmpdir X#undef P_tmpdir X#endif Xstatic char *P_tmpdir = ""; X Xchar * Xtempnam(dir, prefix) Xchar *dir; /* use this directory please (if non-NULL) */ Xchar *prefix; /* use this (if non-NULL) as filename prefix */ X{ X static int count = 0; X register char *p, *q, *tmpdir; X int tl=0, dl=0, pl; X time_t ctm; X char buf[30]; X X pl = strlen(P_tmpdir); X X if( (tmpdir = getenv("TMPDIR")) != NULL ) tl = strlen(tmpdir); X if( dir != NULL ) dl = strlen(dir); X X if( (p = malloc((unsigned)(max(max(dl,tl),pl)+12))) == NULL ) X return(NULL); X X *p = '\0'; X X if( (tl == 0) || (_access( strcpy(p, tmpdir), 0) != 0) ) X if( (dl == 0) || (_access( strcpy(p, dir), 0) != 0) ) X if( _access( strcpy(p, P_tmpdir), 0) != 0 ) X if( !prefix ) X prefix = "tp"; X X if(prefix) X { X *(p+strlen(p)+2) = '\0'; X (void)strncat(p, prefix, 2); X } X X sprintf( buf, "%ld", (long) time((time_t *)0) ); X (void)strcat(p, buf+strlen(buf)-6 ); X sprintf( buf, "%03d", count++ ); X q=p+strlen(p)-6; X *q++ = buf[0]; X *q++ = buf[1]; X *q++ = buf[2]; X X if( (q = strrchr(p,'.')) != NULL ) *q = '\0'; X X return(p); X} X X X X_access( name, flag ) Xchar *name; Xint flag; X{ X char *p; X int r; X X if( name == NULL || !*name ) return(1); /* NULL dir means current dir */ X r = access( name, flag ); X p = name+strlen(name)-1; X if(*p != '/' && *p != '\\') strcat( p, "/" ); X X return( r ); X} SHAR_EOF chmod 0640 msdos/mscdos/tempnam.c || echo "restore of msdos/mscdos/tempnam.c fails" echo "x - extracting msdos/mscdos/startup.mk (Text)" sed 's/^X//' << 'SHAR_EOF' > msdos/mscdos/startup.mk && X# MSDOS DMAKE startup file. Customize to suit your needs. X# Assumes MKS toolkit for the tool commands, and Microsoft C. Change as req'd. X# See the documentation for a description of internally defined macros. X# X# Disable warnings for macros redefined here that were given X# on the command line. X__.SILENT := $(.SILENT) X.SILENT := yes X X# Configuration parameters for DMAKE startup.mk file X# Set these to NON-NULL if you wish to turn the parameter on. X_HAVE_RCS := yes # yes => RCS is installed. X_HAVE_SCCS := # yes => SCCS is installed. X X# Applicable suffix definitions XA := .lib # Libraries XE := .exe # Executables XF := .for # Fortran XO := .obj # Objects XP := .pas # Pascal XS := .asm # Assembler sources XV := # RCS suffix X X# See if these are defined XTMPDIR := $(ROOTDIR)/tmp X.IMPORT .IGNORE : TMPDIR SHELL COMSPEC X X# Recipe execution configurations X# First set SHELL, If it is not defined, use COMSPEC, otherwise X# it is assumed to be MKS Korn SHELL. X.IF $(SHELL) == $(NULL) X.IF $(COMSPEC) == $(NULL) X SHELL := $(ROOTDIR)/bin/sh$E X.ELSE X SHELL := $(COMSPEC) X.END X.END XGROUPSHELL := $(SHELL) X X# Now set remaining arguments depending on which SHELL we X# are going to use. COMSPEC (assumed to be command.com) or X# MKS Korn Shell. X.IF $(SHELL)==$(COMSPEC) XSHELLFLAGS := $(SWITCHAR)c XGROUPFLAGS := $(SHELLFLAGS) XSHELLMETAS := *"?<> XGROUPSUFFIX := .bat X.ELSE XSHELLFLAGS := -c XGROUPFLAGS := XSHELLMETAS := *"?<>|()&][$$\#`' XGROUPSUFFIX := .ksh X.END X X# Standard C-language command names and flags X CC := cl # C-compiler and flags X CFLAGS = -nologo X X AS := masm # Assembler and flags X ASFLAGS = -mx -t X X LD = link # Loader and flags X LDFLAGS = X LDLIBS = X X# Definition of $(MAKE) macro for recursive makes. X MAKE = $(MAKECMD) $(MFLAGS) X X# Language and Parser generation Tools and their flags X YACC := yacc # standard yacc X YFLAGS = X YTAB := ytab # yacc output files name stem. X X LEX := lex # standard lex X LFLAGS = X LEXYY := lex_yy # lex output file X X# Other Compilers, Tools and their flags X PC := any_pc # pascal compiler X RC := anyf77 # ratfor compiler X FC := anyf77 # fortran compiler X X CO := co # check out for RCS X COFLAGS := -q X X AR := ar # archiver X ARFLAGS = ruv X X RM := /bin/rm # remove a file command X RMFLAGS = X X# Implicit generation rules for making inferences. X# We don't provide .yr or .ye rules here. They're obsolete. X# Rules for making *$O X %$O : %.c ; $(CC) -o $@ $(CFLAGS) -c $< X %$O : %$P ; $(PC) -o $@ $(PFLAGS) -c $< X %$O : %$S ; $(AS) -o $@ $< X %$O : %.cl ; class -c $< X %$O : %.e %.r %.F %$F ; $(FC) $(RFLAGS) $(EFLAGS) $(FFLAGS) -c $< X X# Executables X %$E : %$O ; X (LD) $(LDFLAGS) @<+$(<:t"+\n":s,/,\,) X $(@:s,/,\,),$(LDLIBS:t"+\n":s,/,\,)\n+> X X# lex and yacc rules X %.c : %.y ; $(YACC) $(YFLAGS) $<; mv $(YTAB).c $@ X %.c : %.l ; $(LEX) $(LFLAGS) $<; mv $(LEXYY).c $@ X X# RCS support X.IF $(_HAVE_RCS) X % : $$(@:d)RCS/$$(@:f)$V;- $(CO) $(COFLAGS) $@ X .NOINFER : $$(@:d)RCS/$$(@:f)$V X.END X X# SCCS support X.IF $(_HAVE_SCCS) X % : s.% ; get $@ X .NOINFER : s.% X.END X X# Recipe to make archive files. X%$A : X[ X $(AR) $(ARFLAGS) $@ $? X $(RM) $(RMFLAGS) $? X] X X# DMAKE uses this recipe to remove intermediate targets X.REMOVE :; $(RM) -f $< X X# AUGMAKE extensions for SYSV compatibility X@B = $(@:b) X@D = $(@:d) X@F = $(@:f) X*B = $(*:b) X*D = $(*:d) X*F = $(*:f) X<B = $(<:b) X<D = $(<:d) X<F = $(<:f) X?B = $(?:b) X?F = $(?:f) X?D = $(?:d) X X# Turn warnings back to previous setting. X.SILENT := $(__.SILENT) X X# Local init file if any, gets parsed before user makefile X.INCLUDE .IGNORE: "_startup.mk" SHAR_EOF chmod 0640 msdos/mscdos/startup.mk || echo "restore of msdos/mscdos/startup.mk fails" echo "x - extracting msdos/mscdos/mscobj.rsp (Text)" sed 's/^X//' << 'SHAR_EOF' > msdos/mscdos/mscobj.rsp && Xobjects\infer.obj+ Xobjects\make.obj+ Xobjects\stat.obj+ Xobjects\expand.obj+ Xobjects\string.obj+ Xobjects\hash.obj+ Xobjects\dag.obj+ Xobjects\dmake.obj+ Xobjects\path.obj+ Xobjects\imacs.obj+ Xobjects\sysintf.obj+ Xobjects\parse.obj+ Xobjects\getinp.obj+ Xobjects\quit.obj+ Xobjects\basename.obj+ Xobjects\dump.obj+ Xobjects\macparse.obj+ Xobjects\rulparse.obj+ Xobjects\percent.obj+ Xobjects\ruletab.obj+ Xobjects\dirbrk.obj+ Xobjects\runargv.obj+ Xobjects\arlib.obj+ Xobjects\_chdir.obj+ Xobjects\switchar.obj+ Xobjects\rmprq.obj+ Xobjects\tempnam.obj SHAR_EOF chmod 0640 msdos/mscdos/mscobj.rsp || echo "restore of msdos/mscdos/mscobj.rsp fails" echo "x - extracting msdos/mscdos/msclib.rsp (Text)" sed 's/^X//' << 'SHAR_EOF' > msdos/mscdos/msclib.rsp && X SHAR_EOF chmod 0640 msdos/mscdos/msclib.rsp || echo "restore of msdos/mscdos/msclib.rsp fails" echo "x - extracting msdos/mscdos/make.bat (Text)" sed 's/^X//' << 'SHAR_EOF' > msdos/mscdos/make.bat && Xmkdir objects Xcl -c -nologo -DHELP -I. -Icommon -Imsdos -Imsdos\mscdos -D__STDC__=1 -DM_I86=1 infer.c Xmv infer.obj objects Xcl -c -nologo -DHELP -I. -Icommon -Imsdos -Imsdos\mscdos -D__STDC__=1 -DM_I86=1 make.c Xmv make.obj objects Xcl -c -nologo -DHELP -I. -Icommon -Imsdos -Imsdos\mscdos -D__STDC__=1 -DM_I86=1 stat.c Xmv stat.obj objects Xcl -c -nologo -DHELP -I. -Icommon -Imsdos -Imsdos\mscdos -D__STDC__=1 -DM_I86=1 expand.c Xmv expand.obj objects Xcl -c -nologo -DHELP -I. -Icommon -Imsdos -Imsdos\mscdos -D__STDC__=1 -DM_I86=1 string.c Xmv string.obj objects Xcl -c -nologo -DHELP -I. -Icommon -Imsdos -Imsdos\mscdos -D__STDC__=1 -DM_I86=1 hash.c Xmv hash.obj objects Xcl -c -nologo -DHELP -I. -Icommon -Imsdos -Imsdos\mscdos -D__STDC__=1 -DM_I86=1 dag.c Xmv dag.obj objects Xcl -c -nologo -DHELP -I. -Icommon -Imsdos -Imsdos\mscdos -D__STDC__=1 -DM_I86=1 dmake.c Xmv dmake.obj objects Xcl -c -nologo -DHELP -I. -Icommon -Imsdos -Imsdos\mscdos -D__STDC__=1 -DM_I86=1 path.c Xmv path.obj objects Xcl -c -nologo -DHELP -I. -Icommon -Imsdos -Imsdos\mscdos -D__STDC__=1 -DM_I86=1 imacs.c Xmv imacs.obj objects Xcl -c -nologo -DHELP -I. -Icommon -Imsdos -Imsdos\mscdos -D__STDC__=1 -DM_I86=1 sysintf.c Xmv sysintf.obj objects Xcl -c -nologo -DHELP -I. -Icommon -Imsdos -Imsdos\mscdos -D__STDC__=1 -DM_I86=1 parse.c Xmv parse.obj objects Xcl -c -nologo -DHELP -I. -Icommon -Imsdos -Imsdos\mscdos -D__STDC__=1 -DM_I86=1 getinp.c Xmv getinp.obj objects Xcl -c -nologo -DHELP -I. -Icommon -Imsdos -Imsdos\mscdos -D__STDC__=1 -DM_I86=1 quit.c Xmv quit.obj objects Xcl -c -nologo -DHELP -I. -Icommon -Imsdos -Imsdos\mscdos -D__STDC__=1 -DM_I86=1 basename.c Xmv basename.obj objects Xcl -c -nologo -DHELP -I. -Icommon -Imsdos -Imsdos\mscdos -D__STDC__=1 -DM_I86=1 dump.c Xmv dump.obj objects Xcl -c -nologo -DHELP -I. -Icommon -Imsdos -Imsdos\mscdos -D__STDC__=1 -DM_I86=1 macparse.c Xmv macparse.obj objects Xcl -c -nologo -DHELP -I. -Icommon -Imsdos -Imsdos\mscdos -D__STDC__=1 -DM_I86=1 rulparse.c Xmv rulparse.obj objects Xcl -c -nologo -DHELP -I. -Icommon -Imsdos -Imsdos\mscdos -D__STDC__=1 -DM_I86=1 percent.c Xmv percent.obj objects Xcl -c -nologo -DHELP -I. -Icommon -Imsdos -Imsdos\mscdos -D__STDC__=1 -DM_I86=1 msdos\ruletab.c Xmv ruletab.obj objects Xcl -c -nologo -DHELP -I. -Icommon -Imsdos -Imsdos\mscdos -D__STDC__=1 -DM_I86=1 msdos\dirbrk.c Xmv dirbrk.obj objects Xcl -c -nologo -DHELP -I. -Icommon -Imsdos -Imsdos\mscdos -D__STDC__=1 -DM_I86=1 msdos\runargv.c Xmv runargv.obj objects Xcl -c -nologo -DHELP -I. -Icommon -Imsdos -Imsdos\mscdos -D__STDC__=1 -DM_I86=1 msdos\arlib.c Xmv arlib.obj objects Xcl -c -nologo -DHELP -I. -Icommon -Imsdos -Imsdos\mscdos -D__STDC__=1 -DM_I86=1 msdos\_chdir.c Xmv _chdir.obj objects Xcl -c -nologo -DHELP -I. -Icommon -Imsdos -Imsdos\mscdos -D__STDC__=1 -DM_I86=1 msdos\switchar.c Xmv switchar.obj objects Xcl -c -nologo -DHELP -I. -Icommon -Imsdos -Imsdos\mscdos -D__STDC__=1 -DM_I86=1 msdos\rmprq.c Xmv rmprq.obj objects Xcl -c -nologo -DHELP -I. -Icommon -Imsdos -Imsdos\mscdos -D__STDC__=1 -DM_I86=1 msdos\mscdos\tempnam.c Xmv tempnam.obj objects Xlink @msdos\mscdos\mscobj.rsp,dmake.exe,NUL.MAP,@msdos\mscdos\msclib.rsp SHAR_EOF chmod 0640 msdos/mscdos/make.bat || echo "restore of msdos/mscdos/make.bat fails" echo "x - extracting msdos/mscdos/config.mk (Text)" sed 's/^X//' << 'SHAR_EOF' > msdos/mscdos/config.mk && X# This is the Turbo C 2.0 DOSconfiguration file for DMAKE X# It simply modifies the values of SRC, and checks to see if X# OSENVIRONMENT is defined. If so it includes the appropriate X# config.mk file. X# X# It also sets the values of .SOURCE.c and .SOURCE.h to include the local X# directory. X# Xosrdir := $(OS)$(DIRSEPSTR)$(OSRELEASE) X X# tlink does not know how to deal with tmpfiles that have e:\ in their path. XTMPDIR := X.EXPORT : TMPDIR X X# Definition of macros for library, and C startup code. X X# The following sources are required for TURBO C 2.0 XSRC += tempnam.c X X.SOURCE.c : $(osrdir) X.SOURCE.h : $(osrdir) X X# Local configuration modifications for CFLAGS, there's local BSD includes X# too. XCFLAGS += -I$(osrdir) -D__STDC__=1 -DM_I86=1 X X# See if we modify anything in the lower levels. X.IF $(OSENVIRONMENT) != $(NULL) X .INCLUDE .IGNORE : $(osrdir)$(DIRSEPSTR)$(OSENVIRONMENT)$(DIRSEPSTR)config.mk X.END SHAR_EOF chmod 0640 msdos/mscdos/config.mk || echo "restore of msdos/mscdos/config.mk fails" echo "x - extracting msdos/mscdos/config.h (Text)" sed 's/^X//' << 'SHAR_EOF' > msdos/mscdos/config.h && X/* RCS -- $Header$ X-- SYNOPSIS -- Configurarion include file. X-- X-- DESCRIPTION X-- There is one of these for each specific machine configuration. X-- It can be used to further tweek the machine specific sources X-- so that they compile. X-- X-- AUTHOR X-- Dennis Vadura, dvadura@watdragon.uwaterloo.ca X-- CS DEPT, University of Waterloo, Waterloo, Ont., Canada X-- X-- COPYRIGHT X-- Copyright (c) 1990 by Dennis Vadura. All rights reserved. X-- X-- This program is free software; you can redistribute it and/or X-- modify it under the terms of the GNU General Public License X-- (version 1), as published by the Free Software Foundation, and X-- found in the file 'LICENSE' included with this distribution. X-- X-- This program is distributed in the hope that it will be useful, X-- but WITHOUT ANY WARRANTY; without even the implied warrant of X-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the X-- GNU General Public License for more details. X-- X-- You should have received a copy of the GNU General Public License X-- along with this program; if not, write to the Free Software X-- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. X-- X-- LOG X-- $Log$ X*/ X X/* define this for configurations that don't have the coreleft function X * so that the code compiles. To my knowledge coreleft exists only on X * Turbo C, but it is needed here since the function is used in many debug X * macros. */ X#define coreleft() 0L X X/*No parallelism in DOS so don't need to explode the graph. */ X#define Explode_prq(a,b,c) SHAR_EOF chmod 0640 msdos/mscdos/config.h || echo "restore of msdos/mscdos/config.h fails" echo "x - extracting msdos/dirbrk.c (Text)" sed 's/^X//' << 'SHAR_EOF' > msdos/dirbrk.c && X/* RCS -- $Header: /u2/dvadura/src/generic/dmake/src/msdos/RCS/dirbrk.c,v 1.1 90/07/19 14:10:42 dvadura Exp $ X-- SYNOPSIS -- define the directory separator string. X-- X-- DESCRIPTION X-- Define this string for any character that may appear in a path name X-- and can be used as a directory separator. X-- X-- AUTHOR X-- Dennis Vadura, dvadura@watdragon.uwaterloo.ca X-- CS DEPT, University of Waterloo, Waterloo, Ont., Canada X-- X-- COPYRIGHT X-- Copyright (c) 1990 by Dennis Vadura. All rights reserved. X-- X-- This program is free software; you can redistribute it and/or X-- modify it under the terms of the GNU General Public License X-- (version 1), as published by the Free Software Foundation, and X-- found in the file 'LICENSE' included with this distribution. X-- X-- This program is distributed in the hope that it will be useful, X-- but WITHOUT ANY WARRANTY; without even the implied warrant of X-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the SHAR_EOF echo "End of part 6" echo "File msdos/dirbrk.c is continued in part 7" echo "7" > s2_seq_.tmp exit 0