NAME = mailapp-utilities
RC_ARCHS = -arch m68k -arch i386 -arch hppa -arch sparc
CC = cc $(RC_ARCHS)
CFLAGS = -pipe -Wall -g -O2
LDFLAGS = -s
LIBS = -lNeXT_s
prefix = /usr/local
BINDIR = $(prefix)/bin
MANDIR = $(prefix)/man/man1
ELISPDIR = $(prefix)/lib/emacs/site-lisp
LIBDIR = $(prefix)/lib

PACKAGE = /NextAdmin/Installer.app/package
PKGTIFF = /NextApps/Mail.app/empty.tiff
MKDIRS = mkdirs
RM    = /bin/rm

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

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

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

searchmail: searchmail.o MailMessage.o MailBox.o $(UTILOBJS) 
	$(CC) $(LDFLAGS) -o $@ searchmail.o MailMessage.o MailBox.o $(UTILOBJS) $(LIBS) 

nextmail: nextmail.o MailSpeaker.o $(UTILOBJS)
	$(CC) $(LDFLAGS) -o $@ nextmail.o MailSpeaker.o $(UTILOBJS) $(LIBS)

appnmail: appnmail.o MailSpeaker.o $(UTILOBJS)
	$(CC) $(LDFLAGS) -o $@ appnmail.o MailSpeaker.o $(UTILOBJS) $(LIBS)

compactmail: compactmail.o $(UTILOBJS)
	$(CC) $(LDFLAGS) -o $@ compactmail.o $(UTILOBJS) $(LIBS)

listmail: listmail.o $(UTILOBJS)
	$(CC) $(LDFLAGS) -o $@ listmail.o $(UTILOBJS) $(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

spotless: clean
	-$(RM) -f $(BINS)

install: installbin installman installelisp installlib

installbin: $(BINS)
	-$(MKDIRS) $(BINDIR)
	for i in $(BINS) ; do install -c -m 775 $$i $(BINDIR)/$$i; done

installman: $(MANS) 
	-$(MKDIRS) $(MANDIR)
	for i in $(MANS) ; do install -c -m 664 $$i $(MANDIR)/$$i; 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

dist: pkg spotless
	@version=`sed -n '/VERSION[^_]/s/.*"\(.*\)".*/\1/p' version.h`; \
	cd ..; \
	cmd="gnutar -cf - $(NAME) | gzip -9v >$(NAME).$$version.NIHS.bs.tar.gz";\
	echo "$$cmd"; eval "$$cmd"

pkg: $(NAME).pkg

$(NAME).pkg: all $(NAME).info
	$(MAKE) CC='$(CC)' CFLAGS='$(CFLAGS)' LDFLAGS='$(LDFLAGS)' \
		prefix=pkgroot install
	$(PACKAGE) pkgroot $(NAME).info $(PKGTIFF)
	-gzip_package $(NAME).pkg
	-$(RM) -rf pkgroot

$(NAME).info: pkg.info version.h
	@echo "Creating $@ from pkg.info..."; \
	name=`sed -n '/PACKAGE/s/.*"\(.*\)".*/\1/p' version.h`; \
	version=`sed -n '/VERSION[^_]/s/.*"\(.*\)".*/\1/p' version.h`; \
	date=`sed -n '/VERSION_DATE/s/.*"\(.*\)".*/\1/p' version.h`; \
	sed "s/@NAME@/$$name/; \
	     s/@VERSION@/$$version/; \
	     s/@DATE@/$$date/" pkg.info >$@

searchmail.o: searchmail.m MailMessage.h $(UTILHDRS)
nextmail.o: nextmail.m MailSpeaker.h $(UTILHDRS)
appnmail.o: appnmail.m iso2next.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
mailutil.o: mailutil.c mailutil.h
mailtoc.o: mailtoc.c mailtoc.h
optutil.o: optutil.c optutil.h version.h
