##############################################################################
#    Instructions to Make, for compilation of MH modules
#
#	@(MHWARNING)
# @(#)sbr,v 1.2 1993/02/08 16:28:36 jtc Exp
##############################################################################

OPTIONS	=	@(MHOPTIONS)

CC	=	@(MHCOMPILER)
@BEGIN: OPTIM
CFLAGS	=	  $(OPTIONS)
@END: OPTIM
@BEGIN: DEBUG
CFLAGS	=	     $(OPTIONS)
@END: DEBUG
LINT	=	lint
LFLAGS	=	-bhu $(OPTIONS)
LLIBS	=


@BEGIN: STDLIB
LIBS	=	libmh.a
@END: STDLIB
@BEGIN: SHAREDLIB
@BEGIN: SUN4SHLIB
LIBSA	=	libmh.sa
@END: SUN4SHLIB
LIBS     =	shared libmh.a libmh.so $(LIBSA)
SLIBVER	=	@(SLIBVER)
SLIBDIR =	@(SLIBDIR)
SLFLAGS=	@(SLFLAGS)
@END: SHAREDLIB

PGMPROT	=	0755

CFILES	=	add.c adios.c admonish.c addrsbr.c advertise.c advise.c \
		ambigsw.c atooi.c brkstring.c closefds.c concat.c copy.c \
		copyip.c cpydata.c cpydgst.c discard.c done.c fdcompare.c \
		gans.c getans.c getanswer.c getcpy.c help.c fmtcompile.c \
		formataddr.c formatsbr.c m_atoi.c m_backup.c m_convert.c \
		m_delete.c m_draft.c m_find.c m_fmsg.c m_foil.c m_getdefs.c \
		m_getfld.c m_getfolder.c m_gmprot.c m_gmsg.c m_maildir.c \
		m_name.c m_readefs.c m_remsg.c m_replace.c m_scratch.c \
		m_seq.c m_seqbits.c m_seqflag.c m_seqnew.c m_setcur.c \
		m_setseq.c m_setvis.c m_sync.c m_tmpfil.c m_update.c \
		makedir.c path.c peekc.c pidwait.c pidstatus.c \
		printsw.c push.c putenv.c pwd.c refile.c remdir.c r1bindex.c \
		showfile.c smatch.c sprintb.c ssequal.c strindex.c trimcpy.c \
		uleq.c uprf.c vfgets.c formatdef.c m_msgdef.c ruserpass.c


OFILES	=	add.o adios.o admonish.o addrsbr.o advertise.o advise.o \
		ambigsw.o atooi.o brkstring.o closefds.o concat.o copy.o \
		copyip.o cpydata.o cpydgst.o discard.o done.o fdcompare.o \
		gans.o getans.o getanswer.o getcpy.o help.o fmtcompile.o \
		formataddr.o formatsbr.o m_atoi.o m_backup.o m_convert.o \
		m_delete.o m_draft.o m_find.o m_fmsg.o m_foil.o m_getdefs.o \
		m_getfld.o m_getfolder.o m_gmprot.o m_gmsg.o m_maildir.o \
		m_name.o m_readefs.o m_remsg.o m_replace.o m_scratch.o \
		m_seq.o m_seqbits.o m_seqflag.o m_seqnew.o m_setcur.o \
		m_setseq.o m_setvis.o m_sync.o m_tmpfil.o m_update.o \
		makedir.o path.o peekc.o pidwait.o pidstatus.o \
		printsw.o push.o putenv.o pwd.o refile.o remdir.o r1bindex.o \
		showfile.o smatch.o sprintb.o ssequal.o strindex.o trimcpy.o \
		uleq.o uprf.o vfgets.o formatdef.o m_msgdef.o ruserpass.o

@BEGIN: SHAREDLIB
ODEFS	=	formatdef.o m_msgdef.o
@END: SHAREDLIB

@BEGIN: OPTIM
##############################################################################
#	Generation Rules
##############################################################################

.c.o:
@BEGIN: SHAREDLIB
		-rm -f $@ shared/$@
		$(CC) $(CFLAGS) -c $(SLFLAGS) $*.c
		mv $@ shared/$@
		-rm -f $@
@END: SHAREDLIB
		$(CC) $(CFLAGS) -c $*.c
@BEGIN: NEWLOAD
		-ld -x -r $@
		mv a.out $@
@END: NEWLOAD
@BEGIN: OLDLOAD
		cc -s -o $@
@END: OLDLOAD

@END: OPTIM
##############################################################################
#	Generate MH subroutine library
##############################################################################

all:		$(LIBS)

libmh.a: 	$(OFILES)
		-mv $@ z$@
@BEGIN: RANLIB
		ar r $@ $(OFILES); ranlib $@
@END: RANLIB
@BEGIN: LORDER
		ar r $@ `lorder $(OFILES) | tsort`
@END: LORDER
		-@ls -l $@
		-@echo "MH library built normally"

@BEGIN: SHAREDLIB
libmh.so:	$(OFILES)
		-mv -f $@ z$@
@BEGIN: SUN4SHLIB
		(cd shared; ld -o ../$@ -assert pure-text $(OFILES))
@END: SUN4SHLIB
@BEGIN: SYS5SHLIB
		(cd shared; ld -G -o ../$@ -h $@.$(SLIBVER) $(OFILES))
@END: SYS5SHLIB
		-@rm -f $@.$(SLIBVER)
		ln $@ $@.$(SLIBVER)
		-@ls -l $@*
		-@echo "MH shared library built normally"

@BEGIN: SUN4SHLIB
libmh.sa:	$(ODEFS)
		-mv $@ z$@
@BEGIN: RANLIB
		ar r $@ $(ODEFS); ranlib $@
@END: RANLIB
@BEGIN: LORDER
		ar r $@ `lorder $(ODEFS) | tsort`
@END: LORDER
		-@rm -f $@.$(SLIBVER)
		ln $@ $@.$(SLIBVER)
		-@ls -l $@*
		-@echo "MH data interface description built normally"
@END: SUN4SHLIB

shared:;	@if [ -d shared ]; then exit 0; else set -x; mkdir shared; fi
@END: SHAREDLIB

##############################################################################
#	Miscellaneous tasks
##############################################################################

@BEGIN: SHAREDLIB
inst-lib:	libmh.so $(LIBSA)
		-rm -f $(SLIBDIR)/libmh.so.$(SLIBVER)
		cp libmh.so.$(SLIBVER) $(SLIBDIR)/libmh.so.$(SLIBVER)
		-@chmod $(PGMPROT) $(SLIBDIR)/libmh.so.$(SLIBVER)
		-@ls -l $(SLIBDIR)/libmh.so.*
		-@echo "Shared library installed normally"
		-@echo ""
@BEGIN: SUN4SHLIB
		-rm -f $(SLIBDIR)/libmh.sa.$(SLIBVER)
		cp libmh.sa.$(SLIBVER) $(SLIBDIR)/libmh.sa.$(SLIBVER)
		-@chmod $(PGMPROT) $(SLIBDIR)/libmh.sa.$(SLIBVER)
@BEGIN: RANLIB
		cd $(SLIBDIR); ranlib libmh.sa.$(SLIBVER)
@END: RANLIB
		-@ls -l $(SLIBDIR)/libmh.sa.*
		-@echo "Data interface description installed normally"
		-@echo ""
@END: SUN4SHLIB
@END: SHAREDLIB
@BEGIN: STDLIB
inst-lib:;
@END: STDLIB

lint:;		$(LINT) $(LFLAGS) $(CFILES) $(LLIBS)

unconfig:	distribution
		-rm -f Makefile
		-rm -rf shared

distribution:   clean
		-rm -f version

clean:		unclean
		-rm -f *.o libmh.*
@BEGIN: SHAREDLIB
		-rm -f shared/*.o
@END: SHAREDLIB

unclean:;	-rm -f zlibmh.* _* :* core eddep makedep

install:

##############################################################################
#  MODIFICATIONS -- Adding a new routine (e.g., pickle)
##############################################################################

#
#    Add any new .c files to CFILES
#    Add any new .o files to OFILES
#
#
#    Under the "Dependencies" section, add a line for pickle.o
#	pickle.o:	../h/mh.h
#
#    If other includes are read, modify this rule to reflect this
#    Of course, if pickle.c doesn't include ../h/mh.h (or any
#    other includes), you can leave this line out altogether


##############################################################################
#	Dependencies
##############################################################################

MODULES	=	$(CFILES)

depend:;	makedepend $(CFLAGS) $(CFILES)
