dvadura@watdragon.waterloo.edu (Dennis Vadura) (06/30/91)
Submitted-by: Dennis Vadura <dvadura@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@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@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) 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@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@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@uunet.uu.net.