v20i087: dmake - dmake version 3.7, Patch02l/12
Dennis Vadura
dvadura at watdragon.waterloo.edu
Sun Jun 30 08:28:20 AEST 1991
Submitted-by: Dennis Vadura <dvadura at 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, at 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, at 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, at 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, at 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 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