v20i085: dmake - dmake version 3.7, Patch02j/12

Dennis Vadura dvadura at watdragon.waterloo.edu
Sun Jun 30 08:27:46 AEST 1991


Submitted-by: Dennis Vadura <dvadura at watdragon.waterloo.edu>
Posting-number: Volume 20, Issue 85
Archive-name: dmake/patch02j
Patch-To: dmake: Volume 19, Issue 22-58

#!/bin/sh
# this is dp2.09 (part 9 of a multipart archive)
# do not concatenate these parts, unpack them in order with /bin/sh
# file dm37p2 continued
#
if test ! -r _shar_seq_.tmp; then
	echo 'Please unpack part 1 first!'
	exit 1
fi
(read Scheck
 if test "$Scheck" != 9; then
	echo Please unpack part "$Scheck" next!
	exit 1
 else
	exit 0
 fi
) < _shar_seq_.tmp || exit 1
if test ! -f _shar_wnt_.tmp; then
	echo 'x - still skipping dm37p2'
else
echo 'x - continuing file dm37p2'
sed 's/^X//' << 'SHAR_EOF' >> 'dm37p2' &&
XX
XX	I considered using chdir() to ascend the hierarchy, followed by a
XX	final chdir() to the path being returned by getcwd() to restore the
XX	location, but decided that error recovery was too difficult that way.
XX	The algorithm I settled on was inspired by my rewrite of the "pwd"
XX	utility, combined with the dotdots[] array trick from the SVR2 shell.
X*/
X#define XPG2	/* define to support obsolete XPG2-mandated feature */
XX
XX
X#include	<sys/types.h>
X#include	<sys/stat.h>
XX
X#ifdef M_XENIX
X# include        <sys/ndir.h>
X# define dirent direct
X#else
X# include        <dirent.h>
X#endif
XX
X#include	<errno.h>
X#include	<string.h>
XX
Xtypedef char	*pointer;		/* (void *) if you have it */
XX
Xextern void	free();
Xextern pointer	malloc();
Xextern int	fstat(), stat();
XX
Xextern int	errno;			/* normally done by <errno.h> */
XX
X#ifndef NULL
X#define	NULL	0			/* amorphous null pointer constant */
X#endif
XX
X#ifndef NAME_MAX
X#define	NAME_MAX	255		/* maximum directory entry size */
X#endif
XX
XX
Xchar	*
Xgetcwd( buf, size )			/* returns pointer to CWD pathname */
XX	char		*buf;		/* where to put name (NULL to malloc) */
XX	int		size;		/* size of buf[] or malloc()ed memory */
XX	{
XX	static char	dotdots[] =
X"../../../../../../../../../../../../../../../../../../../../../../../../../..";
XX	char		*dotdot;	/* -> dotdots[.], right to left */
XX	DIR		*dirp;		/* -> parent directory stream */
XX	struct dirent	*dir;		/* -> directory entry */
XX	struct stat	stat1,
XX			stat2;		/* info from stat() */
XX	struct stat	*d = &stat1;	/* -> info about "." */
XX	struct stat	*dd = &stat2;	/* -> info about ".." */
XX	register char	*buffer;	/* local copy of buf, or malloc()ed */
XX	char		*bufend;	/* -> buffer[size] */
XX	register char	*endp;		/* -> end of reversed string */
XX	register char	*dname;		/* entry name ("" for root) */
XX	int		serrno = errno;	/* save entry errno */
XX
XX	if ( buf != NULL && size <= 0
X#ifndef XPG2
XX	  || buf == NULL
X#endif
XX	   )	{
XX		errno = EINVAL;		/* invalid argument */
XX		return NULL;
XX		}
XX
XX	buffer = buf;
X#ifdef XPG2
XX	if ( buf == NULL		/* wants us to malloc() the string */
XX	  && (buffer = (char *) malloc( (unsigned) size )) == NULL
XX	/* XXX -- actually should probably not pay attention to "size" arg */
XX	   )	{
XX		errno = ENOMEM;		/* cannot malloc() specified size */
XX		return NULL;
XX		}
X#endif
XX
XX	if ( stat( ".", dd ) != 0 )	/* prime the pump */
XX		goto error;		/* errno already set */
XX
XX	endp = buffer;			/* initially, empty string */
XX	bufend = &buffer[size];
XX
XX	for ( dotdot = &dotdots[sizeof dotdots]; dotdot != dotdots; )
XX		{
XX		dotdot -= 3;		/* include one more "/.." section */
XX					/* (first time is actually "..") */
XX
XX		/* swap stat() info buffers */
XX		{
XX		register struct stat	*temp = d;
XX
XX		d = dd;			/* new current dir is old parent dir */
XX		dd = temp;
XX		}
XX
XX		if ( (dirp = opendir( dotdot )) == NULL )	/* new parent */
XX			goto error;	/* errno already set */
XX
XX		if ( fstat( dirp->dd_fd, dd ) != 0 )
XX			{
XX			serrno = errno;	/* set by fstat() */
XX			(void)closedir( dirp );
XX			errno = serrno;	/* in case closedir() clobbered it */
XX			goto error;
XX			}
XX
XX		if ( d->st_dev == dd->st_dev )
XX			{		/* not crossing a mount point */
XX			if ( d->st_ino == dd->st_ino )
XX				{	/* root directory */
XX				dname = "";
XX				goto append;
XX				}
XX
XX			do
XX				if ( (dir = readdir( dirp )) == NULL )
XX					{
XX					(void)closedir( dirp );
XX					errno = ENOENT;	/* missing entry */
XX					goto error;
XX					}
XX			while ( dir->d_ino != d->st_ino );
XX			}
XX		else	{		/* crossing a mount point */
XX			struct stat	t;	/* info re. test entry */
XX			char		name[sizeof dotdots + 1 + NAME_MAX];
XX
XX			(void)strcpy( name, dotdot );
XX			dname = &name[strlen( name )];
XX			*dname++ = '/';
XX
XX			do	{
XX				if ( (dir = readdir( dirp )) == NULL )
XX					{
XX					(void)closedir( dirp );
XX					errno = ENOENT;	/* missing entry */
XX					goto error;
XX					}
XX
XX				(void)strcpy( dname, dir->d_name );
XX				/* must fit if NAME_MAX is not a lie */
XX				}
XX			while ( stat( name, &t ) != 0
XX			     || t.st_ino != d->st_ino
XX			     || t.st_dev != d->st_dev
XX			      );
XX			}
XX
XX		dname = dir->d_name;
XX
XX		/* append "/" and reversed dname string onto buffer */
XX    append:
XX		if ( endp != buffer	/* avoid trailing / in final name */
XX		  || dname[0] == '\0'	/* but allow "/" when CWD is root */
XX		   )
XX			*endp++ = '/';
XX
XX		{
XX		register char	*app;	/* traverses dname string */
XX
XX		for ( app = dname; *app != '\0'; ++app )
XX			;
XX
XX		if ( app - dname >= bufend - endp )
XX			{
XX			(void)closedir( dirp );
XX			errno = ERANGE;	/* won't fit allotted space */
XX			goto error;
XX			}
XX
XX		while ( app != dname )
XX			*endp++ = *--app;
XX		}
XX
XX		(void)closedir( dirp );
XX
XX		if ( dname[0] == '\0' )	/* reached root; wrap it up */
XX			{
XX			register char	*startp;	/* -> buffer[.] */
XX
XX			*endp = '\0';	/* plant null terminator */
XX
XX			/* straighten out reversed pathname string */
XX			for ( startp = buffer; --endp > startp; ++startp )
XX				{
XX				char	temp = *endp;
XX
XX				*endp = *startp;
XX				*startp = temp;
XX				}
XX
XX			errno = serrno;	/* restore entry errno */
XX			/* XXX -- if buf==NULL, realloc here? */
XX			return buffer;
XX			}
XX		}
XX
XX	errno = ENOMEM;			/* actually, algorithm failure */
XX
XX    error:
XX	if ( buf == NULL )
XX		free( (pointer)buffer );
XX
XX	return NULL;
XX	}
XX
XSHAR_EOF
Xchmod 0440 unix/sysvr3/pwd/getcwd.c ||
Xecho 'restore of unix/sysvr3/pwd/getcwd.c failed'
XWc_c="`wc -c < 'unix/sysvr3/pwd/getcwd.c'`"
Xtest 5834 -eq "$Wc_c" ||
X	echo 'unix/sysvr3/pwd/getcwd.c: original size 5834, current size' "$Wc_c"
Xfi
X# ============= unix/sysvr3/pwd/make.sh ==============
Xif test -f 'unix/sysvr3/pwd/make.sh' -a X"$1" != X"-c"; then
X	echo 'x - skipping unix/sysvr3/pwd/make.sh (File already exists)'
Xelse
Xecho 'x - extracting unix/sysvr3/pwd/make.sh (Text)'
Xsed 's/^X//' << 'SHAR_EOF' > 'unix/sysvr3/pwd/make.sh' &&
Xmkdir objects
Xcc -c -I. -Iunix -Iunix/sysvr3 -Iunix/sysvr3/pwd -O infer.c
Xmv infer.o objects
Xcc -c -I. -Iunix -Iunix/sysvr3 -Iunix/sysvr3/pwd -O make.c
Xmv make.o objects
Xcc -c -I. -Iunix -Iunix/sysvr3 -Iunix/sysvr3/pwd -O stat.c
Xmv stat.o objects
Xcc -c -I. -Iunix -Iunix/sysvr3 -Iunix/sysvr3/pwd -O expand.c
Xmv expand.o objects
Xcc -c -I. -Iunix -Iunix/sysvr3 -Iunix/sysvr3/pwd -O dmstring.c
Xmv dmstring.o objects
Xcc -c -I. -Iunix -Iunix/sysvr3 -Iunix/sysvr3/pwd -O hash.c
Xmv hash.o objects
Xcc -c -I. -Iunix -Iunix/sysvr3 -Iunix/sysvr3/pwd -O dag.c
Xmv dag.o objects
Xcc -c -I. -Iunix -Iunix/sysvr3 -Iunix/sysvr3/pwd -O dmake.c
Xmv dmake.o objects
Xcc -c -I. -Iunix -Iunix/sysvr3 -Iunix/sysvr3/pwd -O path.c
Xmv path.o objects
Xcc -c -I. -Iunix -Iunix/sysvr3 -Iunix/sysvr3/pwd -O imacs.c
Xmv imacs.o objects
Xcc -c -I. -Iunix -Iunix/sysvr3 -Iunix/sysvr3/pwd -O sysintf.c
Xmv sysintf.o objects
Xcc -c -I. -Iunix -Iunix/sysvr3 -Iunix/sysvr3/pwd -O parse.c
Xmv parse.o objects
Xcc -c -I. -Iunix -Iunix/sysvr3 -Iunix/sysvr3/pwd -O getinp.c
Xmv getinp.o objects
Xcc -c -I. -Iunix -Iunix/sysvr3 -Iunix/sysvr3/pwd -O quit.c
Xmv quit.o objects
Xcc -c -I. -Iunix -Iunix/sysvr3 -Iunix/sysvr3/pwd -O state.c
Xmv state.o objects
Xcc -c -I. -Iunix -Iunix/sysvr3 -Iunix/sysvr3/pwd -O basename.c
Xmv basename.o objects
Xcc -c -I. -Iunix -Iunix/sysvr3 -Iunix/sysvr3/pwd -O dmdump.c
Xmv dmdump.o objects
Xcc -c -I. -Iunix -Iunix/sysvr3 -Iunix/sysvr3/pwd -O macparse.c
Xmv macparse.o objects
Xcc -c -I. -Iunix -Iunix/sysvr3 -Iunix/sysvr3/pwd -O rulparse.c
Xmv rulparse.o objects
Xcc -c -I. -Iunix -Iunix/sysvr3 -Iunix/sysvr3/pwd -O percent.c
Xmv percent.o objects
Xcc -c -I. -Iunix -Iunix/sysvr3 -Iunix/sysvr3/pwd -O function.c
Xmv function.o objects
Xcc -c -I. -Iunix -Iunix/sysvr3 -Iunix/sysvr3/pwd -O unix/arlib.c
Xmv arlib.o objects
Xcc -c -I. -Iunix -Iunix/sysvr3 -Iunix/sysvr3/pwd -O unix/dirbrk.c
Xmv dirbrk.o objects
Xcc -c -I. -Iunix -Iunix/sysvr3 -Iunix/sysvr3/pwd -O unix/rmprq.c
Xmv rmprq.o objects
Xcc -c -I. -Iunix -Iunix/sysvr3 -Iunix/sysvr3/pwd -O unix/ruletab.c
Xmv ruletab.o objects
Xcc -c -I. -Iunix -Iunix/sysvr3 -Iunix/sysvr3/pwd -O unix/runargv.c
Xmv runargv.o objects
Xcc -c -I. -Iunix -Iunix/sysvr3 -Iunix/sysvr3/pwd -O unix/sysvr3/pwd/getcwd.c
Xmv getcwd.o objects
Xcc  -o dmake  objects/infer.o objects/make.o objects/stat.o objects/expand.o objects/dmstring.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/state.o objects/basename.o objects/dmdump.o objects/macparse.o objects/rulparse.o objects/percent.o objects/function.o objects/arlib.o objects/dirbrk.o objects/rmprq.o objects/ruletab.o objects/runargv.o objects/getcwd.o 
Xcp unix/sysvr3/pwd/startup.mk startup.mk
XSHAR_EOF
Xchmod 0640 unix/sysvr3/pwd/make.sh ||
Xecho 'restore of unix/sysvr3/pwd/make.sh failed'
XWc_c="`wc -c < 'unix/sysvr3/pwd/make.sh'`"
Xtest 2739 -eq "$Wc_c" ||
X	echo 'unix/sysvr3/pwd/make.sh: original size 2739, current size' "$Wc_c"
Xfi
X# ============= unix/sysvr3/pwd/public.h ==============
Xif test -f 'unix/sysvr3/pwd/public.h' -a X"$1" != X"-c"; then
X	echo 'x - skipping unix/sysvr3/pwd/public.h (File already exists)'
Xelse
Xecho 'x - extracting unix/sysvr3/pwd/public.h (Text)'
Xsed 's/^X//' << 'SHAR_EOF' > 'unix/sysvr3/pwd/public.h' &&
X/* RCS      -- $Header$
X-- WARNING  -- This file is AUTOMATICALLY GENERATED DO NOT EDIT IT
X--
X-- SYNOPSIS -- Local functions exported to be visible by others.
X--
X-- DESCRIPTION
X--      This file is generated by 'genpub'.  Function declarations
X--      that appear in this file are extracted by 'genpub' from
X--      source files.  Any function in the source file whose definition
X--      appears like:
X--
X--          PUBLIC return_type
X--          function( arg_list );
X--          type_expr1 arg1;
X--          ...
X--
X--      has its definition extracted and a line of the form:
X--
X--          return_type function ANSI((type_expr1,type_expr2,...));
X--
X--      entered into the output file.
X--
X-- AUTHOR
X--      Dennis Vadura, dvadura at 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*/
XX
X#ifndef _DMAKE_PUBLIC_h
X#define _DMAKE_PUBLIC_h
XX
Xvoid Infer_recipe ANSI((CELLPTR, CELLPTR));
Xint Make_targets ANSI(());
Xint Exec_commands ANSI((CELLPTR));
Xvoid Pop_dir ANSI((int));
Xvoid Append_line ANSI((char *, int, FILE *, char *, int, int));
Xvoid Stat_target ANSI((CELLPTR, int));
Xchar * Expand ANSI((char *));
Xchar * Apply_edit ANSI((char *, char *, char *, int, int));
Xvoid Map_esc ANSI((char *));
Xchar* Apply_modifiers ANSI((int, char *));
Xchar* Tokenize ANSI((char *, char *));
Xchar * _strjoin ANSI((char *, char *, int, int));
Xchar * _stradd ANSI((char *, char *, int));
Xchar * _strapp ANSI((char *, char *));
Xchar * _strdup ANSI((char *));
Xchar * _strpbrk ANSI((char *, char *));
Xchar * _strspn ANSI((char *, char *));
Xchar * _strstr ANSI((char *, char *));
Xchar * _substr ANSI((char *, char *));
Xuint16 Hash ANSI((char *, uint32 *));
XHASHPTR Get_name ANSI((char *, HASHPTR *, int));
XHASHPTR Search_table ANSI((HASHPTR *, char *, uint16 *, uint32 *));
XHASHPTR Def_macro ANSI((char *, char *, int));
XCELLPTR Def_cell ANSI((char *));
XLINKPTR Add_prerequisite ANSI((CELLPTR, CELLPTR, int, int));
Xvoid Clear_prerequisites ANSI((CELLPTR));
Xint Test_circle ANSI((CELLPTR, int));
XSTRINGPTR Def_recipe ANSI((char *, STRINGPTR, int, int));
Xt_attr Rcp_attribute ANSI((char *));
Xint main ANSI((int, char **));
XFILE * Openfile ANSI((char *, int, int));
XFILE * Closefile ANSI(());
XFILE * Search_file ANSI((char *, char **));
Xchar * Filename ANSI(());
Xvoid No_ram ANSI(());
Xint Usage ANSI((int));
Xint Version ANSI(());
Xchar * Get_suffix ANSI((char *));
Xchar * Build_path ANSI((char *, char *));
Xvoid Make_rules ANSI(());
Xvoid Create_macro_vars ANSI(());
Xtime_t Do_stat ANSI((char *, char *, char **));
Xint Do_touch ANSI((char *, char *, char **));
Xvoid Void_lib_cache ANSI((char *, char *));
Xtime_t Do_time ANSI(());
Xint Do_cmnd ANSI((char *, int, int, CELLPTR, int, int, int));
Xchar ** Pack_argv ANSI((int, int, char *));
Xchar * Read_env_string ANSI((char *));
Xint Write_env_string ANSI((char *, char *));
Xvoid ReadEnvironment ANSI(());
Xvoid Catch_signals ANSI((void (*)()));
Xvoid Clear_signals ANSI(());
Xvoid Prolog ANSI((int, char* []));
Xvoid Epilog ANSI((int));
Xchar * Get_current_dir ANSI(());
Xint Set_dir ANSI((char*));
Xchar Get_switch_char ANSI(());
XFILE* Get_temp ANSI((char **, char *, int));
XFILE * Start_temp ANSI((char *, CELLPTR, char **));
Xvoid Open_temp_error ANSI((char *, char *));
Xvoid Link_temp ANSI((CELLPTR, FILE *, char *));
Xvoid Close_temp ANSI((CELLPTR, FILE *));
Xvoid Unlink_temp_files ANSI((CELLPTR));
Xvoid Handle_result ANSI((int, int, int, CELLPTR));
Xvoid Update_time_stamp ANSI((CELLPTR));
Xvoid Parse ANSI((FILE *));
Xint Get_line ANSI((char *, FILE *));
Xchar * Do_comment ANSI((char *, char **, int));
Xchar * Get_token ANSI((TKSTRPTR, char *, int));
Xvoid Quit ANSI(());
Xvoid Read_state ANSI(());
Xvoid Write_state ANSI(());
Xint Check_state ANSI((CELLPTR, STRINGPTR *, int));
Xchar* basename ANSI((char *));
Xvoid Dump ANSI(());
Xvoid Dump_recipe ANSI((STRINGPTR));
Xint Parse_macro ANSI((char *, int));
Xint Macro_op ANSI((char *));
Xint Parse_rule_def ANSI((int *));
Xint Rule_op ANSI((char *));
Xvoid Add_recipe_to_list ANSI((char *, int, int));
Xvoid Bind_rules_to_targets ANSI((int));
Xint Set_group_attributes ANSI((char *));
XDFALINKPTR Match_dfa ANSI((char *));
Xvoid Check_circle_dfa ANSI(());
Xvoid Add_nfa ANSI((char *));
Xchar * Exec_function ANSI((char *));
Xtime_t seek_arch ANSI((char *, char *));
Xint If_root_path ANSI((char *));
Xvoid Remove_prq ANSI((CELLPTR));
Xint runargv ANSI((CELLPTR, int, int, int, int, char *));
Xint Wait_for_child ANSI((int, int));
Xvoid Clean_up_processes ANSI(());
XX
X#endif
XSHAR_EOF
Xchmod 0640 unix/sysvr3/pwd/public.h ||
Xecho 'restore of unix/sysvr3/pwd/public.h failed'
XWc_c="`wc -c < 'unix/sysvr3/pwd/public.h'`"
Xtest 5318 -eq "$Wc_c" ||
X	echo 'unix/sysvr3/pwd/public.h: original size 5318, current size' "$Wc_c"
Xfi
X# ============= unix/sysvr3/pwd/startup.mk ==============
Xif test -f 'unix/sysvr3/pwd/startup.mk' -a X"$1" != X"-c"; then
X	echo 'x - skipping unix/sysvr3/pwd/startup.mk (File already exists)'
Xelse
Xecho 'x - extracting unix/sysvr3/pwd/startup.mk (Text)'
Xsed 's/^X//' << 'SHAR_EOF' > 'unix/sysvr3/pwd/startup.mk' &&
X# Generic UNIX DMAKE startup file.  Customize to suit your needs.
X# Should work for both SYSV, and BSD 4.3
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
XX
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		# yes => SCCS is installed.
XX
X# Applicable suffix definitions
XA := .a		# Libraries
XE :=		# Executables
XF := .f		# Fortran
XO := .o		# Objects
XP := .p		# Pascal
XS := .s		# Assembler sources
XV := ,v		# RCS suffix
XX
X# Recipe execution configurations
XSHELL		:= /bin/sh
XSHELLFLAGS	:= -ce
XGROUPSHELL	:= $(SHELL)
XGROUPFLAGS	:= 
XSHELLMETAS	:= |();&<>?*][$$:\\#`'"
XGROUPSUFFIX	:=
XDIVFILE		 = $(TMPFILE)
XX
X# 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
X# Definition of $(MAKE) macro for recursive makes.
XX   MAKE = $(MAKECMD) $(MFLAGS)
XX
X# Definition of Print command for this system.
XX   PRINT = lpr
XX
X# 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
X# 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
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
XX   %$O : %.c ; $(CC) $(CFLAGS) -c $<
XX   %$O : %$P ; $(PC) $(PFLAGS) -c $<
XX   %$O : %$S ; $(AS) $(ASFLAGS) $<
XX   %$O : %.cl ; class -c $<
XX   %$O : %.e %.r %.F %$F
XX	$(FC) $(RFLAGS) $(EFLAGS) $(FFLAGS) -c $<
XX
X# Executables
XX   %$E : %$O ; $(LD) $(LDFLAGS) -o $@ $< $(LDLIBES)
XX
X# lex and yacc rules
XX   %.c : %.y ; $(YACC)  $(YFLAGS) $<; mv $(YTAB).c $@
XX   %.c : %.l ; $(LEX)   $(LFLAGS) $<; mv $(LEXYY).c $@
XX
X# This rule tells how to make *.out from it's immediate list of prerequisites
X# UNIX only.
XX   %.out :; $(LD) $(LDFLAGS) -o $@ $^ $(LDLIBS)
XX
X# RCS support
X.IF $(_HAVE_RCS)
XX   % : %$V $$(@:d)RCS/$$(@:f)$V;- $(CO) $(COFLAGS) $@
XX   .NOINFER : %$V $$(@:d)RCS/$$(@:f)$V
X.END
XX
X# SCCS support
X.IF $(_HAVE_SCCS)
XX   % : s.% ; get $@
XX   .NOINFER : s.%
X.END
XX
X# Recipe to make archive files.
X%$A :
X[
XX   $(AR) $(ARFLAGS) $@ $?
XX   $(RM) $(RMFLAGS) $?
XX   ranlib $@
X]
XX
X# DMAKE uses this recipe to remove intermediate targets
X.REMOVE :; $(RM) -f $<
XX
X# AUGMAKE extensions for SYSV compatibility
X at B = $(@:b)
X at D = $(@:d)
X at 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)
XX
X# Turn warnings back to previous setting.
X.SILENT := $(__.SILENT)
XX
X# Local startup file if any
X.INCLUDE .IGNORE: "_startup.mk"
XSHAR_EOF
Xchmod 0640 unix/sysvr3/pwd/startup.mk ||
Xecho 'restore of unix/sysvr3/pwd/startup.mk failed'
XWc_c="`wc -c < 'unix/sysvr3/pwd/startup.mk'`"
Xtest 3221 -eq "$Wc_c" ||
X	echo 'unix/sysvr3/pwd/startup.mk: original size 3221, current size' "$Wc_c"
Xfi
X
X
X# Now create the file of patches and apply patch appropriately
X# This is a shell archive (produced by shar 3.49)
X# To extract the files from this archive, save it to a file, remove
X# everything above the "!/bin/sh" line above, and type "sh file_name".
X#
X# made 06/28/1991 13:28 UTC by dvadura at watdragon
X# Source directory /u2/dvadura/src/generic/dmake
X#
X# existing files will NOT be overwritten unless -c is specified
X#
X# This shar contains:
X# length  mode       name
X# ------ ---------- ------------------------------------------
X#  88895 -rw-r----- _patches
X#
X# ============= _patches ==============
Xif test -f '_patches' -a X"$1" != X"-c"; then
X	echo 'x - skipping _patches (File already exists)'
Xelse
Xecho 'x - extracting _patches (Text)'
Xsed 's/^X//' << 'SHAR_EOF' > '_patches' &&
X*** /u2/dvadura/src/generic/dmake/dmake37-p1/vextern.h	Mon May  6 15:23:41 1991
X--- vextern.h	Tue Jun 25 16:30:07 1991
X***************
X*** 1,4 ****
X! /* RCS      -- $Header: /u2/dvadura/src/generic/dmake/src/RCS/vextern.h,v 1.1 91/05/06 15:23:39 dvadura Exp $
XX  -- SYNOPSIS -- global variable declarations.
XX  -- 
XX  -- DESCRIPTION
X--- 1,4 ----
X! /* RCS      -- $Header: /u2/dvadura/src/generic/dmake/src/RCS/vextern.h,v 1.2 91/06/25 16:29:56 dvadura Exp $
XX  -- SYNOPSIS -- global variable declarations.
XX  -- 
XX  -- DESCRIPTION
X***************
X*** 29,34 ****
X--- 29,37 ----
XX  --
XX  -- LOG
XX  --     $Log:	vextern.h,v $
X+  * Revision 1.2  91/06/25  16:29:56  dvadura
X+  * Added Notabs global flag.
X+  * 
XX   * Revision 1.1  91/05/06  15:23:39  dvadura
XX   * dmake Release Version 3.7
XX   * 
X***************
X*** 87,92 ****
X--- 90,96 ----
XX  EXTERN	char    *Augmake;	/* -A */
XX  EXTERN  char    Comment;	/* -c */
XX  EXTERN	char	Get_env;	/* -e or -E */
X+ EXTERN  char*   Notabs;		/* -B */
XX  EXTERN	int	Continue;	/* -k */
XX  EXTERN	int	Force;		/* -u */
XX  EXTERN	int	Listing;	/* -p */
X*** /u2/dvadura/src/generic/dmake/dmake37-p1/unix/sysvr4/stdarg.h	Mon May  6 15:28:42 1991
X--- unix/sysvr4/stdarg.h	Thu Jun 27 23:37:14 1991
X***************
X*** 3,8 ****
X--- 3,11 ----
XX     then this wouldn't be quite so awful. */
XX  #ifdef __STDC__
XX  #include "/usr/include/stdarg.h"
X+ #ifndef va_dcl
X+ #define va_dcl int va_alist
X+ #endif
XX  #else
XX  /*
XX   * stdarg.h
X*** /u2/dvadura/src/generic/dmake/dmake37-p1/tos/runargv.c	Mon May  6 15:32:23 1991
X--- tos/runargv.c	Thu Jun 27 23:35:15 1991
X***************
X*** 1,4 ****
X! /* RCS      -- $Header: /u2/dvadura/src/generic/dmake/src/tos/RCS/runargv.c,v 1.1 91/05/06 15:32:22 dvadura Exp $
XX  -- SYNOPSIS -- run a sub process.
XX  -- 
XX  -- DESCRIPTION
X--- 1,4 ----
X! /* RCS      -- $Header: /u2/dvadura/src/generic/dmake/src/tos/RCS/runargv.c,v 1.2 91/06/27 23:35:00 dvadura Exp $
XX  -- SYNOPSIS -- run a sub process.
XX  -- 
XX  -- DESCRIPTION
X***************
X*** 27,32 ****
X--- 27,35 ----
XX  --
XX  -- LOG
XX  --     $Log:	runargv.c,v $
X+  * Revision 1.2  91/06/27  23:35:00  dvadura
X+  * Preserve the current directory accross a spawn call.
X+  * 
XX   * Revision 1.1  91/05/06  15:32:22  dvadura
XX   * dmake Release Version 3.7
XX   * 
X***************
X*** 52,61 ****
X--- 55,70 ----
XX  {
XX     int status;
XX     char **argv;
X+    char path[MAX_PATH_LEN+1];
XX  
XX     argv = Pack_argv( group, shell, cmd );
XX     _add_child(target, ignore);
X+ 
X+    /* save and restore current working directory across a spawn call */
X+    strcpy(path, Get_current_dir());
XX     status = spawnvp(P_WAIT, *argv, argv);
X+    Set_dir(path);
X+ 
XX     if( status == -1 ) Error("%s: %s", argv[0], strerror(errno));
XX     _finished_child(status);
XX     if( last && !Doing_bang ) Update_time_stamp( target );
X*** /u2/dvadura/src/generic/dmake/dmake37-p1/sysintf.c	Mon May  6 15:23:37 1991
X--- sysintf.c	Tue Jun 25 16:29:42 1991
X***************
X*** 1,4 ****
X! /* RCS      -- $Header: /u2/dvadura/src/generic/dmake/src/RCS/sysintf.c,v 1.1 91/05/06 15:23:35 dvadura Exp $
XX  -- SYNOPSIS -- system independent interface
XX  -- 
XX  -- DESCRIPTION
X--- 1,4 ----
X! /* RCS      -- $Header: /u2/dvadura/src/generic/dmake/src/RCS/sysintf.c,v 1.2 91/06/25 16:29:24 dvadura Exp $
XX  -- SYNOPSIS -- system independent interface
XX  -- 
XX  -- DESCRIPTION
X***************
X*** 63,68 ****
X--- 63,71 ----
XX  --
XX  -- LOG
XX  --     $Log:	sysintf.c,v $
X+  * Revision 1.2  91/06/25  16:29:24  dvadura
X+  * Added a patch to support environments for Zortech C++ 2.1.
X+  * 
XX   * Revision 1.1  91/05/06  15:23:35  dvadura
XX   * dmake Release Version 3.7
XX   * 
X***************
X*** 288,293 ****
X--- 291,306 ----
XX  #endif
XX     char **rsave;
XX  
X+ #if !defined(__ZTC__)
X+ # define make_env()
X+ # define free_env()
X+ #else
X+    void make_env();
X+    void free_env();
X+ #endif
X+ 
X+    make_env();
X+ 
XX     rsave    = Rule_tab;
XX     Rule_tab = environ;
XX     Readenv  = TRUE;
X***************
X*** 296,301 ****
X--- 309,316 ----
XX  
XX     Readenv  = FALSE;
XX     Rule_tab = rsave;
X+ 
X+    free_env();
XX  }
XX  
XX  
X*** /u2/dvadura/src/generic/dmake/dmake37-p1/rulparse.c	Mon May  6 15:23:28 1991
X--- rulparse.c	Tue Jun 25 16:29:12 1991
X***************
X*** 1,4 ****
X! /* RCS      -- $Header: /u2/dvadura/src/generic/dmake/src/RCS/rulparse.c,v 1.1 91/05/06 15:23:26 dvadura Exp $
XX  -- SYNOPSIS -- perform semantic analysis on input
XX  -- 
XX  -- DESCRIPTION
X--- 1,4 ----
X! /* RCS      -- $Header: /u2/dvadura/src/generic/dmake/src/RCS/rulparse.c,v 1.2 91/06/25 16:28:27 dvadura Exp $
XX  -- SYNOPSIS -- perform semantic analysis on input
XX  -- 
XX  -- DESCRIPTION
X***************
X*** 29,34 ****
X--- 29,38 ----
XX  --
XX  -- LOG
XX  --     $Log:	rulparse.c,v $
X+  * Revision 1.2  91/06/25  16:28:27  dvadura
X+  * Fixed a bug with handling attributes for inferred group recipes,
X+  * and fixed a NULL pointer problem during %-meta DAG creation.
X+  * 
XX   * Revision 1.1  91/05/06  15:23:26  dvadura
XX   * dmake Release Version 3.7
XX   * 
X***************
X*** 61,67 ****
XX  static LINKPTR    _sv_glb_prq = NIL(LINK);
XX  static int	  _sp_target  = FALSE;
XX  static t_attr     _sv_attr;
X- static t_attr     _sv_attro;
XX  static int        _sv_flag;
XX  static int	  _sv_op;
XX  static char      *_sv_setdir;
X--- 65,70 ----
X***************
X*** 402,408 ****
XX  	 CELLPTR ep;
XX  
XX  	 for( ep=_sv_edgel; ep != NIL(CELL); ep=ep->ce_link ) {
X! 	    _set_attributes( _sv_attro, _sv_setdir, ep );
XX  	    ep->ce_flag |= (F_TARGET|flag);
XX  
XX  	    if( _sv_rules != NIL(STRING) ) {
X--- 405,411 ----
XX  	 CELLPTR ep;
XX  
XX  	 for( ep=_sv_edgel; ep != NIL(CELL); ep=ep->ce_link ) {
X! 	    _set_attributes( _sv_attr, _sv_setdir, ep );
XX  	    ep->ce_flag |= (F_TARGET|flag);
XX  
XX  	    if( _sv_rules != NIL(STRING) ) {
X***************
X*** 799,805 ****
XX      * rules if there are any.  However we must start the rule list with the
XX      * rule specified as via the ; kludge, if there is one */
XX     _sv_targets = targets;
X!    _sv_attr    = _sv_attro = attr;
XX     _sv_flag    = ((op & R_OP_BG) ? F_SINGLE : F_DEFAULT);
XX        
XX     DB_RETURN( RULE_SCAN );
X--- 802,808 ----
XX      * rules if there are any.  However we must start the rule list with the
XX      * rule specified as via the ; kludge, if there is one */
XX     _sv_targets = targets;
X!    _sv_attr    = attr;
XX     _sv_flag    = ((op & R_OP_BG) ? F_SINGLE : F_DEFAULT);
XX        
XX     DB_RETURN( RULE_SCAN );
X***************
X*** 947,953 ****
XX        DB_PRINT( "%", ("Trying to match [%s]", edge?edge->CE_NAME:"(nil)") );
XX  
XX        if(    (!edge->ce_prq && !prereq)
X! 	  || (   edge->ce_prq->cl_prq == prereq
XX  	      && (   edge->ce_dir == _sv_setdir
XX  		  || (   edge->ce_dir
XX  		      && _sv_setdir
X--- 950,957 ----
XX        DB_PRINT( "%", ("Trying to match [%s]", edge?edge->CE_NAME:"(nil)") );
XX  
XX        if(    (!edge->ce_prq && !prereq)
X! 	  || (   edge->ce_prq
X! 	      && edge->ce_prq->cl_prq == prereq
XX  	      && (   edge->ce_dir == _sv_setdir
XX  		  || (   edge->ce_dir
XX  		      && _sv_setdir
X***************
X*** 1095,1101 ****
XX  	The attribute flags set in attr. */
XX  t_attr attr;
XX  {
X!    int flag;
XX  
XX     /* Some compilers can't handle a switch on a long, and t_attr is now a long
XX      * integer on some systems.  foey! */
X--- 1099,1105 ----
XX  	The attribute flags set in attr. */
XX  t_attr attr;
XX  {
X!    t_attr flag;
XX  
XX     /* Some compilers can't handle a switch on a long, and t_attr is now a long
XX      * integer on some systems.  foey! */
X*** /u2/dvadura/src/generic/dmake/dmake37-p1/patchlvl.h	Fri Jun 28 08:21:31 1991
X--- patchlvl.h	Tue Jun 25 16:27:57 1991
X***************
X*** 1,3 ****
XX  /* dmake patch level, reset to 0 for each new version release. */
XX  
X! #define PATCHLEVEL 1
X--- 1,3 ----
XX  /* dmake patch level, reset to 0 for each new version release. */
XX  
X! #define PATCHLEVEL 2
X*** /u2/dvadura/src/generic/dmake/dmake37-p1/parse.c	Mon May  6 15:23:21 1991
X--- parse.c	Tue Jun 25 16:27:04 1991
X***************
X*** 1,4 ****
X! /* RCS      -- $Header: /u2/dvadura/src/generic/dmake/src/RCS/parse.c,v 1.1 91/05/06 15:23:20 dvadura Exp $
XX  -- SYNOPSIS -- parse the input, and perform semantic analysis
XX  -- 
XX  -- DESCRIPTION
X--- 1,4 ----
X! /* RCS      -- $Header: /u2/dvadura/src/generic/dmake/src/RCS/parse.c,v 1.2 91/06/25 16:26:50 dvadura Exp $
XX  -- SYNOPSIS -- parse the input, and perform semantic analysis
XX  -- 
XX  -- DESCRIPTION
X***************
X*** 29,34 ****
X--- 29,37 ----
XX  --
XX  -- LOG
XX  --     $Log:	parse.c,v $
X+  * Revision 1.2  91/06/25  16:26:50  dvadura
X+  * Added kludge for -B flag.
X+  * 
XX   * Revision 1.1  91/05/06  15:23:20  dvadura
XX   * dmake Release Version 3.7
XX   * 
X***************
X*** 88,100 ****
XX                       State = NORMAL_SCAN;
XX                 }
XX                 else {
X!                   if( *Buffer == '\t' ) {
XX                       Add_recipe_to_list( Buffer, FALSE, FALSE );
XX                       rule = TRUE;
XX                    }
XX                    else if( *p == ']' )
XX                       Fatal( "Found unmatched ']'" );
X!                   else if( *Buffer && *p )
XX  		     State = NORMAL_SCAN;
XX                 }
XX   
X--- 91,104 ----
XX                       State = NORMAL_SCAN;
XX                 }
XX                 else {
X!                   if(    *Buffer == '\t'
X! 		      || (Notabs && *Buffer == ' ') ) {
XX                       Add_recipe_to_list( Buffer, FALSE, FALSE );
XX                       rule = TRUE;
XX                    }
XX                    else if( *p == ']' )
XX                       Fatal( "Found unmatched ']'" );
X!                   else if( *Buffer && *p || (Notabs && !*Buffer && !*p))
XX  		     State = NORMAL_SCAN;
XX                 }
XX   
X*** /u2/dvadura/src/generic/dmake/dmake37-p1/os2/mscdos/mk60.cmd	Fri Jun 28 08:21:35 1991
X--- os2/mscdos/mk60.cmd	Fri Jun 28 00:14:59 1991
X***************
X*** 1,32 ****
XX  mkdir objects
X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AC -D__STDC__=1 -B2 C2L -WX -Osecgl -Gs -Foobjects\infer.obj infer.c
X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AC -D__STDC__=1 -B2 C2L -WX -Osecgl -Gs -Foobjects\make.obj make.c
X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AC -D__STDC__=1 -B2 C2L -WX -Osecgl -Gs -Foobjects\stat.obj stat.c
X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AC -D__STDC__=1 -B2 C2L -WX -Osecgl -Gs -Foobjects\expand.obj expand.c
X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AC -D__STDC__=1 -B2 C2L -WX -Osecgl -Gs -Foobjects\dmstring.obj dmstring.c
X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AC -D__STDC__=1 -B2 C2L -WX -Osecgl -Gs -Foobjects\hash.obj hash.c
X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AC -D__STDC__=1 -B2 C2L -WX -Osecgl -Gs -Foobjects\dag.obj dag.c
X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AC -D__STDC__=1 -B2 C2L -WX -Osecgl -Gs -Foobjects\dmake.obj dmake.c
X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AC -D__STDC__=1 -B2 C2L -WX -Osecgl -Gs -Foobjects\path.obj path.c
X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AC -D__STDC__=1 -B2 C2L -WX -Osecgl -Gs -Foobjects\imacs.obj imacs.c
X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AC -D__STDC__=1 -B2 C2L -WX -Osecgl -Gs -Foobjects\sysintf.obj sysintf.c
X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AC -D__STDC__=1 -B2 C2L -WX -Osecgl -Gs -Foobjects\parse.obj parse.c
X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AC -D__STDC__=1 -B2 C2L -WX -Osecgl -Gs -Foobjects\getinp.obj getinp.c
X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AC -D__STDC__=1 -B2 C2L -WX -Osecgl -Gs -Foobjects\quit.obj quit.c
X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AC -D__STDC__=1 -B2 C2L -WX -Osecgl -Gs -Foobjects\state.obj state.c
X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AC -D__STDC__=1 -B2 C2L -WX -Osecgl -Gs -Foobjects\basename.obj basename.c
X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AC -D__STDC__=1 -B2 C2L -WX -Osecgl -Gs -Foobjects\dmdump.obj dmdump.c
X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AC -D__STDC__=1 -B2 C2L -WX -Osecgl -Gs -Foobjects\macparse.obj macparse.c
X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AC -D__STDC__=1 -B2 C2L -WX -Osecgl -Gs -Foobjects\rulparse.obj rulparse.c
X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AC -D__STDC__=1 -B2 C2L -WX -Osecgl -Gs -Foobjects\percent.obj percent.c
X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AC -D__STDC__=1 -B2 C2L -WX -Osecgl -Gs -Foobjects\function.obj function.c
X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AC -D__STDC__=1 -B2 C2L -WX -Osecgl -Gs -Foobjects\ruletab.obj os2\ruletab.c
X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AC -D__STDC__=1 -B2 C2L -WX -Osecgl -Gs -Foobjects\runargv.obj os2\runargv.c
X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AC -D__STDC__=1 -B2 C2L -WX -Osecgl -Gs -Foobjects\_chdir.obj os2\_chdir.c
X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AC -D__STDC__=1 -B2 C2L -WX -Osecgl -Gs -Foobjects\switchar.obj os2\switchar.c
X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AC -D__STDC__=1 -B2 C2L -WX -Osecgl -Gs -Foobjects\dirbrk.obj msdos\dirbrk.c
X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AC -D__STDC__=1 -B2 C2L -WX -Osecgl -Gs -Foobjects\arlib.obj msdos\arlib.c
X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AC -D__STDC__=1 -B2 C2L -WX -Osecgl -Gs -Foobjects\rmprq.obj unix\rmprq.c
X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AC -D__STDC__=1 -B2 C2L -WX -Osecgl -Gs -Foobjects\tempnam.obj os2\mscdos\tempnam.c
XX  cp os2\mscdos\startup.mk startup.mk
X! link @/tmp/mkAAA000196,dmake.exe,NUL.MAP,@/tmp/mkBAA000196/ST:8000 /exe /packc /batch,os2\dmake.def
X--- 1,32 ----
XX  mkdir objects
X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AL -D__STDC__=1 -B2 C2L -WX -Osecgl -Gs -Foobjects\infer.obj infer.c
X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AL -D__STDC__=1 -B2 C2L -WX -Osecgl -Gs -Foobjects\make.obj make.c
X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AL -D__STDC__=1 -B2 C2L -WX -Osecgl -Gs -Foobjects\stat.obj stat.c
X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AL -D__STDC__=1 -B2 C2L -WX -Osecgl -Gs -Foobjects\expand.obj expand.c
X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AL -D__STDC__=1 -B2 C2L -WX -Osecgl -Gs -Foobjects\dmstring.obj dmstring.c
X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AL -D__STDC__=1 -B2 C2L -WX -Osecgl -Gs -Foobjects\hash.obj hash.c
X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AL -D__STDC__=1 -B2 C2L -WX -Osecgl -Gs -Foobjects\dag.obj dag.c
X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AL -D__STDC__=1 -B2 C2L -WX -Osecgl -Gs -Foobjects\dmake.obj dmake.c
X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AL -D__STDC__=1 -B2 C2L -WX -Osecgl -Gs -Foobjects\path.obj path.c
X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AL -D__STDC__=1 -B2 C2L -WX -Osecgl -Gs -Foobjects\imacs.obj imacs.c
X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AL -D__STDC__=1 -B2 C2L -WX -Osecgl -Gs -Foobjects\sysintf.obj sysintf.c
X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AL -D__STDC__=1 -B2 C2L -WX -Osecgl -Gs -Foobjects\parse.obj parse.c
X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AL -D__STDC__=1 -B2 C2L -WX -Osecgl -Gs -Foobjects\getinp.obj getinp.c
X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AL -D__STDC__=1 -B2 C2L -WX -Osecgl -Gs -Foobjects\quit.obj quit.c
X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AL -D__STDC__=1 -B2 C2L -WX -Osecgl -Gs -Foobjects\state.obj state.c
X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AL -D__STDC__=1 -B2 C2L -WX -Osecgl -Gs -Foobjects\basename.obj basename.c
X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AL -D__STDC__=1 -B2 C2L -WX -Osecgl -Gs -Foobjects\dmdump.obj dmdump.c
X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AL -D__STDC__=1 -B2 C2L -WX -Osecgl -Gs -Foobjects\macparse.obj macparse.c
X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AL -D__STDC__=1 -B2 C2L -WX -Osecgl -Gs -Foobjects\rulparse.obj rulparse.c
X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AL -D__STDC__=1 -B2 C2L -WX -Osecgl -Gs -Foobjects\percent.obj percent.c
X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AL -D__STDC__=1 -B2 C2L -WX -Osecgl -Gs -Foobjects\function.obj function.c
X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AL -D__STDC__=1 -B2 C2L -WX -Osecgl -Gs -Foobjects\ruletab.obj os2\ruletab.c
X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AL -D__STDC__=1 -B2 C2L -WX -Osecgl -Gs -Foobjects\runargv.obj os2\runargv.c
X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AL -D__STDC__=1 -B2 C2L -WX -Osecgl -Gs -Foobjects\_chdir.obj os2\_chdir.c
X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AL -D__STDC__=1 -B2 C2L -WX -Osecgl -Gs -Foobjects\switchar.obj os2\switchar.c
X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AL -D__STDC__=1 -B2 C2L -WX -Osecgl -Gs -Foobjects\dirbrk.obj msdos\dirbrk.c
X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AL -D__STDC__=1 -B2 C2L -WX -Osecgl -Gs -Foobjects\arlib.obj msdos\arlib.c
X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AL -D__STDC__=1 -B2 C2L -WX -Osecgl -Gs -Foobjects\rmprq.obj unix\rmprq.c
X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AL -D__STDC__=1 -B2 C2L -WX -Osecgl -Gs -Foobjects\tempnam.obj os2\mscdos\tempnam.c
XX  cp os2\mscdos\startup.mk startup.mk
X! link /stack:8192 /exe /packc /batch @os2\mscdos\obj.rsp,dmake.exe,NUL.MAP;
X*** /u2/dvadura/src/generic/dmake/dmake37-p1/os2/mscdos/mk51.cmd	Fri Jun 28 08:21:37 1991
X--- os2/mscdos/mk51.cmd	Fri Jun 28 00:14:37 1991
X***************
X*** 1,61 ****
XX  mkdir objects
X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AC -D_MSC_VER=510 -B2 C2L -WX -Oscl -Gs infer.c
XX  mv infer.obj objects
X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AC -D_MSC_VER=510 -B2 C2L -WX -Oscl -Gs make.c
XX  mv make.obj objects
X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AC -D_MSC_VER=510 -B2 C2L -WX -Oscl -Gs stat.c
XX  mv stat.obj objects
X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AC -D_MSC_VER=510 -B2 C2L -WX -Oscl -Gs expand.c
XX  mv expand.obj objects
X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AC -D_MSC_VER=510 -B2 C2L -WX -Oscl -Gs dmstring.c
XX  mv dmstring.obj objects
SHAR_EOF
true || echo 'restore of dm37p2 failed'
fi
echo 'End of  part 9'
echo 'File dm37p2 is continued in part 10'
echo 10 > _shar_seq_.tmp
exit 0

exit 0 # Just in case...
-- 
Kent Landfield                   INTERNET: kent at sparky.IMD.Sterling.COM
Sterling Software, IMD           UUCP:     uunet!sparky!kent
Phone:    (402) 291-8300         FAX:      (402) 291-4362
Please send comp.sources.misc-related mail to kent at uunet.uu.net.



More information about the Comp.sources.misc mailing list