case $CONFIG in
    '') . ./config.sh ;;
esac
echo "Extracting Makefile (with variable substitutions)"
if test "X$src" = "X." ; then
	vpath=''
	vincludes=''
	srcdir=`pwd`
	extra_cleanup=
else
	vpath="$src"
	vincludes="-I. -I$src"
	case "$src" in
	/*) srcdir="$src";;
	*) srcdir=`pwd`/$src ;;
	esac
	extra_cleanup=HelpFiles
fi
$cat >Makefile <<!GROK!THIS!
# Makefile.SH
#
# This software is copyrighted as detailed in the LICENSE file.
# 
# optional defines you can add to the CFLAGS
#    -DDEBUG                      compile in support for the -D option
#    -DNO_LISTGROUP               avoids attempting to use LISTGROUP
#    -DREPLYTO_POSTER_CHECKING    makes -p also check Reply-To (slow)

srcdir = $srcdir
VPATH = $vpath
extra_cleanup = $extra_cleanup

CC = $cc
#MSDOSLINK = tlink
TOUCH = touch
YACC = $yacc
#LINT = lint
lintflags = -phbvxac $vincludes

CFLAGS = $optimize $ccflags $vincludes
TKINC = $tkinc
LDFLAGS = $ldflags
TKLDFLAGS = 
#MSDOSLINKFLAGS = $linkflags

#MSDOSexe = .exe
o = o
#MSDOSo = obj

rnbin = $installbin
rnlib = $installprivlib
#INEWSinewsbin = $installinews
mansrc = $installmansrc
manext = $manext
#NNTPNNTPFLAGS = $nntpflags
ndirc = $ndirc
ndiro = $ndiro
strftimec = $strftimec
strftimeo = $strftimeo
installfilexp = $filexp

libs = $libndir $termlib $jobslib -lm $libs
tklibs = $tklibs
!GROK!THIS!
$cat >>Makefile <<'!NO!SUBS!'
public_backup = trn$(exe) trn-artchk$(exe) $(nntpexe) $(msdosexe)
public_diff = Pnews Rnmail
public = $(public_backup) $(public_diff)
private_preserve = access.def
private_diff = newsnews Speller Pnews.header
private_blast = norm.saver mbox.saver makedir filexp
private = $(private_preserve) $(private_diff) $(private_blast)
util = makedepend mkpro mktd HelpFiles/config/environment
manpages = trn.1 Pnews.1 Rnmail.1
#INEWSinewsexe=inews$(exe)
#NNTPnntpexe=nntplist$(exe)
#NNTPnntpsrc=nntpinit.c nntpclient.c nntpauth.c nntp.c
#NNTPnntpobj1=nntpinit.$(o) nntpclient.$(o) nntpauth.$(o)
#NNTPnntpobj2=nntp.$(o)
#MSDOSmsdosexe=winsock.dll
#MSDOSmsdossrc=popen.c
#MSDOSmsdosobj=popen.$(o)

h1 = addng.h art.h artio.h artsrch.h autosub.h backpage.h bits.h cache.h
h2 = charsubst.h datasrc.h common.h decode.h env.h final.h hash.h head.h
h3 = help.h init.h intrp.h kfile.h last.h list.h mime.h ng.h ngdata.h ngsrch.h
h4 = ngstuff.h only.h opt.h rcln.h rcstuff.h respond.h rthread.h rt-mt.h
h5 = rt-ov.h rt-page.h rt-process.h rt-select.h rt-util.h rt-wumpus.h
h6 = search.h sw.h term.h trn.h util.h util2.h wildmat.h color.h filter.h
h7a = scan.h scmd.h sdisp.h smisc.h sorder.h spage.h
h7b = scanart.h samain.h samisc.h sadisp.h sacmd.h sadesc.h sathread.h
h7c = url.h mempool.h univ.h
h7all = $(h7a) $(h7b) $(h7c)
h8 = score.h scorefile.h scoresave.h score-easy.h
h9 = tkstuff.h tktree.h

h = $(h1) $(h2) $(h3) $(h4) $(h5) $(h6) $(h7all) $(h8) $(h9)

c1 = addng.c art.c artio.c artsrch.c autosub.c backpage.c bits.c cache.c
c2 = charsubst.c datasrc.c decode.c edit_dist.c env.c final.c hash.c head.c
c3 = help.c init.c intrp.c kfile.c last.c list.c $(ndirc) mime.c ng.c ngdata.c
c4 = ngsrch.c ngstuff.c only.c opt.c rcln.c rcstuff.c respond.c rthread.c
c5 = rt-mt.c rt-ov.c rt-process.c rt-page.c rt-select.c rt-util.c rt-wumpus.c
c6 = search.c $(strftimec) sw.c term.c trn.c util.c util2.c
c7 = uudecode.c $(nntpsrc) $(msdossrc) wildmat.c color.c filter.c
c8a = scan.c scmd.c sdisp.c smisc.c sorder.c spage.c
c8b = scanart.c samain.c samisc.c sadisp.c sacmd.c sadesc.c sathread.c
c8c = url.c mempool.c univ.c
c8all = $(c8a) $(c8b) $(c8c)
c9 = score.c scorefile.c scoresave.c score-easy.c
c10 = tkstuff.c tktree.c
c = $(c1) $(c2) $(c3) $(c4) $(c5) $(c6) $(c7) $(c8all) $(c9) $(c10)

obj1 = addng.$(o) art.$(o) artio.$(o) artsrch.$(o) autosub.$(o) backpage.$(o)
obj2 = bits.$(o) cache.$(o) charsubst.$(o) datasrc.$(o) decode.$(o)
obj3 = edit_dist.$(o) env.$(o) final.$(o) hash.$(o) head.$(o) help.$(o)
obj4 = init.$(o) intrp.$(o) kfile.$(o) last.$(o) list.$(o) $(ndiro) mime.$(o) ng.$(o)
obj5 = ngdata.$(o) ngsrch.$(o) ngstuff.$(o) only.$(o) opt.$(o) rcln.$(o)
obj6 = rcstuff.$(o) respond.$(o) rthread.$(o) rt-mt.$(o) rt-ov.$(o)
obj7 = rt-process.$(o) rt-page.$(o) rt-select.$(o) rt-util.$(o) rt-wumpus.$(o)
obj8 = search.$(o) $(strftimeo) sw.$(o) term.$(o) trn.$(o) util.$(o) util2.$(o)
obj9 = uudecode.$(o) parsedate.$(o) $(nntpobj1) $(nntpobj2)
obj10= $(msdosobj) wildmat.$(o) color.$(o) filter.$(o)
obj11a = scan.$(o) scmd.$(o) sdisp.$(o) smisc.$(o) sorder.$(o) spage.$(o)
obj11b = scanart.$(o) samain.$(o) samisc.$(o) sadisp.$(o) sacmd.$(o) sadesc.$(o) sathread.$(o)
obj11c = url.$(o) mempool.$(o) univ.$(o)
obj11all = $(obj11a) $(obj11b) $(obj11c)
obj12 = score.$(o) scorefile.$(o) scoresave.$(o) score-easy.$(o)
obj13 = tkstuff.$(o) tktree.$(o)

obj = $(obj1) $(obj2) $(obj3) $(obj4) $(obj5) $(obj6) $(obj7) $(obj8) \
	$(obj9) $(obj10) $(obj11all) $(obj12) $(obj13)

addedbymake = $(public) $(inewsexe) $(private) $(util)\
	Makefile.old config.h parsedate.c cppstdin myinstall all

# grrr
SHELL = /bin/sh

.c.$(o):
	$(CC) -c $(CFLAGS) $<

all: Makefile $(public) $(inewsexe) $(private) $(util) Policy.sh
	$(TOUCH) all
#MSDOS
#MSDOStrn: trn.exe

trn$(exe): $(obj)
#MSDOS	$(LINK) $(LINKFLAGS) @trn.lnk
#MSDOS
#MSDOSjunk1:
	$(CC) $(LDFLAGS) $(TKLDFLAGS) $(obj) $(tklibs) $(libs) -o trn$(exe)
#NNTP
#NNTPnntpinit.$(o): nntpinit.c
#NNTP	$(CC) -c $(CFLAGS) $(NNTPFLAGS) $<
#NNTP#MSDOS
#NNTP#MSDOSnntplist: nntplist.exe
#NNTP
#NNTPnntplistobjs = nntplist.$(o) $(nntpobj1) util2.$(o) util3.$(o) \
#NNTP	wildmat.$(o)
#NNTP
#NNTPnntplist$(exe): $(nntplistobjs)
#NNTP#MSDOS	$(LINK) $(LINKFLAGS) @nntplist.lnk
#NNTP#MSDOS
#NNTP#MSDOSjunk2:
#NNTP	$(CC) $(LDFLAGS) $(nntplistobjs) -o nntplist$(exe) $(libs)
#INEWS#MSDOS
#INEWS#MSDOSinews: inews.exe
#INEWS
#INEWSinewsobjs = inews.$(o) $(nntpobj1) env.$(o) util2.$(o) util3.$(o)
#INEWS
#INEWSinews$(exe): $(inewsobjs)
#INEWS#MSDOS	$(LINK) $(LINKFLAGS) @inews.lnk
#INEWS#MSDOS
#INEWS#MSDOSjunk3:
#INEWS	$(CC) $(LDFLAGS) $(inewsobjs) -o inews$(exe) $(libs)

#MSDOStrn-artchk: trn-artchk.exe
#MSDOS
trnchkobjs = trn-artchk.$(o) $(nntpobj1) util2.$(o) util3.$(o)

trn-artchk$(exe): $(trnchkobjs)
#MSDOS	$(LINK) $(LINKFLAGS) @trn-artchk.lnk
#MSDOS
#MSDOSjunk4:
	$(CC) $(LDFLAGS) $(trnchkobjs) -o trn-artchk$(exe) $(libs)
#MSDOS
#MSDOSwinsock.dll: winsock.c winsock.def
#MSDOS	$(CC) -c -WXDE -ml -w-par winsock.c
#MSDOS	$(LINK) /c -v -Twd -Lc:\bc4\lib @winsock.lnk

tkstuff.o: tkstuff.c
	$(CC) -c $(CFLAGS) $(TKINC) $<

tktree.o: tktree.c
	$(CC) -c $(CFLAGS) $(TKINC) $<

parsedate.c: parsedate.y
	@echo 'Expect 6 shift/reduce conflicts'
	$(YACC) $(srcdir)/parsedate.y
	mv -f y.tab.c parsedate.c
#MSDOS
#MSDOSparsedate.$(o): parsedate.c
#MSDOS	$(CC) -c $(CFLAGS) -w- $<
#STRFTIME
#STRFTIME$(strftimeo): $(strftimec)
#STRFTIME	$(CC) -c $(CFLAGS) $(strftimec)

#MSDOSunipatch: unipatch.exe
#MSDOS
unipatch$(exe): support/unipatch.$(o)
#MSDOS	$(CC) $(LDFLAGS) support/unipatch.$(o)
#MSDOS
#MSDOSjunk5:
	$(CC) $(LDFLAGS) support/unipatch.$(o) -o unipatch$(exe)

Pnews.header: Pnews

# if a .h file depends on another .h file...
$(h):
	-$(TOUCH) $@

install: $(public) $(inewsexe) $(private) $(manpages) myinstall
# won't work with csh
	export PATH || false # stop the make unless we are compatible
	- ./makedir `./filexp $(rnbin)`
	./myinstall -sox `./filexp $(rnbin)` $(public_backup)
	./myinstall -dox `./filexp $(rnbin)` $(public_diff)
	- if test $(installfilexp) = Rnfilexp; then\
 ./myinstall -xf Rnfilexp `./filexp $(rnbin)` ./filexp; fi
	- ./makedir `./filexp $(rnlib)`
	- chmod o+r `./filexp $(rnlib)`
#INEWS	./myinstall -sox `./filexp $(inewsbin)` inews$(exe)
	./myinstall -x   `./filexp $(rnlib)`    $(private_blast)
	- if test "X$(mansrc)" != X -a "X`pwd`" != X`./filexp $(mansrc)`; then\
  ./makedir `./filexp $(mansrc)`;\
  for page in $(manpages); do\
   page=`basename $$page`;\
   dest=$(mansrc)/`basename $$page .1`.$(manext);\
   rm -f $$dest; cp $(srcdir)/$$page $$dest; chmod 444 $$dest;\
  done;\
 fi
	./myinstall -dor `./filexp $(rnlib)` $(private_diff)
	./myinstall -dnr `./filexp $(rnlib)` $(srcdir)/INIT $(private_preserve)
	./myinstall -oR `./filexp $(rnlib)` `pwd`/HelpFiles
	@echo ' '
	@echo 'Use "make installclean" to remove any .old or .new files that'
	@echo 'were just created, but only after you are sure that the files'
	@echo 'contain no interesting changes and/or no one is running the'
	@echo 'old executables.'

installclean:
	- (cd `./filexp $(rnbin)` ; for file in $(public) $(private_diff) ; do\
  rm -f $${file}.old;\
 done)
	- (cd `./filexp $(rnlib)` ; for file in HelpFiles ; do\
  rm -rf $${file}.old;\
 done)
	- (cd `./filexp $(rnlib)` ; for file in INIT $(private_preserve) ; do\
  rm -f $${file}.new;\
 done)
#INEWS	- (cd `./filexp $(inewsbin)` ; rm -f inews$(exe).old)

clean:
	@echo 'Use "make realclean" to also remove the Makefile.'
	@echo 'Use "make spotless" to even remove config.sh, Policy.sh, and .config.'
	rm -rf UU $(extra_cleanup)
	rm -f *.$(o) core $(addedbymake)

realclean:
	@echo 'You can use "Configure -S" to reverse this.'
	rm -rf UU
	rm -f *.$(o) core $(addedbymake) Makefile

spotless:
	rm -rf UU .config
	rm -f *.$(o) core $(addedbymake) Makefile config.sh Policy.sh

# The following lint has practically everything turned on.  Unfortunately,
# you have to wade through a lot of mumbo jumbo that can't be suppressed.
# If the source file has a /*NOSTRICT*/ somewhere, ignore the lint message
# for that spot.

lint: $(c) parsedate.c
	$(LINT) $(lintflags) $(defs) $? > trn.fuzz 2>&1

sabertrn: $(c) parsedate.c
	#load $(c) parsedate.c $(libs)

depend: config.h Makefile makedepend
	./makedepend

pro: config.h mkpro
	./mkpro

td: config.h mktd
	./mktd

Makefile: Makefile.SH config.sh dependencies
	/bin/sh $(srcdir)/Makefile.SH
	@echo "The Makefile has changed -- please restart the make."
	false # stop the make

Pnews: patchlevel.h
newsnews: patchlevel.h

tar: MANIFEST patchlevel.h
	export PATH || false # stop the make unless we are compatible
	@(ver=trn-`awk '{print $$4}' $(srcdir)/patchlevel.h` ; \
	 cd $(srcdir)/.. ; \
	 echo Creating $$ver.tar.gz ; \
	 ln -s trn4 $$ver ; \
	 tar cvzf $$ver.tar.gz \
		`ls -1d trn4/hints/* | fgrep -v /CVS | \
		 cat trn4/MANIFEST - | \
		 sed -e "s:^\(trn4/\)*\([^ 	]*\).*:$$ver/\2:"` ; \
	 rm $$ver )

# AUTOMATICALLY GENERATED MAKE DEPENDENCIES--PUT NOTHING BELOW THIS LINE
!NO!SUBS!
if test -f dependencies; then
	$cat dependencies >>Makefile
else
	$cat $src/dependencies >>Makefile
fi
case "$d_nntp" in
define)	sedcmd="-e '/^#NNTP/s/^#NNTP//'" ;;
*)	sedcmd="-e '/^#NNTP/d'" ;;
esac
case "$d_inews" in
define)	sedcmd="$sedcmd -e '/^#INEWS/s/^#INEWS//'" ;;
*)	sedcmd="$sedcmd -e '/^#INEWS/d'" ;;
esac
case "$d_msdos" in
define)	sedcmd="$sedcmd -e '/^#MSDOS/s/^#MSDOS//'" ;;
*)	sedcmd="$sedcmd -e '/^#MSDOS/d'" ;;
esac
case "$strftimec" in
''|' ')	sedcmd="$sedcmd -e '/^#STRFTIME/d'" ;;
*)	sedcmd="$sedcmd -e '/^#STRFTIME/s/^#STRFTIME//'" ;;
esac
eval "sed <Makefile $sedcmd >Makefile.new"
mv Makefile.new Makefile
$eunicefix Makefile


syntax highlighted by Code2HTML, v. 0.9.1