[comp.sources.misc] v20i087: dmake - dmake version 3.7, Patch02l/12

dvadura@watdragon.waterloo.edu (Dennis Vadura) (06/30/91)

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

#!/bin/sh
# this is dp2.11 (part 11 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" != 11; 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' &&
X!    .IF $(SWAP) == y
X!       SWP_SRC = find.c spawn.c
X!       ASRC += exec.asm
X!    .ELSE
X!       SWP_SRC = tee.c
X!    .END
XX  .ELSE
XX     SWP_SRC = tee.c
XX  .END
X*** /u2/dvadura/src/generic/dmake/dmake37-p1/msdos/bccdos/startup.mk	Fri Jun 28 08:22:09 1991
X--- msdos/bccdos/startup.mk	Mon Jun 10 08:54:28 1991
X***************
X*** 98,115 ****
XX  # Implicit generation rules for making inferences.
XX  # We don't provide .yr or .ye rules here.  They're obsolete.
XX  # Rules for making *$O
X!    %$O : %.c ; $(CC) $(CFLAGS) -c $<
X!    %$O : %$P ; $(PC) $(PFLAGS) -c $<
X!    %$O : %$S ; $(AS) $(ASFLAGS) $(<:s,/,\);
XX     %$O : %.cl ; class -c $<
X!    %$O : %.e %.r %.F %$F ; $(FC) $(RFLAGS) $(EFLAGS) $(FFLAGS) -c $<
XX  
XX  # Executables
X!    %$E : %$O ; $(CC) $(LDFLAGS) -o$@ $< $(LDLIBS)
XX  
XX  # lex and yacc rules
X!    %.c : %.y ; $(YACC)  $(YFLAGS) $<; mv $(YTAB).c $@
X!    %.c : %.l ; $(LEX)   $(LFLAGS) $<; mv $(LEXYY).c $@
XX  
XX  # RCS support
XX  .IF $(_HAVE_RCS)
X--- 98,115 ----
XX  # Implicit generation rules for making inferences.
XX  # We don't provide .yr or .ye rules here.  They're obsolete.
XX  # Rules for making *$O
X!    %$O .SWAP: %.c ; $(CC) $(CFLAGS) -c $<
X!    %$O .SWAP: %$P ; $(PC) $(PFLAGS) -c $<
X!    %$O .SWAP: %$S ; $(AS) $(ASFLAGS) $(<:s,/,\);
XX     %$O : %.cl ; class -c $<
X!    %$O .SWAP: %.e %.r %.F %$F ; $(FC) $(RFLAGS) $(EFLAGS) $(FFLAGS) -c $<
XX  
XX  # Executables
X!    %$E .SWAP: %$O ; $(CC) $(LDFLAGS) -e$@ $<
XX  
XX  # lex and yacc rules
X!    %.c .SWAP: %.y ; $(YACC)  $(YFLAGS) $<; mv $(YTAB).c $@
X!    %.c .SWAP: %.l ; $(LEX)   $(LFLAGS) $<; mv $(LEXYY).c $@
XX  
XX  # RCS support
XX  .IF $(_HAVE_RCS)
X***************
X*** 124,130 ****
XX  .END
XX  
XX  # Recipe to make archive files.
X! %$A :
XX  [
XX     $(AR) $(ARFLAGS) $@ $?
XX     $(RM) $(RMFLAGS) $?
X--- 124,130 ----
XX  .END
XX  
XX  # Recipe to make archive files.
X! %$A .SWAP:
XX  [
XX     $(AR) $(ARFLAGS) $@ $?
XX     $(RM) $(RMFLAGS) $?
X*** /u2/dvadura/src/generic/dmake/dmake37-p1/msdos/bccdos/mkswp.bat	Fri Jun 28 08:22:13 1991
X--- msdos/bccdos/mkswp.bat	Thu Jun 27 23:44:28 1991
X***************
X*** 98,101 ****
XX  copy utime.obj objects
XX  del utime.obj
XX  copy msdos\bccdos\startup.mk startup.mk
X! tlink @msdos\bccdos\objswp.rsp,dmake.exe,NUL.MAP,@msdos\bccdos\libswp.rsp
X--- 98,101 ----
XX  copy utime.obj objects
XX  del utime.obj
XX  copy msdos\bccdos\startup.mk startup.mk
X! tlink  @msdos\bccdos\objswp.rsp,dmake.exe,NUL.MAP,@msdos\bccdos\libswp.rsp
X*** /u2/dvadura/src/generic/dmake/dmake37-p1/msdos/bccdos/mk.bat	Fri Jun 28 08:22:15 1991
X--- msdos/bccdos/mk.bat	Thu Jun 27 23:43:52 1991
X***************
X*** 93,96 ****
XX  copy utime.obj objects
XX  del utime.obj
XX  copy msdos\bccdos\startup.mk startup.mk
X! tlink @msdos\bccdos\obj.rsp,dmake.exe,NUL.MAP,@msdos\bccdos\lib.rsp
X--- 93,96 ----
XX  copy utime.obj objects
XX  del utime.obj
XX  copy msdos\bccdos\startup.mk startup.mk
X! tlink  @msdos\bccdos\obj.rsp,dmake.exe,NUL.MAP,@msdos\bccdos\lib.rsp
X*** /u2/dvadura/src/generic/dmake/dmake37-p1/msdos/_chdir.c	Mon May  6 15:25:29 1991
X--- msdos/_chdir.c	Thu Jun 27 23:31:11 1991
X***************
X*** 1,4 ****
X! /* RCS      -- $Header: /u2/dvadura/src/generic/dmake/src/msdos/RCS/_chdir.c,v 1.1 91/05/06 15:25:28 dvadura Exp $
XX  -- SYNOPSIS -- Change directory.
XX  -- 
XX  -- DESCRIPTION
X--- 1,4 ----
X! /* RCS      -- $Header: /u2/dvadura/src/generic/dmake/src/msdos/RCS/_chdir.c,v 1.2 91/06/27 23:30:54 dvadura Exp $
XX  -- SYNOPSIS -- Change directory.
XX  -- 
XX  -- DESCRIPTION
X***************
X*** 27,32 ****
X--- 27,35 ----
XX  --
XX  -- LOG
XX  --     $Log:	_chdir.c,v $
X+  * Revision 1.2  91/06/27  23:30:54  dvadura
X+  * Make sure that chdir works accross drives, didn't before.
X+  * 
XX   * Revision 1.1  91/05/06  15:25:28  dvadura
XX   * dmake Release Version 3.7
XX   * 
X***************
X*** 44,50 ****
XX     res = chdir(path);
XX  
XX  #if defined(OS2)
X!    if (res != -1 && path[1] == ':' && *path != *Pwd) {
XX        unsigned new_drive;
XX        unsigned max_drives;
XX  
X--- 47,53 ----
XX     res = chdir(path);
XX  
XX  #if defined(OS2)
X!    if (res != -1 && path[1] == ':') {
XX        unsigned new_drive;
XX        unsigned max_drives;
XX  
X***************
X*** 53,59 ****
XX        _dos_setdrive(new_drive, &max_drives);
XX     }
XX  #else
X!    if (res != -1 && path[1] == ':' && *path != *Pwd) {
XX        union REGS  reg;
XX  
XX        /* we must change the logged drive, since the chdir worked. */
X--- 56,62 ----
XX        _dos_setdrive(new_drive, &max_drives);
XX     }
XX  #else
X!    if (res != -1 && path[1] == ':') {
XX        union REGS  reg;
XX  
XX        /* we must change the logged drive, since the chdir worked. */
X*** /u2/dvadura/src/generic/dmake/dmake37-p1/makefile.mk	Fri Jun 28 08:22:17 1991
X--- makefile.mk	Mon Jun 24 11:31:53 1991
X***************
X*** 82,88 ****
XX  public .PHONY : $(PUBLIC);
XX  $(PUBLIC) .SHELL .NOSTATE: $(SRC)
XX  	genpub -n DMAKE $< >$@
X! 	rcsclean $@ >&/dev/null
XX  
XX  # Other obvious targets...
XX  $(OBJDIR):;-$(eq,$(SHELL),$(COMSPEC) +md mkdir) $@
X--- 82,88 ----
XX  public .PHONY : $(PUBLIC);
XX  $(PUBLIC) .SHELL .NOSTATE: $(SRC)
XX  	genpub -n DMAKE $< >$@
X! 	rcsclean $@ > /dev/null
XX  
XX  # Other obvious targets...
XX  $(OBJDIR):;-$(eq,$(SHELL),$(COMSPEC) +md mkdir) $@
X***************
X*** 117,123 ****
XX  dmake.shar : dir-copy
XX  [
XX  	find dmake -type f -print >src-list
X! 	xshar -vc -o$@ -l40 `cat src-list`
XX  	$(RM) -rf src-list dmake
XX  ]
XX  
X--- 117,123 ----
XX  dmake.shar : dir-copy
XX  [
XX  	find dmake -type f -print >src-list
X! 	xshar -vc -o$@ -L40 `cat src-list`
XX  	$(RM) -rf src-list dmake
XX  ]
XX  
X***************
X*** 167,178 ****
XX  # unix-scripts.
XX  #
XX  unix-bsd43-scripts-flags   = OS=unix OSRELEASE=bsd43  OSENVIRONMENT=
XX  unix-sysvr4-scripts-flags  = OS=unix OSRELEASE=sysvr4 OSENVIRONMENT=
XX  unix-sysvr3-scripts-flags  = OS=unix OSRELEASE=sysvr3 OSENVIRONMENT=
XX  unix-sysvr1-scripts-flags  = OS=unix OSRELEASE=sysvr1 OSENVIRONMENT=
XX  unix-386ix-scripts-flags   = OS=unix OSRELEASE=386ix  OSENVIRONMENT=
X! unix-bsd43-uw-scripts-flags= OS=unix OSRELEASE=bsd43  OSENVIRONMENT=uw
X! unix-bsd43-vf-scripts-flags= OS=unix OSRELEASE=bsd43  OSENVIRONMENT=vf
XX  tos--scripts-flags         = OS=tos  OSRELEASE=       OSENVIRONMENT=
XX  
XX  unix-scripts .SWAP : clean
X--- 167,180 ----
XX  # unix-scripts.
XX  #
XX  unix-bsd43-scripts-flags   = OS=unix OSRELEASE=bsd43  OSENVIRONMENT=
X+ unix-bsd43-uw-scripts-flags= OS=unix OSRELEASE=bsd43  OSENVIRONMENT=uw
X+ unix-bsd43-vf-scripts-flags= OS=unix OSRELEASE=bsd43  OSENVIRONMENT=vf
XX  unix-sysvr4-scripts-flags  = OS=unix OSRELEASE=sysvr4 OSENVIRONMENT=
XX  unix-sysvr3-scripts-flags  = OS=unix OSRELEASE=sysvr3 OSENVIRONMENT=
X+ unix-sysvr3-pwd-scripts-flags  = OS=unix OSRELEASE=sysvr3 OSENVIRONMENT=pwd
XX  unix-sysvr1-scripts-flags  = OS=unix OSRELEASE=sysvr1 OSENVIRONMENT=
XX  unix-386ix-scripts-flags   = OS=unix OSRELEASE=386ix  OSENVIRONMENT=
X! unix-coherent-scripts-flags= OS=unix OSRELEASE=coherent OSENVIRONMENT=
XX  tos--scripts-flags         = OS=tos  OSRELEASE=       OSENVIRONMENT=
XX  
XX  unix-scripts .SWAP : clean
X***************
X*** 181,188 ****
X--- 183,192 ----
XX  	$(MAKE) SCRIPTFILE=make.sh unix-bsd43-vf-scripts
XX  	$(MAKE) SCRIPTFILE=make.sh unix-sysvr4-scripts
XX  	$(MAKE) SCRIPTFILE=make.sh unix-sysvr3-scripts
X+ 	$(MAKE) SCRIPTFILE=make.sh unix-sysvr3-pwd-scripts
XX  	$(MAKE) SCRIPTFILE=make.sh unix-sysvr1-scripts
XX  	$(MAKE) SCRIPTFILE=make.sh unix-386ix-scripts
X+ 	$(MAKE) SCRIPTFILE=make.sh unix-coherent-scripts
XX  
XX  unix-%-scripts .SWAP :
XX  	$(MAKECMD) -s $($@-flags) .KEEP_STATE:= public
X***************
X*** 217,224 ****
XX  msdos-msc51dosswp-scripts-flags = $(msdos-cf) OSRELEASE=mscdos MSC_VER=5.1
XX  msdos-msc60dos-scripts-flags= $(msdos-cf) OSRELEASE=mscdos SWAP=n MSC_VER=6.0
XX  msdos-msc60dosswp-scripts-flags = $(msdos-cf) OSRELEASE=mscdos MSC_VER=6.0
XX  
X! msdos-scripts: clean msdos-tcc-scripts msdos-bcc-scripts msdos-msc-scripts;
XX  
XX  msdos-tcc-scripts .SWAP :
XX  	$(MAKE) SCRIPTFILE=mk.bat msdos-tccdos-scripts
X--- 221,232 ----
XX  msdos-msc51dosswp-scripts-flags = $(msdos-cf) OSRELEASE=mscdos MSC_VER=5.1
XX  msdos-msc60dos-scripts-flags= $(msdos-cf) OSRELEASE=mscdos SWAP=n MSC_VER=6.0
XX  msdos-msc60dosswp-scripts-flags = $(msdos-cf) OSRELEASE=mscdos MSC_VER=6.0
X+ msdos-ztcdos-scripts-flags= $(msdos-cf) OSRELEASE=ztcdos SWAP=n
X+ msdos-ztcdosswp-scripts-flags= $(msdos-cf) OSRELEASE=ztcdos
XX  
X! msdos-scripts: clean\
X! 	       msdos-tcc-scripts msdos-bcc-scripts\
X! 	       msdos-msc-scripts msdos-ztc-scripts;
XX  
XX  msdos-tcc-scripts .SWAP :
XX  	$(MAKE) SCRIPTFILE=mk.bat msdos-tccdos-scripts
X***************
X*** 232,237 ****
X--- 240,249 ----
XX  	$(MAKE) SCRIPTFILE=mk$?.bat msdos-msc$?dos-scripts
XX  	$(MAKE) SCRIPTFILE=mk$?swp.bat msdos-msc$?dosswp-scripts
XX  
X+ msdos-ztc-scripts .SWAP :
X+ 	$(MAKE) SCRIPTFILE=mk.bat msdos-ztcdos-scripts
X+ 	$(MAKE) SCRIPTFILE=mkswp.bat msdos-ztcdosswp-scripts
X+ 
XX  msdos-%-scripts .SWAP .SILENT:
XX  	$(MAKE) -s $($@-flags) .KEEP_STATE:= public
XX  	$(MAKE) -ns SHELL=command.com COMSPEC=command.com .KEEP_STATE:= $(MS) $($@-flags) >$(SH)
X***************
X*** 239,245 ****
XX  
XX  
XX  # We make the standard OS/2 scripts here, but we have to go and fix up the
X! # mkXX.bat file since it contains names of temporary files for the response
XX  # files required by the linker.  We need to also construct the response file
XX  # contents.  These two functions are performed by the fix-msdos-%-scripts
XX  # meta-target.
X--- 251,257 ----
XX  
XX  
XX  # We make the standard OS/2 scripts here, but we have to go and fix up the
X! # mkXX.cmd file since it contains names of temporary files for the response
XX  # files required by the linker.  We need to also construct the response file
XX  # contents.  These two functions are performed by the fix-msdos-%-scripts
XX  # meta-target.
X*** /u2/dvadura/src/generic/dmake/dmake37-p1/makefile	Mon May  6 10:15:52 1991
X--- makefile	Mon Jun 24 11:23:01 1991
X***************
X*** 12,23 ****
X--- 12,26 ----
XX  	@echo "   make bsd43vf       - Generic BSD 4.3 that needs vfprintf"
XX  	@echo "   make sysvr4        - Generic SysV R4 UNIX System"
XX  	@echo "   make sysvr3        - Generic SysV R3 UNIX System"
X+ 	@echo "   make sysvr3pwd     - Generic SysV R3 UNIX System, our PWD"
XX  	@echo "   make sysvr1        - Generic SysV R1 UNIX System"
XX  	@echo "   make dynix         - Sequent DYNIX System"
XX  	@echo "   make ultrix        - Ultrix 3.0 System"
XX  	@echo "   make mips          - Any MIPS System"
X+ 	@echo "   make coherent      - Any Coherent System"
XX  	@echo "   make 386ix         - 386/ix (SysV R3) System"
XX  	@echo "   make xenix         - 386 Xenix System"
X+ 	@echo "   make xenixpwd      - 386 Xenix System, our PWD"
XX  	@echo "   make aix           - IBM RS6000/AIX System"
XX  	@echo "   make os2msc40      - OS/2 using MSC 4.0 compiler"
XX  	@echo "   make os2msc50      - OS/2 using MSC 5.0 compiler"
X***************
X*** 36,46 ****
X--- 39,53 ----
XX  	@echo "   make msc50swp      - swapping DOS version with MSC 5.0"
XX  	@echo "   make msc51swp      - swapping DOS version with MSC 5.1"
XX  	@echo "   make msc60swp      - swapping DOS version with MSC 6.0"
X+ 	@echo "   make ztc           - DOS with Zortech C++ 2.1"
X+ 	@echo "   make ztcswp        - swapping DOS version with Zortech C++ 2.1"
XX  
XX  bsd43uw :; /bin/sh -x < unix/bsd43/uw/make.sh
XX  bsd43vf dynix mips        :; /bin/sh -x < unix/bsd43/vf/make.sh
XX  sysvr1 sysvr3 sysvr4 bsd43 386ix :; /bin/sh -x < unix/$@/make.sh
X+ sysvr3pwd xenixpwd :; /bin/sh -x < unix/sysvr3/pwd/make.sh
XX  ultrix xenix aix: sysvr3;
X+ coherent :; /bin/sh -x < unix/coherent/make.sh
XX  tos :; sh -x tos/make.sh
XX  
XX  # Various OS/2 targets.
X***************
X*** 53,58 ****
XX  # batch file which will issue the appropriate instructions.
XX  DOS_VER = tcc    msc40    msc50    msc51    msc60 \
XX  	  tccswp msc40swp msc50swp msc51swp msc60swp \
X! 	  bcc \
X! 	  bccswp
XX  $(DOS_VER) :; make.bat $@
X--- 60,64 ----
XX  # batch file which will issue the appropriate instructions.
XX  DOS_VER = tcc    msc40    msc50    msc51    msc60 \
XX  	  tccswp msc40swp msc50swp msc51swp msc60swp \
X! 	  bcc    bccswp   ztc      ztcswp
XX  $(DOS_VER) :; make.bat $@
X*** /u2/dvadura/src/generic/dmake/dmake37-p1/make.c	Fri Jun 28 08:22:19 1991
X--- make.c	Thu Jun 27 23:29:56 1991
X***************
X*** 1,4 ****
X! /* RCS      -- $Header: /u2/dvadura/src/generic/dmake/src/RCS/make.c,v 1.2 91/05/13 16:59:53 dvadura Exp $
XX  -- SYNOPSIS -- perform the update of all outdated targets.
XX  -- 
XX  -- DESCRIPTION
X--- 1,4 ----
X! /* RCS      -- $Header: /u2/dvadura/src/generic/dmake/src/RCS/make.c,v 1.5 91/06/27 23:29:11 dvadura Exp $
XX  -- SYNOPSIS -- perform the update of all outdated targets.
XX  -- 
XX  -- DESCRIPTION
X***************
X*** 42,51 ****
XX  --
XX  -- LOG
XX  --     $Log:	make.c,v $
X!  * Revision 1.2  91/05/13  16:59:53  dvadura
X!  * Fixed bug when .SETDIR'ed to a directory and we have to modify the file
X!  * name to use the .SETDIR of the parent cell and not Makedir.
XX   * 
XX   * Revision 1.1  91/05/06  15:23:19  dvadura
XX   * dmake Release Version 3.7
XX   * 
X--- 42,58 ----
XX  --
XX  -- LOG
XX  --     $Log:	make.c,v $
X!  * Revision 1.5  91/06/27  23:29:11  dvadura
X!  * Moved UpdateTimestamp call outside of if block around the :! processing
X!  * code.
XX   * 
X+  * Revision 1.4  91/06/27  22:32:38  dvadura
X+  * Fixed a NULL pointer bug when dealing with :! rules with empty out of
X+  * daterequisite lists.
X+  * 
X+  * Revision 1.3  91/06/25  16:26:15  dvadura
X+  * Made sure that Current_target is set when making individual recipe lines.
X+  * 
XX   * Revision 1.1  91/05/06  15:23:19  dvadura
XX   * dmake Release Version 3.7
XX   * 
X***************
X*** 192,199 ****
XX  
XX     if( cp->ce_attr & A_SETDIR ) {
XX        /* Change directory only if the previous .SETDIR is a different
X!       /* directory from the current one.  ie. all cells with the same .SETDIR
X!       /* attribute are assumed to come from the same directory. */
XX  
XX        if( (setdirroot == NIL(CELL) || setdirroot->ce_dir != cp->ce_dir) &&
XX            (push = Push_dir(cp->ce_dir,cp->CE_NAME,ignore)) )
X--- 199,206 ----
XX  
XX     if( cp->ce_attr & A_SETDIR ) {
XX        /* Change directory only if the previous .SETDIR is a different
X!        * directory from the current one.  ie. all cells with the same .SETDIR
X!        * attribute are assumed to come from the same directory. */
XX  
XX        if( (setdirroot == NIL(CELL) || setdirroot->ce_dir != cp->ce_dir) &&
XX            (push = Push_dir(cp->ce_dir,cp->CE_NAME,ignore)) )
X***************
X*** 424,444 ****
XX  	    TKSTR tk;
XX  
XX  	    _drop_mac( m_q );
X- 	    SET_TOKEN( &tk, outall );
XX  
X! 	    Doing_bang = TRUE;
X! 	    name = Get_token( &tk, "", FALSE );
X! 	    do {
X! 	       m_q->ht_value = name;
XX  
X! 	       Wait_for_completion = TRUE;	/* Reset in Exec_commands */
X! 	       rval = Exec_commands( cp );
X! 	       Unlink_temp_files(cp);
XX  	    }
X- 	    while( *(name = Get_token( &tk, "", FALSE )) != '\0' );
X- 	    Doing_bang = FALSE;
X- 	    Update_time_stamp( cp );
XX  
XX  	    m_q->ht_value = NIL(char);
XX  	 }
XX        }
X--- 431,454 ----
XX  	    TKSTR tk;
XX  
XX  	    _drop_mac( m_q );
XX  
X! 	    if( outall && *outall ) {
X! 	       SET_TOKEN( &tk, outall );
XX  
X! 	       Doing_bang = TRUE;
X! 	       name = Get_token( &tk, "", FALSE );
X! 	       do {
X! 		  m_q->ht_value = name;
X! 
X! 		  Wait_for_completion = TRUE;	/* Reset in Exec_commands */
X! 		  rval = Exec_commands( cp );
X! 		  Unlink_temp_files(cp);
X! 	       }
X! 	       while( *(name = Get_token( &tk, "", FALSE )) != '\0' );
X! 	       Doing_bang = FALSE;
XX  	    }
XX  
X+ 	    Update_time_stamp( cp );
XX  	    m_q->ht_value = NIL(char);
XX  	 }
XX        }
X***************
X*** 572,578 ****
XX  
XX     DB_ENTER( "Exec_commands" );
XX  
X-    Current_target = cp;
XX     attr  = Glob_attr | cp->ce_attr;
XX     trace = Trace || !(attr & A_SILENT);
XX     group = cp->ce_flag & F_GROUP;
X--- 582,587 ----
X***************
X*** 583,588 ****
X--- 592,601 ----
XX     _recipes[ RP_RECIPE ] = cp->ce_recipe;
XX  
XX     if( group ) {
X+       /* Leave this assignment of Current_target here.  It is needed just
X+        * incase the user hits ^C after the tempfile for the group recipe
X+        * has been opened. */
X+       Current_target = cp;
XX        trace  = Trace || !(attr & A_SILENT);
XX  
XX        if( !Trace ) tmpfile = Start_temp( Grp_suff, cp, &groupfile );
X***************
X*** 603,608 ****
X--- 616,626 ----
XX        char   *p;
XX        int    new_attr = FALSE;
XX        int    shell;
X+ 
X+       /* Reset it for each recipe line otherwise tempfiles don't get removed.
X+        * Since processing of $(mktmp ...) depends on Current_target being
X+        * correctly set. */
X+       Current_target = cp;
XX  
XX        /* Only check for +,-,%,@ if the recipe line begins with a '$' macro
XX         * expansion.  Otherwise there is no way it is going to find these
X*** /u2/dvadura/src/generic/dmake/dmake37-p1/make.bat	Fri Jun 28 08:22:20 1991
X--- make.bat	Mon Jun 24 11:22:56 1991
X***************
X*** 19,24 ****
X--- 19,26 ----
XX  if %1 == msc51swp goto mkmsc51swp
XX  if %1 == msc60 goto mkmsc60
XX  if %1 == msc60swp goto mkmsc60swp
X+ if %1 == ztc goto mkztc
X+ if %1 == ztcswp goto mkztcswp
XX  
XX  rem label the possible DOS variations for dmake here.
XX  :error
X***************
X*** 36,41 ****
X--- 38,45 ----
XX  echo    msc50swp  - Microsoft C 5.0, MASM 5.1 compile of swapping dmake.
XX  echo    msc51swp  - Microsoft C 5.1, MASM 5.1 compile of swapping dmake.
XX  echo    msc60swp  - Microsoft C 6.0, MASM 5.1 compile of swapping dmake.
X+ echo    ztc       - Zortech C++ 2.1 compile.
X+ echo    ztcswp    - Zortech C++ 2.1 compile of swapping dmake.
XX  goto end
XX  
XX  rem This is the script that makes dmake using Microsoft C 4.0
X***************
X*** 72,77 ****
X--- 76,90 ----
XX  
XX  :mkmsc60swp
XX  msdos\mscdos\mk60swp.bat
X+ goto end
X+ 
X+ rem This is the script that makes dmake using Zortech C++ 2.1
X+ :mkztc
X+ msdos\ztcdos\mk.bat
X+ goto end
X+ 
X+ :mkztcswp
X+ msdos\ztcdos\mkswp.bat
XX  goto end
XX  
XX  rem This is the script that makes dmake using Turbo C 2.0 or higher.
X*** /u2/dvadura/src/generic/dmake/dmake37-p1/infer.c	Mon May  6 15:23:17 1991
X--- infer.c	Tue Jun 25 16:25:45 1991
X***************
X*** 1,4 ****
X! /* RCS      -- $Header: /u2/dvadura/src/generic/dmake/src/RCS/infer.c,v 1.1 91/05/06 15:23:17 dvadura Exp $
XX  -- SYNOPSIS -- infer how to make a target.
XX  -- 
XX  -- DESCRIPTION
X--- 1,4 ----
X! /* RCS      -- $Header: /u2/dvadura/src/generic/dmake/src/RCS/infer.c,v 1.2 91/06/25 16:25:07 dvadura Exp $
XX  -- SYNOPSIS -- infer how to make a target.
XX  -- 
XX  -- DESCRIPTION
X***************
X*** 32,37 ****
X--- 32,41 ----
XX  --
XX  -- LOG
XX  --     $Log:	infer.c,v $
X+  * Revision 1.2  91/06/25  16:25:07  dvadura
X+  * Fixed the handling of F_REMOVE, F_INFER, and F_TARGET for infered
X+  * prerequisites.
X+  * 
XX   * Revision 1.1  91/05/06  15:23:17  dvadura
XX   * dmake Release Version 3.7
XX   * 
X***************
X*** 196,218 ****
XX           CELLPTR infcell=NIL(CELL);
XX  
XX  	 /* Compute the inferred prerequisite first. */
X! 	 if( match->ic_meta && match->ic_name ) {
X! 	    infcell = Def_cell( match->ic_name );
X! 
X! 	    if( first )
X! 	       infcell->ce_flag |= F_RULES;
XX  	    else
X! 	       infcell->ce_flag |= F_INFER|F_REMOVE|F_TARGET;
XX  
XX  	    if( !match->ic_flag )
XX  	       infcell->ce_attr |= A_NOINFER;
XX  	 }
XX  
X- 	 /* Now attach the recipe from the previous MATCH entry and then
X- 	  * add any prerequisites that you might think are required. */
X- 	 if( infcell == NIL(CELL) && match->ic_name )
X- 	    infcell = cp;
X- 
XX  	 /* Add global prerequisites from previous rule if there are any and
XX  	  * the recipe. */
XX  	 if( pmatch ) {
X--- 200,224 ----
XX           CELLPTR infcell=NIL(CELL);
XX  
XX  	 /* Compute the inferred prerequisite first. */
X! 	 if( match->ic_name ) {
X! 	    if( match->ic_meta )
X! 	       infcell = Def_cell( match->ic_name );
XX  	    else
X! 	       infcell = cp;
XX  
X+ 	    infcell->ce_flag |= F_TARGET;
X+ 
X+ 	    if( infcell != cp ) {
X+ 	       infcell->ce_flag |= F_INFER;
X+ 	       if( !first ) infcell->ce_flag |= F_REMOVE;
X+ 	    }
X+ 
XX  	    if( !match->ic_flag )
XX  	       infcell->ce_attr |= A_NOINFER;
X+ 
X+ 	    first = FALSE;
XX  	 }
XX  
XX  	 /* Add global prerequisites from previous rule if there are any and
XX  	  * the recipe. */
XX  	 if( pmatch ) {
X***************
X*** 223,230 ****
XX  	    infcell->ce_attr |= (imeta->ce_attr & A_TRANSFER);
XX  
XX  	    if( !(infcell->ce_flag & F_RULES) ) {
X! 	       infcell->ce_flag   |= (imeta->ce_flag & (F_SINGLE|F_GROUP));
X! 	       infcell->ce_recipe  = imeta->ce_recipe;
XX  	    }
XX  
XX  	    pmatch->ic_dfa->dl_per = NIL(char);
X--- 229,236 ----
XX  	    infcell->ce_attr |= (imeta->ce_attr & A_TRANSFER);
XX  
XX  	    if( !(infcell->ce_flag & F_RULES) ) {
X! 	       infcell->ce_flag |= (imeta->ce_flag&(F_SINGLE|F_GROUP))|F_RULES;
X! 	       infcell->ce_recipe = imeta->ce_recipe;
XX  	    }
XX  
XX  	    pmatch->ic_dfa->dl_per = NIL(char);
X***************
X*** 266,272 ****
XX  	 pmatch = match;
XX  	 prereq = infcell;
XX  	 match  = match->ic_parent;
X- 	 first  = FALSE;
XX        }
XX  
XX        DB_PRINT("inf", ("Terminated due to a match"));
X--- 272,277 ----
X*** /u2/dvadura/src/generic/dmake/dmake37-p1/imacs.c	Mon May  6 15:23:16 1991
X--- imacs.c	Tue Jun 25 16:24:50 1991
X***************
X*** 1,4 ****
X! /* RCS      -- $Header: /u2/dvadura/src/generic/dmake/src/RCS/imacs.c,v 1.1 91/05/06 15:23:16 dvadura Exp $
XX  -- SYNOPSIS -- define default internal macros.
XX  -- 
XX  -- DESCRIPTION
X--- 1,4 ----
X! /* RCS      -- $Header: /u2/dvadura/src/generic/dmake/src/RCS/imacs.c,v 1.2 91/06/25 16:24:40 dvadura Exp $
XX  -- SYNOPSIS -- define default internal macros.
XX  -- 
XX  -- DESCRIPTION
X***************
X*** 30,35 ****
X--- 30,38 ----
XX  --
XX  -- LOG
XX  --     $Log:	imacs.c,v $
X+  * Revision 1.2  91/06/25  16:24:40  dvadura
X+  * Added .NOTABS special macro.
X+  * 
XX   * Revision 1.1  91/05/06  15:23:16  dvadura
XX   * dmake Release Version 3.7
XX   * 
X***************
X*** 94,104 ****
XX     _set_string_var("GROUPSUFFIX",  "",  M_DEFAULT, &Grp_suff    );
XX     _set_string_var("PREP",         "0", M_DEFAULT, &Prep        );
XX     _set_string_var("AUGMAKE",NIL(char), M_DEFAULT, &Augmake     );
X-    _set_string_var(".SETDIR",      "",  M_DEFAULT, &Start_dir   );
XX     _set_string_var(".KEEP_STATE",  "",  M_DEFAULT, &Keep_state  );
XX  
X!    _set_string_var("MAKEDIR", Get_current_dir(), M_PRECIOUS|M_NOEXPORT,
X!          &Makedir);
XX     _set_string_var("PWD",  Makedir,  M_DEFAULT|M_NOEXPORT, &Pwd);
XX     _set_string_var("TMD",  "",       M_DEFAULT|M_NOEXPORT, &Tmd);
XX  
X--- 97,107 ----
XX     _set_string_var("GROUPSUFFIX",  "",  M_DEFAULT, &Grp_suff    );
XX     _set_string_var("PREP",         "0", M_DEFAULT, &Prep        );
XX     _set_string_var("AUGMAKE",NIL(char), M_DEFAULT, &Augmake     );
XX     _set_string_var(".KEEP_STATE",  "",  M_DEFAULT, &Keep_state  );
X+    _set_string_var(".NOTABS",      "",  M_MULTI,   &Notabs      );
XX  
X!    _set_string_var(".SETDIR", "", M_DEFAULT|M_NOEXPORT, &Start_dir );
X!    _set_string_var("MAKEDIR",Get_current_dir(),M_PRECIOUS|M_NOEXPORT,&Makedir);
XX     _set_string_var("PWD",  Makedir,  M_DEFAULT|M_NOEXPORT, &Pwd);
XX     _set_string_var("TMD",  "",       M_DEFAULT|M_NOEXPORT, &Tmd);
XX  
X*** /u2/dvadura/src/generic/dmake/dmake37-p1/function.c	Mon May  6 15:23:14 1991
X--- function.c	Tue Jun 25 16:23:53 1991
X***************
X*** 1,4 ****
X! /* RCS      -- $Header: /u2/dvadura/src/generic/dmake/src/RCS/function.c,v 1.1 91/05/06 15:23:14 dvadura Exp $
XX  -- SYNOPSIS -- GNU style functions for dmake.
XX  -- 
XX  -- DESCRIPTION
X--- 1,4 ----
X! /* RCS      -- $Header: /u2/dvadura/src/generic/dmake/src/RCS/function.c,v 1.2 91/06/25 16:23:13 dvadura Exp $
XX  -- SYNOPSIS -- GNU style functions for dmake.
XX  -- 
XX  -- DESCRIPTION
X***************
X*** 29,34 ****
X--- 29,38 ----
XX  --
XX  -- LOG
XX  --     $Log:	function.c,v $
X+  * Revision 1.2  91/06/25  16:23:13  dvadura
X+  * Fixed nesting of $(shell ...) macro, and made sure -n,-v are turned
X+  * off during expansion of $(shell ...).
X+  * 
XX   * Revision 1.1  91/05/06  15:23:14  dvadura
XX   * dmake Release Version 3.7
XX   * 
X***************
X*** 262,275 ****
XX  char *data;
XX  {
XX     extern char *tempnam();
X!    int wait  = Wait_for_completion;
X!    char *res = NIL(char);
X!    int free_buf = FALSE;
X!    char *buffer;
X!    int out;
X!    int err;
X!    FILE *tmp;
X!    char *tmpnm;
XX     CELL cell;
XX     STRING rcp;
XX     HASH   cname;
X--- 266,282 ----
XX  char *data;
XX  {
XX     extern char *tempnam();
X!    static int  nestlevel = 0;
X!    static int  org_out;
X!    static int  bsize;
X!    static char *buffer;
X!    static char *tmpnm;
X!    static FILE *tmp;
X! 
X!    int wait     = Wait_for_completion;
X!    uint16 vflag = Verbose;
X!    int tflag    = Trace;
X!    char *res    = NIL(char);
XX     CELL cell;
XX     STRING rcp;
XX     HASH   cname;
X***************
X*** 294,327 ****
XX     cell.ce_flag   = F_TARGET|F_RULES;
XX     cell.ce_attr   = A_PHONY|A_SILENT;
XX  
X!    tmpnm = tempnam(NIL(char),"mk");
X!    out = dup( 1 );
X!    if( (tmp = fopen(tmpnm, "w")) == NIL(FILE) )
X!       Open_temp_error( tmpnm, cname.ht_name );
XX  
XX     Wait_for_completion = TRUE;
X!    close( 1 );
X!    dup( fileno(tmp) );
X!    fclose( tmp );
XX     Exec_commands( &cell );
X!    close(1);
X!    dup(out);
X!    close(out);
XX  
XX     /* Now we have to read the temporary file, get the tokens and return them
XX      * as a string. */
X!    if( (tmp = fopen(tmpnm, "r")) == NIL(FILE) )
X!       Open_temp_error( tmpnm, cname.ht_name );
X! 
X!    if( Buffer == NIL(char) ) {
X!       Buffer_size = BUFSIZ-2;
X!       buffer = MALLOC(BUFSIZ-2,char);
X!       free_buf = TRUE;
X!    }
X!    else
X!       buffer = Buffer;
X! 
X!    while( fgets(buffer, Buffer_size, tmp) ) {
XX        char *p = strchr(buffer, '\n');
XX  
XX        if( p == NIL(char) )
X--- 301,334 ----
XX     cell.ce_flag   = F_TARGET|F_RULES;
XX     cell.ce_attr   = A_PHONY|A_SILENT;
XX  
X!    if( nestlevel == 0 ) {
X!       tmpnm   = tempnam(NIL(char),"mk");
X!       org_out = dup(1);
XX  
X+       if( (tmp = fopen(tmpnm, "w+")) == NIL(FILE) )
X+ 	 Open_temp_error( tmpnm, cname.ht_name );
X+ 
X+       close(1);
X+       dup( fileno(tmp) );
X+ 
X+       bsize  = (Buffer_size < BUFSIZ)?BUFSIZ:Buffer_size;
X+       buffer = MALLOC(bsize,char);
X+    }
X+ 
XX     Wait_for_completion = TRUE;
X!    Verbose = V_NONE;
X!    Trace   = FALSE;
X!    nestlevel++;
XX     Exec_commands( &cell );
X!    nestlevel--;
X!    Trace   = tflag;
X!    Verbose = vflag;
X!    Wait_for_completion = wait;
XX  
XX     /* Now we have to read the temporary file, get the tokens and return them
XX      * as a string. */
X!    rewind(tmp);
X!    while( fgets(buffer, bsize, tmp) ) {
XX        char *p = strchr(buffer, '\n');
XX  
XX        if( p == NIL(char) )
X***************
X*** 333,342 ****
XX     }
XX  
XX     fclose(tmp);
X!    unlink(tmpnm);
X!    FREE(tmpnm);
X!    if( free_buf ) FREE(buffer);
XX  
X!    Wait_for_completion = wait;
XX     return(res);
XX  }
X--- 340,360 ----
XX     }
XX  
XX     fclose(tmp);
X!    if( nestlevel == 0 ) {
X!       unlink(tmpnm);
X!       close(1);
X!       dup(org_out);
X!       close(org_out);
X!       FREE(tmpnm);
X!       FREE(buffer);
X!    }
X!    else {
X!       if( (tmp = fopen(tmpnm, "w+")) == NIL(FILE) )
X! 	 Open_temp_error( tmpnm, cname.ht_name );
XX  
X!       close(1);
X!       dup( fileno(tmp) );
X!    }
X! 
XX     return(res);
XX  }
X*** /u2/dvadura/src/generic/dmake/dmake37-p1/dmake.c	Mon May  6 15:23:07 1991
X--- dmake.c	Tue Jun 25 16:22:10 1991
X***************
X*** 1,4 ****
X! /* RCS      -- $Header: /u2/dvadura/src/generic/dmake/src/RCS/dmake.c,v 1.1 91/05/06 15:23:06 dvadura Exp $
XX  -- SYNOPSIS -- The main program.
XX  -- 
XX  -- DESCRIPTION
X--- 1,4 ----
X! /* RCS      -- $Header: /u2/dvadura/src/generic/dmake/src/RCS/dmake.c,v 1.2 91/06/25 16:21:48 dvadura Exp $
XX  -- SYNOPSIS -- The main program.
XX  -- 
XX  -- DESCRIPTION
X***************
X*** 18,23 ****
X--- 18,24 ----
XX  -- 	 options: (can be catenated, ie -irn == -i -r -n)
XX  -- 
XX  --	-A		- enable AUGMAKE special target mapping
X+ --	-B		- enable non-use of TABS to start recipe lines
XX  --	-c		- use non-standard comment scanning
XX  -- 	-i              - ignore errors
XX  -- 	-n              - trace and print, do not execute commands
X***************
X*** 71,76 ****
X--- 72,80 ----
XX  --
XX  -- LOG
XX  --     $Log:	dmake.c,v $
X+  * Revision 1.2  91/06/25  16:21:48  dvadura
X+  * Added -B switch, and fixed NULL poiner bug for -x flag.
X+  * 
XX   * Revision 1.1  91/05/06  15:23:06  dvadura
XX   * dmake Release Version 3.7
XX   * 
X***************
X*** 207,212 ****
X--- 211,217 ----
XX  
XX  	    case 'V': Version();  Quit(NIL(CELL));  break;
XX  	    case 'A': Def_macro("AUGMAKE", "y", M_EXPANDED); break;
X+ 	    case 'B': Def_macro(".NOTABS", "y", M_EXPANDED); break;
XX  	    case 'i': Def_macro(".IGNORE", "y", M_EXPANDED); break;
XX  	    case 's': Def_macro(".SILENT", "y", M_EXPANDED); break;
XX  	    case 'S': Def_macro(".SEQUENTIAL", "y", M_EXPANDED); break;
X***************
X*** 362,370 ****
XX  
XX        for( i=0; i<HASH_TABLE_SIZE; ++i ) {
XX  	 HASHPTR hp = Macs[i];
X!          char *tmpstr = hp->ht_value;
XX  
X!          if(    tmpstr != NIL(char)
XX               && !(hp->ht_flag & M_NOEXPORT)
XX  	     && Write_env_string(hp->ht_name, tmpstr) != 0 )
XX              Warning( "Could not export %s", hp->ht_name );
X--- 367,376 ----
XX  
XX        for( i=0; i<HASH_TABLE_SIZE; ++i ) {
XX  	 HASHPTR hp = Macs[i];
X! 	 char *tmpstr;
XX  
X!          if(    hp
X! 	     && (tmpstr=hp->ht_value) != NIL(char)
XX               && !(hp->ht_flag & M_NOEXPORT)
XX  	     && Write_env_string(hp->ht_name, tmpstr) != 0 )
XX              Warning( "Could not export %s", hp->ht_name );
X***************
X*** 702,707 ****
X--- 708,714 ----
XX  
XX     puts("Options: (can be catenated, ie -irn == -i -r -n)");
XX     puts("    -A   - enable AUGMAKE special target mapping");
X+    puts("    -B   - enable the use of spaces instead of tabs to start recipes");
XX     puts("    -c   - use non standard comment scanning");
XX     puts("    -e   - define environment strings as macros");
XX     puts("    -E   - same as -e but done after parsing makefile");
X*** /u2/dvadura/src/generic/dmake/dmake37-p1/db.h	Mon May  6 15:23:06 1991
X--- db.h	Mon Jun 24 11:22:53 1991
X***************
X*** 52,58 ****
XX  #  define DB_PUSH(a1)                 DBUG_PUSH(a1)
XX  #  define DB_POP()                    DBUG_POP()
XX  #  define DB_PROCESS(a1)              DBUG_PROCESS(a1)
X! #  define DB_FILE (stderr)            DBUG_FILE(stderr)
XX  #  define DB_SETJMP                   DBUG_SETJMP
XX  #  define DB_LONGJMP                  DBUG_LONGJMP
XX  
X--- 52,58 ----
XX  #  define DB_PUSH(a1)                 DBUG_PUSH(a1)
XX  #  define DB_POP()                    DBUG_POP()
XX  #  define DB_PROCESS(a1)              DBUG_PROCESS(a1)
X! #  define DB_FILE(file)               DBUG_FILE(file)
XX  #  define DB_SETJMP                   DBUG_SETJMP
XX  #  define DB_LONGJMP                  DBUG_LONGJMP
XX  
X***************
X*** 66,72 ****
XX  #  define DB_PUSH(a1)
XX  #  define DB_POP()
XX  #  define DB_PROCESS(a1)
X! #  define DB_FILE(stderr)
XX  #  define DB_SETJMP                   setjmp
XX  #  define DB_LONGJMP                  longjmp
XX  
X--- 66,72 ----
XX  #  define DB_PUSH(a1)
XX  #  define DB_POP()
XX  #  define DB_PROCESS(a1)
X! #  define DB_FILE(file)
XX  #  define DB_SETJMP                   setjmp
XX  #  define DB_LONGJMP                  longjmp
XX  
X*** /u2/dvadura/src/generic/dmake/dmake37-p1/alloc.h	Mon May  6 15:23:03 1991
X--- alloc.h	Mon Jun 24 11:22:50 1991
X***************
X*** 48,53 ****
X--- 48,54 ----
XX  #else
XX  #   if !defined(_TYPES_) && !defined(M_XENIX) && !defined(atarist) && !defined(_SIZE_T)
XX  #      if defined(MSDOS) || defined(__MSDOS__)
X+ #         undef size_t
XX            typedef unsigned size_t;
XX  #      else
XX            typedef long size_t;
X*** /u2/dvadura/src/generic/dmake/dmake37-p1/_install	Fri Jun 28 08:22:22 1991
X--- _install	Mon Jun 24 10:22:56 1991
X***************
X*** 52,58 ****
XX    --------------------    mscdos    -------------------
XX    |         |        |              |       |         |
XX  386ix     bsd43  sysvr[134]      tccdos   bccdos   mscdos  [source for OSRELEASE
X! 	    |					            specific functions]
XX  	--------
XX  	|      |
XX         uw      vf   [source for OSENVIRONMENT specific functions]
X--- 52,58 ----
XX    --------------------    mscdos    -------------------
XX    |         |        |              |       |         |
XX  386ix     bsd43  sysvr[134]      tccdos   bccdos   mscdos  [source for OSRELEASE
X! 	    |	      				            specific functions] 
XX  	--------
XX  	|      |
XX         uw      vf   [source for OSENVIRONMENT specific functions]
X***************
X*** 60,66 ****
XX  
XX  Each of the directories (eg. bsd43, mscdos, tccdos, and sysvr3) contain source
XX  that is specific to that release of the OS (and possibly C-library)
X! To make the apropriate versions of dmake, simply type the command
XX  
XX  	'make system'
XX  
X--- 60,66 ----
XX  
XX  Each of the directories (eg. bsd43, mscdos, tccdos, and sysvr3) contain source
XX  that is specific to that release of the OS (and possibly C-library)
X! To make the appropriate versions of dmake, simply type the command
XX  
XX  	'make system'
XX  
X***************
X*** 81,90 ****
XX  	information.)
XX  
XX  The making of dmake, echoes the commands being executed, and should proceed
X! relatively error free.  Ignore any warnings that are produced by the
X! compile.  They have been verified and are ok.
XX  
XX  
XX  STARTUP FILE
XX  
XX  dmake requires the loading of a startup file when it is first invoked.  The
X--- 81,111 ----
XX  	information.)
XX  
XX  The making of dmake, echoes the commands being executed, and should proceed
X! relatively error free.  Ignore ANY warnings produced by the compile
X! They have all be verified and are spurious noise.
XX  
X+ UNIX SYSV R3 AND GETCWD
XX  
X+ Some versions of UNIX SysV R3 and Xenix use the popen call to capture the
X+ output of pwd when invoking the C library function getcwd().  These versions
X+ of the function cause dmake to terminate with the "lost a child" message
X+ due to the fact that the parent dmake process may catch the pwd and not
X+ recognize it as a child.  For systems that have this problem use the version
X+ of dmake that supplies its own getcwd function.  The settings are:
X+ 
X+    OS = unix
X+    OSRELEASE = sysvr3
X+    OSENVIRONMENT = pwd
X+ 
X+ It is directly available through the 'makefile' by typing one of:
X+ 
X+    make sysvr3pwd
X+    make xenixpwd
X+ 
X+ both include the getcwd code but the xenixpwd target compiles for a Xenix
X+ system.
X+ 
X+ 
XX  STARTUP FILE
XX  
XX  dmake requires the loading of a startup file when it is first invoked.  The
X***************
X*** 92,99 ****
XX  and msdos directories.  You may override the value of the path variable
XX  compiled-in by creating a file at the root source directory called startup.h
XX  and inserting into that file a definition that is like the definition found
X! in the supplied startup.h files.  If the local startup.h file does not
X! work then you will have to edit the startup.h in the appropriate directory.
XX  
XX  
XX  INSTALLATION
X--- 113,120 ----
XX  and msdos directories.  You may override the value of the path variable
XX  compiled-in by creating a file at the root source directory called startup.h
XX  and inserting into that file a definition that is like the definition found
X! in the supplied startup.h files.  Alternatively you can modify the MAKESTARTUP
X! environment variable to point at the location of your startup.mk file.
XX  
XX  
XX  INSTALLATION
XSHAR_EOF
Xchmod 0640 _patches ||
Xecho 'restore of _patches failed'
XWc_c="`wc -c < '_patches'`"
Xtest 88895 -eq "$Wc_c" ||
X	echo '_patches: original size 88895, current size' "$Wc_c"
Xfi
X
X# Now run patch to fix up the files
Xpatch -p0 < _patches
Xexit 0
SHAR_EOF
echo 'File dm37p2 is complete' &&
chmod 0640 dm37p2 ||
echo 'restore of dm37p2 failed'
Wc_c="`wc -c < 'dm37p2'`"
test 404337 -eq "$Wc_c" ||
	echo 'dm37p2: original size 404337, current size' "$Wc_c"
rm -f _shar_wnt_.tmp
fi
rm -f _shar_seq_.tmp
echo You have unpacked the last part
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.