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