summaryrefslogtreecommitdiff
path: root/dmake/makefile.mk
diff options
context:
space:
mode:
Diffstat (limited to 'dmake/makefile.mk')
-rw-r--r--dmake/makefile.mk432
1 files changed, 432 insertions, 0 deletions
diff --git a/dmake/makefile.mk b/dmake/makefile.mk
new file mode 100644
index 000000000000..528a79f7c021
--- /dev/null
+++ b/dmake/makefile.mk
@@ -0,0 +1,432 @@
+# //// Makefile for DMAKE. \\\\
+# The target system is characterized by the following macros imported from
+# the environment.
+#
+# OS - gives the class of operating system
+# OSRELEASE - optionally specifies the particular release of the OS
+# OSENVIRONMENT - optionally specifies the environment under which the
+# OS and OSENVIRONMENT are running.
+#
+# For valid values for the above macros consult the readme/* files or type
+# 'make' by itself to get a summary of what is available.
+
+# First target in the makefile, do this so that targets declared in the
+# included files are never marked as being the first *default* target.
+first : all ;
+
+#Enable keeping of state for future compiles
+.KEEP_STATE *:= _state.mk
+
+# Define $(PUBLIC)
+_osenv := $(OSENVIRONMENT)$/
+_osre := $(OSRELEASE)$/$(!null,$(OSENVIRONMENT) $(_osenv))
+.IF "$(OS)"=="LINUX"
+OS=linux
+.ENDIF
+ENVDIR = $(OS)$/$(!null,$(OSRELEASE) $(_osre))
+PUBLIC = $(ENVDIR)public.h
+MKCONFIG := startup/config.mk
+
+# Define the source files
+SRC =\
+ infer.c make.c stat.c expand.c dmstring.c hash.c dag.c dmake.c\
+ path.c imacs.c sysintf.c parse.c getinp.c quit.c state.c\
+ dmdump.c macparse.c rulparse.c percent.c function.c
+
+# Common Include files.
+HDR = dmake.h extern.h struct.h vextern.h
+
+# Define the TARGET we are making, and where the OBJECT files go.
+OBJDIR := objects
+TARGET = dmake$E
+CFLAGS += $(SWITCHAR)I.
+
+# Meta rule for making .o's from .c's (give our own so we can move object
+# to objects directory in a portable, compiler independent way)
+# Define it before the .INCLUDE so that different OS combinations can redefine
+# it.
+%$O : %.c
+.IF $(SHELL) == mpw
+ %$(CC) $(CFLAGS) -o :$(OBJDIR:s,/,:,):$@ $<
+.ELSE
+ %$(CC) $(SWITCHAR)c $(CFLAGS) $<
+.IF $(SHELL) != $(COMSPEC)
+ mv $(@:f) $(OBJDIR)
+.ELSE
+ +copy $(@:f) $(OBJDIR)
+ +del $(@:f)
+.ENDIF
+.ENDIF
+
+# Pull in the proper configuration files, based on the value of OS.
+.INCLUDE : $(OS)/config.mk
+.INCLUDE : dbug/dbug.mk
+
+# Set the .SOURCE targets so that we look for things in the right place.
+.SOURCE.c :^ .NULL
+.SOURCE.h :^ .NULL
+.SOURCE$O :^ $(OBJDIR)
+.PRECIOUS : $(HDR)
+
+# Must come after the above INCLUDE so that it gets ALL objects.
+OBJECTS := {$(ASRC:b) $(SRC:b)}$O
+
+# The main target, make sure the objects directory exists first.
+# LDARGS is defined in config.mk file of each OS/OSRELEASE combination.
+all : $(TARGET) $(MKCONFIG);
+$(TARGET) : $(OBJDIR)
+$(TARGET) : $(OBJECTS);$(LD) $(LDARGS)
+
+# Use this for install targets
+.IF $(SHELL) == mpw
+$(MKCONFIG) : template.mk
+ duplicate :$(<:s,/,:,) $@
+.ELSE
+$(MKCONFIG) : template.mk
+ $(eq,$(SHELL),$(COMSPEC) +copy cp) $< $(eq,$(SHELL),$(COMSPEC) $(@:s,/,\,) $@)
+.ENDIF
+
+# how to make public.h
+public .PHONY : $(PUBLIC);
+$(PUBLIC) .GROUP .NOSTATE: $(SRC)
+ genpub -n DMAKE $< >$@
+# drcsclean ./rcsclean.awk $@ > /dev/null
+
+# Other obvious targets...
+.IF $(SHELL) == mpw
+ $(OBJDIR):;-newfolder $@
+.ELSE
+ $(OBJDIR):;-$(eq,$(SHELL),$(COMSPEC) +md mkdir) $@
+.ENDIF
+
+# remaining dependencies should be automatically generated
+sysintf$O : sysintf.h
+ruletab$O : startup.h #khc 01NOV90 - dependency was missing
+$(OBJECTS) : $(HDR)
+
+clean:;+- $(RM:f) -rf dmake$E dbdmake$E objects* _*state*.mk startup/config.mk
+
+# Rules for making the manual pages.
+man .SETDIR=man : dmake.nc dmake.uue ;
+dmake.nc : dmake.p ; scriptfix < $< > $@
+dmake.p : dmake.tf; groff -man -Tascii $< > $@
+dmake.uue : dmake.p
+ compress -b 12 dmake.p
+ mv dmake.p.Z dmake.Z
+ uuencode dmake.Z dmake.Z >dmake.uue
+ /bin/rm -f dmake.Z
+
+template.mk ".SETDIR=$(ENVDIR)" .USESHELL : $$(TMD)/startup/template.mk
+ cat $< |\
+ sed -e 's/xxOSxx/$(OS)/' |\
+ sed -e 's/xxOSRELEASExx/$(OSRELEASE)/' |\
+ sed -e 's/xxOSENVIRONMENTxx/$(OSENVIRONMENT)/' > $@
+
+#--------------------------------------------------------------------------
+# Make the various archives for shipping the thing around.
+#
+archives : zip tar
+ $(RM) -rf src-list dmake
+
+zip .PHONY : dmake.zip ;
+shar .PHONY : dmake.shar;
+tar .PHONY : dmake.tar;
+
+dmake.zip : dir-copy
+ zip -r $(@:b) $(@:b)
+
+dmake.shar : dir-copy
+ find dmake -type f -print >src-list
+ xshar -vc -o$@ -L40 `cat src-list`
+
+dmake.tar : dir-copy
+ tar cf $@ dmake
+
+dir-copy .PHONY : src-list
+[
+ echo 'tmp.tar .SILENT :$$(ALLSRC) ;tar -cf tmp.tar $$(ALLSRC)' >> $<
+ $(MAKECMD) -f $< tmp.tar
+ mkdir dmake
+ cd dmake
+ tar xf ../tmp.tar; chmod -R u+rw .
+ cd ..
+ /bin/rm -f tmp.tar
+]
+
+src-list : clean
+ echo 'MAXLINELENGTH := 65536' > $@
+ echo 'ALLSRC = \' >>$@
+ find . -type f -print |\
+ sed -e 's/,v//'\
+ -e 's/$$/\\/'\
+ -e 's/^\.\// /'|\
+ sort -u |\
+ grep -v tst | grep -v $@ | grep -v license |\
+ grep -v CVS | grep -v RCS |\
+ grep -v '\.zip' | grep -v '\.tar'| grep -v '\.shar' >> $@
+ echo ' readme/license.txt' >> $@
+
+#--------------------------------------------------------------------------
+# This section can be used to make the necessary script files so that dmake
+# can be bootstrapped.
+#
+# dmake scripts -- makes all the script files at once.
+#
+FIX-SH = $(SH:s,fix/,,)
+FIX95-SH = $(SH:s,fix95nt/,,)
+SH = $(SH_n:s/c40d/cd/:s/c50d/cd/:s/c51d/cd/:s/c60d/cd/)
+SH_n = $(@:s/swp-/-/:s,-,/,:s/scripts/${SCRIPTFILE}/)
+MS = MAKESTARTUP=startup/startup.mk
+FS := "SHELL := $(SHELL)" "SHELLFLAGS := -ce"
+SET-TMP:= TMPDIR:=/tmp
+
+scripts: unix-scripts\
+ atari-tos-scripts apple-mac-scripts qssl-qnx-scripts\
+ msdos-scripts win95-scripts os2-scripts;
+
+# To add a new environment for UNIX, simply create the appropriate entry
+# in the style below for the macro which contains the OS, OSRELEASE and
+# OSENVIRONMENT flags. Then add the entry as a recipe line for the target
+# unix-scripts.
+#
+unix-bsd43-scripts-flags = OS=unix OSRELEASE=bsd43 OSENVIRONMENT=
+unix-linux-gnu-scripts-flags = OS=unix OSRELEASE=linux OSENVIRONMENT=gnu
+unix-solaris-scripts-flags = OS=unix OSRELEASE=solaris OSENVIRONMENT=
+unix-solaris-gnu-scripts-flags = OS=unix OSRELEASE=solaris OSENVIRONMENT=gnu
+unix-bsd43-uw-scripts-flags= OS=unix OSRELEASE=bsd43 OSENVIRONMENT=uw
+unix-bsd43-vf-scripts-flags= OS=unix OSRELEASE=bsd43 OSENVIRONMENT=vf
+unix-sysvr4-scripts-flags = OS=unix OSRELEASE=sysvr4 OSENVIRONMENT=
+unix-sysvr3-scripts-flags = OS=unix OSRELEASE=sysvr3 OSENVIRONMENT=
+unix-sysvr3-pwd-scripts-flags = OS=unix OSRELEASE=sysvr3 OSENVIRONMENT=pwd
+unix-xenix-scripts-flags = OS=unix OSRELEASE=xenix OSENVIRONMENT=
+unix-xenix-pwd-scripts-flags = OS=unix OSRELEASE=xenix OSENVIRONMENT=pwd
+unix-sysvr1-scripts-flags = OS=unix OSRELEASE=sysvr1 OSENVIRONMENT=
+unix-386ix-scripts-flags = OS=unix OSRELEASE=386ix OSENVIRONMENT=
+unix-coherent-ver40-scripts-flags= OS=unix OSRELEASE=coherent OSENVIRONMENT=ver40
+unix-coherent-ver42-scripts-flags= OS=unix OSRELEASE=coherent OSENVIRONMENT=ver42
+unix-macosx-gnu-scripts-flags = OS=unix OSRELEASE=macosx OSENVIRONMENT=gnu
+qssl--scripts-flags = OS=qssl OSRELEASE= OSENVIRONMENT=
+tos--scripts-flags = OS=tos OSRELEASE= OSENVIRONMENT=
+mac--scripts-flags = OS=mac OSRELEASE= OSENVIRONMENT=
+
+unix-scripts .SWAP : clean
+ $(MAKE) SCRIPTFILE=make.sh unix-bsd43-scripts
+ $(MAKE) SCRIPTFILE=make.sh unix-bsd43-uw-scripts
+ $(MAKE) SCRIPTFILE=make.sh unix-bsd43-vf-scripts
+ $(MAKE) SCRIPTFILE=make.sh unix-linux-gnu-scripts
+ $(MAKE) SCRIPTFILE=make.sh unix-solaris-scripts
+ $(MAKE) SCRIPTFILE=make.sh unix-solaris-gnu-scripts
+ $(MAKE) SCRIPTFILE=make.sh unix-sysvr4-scripts
+ $(MAKE) SCRIPTFILE=make.sh unix-sysvr3-scripts
+ $(MAKE) SCRIPTFILE=make.sh unix-sysvr3-pwd-scripts
+ $(MAKE) SCRIPTFILE=make.sh unix-xenix-scripts
+ $(MAKE) SCRIPTFILE=make.sh unix-xenix-pwd-scripts
+ $(MAKE) SCRIPTFILE=make.sh unix-sysvr1-scripts
+ $(MAKE) SCRIPTFILE=make.sh unix-386ix-scripts
+ $(MAKE) SCRIPTFILE=make.sh unix-coherent-ver40-scripts
+ $(MAKE) SCRIPTFILE=make.sh unix-coherent-ver42-scripts
+ $(MAKE) SCRIPTFILE=make.sh unix-macosx-gnu-scripts
+
+atari-tos-scripts .SWAP : clean
+ $(MAKE) SCRIPTFILE=make.sh tos--scripts
+
+qssl-qnx-scripts .SWAP : clean
+ $(MAKE) SCRIPTFILE=make.sh qssl--scripts
+
+apple-mac-scripts .SWAP : clean
+ $(MAKE) SCRIPTFILE=make.sh mac--scripts
+
+unix-%-scripts .SWAP :
+ $(MAKECMD) -su $($@-flags) .KEEP_STATE:= $(FS) public template.mk
+ $(MAKECMD) -ns .KEEP_STATE:= $(MS) $($@-flags) >/tmp/dmscr
+ dfold </tmp/dmscr >$(SH)
+
+qssl-%-scripts .SWAP :
+ $(MAKECMD) -su $($@-flags) .KEEP_STATE:= $(FS) public template.mk
+ $(MAKECMD) -ns .KEEP_STATE:= $(MS) $($@-flags) >/tmp/dmscr
+ dfold </tmp/dmscr >$(SH)
+
+tos-%-scripts .SWAP :
+ $(MAKECMD) -su $($@-flags) .KEEP_STATE:= $(FS) public template.mk
+ $(MAKECMD) -ns .KEEP_STATE:= $(MS) $($@-flags) >/tmp/dmscr
+ dfold </tmp/dmscr >$(SH)
+
+mac-%-scripts .SWAP :
+ $(MAKECMD) -su $($@-flags) .KEEP_STATE:= $(FS) public template.mk
+ $(MAKECMD) -ns .KEEP_STATE:= $(MS) $($@-flags) >$(SH)
+ sed 's/ mac\/\(.*\)$$/ :mac:\1/' <$(SH) | dfold >/tmp/dmscr
+ /bin/mv /tmp/dmscr $(SH)
+
+# We make the standard dos scripts here, but we have to go and fix up the
+# mkXX.bat file since it contains names of temporary files for the response
+# files required by the linker. We need to also construct the response file
+# contents. These two functions are performed by the fix-msdos-%-scripts
+# meta-target.
+#
+# To add a new DOS environment just do what is described for adding a new
+# unix environment, and then make certain that the fix-msdos-%-scripts target
+# performs the correct function for the new environment.
+msdos-cf = OS=msdos
+win95-cf = OS=win95
+winnt-cf = OS=winnt
+
+msdos-borland-tcc20swp-scripts-flags = $(msdos-cf) OSRELEASE=borland OSENVIRONMENT=tcc20
+msdos-borland-bcc30-scripts-flags = $(msdos-cf) OSRELEASE=borland OSENVIRONMENT=bcc30 SWAP=n
+msdos-borland-bcc30swp-scripts-flags = $(msdos-cf) OSRELEASE=borland OSENVIRONMENT=bcc30
+msdos-borland-bcc40swp-scripts-flags = $(msdos-cf) OSRELEASE=borland OSENVIRONMENT=bcc40
+msdos-borland-bcc45swp-scripts-flags = $(msdos-cf) OSRELEASE=borland OSENVIRONMENT=bcc45
+msdos-borland-bcc50swp-scripts-flags = $(msdos-cf) OSRELEASE=borland OSENVIRONMENT=bcc50
+msdos-borland-bcc32-scripts-flags = $(msdos-cf) OSRELEASE=borland OSENVIRONMENT=bcc32 SWAP=n
+msdos-microsft-msc51-scripts-flags= $(msdos-cf) OSRELEASE=microsft SWAP=n MSC_VER=5.1 OSENVIRONMENT=msc51
+msdos-microsft-msc51swp-scripts-flags = $(msdos-cf) OSRELEASE=microsft MSC_VER=5.1 OSENVIRONMENT=msc51
+msdos-microsft-msc60-scripts-flags= $(msdos-cf) OSRELEASE=microsft SWAP=n MSC_VER=6.0 OSENVIRONMENT=msc60
+msdos-microsft-msc60swp-scripts-flags = $(msdos-cf) OSRELEASE=microsft MSC_VER=6.0 OSENVIRONMENT=msc60
+msdos-zortech-scripts-flags= $(msdos-cf) OSRELEASE=zortech SWAP=n OSENVIRONMENT=
+msdos-zortechswp-scripts-flags= $(msdos-cf) OSRELEASE=zortech OSENVIRONMENT=
+win95-borland-bcc50-scripts-flags = $(win95-cf) OSRELEASE=borland OSENVIRONMENT=bcc50 SWAP=n
+win95-microsft-vpp40-scripts-flags = $(win95-cf) OSRELEASE=microsft OSENVIRONMENT=vpp40 SWAP=n
+
+winnt-borland-bcc50-scripts-flags = $(winnt-cf) OSRELEASE=borland OSENVIRONMENT=bcc50 SWAP=n
+winnt-microsft-vpp40-scripts-flags = $(winnt-cf) OSRELEASE=microsft OSENVIRONMENT=vpp40 SWAP=n
+
+
+msdos-scripts: clean\
+ msdos-borland-turbo-scripts\
+ msdos-borland-c++-scripts\
+ msdos-microsoft-scripts;
+
+win95-scripts: clean\
+ win95-borland-c++-scripts\
+ win95-microsft-vc++-scripts;
+
+winnt-scripts: clean\
+ winnt-borland-c++-scripts\
+ winnt-microsft-vc++-scripts;
+
+msdos-borland-turbo-scripts .SWAP :
+ $(MAKECMD) SCRIPTFILE=mkswp.bat msdos-borland-tcc20swp-scripts
+
+msdos-borland-c++-scripts .SWAP :! 30 40 45 50
+ $(MAKECMD) SCRIPTFILE=mkswp.bat msdos-borland-bcc$?swp-scripts
+
+msdos-microsoft-scripts .SWAP :! 51 60
+ $(MAKECMD) SCRIPTFILE=mk.bat msdos-microsft-msc$?-scripts
+ $(MAKECMD) SCRIPTFILE=mkswp.bat msdos-microsft-msc$?swp-scripts
+
+msdos-zortech-scripts .SWAP :
+ $(MAKECMD) SCRIPTFILE=mk.bat msdos-zortech-scripts
+ $(MAKECMD) SCRIPTFILE=mkswp.bat msdos-zortechswp-scripts
+
+win95-borland-c++-scripts .SWAP :! 50
+ $(MAKECMD) SCRIPTFILE=mk.bat win95-borland-bcc$?-scripts
+
+win95-microsft-vc++-scripts .SWAP :! 40
+ $(MAKECMD) SCRIPTFILE=mk.bat win95-microsft-vpp$?-scripts
+
+winnt-borland-c++-scripts .SWAP :! 50
+ $(MAKECMD) SCRIPTFILE=mk.cmd winnt-borland-bcc$?-scripts
+
+winnt-microsft-vc++-scripts .SWAP :! 40
+ $(MAKECMD) SCRIPTFILE=mk.cmd winnt-microsft-vpp$?-scripts
+
+msdos-%-scripts .SWAP .SILENT:
+ $(MAKECMD) -su $($@-flags) .KEEP_STATE:= $(FS) public template.mk
+ $(MAKECMD) -ns DIRSEPSTR:=$(DIRSEPSTR) SHELL=command.com COMSPEC=command.com .KEEP_STATE:= $(MS) $($@-flags) >$(SH)
+ $(MAKECMD) -s $(MAKEMACROS) $(MS) $($@-flags) $(SET-TMP) fix-msdos-$*-scripts
+
+win95-borland-%-scripts .SWAP .SILENT:
+ $(MAKECMD) -u $($@-flags) .KEEP_STATE:= $(FS) public template.mk
+ $(MAKECMD) -n DIRSEPSTR:=$(DIRSEPSTR) SHELL=command.com COMSPEC=command.com .KEEP_STATE:= $(MS) $($@-flags) >$(SH)
+ $(MAKECMD) -s $(MAKEMACROS) $(MS) $($@-flags) $(SET-TMP) fix-win95-borland-$*-scripts
+
+win95-microsft-%-scripts .SWAP .SILENT:
+ $(MAKECMD) -su $($@-flags) .KEEP_STATE:= $(FS) public template.mk
+ $(MAKECMD) -ns DIRSEPSTR:=$(DIRSEPSTR) SHELL=command.com COMSPEC=command.com .KEEP_STATE:= $(MS) $($@-flags) >$(SH)
+ $(MAKECMD) -s $(MAKEMACROS) $(MS) $($@-flags) $(SET-TMP) fix95nt-win95-microsft-$*-scripts
+
+winnt-borland-%-scripts .SWAP .SILENT:
+ $(MAKECMD) -su $($@-flags) .KEEP_STATE:= $(FS) public template.mk
+ $(MAKECMD) -ns DIRSEPSTR:=$(DIRSEPSTR) SHELL=cmd.exe COMSPEC=cmd.exe .KEEP_STATE:= $(MS) $($@-flags) >$(SH)
+ $(MAKECMD) -s $(MAKEMACROS) $(MS) $($@-flags) $(SET-TMP) fix-winnt-borland-$*-scripts
+
+winnt-microsft-%-scripts .SWAP .SILENT:
+ $(MAKECMD) -su $($@-flags) .KEEP_STATE:= $(FS) public template.mk
+ $(MAKECMD) -ns DIRSEPSTR:=$(DIRSEPSTR) SHELL=cmd.exe COMSPEC=cmd.exe .KEEP_STATE:= $(MS) $($@-flags) >$(SH)
+ $(MAKECMD) -s $(MAKEMACROS) $(MS) $($@-flags) $(SET-TMP) fix95nt-winnt-microsft-$*-scripts
+
+
+# We make the standard OS/2 scripts here, but we have to go and fix up the
+# mkXX.cmd file since it contains names of temporary files for the response
+# files required by the linker. We need to also construct the response file
+# contents. These two functions are performed by the fix-msdos-%-scripts
+# meta-target.
+#
+# To add a new OS/2 environment just do what is described for adding a new
+# unix environment, and then make certain that the fix-msdos-%-scripts target
+# performs the correct function for the new environment.
+os2-cf = OS=os2
+os2-ibm-icc-scripts-flags= $(os2-cf) OSRELEASE=ibm OSENVIRONMENT=icc
+
+os2-scripts: clean os2-ibm-scripts;
+
+os2-ibm-scripts .SWAP :! icc
+ $(MAKECMD) SCRIPTFILE=mk.cmd os2-ibm-$?-scripts
+
+os2-%-scripts .SWAP :
+ $(MAKECMD) -su $($@-flags) .KEEP_STATE:= $(FS) public template.mk
+ $(MAKECMD) -ns DIRSEPSTR:=$(DIRSEPSTR) SHELL=cmd.exe COMSPEC=cmd.exe .KEEP_STATE:= $(MS) SWITCHAR:=- $($@-flags) >$(SH)
+ $(MAKECMD) -s $(MAKEMACROS) $(MS) $($@-flags) $(SET-TMP) fix-os2-$*-scripts
+ cat $(SH) | sed -e 's, -, /,g' >tmp-out
+ mv tmp-out $(SH)
+
+# Signify NULL targets for the various Compiler versions.
+icc 30 40 45 50 51 60 .PHONY:;
+
+# Go over the created script file and make sure all the '/' that are in
+# filenames are '\', and make sure the final link command line looks
+# reasonable.
+MAPOBJ = obj$(SWAP:s/y/swp/:s/n//).rsp
+MAPLIB = lib$(SWAP:s/y/swp/:s/n//).rsp
+OBJRSP = $(SH:s,fix/,,:s,${SCRIPTFILE},${MAPOBJ},)
+LIBRSP = $(SH:s,fix/,,:s,${SCRIPTFILE},${MAPLIB},)
+OBJRSP95 = $(SH:s,fix95nt/,,:s,${SCRIPTFILE},${MAPOBJ},)
+LIBRSP95 = $(SH:s,fix95nt/,,:s,${SCRIPTFILE},${MAPLIB},)
+DOSOBJ = $(CSTARTUP) $(OBJDIR)/{$(OBJECTS)}
+
+# Use group recipes, as SHELL has an invalid value in some platform instances.
+fix-%-scripts .GROUP:
+ tac $(FIX-SH) >tmp-sh-r
+ tail +3 tmp-sh-r | sed -e 's,/,\\,g' >tmp-out
+ tac tmp-out|\
+ sed -e 's,\\nologo,/nologo,g' >$(FIX-SH)
+ head -2 tmp-sh-r |\
+ sed -e 's,\\tmp\\mkA[a-zA-Z0-9]*,$(OBJRSP:s,/,\\),'\
+ -e 's,\\tmp\\mkB[a-zA-Z0-9]*,$(LIBRSP:s,/,\\),'\
+ -e 's,\\tmp\\mk[0-9]*a[a-z]*,$(OBJRSP:s,/,\\),'\
+ -e 's,\\tmp\\mk[0-9]*b[a-z]*,$(LIBRSP:s,/,\\),'\
+ -e 's,/,\\,g'\
+ -e 's,\\nologo,/nologo,g'\
+ -e 's,-,/,g' |\
+ tac >>$(FIX-SH)
+ rm -f tmp-sh-r tmp-out
+ mv <+$(DOSOBJ:s,/,\\,:t"+\n")\n+> $(OBJRSP)
+ mv <+$(LDLIBS:s,/,\\,:t"+\n")\n+> $(LIBRSP)
+
+# Use group recipes, as SHELL has an invalid value in some platform instances.
+fix95nt-%-scripts .GROUP:
+ tac $(FIX95-SH) >tmp-sh-r
+ tail +3 tmp-sh-r | sed -e 's,/,\\,g' >tmp-out
+ tac tmp-out|\
+ sed -e 's,\\nologo,/nologo,g' >$(FIX95-SH)
+ head -2 tmp-sh-r |\
+ sed -e 's,\\tmp\\mkA[a-zA-Z0-9]*,$(OBJRSP95:s,/,\\),'\
+ -e 's,\\tmp\\mkB[a-zA-Z0-9]*,$(LIBRSP95:s,/,\\),'\
+ -e 's,\\tmp\\mk[0-9]*a[a-z]*,$(OBJRSP95:s,/,\\),'\
+ -e 's,\\tmp\\mk[0-9]*b[a-z]*,$(LIBRSP95:s,/,\\),'\
+ -e 's,/,\\,g'\
+ -e 's,\\nologo,/nologo,g'\
+ -e 's,-,/,g' |\
+ tac >>$(FIX95-SH)
+ rm -f tmp-sh-r tmp-out
+ mv <+$(DOSOBJ:s,/,\\,:t"\n")\n+> $(OBJRSP95)
+ mv <+$(LDLIBS:s,/,\\,:t"\n")\n+> $(LIBRSP95)