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

libx=" ../libs/libelmme-mime.a ../libs/libelmme-misc.a ../libs/libelmme-mbox.a ../libs/libelmme-base.a ../libs/libelmme-mailer.a "
libxs=" ../shlib/libelmme-mime.so ../shlib/libelmme-misc.so ../shlib/libelmme-mbox.so ../shlib/libelmme-base.so ../shlib/libelmme-mailer.so "

echo "Extracting src/Makefile (with variable substitutions)"
: if mailermode is not 2755 then we dont need the chgrp
: set chgrp to a null command in this case
if test "$mailermode" = 755; then
	chgrp=":"
fi

case "$d_locale" in
define)
	localetarget='$(ETC)/elm.mimecharsets $(ETC)/elm.terminalinfo'
	;;
*)
	localetarget=
	;;
esac

cat >Makefile <<!GROK!THIS!
#!$make
# $Id: Makefile.SH,v 1.70 2006/06/25 10:41:05 hurtta Exp $
#
#  Makefile for the ELM mail program.
#
# Modified by Kari Hurtta Kari Hurtta <hurtta+elm@posti.FMI.FI>
######################################################################
# Based on src/Makefile.SH. That code was following copyright:
#
#	Copyright (c) 1988-1992 USENET Community Trust
#	Copyright (c) 1986,1987 Dave Taylor
######################################################################
#
# Variables
#	Variables established by Configure
CC		=	$cc
CCFLAGS		=	$ccflags $picflag $xencf
CHGRP		=	$chgrp
CHMOD		=	$chmod
CP		=	$cp
DEST		=	\$(ELM_ROOT)//$bin
ECHO		=	$echo
LFLAGS		=	$ldflags $dynamic_opt $xenlf
LIB		=	\$(ELM_ROOT)//$lib
ETC		=	\$(ELM_ROOT)//$etc
LIB2		= 	$dlopen_lib $libs 
LIBS		=	$cryptlib $termlib $dbm
LINT		=	$lint
MAILGRP		=	$mailgrp
MAILERMODE	=	$mailermode
MV		=	$mv
OPTIMIZE	=	$optimize
RM		= 	$rm -f
TOUCH		=	$touch
TAGS		=	ctags
LIBX            =       $libx

LOCALETARG	=	$localetarget

!GROK!THIS!

if $test "X$rpath_ok" = XOK ; then

# Use -rpath for directories need by shared_libs 
# It is is possbile to also use -rpath-link on Linux and SunOS
# but it may require extra Configure test....

	 rlink=
	 for domake in $shared_list ; do
		dir=
		varname="\$${domake}_lib_dir"
		eval "dir=$varname"
		if $test "X$dir" != X ; then
			rlink="$rlink $rpath_opt$dir"
		fi
	 done

	 cat >>Makefile <<!GROK!THIS!
RPATH           =       $rpath_opt$shlib $rlink
!GROK!THIS!

else
	 cat >>Makefile <<!GROK!THIS!
RPATH           =       
!GROK!THIS!

fi

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

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

fi

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

cat >>Makefile <<'!NO!SUBS!'
SHLIST          = $(BIN)/elm-shared
!NO!SUBS!
cat >>Makefile <<!SUBS!
LIBXS            =       $libxs
!SUBS!

else

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

fi

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

#	Other general variables
BIN		=	../bin
CFLAGS		=	-I$(INCLDIR) $(CCFLAGS) $(OPTIMIZE)
INCLDIR		=	../hdrs
LINTFLAGS	=	-I$(INCLDIR)
SHELL		=	/bin/sh
REG             =       ../bin/elmregister

# 	Lists
ELM_SRC		=	addr_util.c	\
			alias.c		\
			aliaslib.c	\
			args.c		\
			a_edit.c	\
			a_screen.c	\
			a_sort.c	\
			a_quit.c	\
			attach_menu.c	\
			browser.c	\
			builtin++.c	\
			calendar.c	\
			canceled.c      \
			date.c		\
			delete.c	\
			digest.c	\
			duplicate_removal.c \
			edit.c		\
			editmsg.c	\
			elm.c		\
			exitprog.c	\
			extended.c	\
			file.c		\
			file_util.c	\
			fileio.c	\
			forms.c		\
			hdrconfg.c	\
			help.c		\
			in_utils.c	\
			init.c		\
			leavembox.c	\
			lock.c		\
			limit.c		\
			mailbox.c	\
			mailmsg1.c	\
			mailmsg2.c	\
			menu.c		\
			menu2.c		\
			metapager.c	\
		 	mime.c          \
			mime_encode.c	\
			mkhdrs.c	\
			newmbox.c	\
			openmailbox.c	\
			options.c	\
			out_utils.c	\
			pattern.c	\
			partial.c	\
			pgp.c		\
			quit.c		\
			read_rc.c	\
			remail.c	\
			reply.c		\
			save_opts.c	\
			savecopy.c	\
			screen.c	\
			showmsg.c	\
			showmsg_c.c	\
			showmsg_1.c	\
			signals.c	\
			sort.c		\
			string2.c	\
			strings.c	\
			syscall.c	\
			thread.c	\
			utils.c		\
			view_folder.c   \
			view_one_thread.c

ELM_OBJ		=	addr_util.o	\
			alias.o		\
			aliaslib.o	\
			args.o		\
			attach_menu.o	\
			a_edit.o	\
			a_screen.o	\
			a_sort.o	\
			a_quit.o	\
			browser.o	\
			builtin++.o	\
			calendar.o	\
			canceled.o      \
			date.o		\
			delete.o	\
			digest.o	\
			duplicate_removal.o \
			edit.o		\
			editmsg.o	\
			elm.o		\
			exitprog.o	\
			extended.o	\
			file.o		\
			file_util.o	\
			fileio.o	\
			forms.o		\
			hdrconfg.o	\
			help.o		\
			in_utils.o	\
			init.o		\
			leavembox.o	\
			lock.o		\
			limit.o		\
			mailbox.o	\
			mailmsg1.o	\
			mailmsg2.o	\
			menu.o		\
			menu2.o		\
			metapager.o	\
			mime.o		\
			mime_encode.o	\
			movement.o	\
			mkhdrs.o	\
			newmbox.o	\
			openmailbox.o	\
			options.o	\
			out_utils.o	\
			pattern.o	\
			partial.o	\
			pgp.o		\
			quit.o		\
			read_rc.o	\
			remail.o	\
			reply.o		\
			save_opts.o	\
			savecopy.o	\
			screen.o	\
			showmsg.o	\
			showmsg_c.o	\
			showmsg_1.o	\
			signals.o	\
			sort.o		\
			string2.o	\
			strings.o	\
			syscall.o	\
			utils.o		\
			thread.o	\
			view_folder.o	\
			view_one_thread.o

# Standard targets
all:		Makefile $(BIN)/elm $(SHLIST)
		cd messages; $(MAKE) $(MJ) $(MFLAGS) $@
		cd screen; $(MAKE) $(MJ) $(MFLAGS) $@
		cd aliases; $(MAKE) $(MJ) $(MFLAGS) $@
		cd menu_common; $(MAKE) $(MJ) $(MFLAGS) $@
		cd url; $(MAKE) $(MJ) $(MFLAGS) $@
		cd block; $(MAKE) $(MJ) $(MFLAGS) $@
		cd list; $(MAKE) $(MJ) $(MFLAGS) $@

install_s:	Makefile $(DEST) $(DEST)/elm  
		cd messages; $(MAKE) $(MJ) $(MFLAGS) $@
		cd screen; $(MAKE) $(MJ) $(MFLAGS) $@
		cd aliases; $(MAKE) $(MJ) $(MFLAGS) $@
		cd menu_common; $(MAKE) $(MJ) $(MFLAGS) $@
		cd url; $(MAKE) $(MJ) $(MFLAGS) $@
		cd block; $(MAKE) $(MJ) $(MFLAGS) $@
		cd list; $(MAKE) $(MJ) $(MFLAGS) $@

$(DEST):
		$(REG) mkdir $(DEST)

$(LIB):
		$(REG) mkdir $(LIB)

$(LIB)/elm.map.bin: 
		$(REG) mkdir $(LIB)/elm.map.bin

$(LIB)/elm.map.txt:
		$(REG) mkdir $(LIB)/elm.map.txt

url/liburl.a:
		cd url; $(MAKE) $(MJ) $(MFLAGS) all

block/libblock.a:
		cd block; $(MAKE) $(MJ) $(MFLAGS) all

list/liblist.a:
		cd list; $(MAKE) $(MJ) $(MFLAGS) all

messages/libmessages.a:
		cd messages; $(MAKE) $(MJ) $(MFLAGS) all

screen/libscreen.a:
		cd screen; $(MAKE) $(MJ) $(MFLAGS) all

aliases/libaliases.a:
		cd aliases; $(MAKE) $(MJ) $(MFLAGS) all

menu_common/libmcommon.a:
		cd menu_common; $(MAKE) $(MJ) $(MFLAGS) all


!NO!SUBS!

if $test "X$etc" != "X$lib" ; then

cat >>Makefile <<'!NO!SUBS!'
$(ETC):
	$(REG) mkdir $(ETC)

!NO!SUBS!

fi

cat >>Makefile <<'!NO!SUBS!'
uninstall_s:	
		$(REG) rm $(DEST)/elm 
		cd messages; $(MAKE) $(MJ) $(MFLAGS) $@
		cd screen; $(MAKE) $(MJ) $(MFLAGS) $@
		cd aliases; $(MAKE) $(MJ) $(MFLAGS) $@
		cd menu_common; $(MAKE) $(MJ) $(MFLAGS) $@
		cd url; $(MAKE) $(MJ) $(MFLAGS) $@

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

lint:		
		$(LINT) $(LINTFLAGS) $(ELM_SRC) > LINT.OUT

tags:
		$(TAGS) $(ELM_SRC)

clean: 
		$(RM) $(ELM_OBJ) $(BIN)/elm $(SHLIST)
		cd messages; $(MAKE) $(MJ) $(MFLAGS) $@
		cd screen; $(MAKE) $(MJ) $(MFLAGS) $@
		cd aliases; $(MAKE) $(MJ) $(MFLAGS) $@
		cd menu_common; $(MAKE) $(MJ) $(MFLAGS) $@
		cd url; $(MAKE) $(MJ) $(MFLAGS) $@

# Dependencies and rules
#	Dependencies of header files upon other header files they include
.PRECIOUS:		$(INCLDIR)/defs.h $(INCLDIR)/elm.h $(INCLDIR)/headers.h def_elm.h $(INCLDIR)/me.h

$(INCLDIR)/defs.h:	$(INCLDIR)/../config.h $(INCLDIR)/sysdefs.h
			$(CHMOD) u+w $@
			$(TOUCH) $@

$(INCLDIR)/elm.h:	$(INCLDIR)/defs.h  $(INCLDIR)/me.h
			$(CHMOD) u+w $@
			$(TOUCH) $@

$(INCLDIR)/headers.h:	$(INCLDIR)/defs.h $(INCLDIR)/mime.h $(INCLDIR)/me.h $(INCLDIR)/elmlib.h
			$(CHMOD) u+w $@
			$(TOUCH) $@

$(INCLDIR)/me.h:	$(INCLDIR)/melib.h
			$(CHMOD) u+w $@
			$(TOUCH) $@

def_elm.h:		$(INCLDIR)/headers.h $(INCLDIR)/me.h \
 $(INCLDIR)/mailerlib.h $(INCLDIR)/mboxlib.h $(INCLDIR)/misclib.h
			$(CHMOD) u+w $@
			$(TOUCH) $@

#	Dependencies of C object files
addr_util.o:	def_elm.h $(INCLDIR)/s_elm.h $(INCLDIR)/s_me.h
alias.o:	def_elm.h $(INCLDIR)/ndbz.h $(INCLDIR)/s_aliases.h $(INCLDIR)/s_elm.h
aliaslib.o:	def_elm.h $(INCLDIR)/s_elm.h
args.o:		def_elm.h $(INCLDIR)/patchlevel.h $(INCLDIR)/s_elm.h
a_edit.o:	def_elm.h
a_screen.o:	def_elm.h $(INCLDIR)/s_aliases.h
a_sort.o:	def_elm.h $(INCLDIR)/s_aliases.h
a_quit.o:	def_elm.h $(INCLDIR)/s_aliases.h
attach_menu.o:	def_elm.h $(INCLDIR)/s_elm.h $(INCLDIR)/s_me.h
browser.o:	def_elm.h $(INCLDIR)/s_elm.h
builtin++.o:	def_elm.h
calendar.o:	def_elm.h
canceled.o:	def_elm.h $(INCLDIR)/s_elm.h
date.o:		def_elm.h
delete.o:	def_elm.h $(INCLDIR)/s_elm.h
digest.o:	def_elm.h $(INCLDIR)/s_elm.h
duplicate_removal.o:	  def_elm.h
edit.o:		def_elm.h
editmsg.o:	def_elm.h $(INCLDIR)/s_elm.h
elm.o:		$(INCLDIR)/elm.h $(INCLDIR)/s_elm.h $(INCLDIR)/me.h \
 $(INCLDIR)/patchlevel.h $(INCLDIR)/mailerlib.h $(INCLDIR)/mboxlib.h
exitprog.o:	def_elm.h $(INCLDIR)/s_elm.h
extended.c:	def_elm.h $(INCLDIR)/s_me.h
file.o:		def_elm.h $(INCLDIR)/s_elm.h
file_util.o:	def_elm.h $(INCLDIR)/s_elm.h
fileio.o:	def_elm.h $(INCLDIR)/s_elm.h
forms.o:	def_elm.h $(INCLDIR)/s_elm.h
hdrconfg.o:	def_elm.h $(INCLDIR)/s_elm.h 
help.o:		def_elm.h $(INCLDIR)/s_elm.h
in_utils.o:	def_elm.h $(INCLDIR)/s_elm.h
init.o:		def_elm.h $(INCLDIR)/patchlevel.h $(INCLDIR)/s_elm.h  $(INCLDIR)/s_elm.h 
leavembox.o:	def_elm.h $(INCLDIR)/s_elm.h $(INCLDIR)/me.h
limit.o:	def_elm.h $(INCLDIR)/s_elm.h $(INCLDIR)/s_aliases.h
lock.o:		def_elm.h $(INCLDIR)/s_elm.h
mailbox.o:	def_elm.h $(INCLDIR)/s_elm.h
mailmsg1.o:	def_elm.h $(INCLDIR)/s_elm.h
mailmsg2.o:	def_elm.h $(INCLDIR)/s_elm.h $(INCLDIR)/menu2.h $(INCLDIR)/s_me.h
menu2.o:	def_elm.h $(INCLDIR)/menu2.h
menu.o:		def_elm.h $(INCLDIR)/menu.h
metapager.o:	def_elm.h $(INCLDIR)/s_elm.h
mime.o:		def_elm.h $(INCLDIR)/s_elm.h
mime_encode.o:  def_elm.h
movement.o:	def_elm.h $(INCLDIR)/s_me.h
mkhdrs.o:	def_elm.h $(INCLDIR)/s_elm.h 
newmbox.o:	def_elm.h $(INCLDIR)/s_elm.h
openmailbox.o:	def_elm.h $(INCLDIR)/s_me.h
options.o:	def_elm.h $(INCLDIR)/s_elm.h $(INCLDIR)/save_opts.h $(INCLDIR)/rc_imp.h
out_utils.o:	def_elm.h
pattern.o:	def_elm.h $(INCLDIR)/s_elm.h
partial.o:	def_elm.h $(INCLDIR)/s_elm.h
pgp.o:		def_elm.h
quit.o:		def_elm.h $(INCLDIR)/s_elm.h
read_rc.o:	def_elm.h $(INCLDIR)/s_elm.h $(INCLDIR)/save_opts.h $(INCLDIR)/rc_imp.h
remail.o:	def_elm.h $(INCLDIR)/s_elm.h
reply.o:	def_elm.h $(INCLDIR)/s_elm.h 
save_opts.o:	def_elm.h $(INCLDIR)/save_opts.h $(INCLDIR)/s_elmrc.h $(INCLDIR)/rc_imp.h
savecopy.o:	def_elm.h $(INCLDIR)/s_elm.h
screen.o:	def_elm.h $(INCLDIR)/s_elm.h $(INCLDIR)/s_aliases.h 
showmsg.o:	def_elm.h $(INCLDIR)/s_elm.h $(INCLDIR)/s_me.h
showmsg_c.o:	def_elm.h $(INCLDIR)/s_elm.h
showmsg_1.o:	def_elm.h 
signals.o:	def_elm.h $(INCLDIR)/s_elm.h
sort.o:		def_elm.h $(INCLDIR)/s_elm.h
string2.o:	def_elm.h
strings.o:	def_elm.h $(INCLDIR)/s_elm.h
syscall.o:	def_elm.h $(INCLDIR)/s_elm.h $(INCLDIR)/s_me.h
utils.o:	def_elm.h $(INCLDIR)/s_elm.h
thread.o:	def_elm.h $(INCLDIR)/s_me.h
view_folder.o:	def_elm.h $(INCLDIR)/s_elm.h
view_one_thread.o:	def_elm.h $(INCLDIR)/s_me.h

#	Dependencies and rules for compiling C programs
$(BIN)/elm:	$& $(ELM_OBJ) $(LIBX) \
 menu_common/libmcommon.a messages/libmessages.a screen/libscreen.a \
 aliases/libaliases.a url/liburl.a block/libblock.a \
 list/liblist.a
		$(CC) $(LFLAGS) -o $@ $(ELM_OBJ) \
 menu_common/libmcommon.a messages/libmessages.a \
 screen/libscreen.a aliases/libaliases.a  \
 list/liblist.a url/liburl.a block/libblock.a  \
 $(LIBX) $(LIBS) $(LIB2)

#	Dependencies and rules for installing C programs


!NO!SUBS!

for i in $libx
do
	y="`echo $i|$sed 's%^../%%'`"
cat >>Makefile <<!SUBS!
$i:
	cd ..; \$(MAKE) \$(MJ) \$(MFLAGS) $y
!SUBS!
done

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

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

$(BIN)/elm-shared: $& $(ELM_OBJ)  $(LIBXS) \
 messages/libmessages.a screen/libscreen.a \
 aliases/libaliases.a menu_common/libmcommon.a url/liburl.a \
 block/libblock.a list/liblist.a
		$(CC) $(LFLAGS) -o $@ $(RPATH) $(ELM_OBJ) \
 screen/libscreen.a aliases/libaliases.a \
 menu_common/libmcommon.a messages/libmessages.a \
 list/liblist.a url/liburl.a \
 block/libblock.a  $(LIBXS) $(LIBS) $(LIB2)

$(DEST)/elm:	$(BIN)/elm-shared
		$(REG) copy -g $(MAILGRP) -m $(MAILERMODE) $? $@

!NO!SUBS!

	for i in $libxs
	do
		y="`echo $i|$sed 's%^../%%'`"
cat >>Makefile <<!SUBS!
$i:
	cd ..; \$(MAKE) \$(MJ) \$(MFLAGS) $y
!SUBS!
	done


else

cat >>Makefile <<'!NO!SUBS!'
$(DEST)/elm:	$(BIN)/elm
		$(REG) copy -g $(MAILGRP) -m $(MAILERMODE) $? $@
!NO!SUBS!

fi


syntax highlighted by Code2HTML, v. 0.9.1