case $CONFIG in
'')
    if test ! -f config.sh; then
	ln ../config.sh . || \
	ln ../../config.sh . || \
	ln ../../../config.sh . || \
	(echo "Can't find config.sh."; exit 1)
    fi
    . ./config.sh
    ;;
esac
case "$0" in
*/*) cd `expr X$0 : 'X\(.*\)/'` ;;
esac

case "$d_symlink" in
*define*) sln='ln -s' ;;
*) sln='ln';;
esac

liblist="mailer mbox misc"

echo "Extracting Makefile (with variable substitutions)"
cat >Makefile <<!GROK!THIS!
#!$make
# $Id: Makefile.SH,v 1.30 2006/08/25 15:47:37 hurtta Exp $
#
#  Makefile for the entire ELM mail system
#
# Modified by Kari Hurtta Kari Hurtta <hurtta+elm@posti.FMI.FI>
######################################################################
# Based on Makefile.SH. That code was following copyright:
#
#         (C) Copyright 1986,1987, by Dave Taylor
#         (C) Copyright 1988-1992, USENET Community Trust
###################################################################### 
#

#	Variables established by Configure
CAT		=	$cat
GREP		=	$grep
ECHO		=	$echo
PR		=	$pr
SHAR		=	$shar -s 60000
SLEEP		=	$sleep
TAR		=	$tar
TAPE		=	$rmttape

!GROK!THIS!

if $test "$make_sets_make" != "$define" ; then  

	cat >>Makefile <<!GROK!THIS!
MAKE		=	$make
!GROK!THIS!

fi

cat >>Makefile <<'!NO!SUBS!'
#	Other variables
SHELL			=	/bin/sh
SOURCE_FILES		=	`$(GREP) -v 'doc/' MANIFEST`
DISTRIBUTED_FILES	=	`$(CAT) MANIFEST`

# Targets
#	Give default target first and alone
default_target:	installer all

installer: bin/elmregister
bin/elmregister: utils/elmregister.c config.sh
	cd utils; $(MAKE) $(MJ) $(MFLAGS) ../bin/elmregister

install: config.h config.sh hdrs/sysdefs.h Makefile installer all 
	bin/elmregister master $(MAKE) $(MJ) $(MFLAGS) install_s
	bin/elmregister replay -M all
	bin/elmregister unstage -M all

uninstall: config.h config.sh installer
	bin/elmregister master $(MAKE) $(MJ) $(MFLAGS) uninstall_s

# Helper target for testing
install_libs: config.h config.sh hdrs/sysdefs.h Makefile installer all
	bin/elmregister master $(MAKE) $(MJ) $(MFLAGS) install_libs_s
	bin/elmregister replay -M all

install_libs_s: install1_libs_s config.h config.sh hdrs/sysdefs.h
!NO!SUBS!

for i in $liblist
do
cat >>Makefile <<!SUBS!
	        cd lib/$i; \$(MAKE) \$(MJ) \$(MFLAGS) install_s
!SUBS!
done

cat >>Makefile <<'!NO!SUBS!'
	cd lib; $(MAKE) $(MJ) $(MFLAGS) install_s
	cd melib; $(MAKE) $(MJ) $(MFLAGS) install_s	
	cd shared_libs; $(MAKE) $(MJ) $(MFLAGS) install_s

#	Targets that are simply executed in each subordinate makefile as is
all install_s uninstall_s lint clean: config.h config.sh \
 hdrs/sysdefs.h Makefile 
!NO!SUBS!

for i in $liblist
do
cat >>Makefile <<!SUBS!
	        cd lib/$i; \$(MAKE) \$(MJ) \$(MFLAGS) \$@
!SUBS!
done

cat >>Makefile <<'!NO!SUBS!'
		cd lib; $(MAKE) $(MJ) $(MFLAGS) $@
		cd melib; $(MAKE) $(MJ) $(MFLAGS) $@
		cd shared_libs; $(MAKE) $(MJ) $(MFLAGS) $@	
		cd src/messages; $(MAKE) $(MJ) $(MFLAGS) $@	
		cd src/screen; $(MAKE) $(MJ) $(MFLAGS) $@	
		cd src/aliases; $(MAKE) $(MJ) $(MFLAGS) $@	
		cd src/menu_common; $(MAKE) $(MJ) $(MFLAGS) $@	
		cd src/url; $(MAKE) $(MJ) $(MFLAGS) $@	
		cd src/block; $(MAKE) $(MJ) $(MFLAGS) $@	
		cd src/list; $(MAKE) $(MJ) $(MFLAGS) $@	
		cd src; $(MAKE) $(MJ) $(MFLAGS) $@
		cd utils/readmsg; $(MAKE) $(MJ) $(MFLAGS) $@
		cd utils; $(MAKE) $(MJ) $(MFLAGS) $@
		cd doc; $(MAKE) $(MJ) $(MFLAGS) $@
		$(MAKE) -f Makefile-1 $(MJ) $(MFLAGS) $@

# Check that config.h is up of date
config.h: config.h.SH config.sh
	@echo "You must run 'sh Configure -S' or 'sh Configure'"
	exit 1

hdrs/sysdefs.h: hdrs/sysdefs.SH config.sh
	@echo "You must run 'sh Configure -S' or 'sh Configure'"
	exit 1

# Check that config.sh is up of data
config.sh: Configure hdrs/patchlevel.h	
	@echo "You must run 'sh Configure'"
	exit 1

Makefile: Makefile.SH config.sh
	@echo "You must run 'sh Configure -S' or 'sh Configure'"
	exit 1

#	Targets that apply to all elm at once
listing:
		@$(ECHO) "Making source listing in file LISTING."
		@$(PR) -n -f $(SOURCE_FILES) > LISTING

shar:
		$(SHAR) $(DISTRIBUTED_FILES)

tar:
		$(TAR) cvf $(TAPE) $(DISTRIBUTED_FILES)

#	Targets that are really in subordinate make files
documentation:
	cd doc; $(MAKE) $(MJ) $(MFLAGS) $@

elm:
!NO!SUBS!

for i in $liblist
do
cat >>Makefile <<!SUBS!
	        cd lib/$i; \$(MAKE) \$(MJ) \$(MFLAGS) \$@
!SUBS!
done

cat >>Makefile <<'!NO!SUBS!'
	cd lib; $(MAKE) $(MJ) $(MFLAGS) all
	cd melib; $(MAKE) $(MJ) $(MFLAGS) all
	cd src/messages; $(MAKE) $(MJ) $(MFLAGS) $@	
	cd src/screen; $(MAKE) $(MJ) $(MFLAGS) $@	
	cd src/aliases; $(MAKE) $(MJ) $(MFLAGS) $@	
	cd src/menu_common; $(MAKE) $(MJ) $(MFLAGS) $@	
	cd src/url; $(MAKE) $(MJ) $(MFLAGS) $@	
	cd src/block; $(MAKE) $(MJ) $(MFLAGS) $@	
	cd src/list; $(MAKE) $(MJ) $(MFLAGS) $@	
	cd src; $(MAKE) $(MJ) $(MFLAGS) all

#	The dummy dependency here prevents make from thinking the target is the
#	utils directory that sits in the current directory, rather than
#	an abstract target.
utils: _utils

_utils:
	cd utils; $(MAKE) $(MJ) $(MFLAGS) all


libs/libelmme-base.a:
	cd lib; $(MAKE) $(MJ) $(MFLAGS) ../libs/libelmme-base.a

libs/libelmme-mime.a:
	cd melib; $(MAKE) $(MJ) $(MFLAGS) ../libs/libelmme-mime.a

install1_libs_s:
!NO!SUBS!

for i in $liblist
do
cat >>Makefile <<!SUBS!
	cd lib/$i; \$(MAKE) \$(MJ) \$(MFLAGS) install_s	
!SUBS!
done

for i in $liblist
do
cat >>Makefile <<!SUBS!

libs/libelmme-$i.a:
	cd lib/$i; \$(MAKE) \$(MJ) \$(MFLAGS) ../../libs/libelmme-$i.a

!SUBS!
done

if $test "$d_shared" = "$define" ; then

cat >>Makefile <<'!NO!SUBS!'

shlib/libelmme-base.so: libs/libelmme-base.a
	cd lib; $(MAKE) $(MJ) $(MFLAGS) ../libs/libelmme-base.so

shlib/libelmme-mime.so: libs/libelmme-mime.a
	cd melib; $(MAKE) $(MJ) $(MFLAGS) ../libs/libelmme-mime.so

!NO!SUBS!

	for i in $liblist
	do
cat >>Makefile <<!SUBS!
shlib/libelmme-$i.so: libs/libelmme-$i.a
	cd lib/$i; \$(MAKE) \$(MJ) \$(MFLAGS) ../../libs/libelmme-$i.so

!SUBS!
	done

fi


if $test "$build_package" = "$define" ; then  

cat >>Makefile <<!SUBS!

package: config.h config.sh hdrs/sysdefs.h Makefile installer all 
	bin/elmregister master -R "\$(ROOT)" \$(MAKE) \$(MJ) \$(MFLAGS) install_s
	@echo "#### Putting instructions to file \$(ROOT)/README.PACKAGE.sh"
	@echo "$startsh" >\$(ROOT)/README.PACKAGE.sh 
	@echo "# Package $package" >>\$(ROOT)/README.PACKAGE.sh 
	@echo "# package filelist is on .$etc/elm.filelist" >>\$(ROOT)/README.PACKAGE.sh 
	@echo "#To move files to final place, use command:" >>\$(ROOT)/README.PACKAGE.sh 
	@echo ".$lib/elmregister replay -M all -R \\\`pwd\\\` " >>\$(ROOT)/README.PACKAGE.sh

!SUBS!

fi


syntax highlighted by Code2HTML, v. 0.9.1