#+++
#  title:	Makefile
#  abstract:	Makefile for mailapp-utilities
#  author:	Tom Hageman <tom@basil.icce.rug.nl>
#  created:	1993(?) by Carl Edman.
#  modified:	November 1998
#  copyleft:
#
#	Copyright (C) 1998 Tom R. Hageman, but otherwise perfect freeware.
#
#  description:
#---

RCSid = $Makefile,v 1.29 1999/04/26 15:03:11 tom Exp$

NAME = mailapp-utilities

TARGET = NEXTSTEP
# Other targets: OPENSTEP, RHAPSODY, MACOSX

cc = cc
CC = $(cc) $(RC_ARCHS)
CFLAGS = -pipe -Wall -g -O2 -ObjC
RC_ARCHS = `/usr/lib/arch_tool -archify_list $(TARGET_ARCHS)`

MKDIRS = mkdirs
RM    = /bin/rm

default: all

TAR_EXT    = tar
PKGNAME    = $(NAME)
PKGPRNAME  = `sed -n '/PACKAGE/s/.*\"\(.*\)\".*/\1/p' version.h`
PKGTITLE   = $(PKGPRNAME) for $(TARGET)
PKGVERSION = `sed -n '/VERSION[^_]/s/.*\"\(.*\)\".*/\1/p' version.h`
PKGDATE    = `sed -n '/VERSION_DATE/s/.*\"\(.*\)\".*/\1/p' version.h`
PKGINFO    = pkg.info
PKGTIFF    = pkg.tiff

include Makefile.support

include Make.target-$(TARGET)

INSTALLDIR = /usr/local
prefix = $(INSTALLDIR)
BINDIR = $(prefix)/bin
MANDIR = $(prefix)/man/man1
ELISPDIR = $(prefix)/lib/emacs/site-lisp
LIBDIR = $(prefix)/lib

BINS  = nextmail appnmail compactmail listmail #searchmail
LINKS = mailto
MANS  = nextmail.1 appnmail.1 compactmail.1 listmail.1 mailto.1 #searchmail.1
ELISP = gnus-mailapp.el gnus-mailapp.elc
LIB   = sendmail-addheadsig sendmail-remote uudecode-filter

UTILOBJS = mailtoc.o mailutil.o optutil.o compat.o re.o
UTILHDRS = mailtoc.h mailutil.h optutil.h compat.h re.h

all: $(BINS) $(LINKS) $(MANS) $(ELISP)


searchmail_OBJS = searchmail.o MailMessage.o MailBox.o $(UTILOBJS)

searchmail: $(searchmail_OBJS)
	$(CC) $(LDFLAGS) -o $@ $(searchmail_OBJS) $(LIBS) -lIndexing_s


nextmail_OBJS = nextmail.o $(UTILOBJS) $(COMMOBJS)

nextmail: $(nextmail_OBJS)
	$(CC) $(LDFLAGS) -o $@ $(nextmail_OBJS) $(COMMLIBS) $(LIBS)
mailto:
	ln -s nextmail $@

mailto.1:
	echo ".so man1/nextmail.1" >$@


appnmail_OBJS = appnmail.o iso_convert.o timestamp.o $(UTILOBJS) $(COMMOBJS)

appnmail: $(appnmail_OBJS)
	$(CC) $(LDFLAGS) -o $@ $(appnmail_OBJS) $(COMMLIBS) $(LIBS)


compactmail_OBJS = compactmail.o $(UTILOBJS)

compactmail: $(compactmail_OBJS)
	$(CC) $(LDFLAGS) -o $@ $(compactmail_OBJS) $(LIBS)


listmail_OBJS = listmail.o $(UTILOBJS)

listmail: $(listmail_OBJS)
	$(CC) $(LDFLAGS) -o $@ $(listmail_OBJS) $(LIBS)


gnus-mailapp.elc: gnus-mailapp.el
	echo '(byte-compile-file "gnus-mailapp.el")' >gnus-compile.el
	-emacs -batch -l gnus-compile.el
	-$(RM) -f gnus-compile.el

clean::
	-$(RM) -f *.o *~ %* gnus-compile.el $(NAME).info mailto.1
clean:: extra_clean

distclean:: clean
	-$(RM) -f $(BINS) $(LINKS)


install:: installbin installman installelisp installlib

installbin: $(BINS)
	-$(MKDIRS) $(BINDIR)
	@for i in $(BINS) ; do \
		cmd="install -c -m 775 $$i $(BINDIR)/$$i"; \
		echo "$$cmd"; eval "$$cmd"; \
	done
	@if [ ! -f $(BINDIR)/mailto ]; then \
		cmd="ln -s nextmail $(BINDIR)/mailto"; \
		echo "$$cmd"; eval "$$cmd"; \
	fi

installman: $(MANS) 
	-$(MKDIRS) $(MANDIR)
	@title="$(PKGPRNAME)"; version=$(PKGVERSION); date=$(PKGDATE); \
	for i in $(MANS) ; do \
		sed "s|@TITLE@|$$title|g; \
		     s|@NAME@|$(NAME)|g; \
		     s|@VERSION@|$$version|g; \
		     s|@LANGUAGE@|$(LANGUAGE)|g; \
		     s|@DATE@|$$date|g" $$i >$$i.t; \
		cmd="install -c -m 664 $$i.t $(MANDIR)/$$i"; \
		echo "$$cmd"; eval "$$cmd"; \
		$(RM) -f $$i.t; \
	done

installelisp: $(ELISP)
	-$(MKDIRS) $(ELISPDIR)
	for i in $(ELISP) ; do install -c -m 664 $$i $(ELISPDIR)/$$i; done

installlib: $(LIB)
	-$(MKDIRS) $(LIBDIR)
	for i in $(LIB) ; do install -c -m 775 $$i $(LIBDIR)/$$i; done

after_package:: distclean

archive:: bs_archive


# Dependencies.
searchmail.o: searchmail.m MailMessage.h $(UTILHDRS)
nextmail.o: nextmail.m MailProxy.h $(UTILHDRS)
appnmail.o: appnmail.m iso_convert.h timestamp.h MailProxy.h $(UTILHDRS)
compactmail.o: compactmail.m $(UTILHDRS)
listmail.o: listmail.m $(UTILHDRS)
MailBox.o: MailBox.m MailBox.h $(UTILHDRS)
MailMessage.o: MailMessage.m MailMessage.h $(UTILHDRS)
MailSpeaker.o: MailSpeaker.m MailSpeaker.h
MailProxy.o: MailProxy.m MailProxy.h MailSpeaker.h mailutil.h
MailAppProxy.o: MailAppProxy.m MailProxy.h MailSpeaker.h mailutil.h
MailViewerProxy.o: MailViewerProxy.m MailProxy.h mailutil.h
MailPopOverProxy.o: MailPopOverProxy.m MailProxy.h PDExternalComposition.h
MailMessageDeliveryProxy.o: MailMessageDeliveryProxy.m MailProxy.h mailutil.h
mailutil.o: mailutil.c mailutil.h
mailtoc.o: mailtoc.c mailtoc.h
optutil.o: optutil.c optutil.h version.h
iso_convert.o: iso_convert.c iso_convert.h iso2next.h
compat.o: compat.m compat.h
re.o: re.c re.h compat.h
timestamp.o: timestamp.c timestamp.h
