#
# Makefile for WASH/Mail (Haskell98)
# copyright 2001-2004 by Peter Thiemann
#

PACKAGE=WASHMail
VERSION=0.3.8

include $(TOP)/mk/config.mk
include $(TOP)/mk/common.mk

FILES= Makefile LICENSE WASHMail.pkg $(LIBSOURCES)
LIBSOURCES=\
	ContentDisposition.hs \
	Email.hs \
	EmailConfig.hs \
	HeaderField.hs \
	MIME.hs \
	MailParser.hs \
	Message.hs \
	RFC2822.hs \

FULLNAME=$(PACKAGE)-$(VERSION)
BINDISTNAME=$(PACKAGE)-bin-$(VERSION).tgz
DISTNAME=$(FULLNAME).tgz
WWWDIR=$(HOME)/public/www/haskell/WASH
TMPDIR=/tmp

PATH_TO_UTILITY=../Utility

######################################################################
# goals

all: libWASHMail.a

libWASHMail.a: libWASHMail.a($(LIBSOURCES:.hs=.o))
	$(RANLIB) $@

dist: documentation
	$(RM) -rf $(TMPDIR)/$(FULLNAME)
	$(MKDIR) -p $(TMPDIR)/$(FULLNAME)/$(DOCSUBDIR)
	$(CP) $(FILES) $(TMPDIR)/$(FULLNAME)
	$(CP) -rp $(DOCSUBDIR) $(TMPDIR)/$(FULLNAME)
	$(TAR) cfCvz $(DISTNAME) $(TMPDIR) $(FULLNAME)

install-distribution: dist
	$(INSTALL) $(DISTNAME) $(WWWDIR)

install: libWASHMail.a
	$(INSTALL) -d $(PACKAGELIBDIR)
	$(INSTALL) -d $(PACKAGEIMPORTDIR)
	$(INSTALL) -c -m 644 $(LIBSOURCES:.hs=.hi) $(PACKAGEIMPORTDIR)
	$(INSTALL) -c -m 644 libWASHMail.a $(PACKAGELIBDIR)
	$(RANLIB) $(PACKAGELIBDIR)/libWASHMail.a
ifeq ($(ENABLE_REG_PACKAGE),yes)
	$(GENPKG) $(PACKAGE) --import_dirs $(PACKAGEIMPORTDIR) --library_dirs $(PACKAGELIBDIR) --hs_libraries $(PACKAGE) --package_deps text Utility | $(GHCPKG) $(GHCPKGFLAGS) --update-package --auto-ghci-libs
endif

######################################################################
# generic stuff

HC_SPEC_FLAGS=	-package-name $(PACKAGE) -package text # -fglasgow-exts		# -cpp -package posix -package data
HCINCLUDES=	-i$(PATH_TO_UTILITY)
HCLOADFLAGS=

#OPT=		-fvia-C -O2-for-C 
#OPT=		-O
OPT=

HCFLAGS=	$(OPT) $(HC_SPEC_FLAGS) $(HCINCLUDES) $(HCEXTRAFLAGS)

HS_FILES=	$(LIBSOURCES)

DOCSUBDIR= doc


install: all

WASH-CGI-$(VERSION).tgz: $(FILES) $(EXFILES) documentation
	$(RM) -rf WASH-CGI-$(VERSION)
	$(MKDIR) -p WASH-CGI-$(VERSION)/$(EXDIR) WASH-CGI-$(VERSION)/$(DOCDIR)
	$(INSTALL) $(FILES) WASH-CGI-$(VERSION)
	cd $(EXDIR); $(INSTALL) $(EXSOURCES) ../WASH-CGI-$(VERSION)/$(EXDIR)
	cd $(DOCDIR); $(INSTALL) *.html *.gif *.css ../WASH-CGI-$(VERSION)/$(DOCDIR)
	$(TAR) cvhfz $@ WASH-CGI-$(VERSION)

documentation::
	$(MKDIR) -p $(DOCSUBDIR)
	$(HADDOCK) -o $(DOCSUBDIR) -h $(LIBSOURCES)

clean:
	$(RM) -f *.a *.o *.hi

veryclean:: clean

depend::
	$(HC) -M -optdep-exclude-directory=$(PATH_TO_UTILITY) $(HCFLAGS) $(HS_FILES)

# DO NOT DELETE: Beginning of Haskell dependencies
ContentDisposition.o : ContentDisposition.hs
ContentDisposition.o : ./RFC2822.hi
Email.o : Email.hs
Email.o : ./MIME.hi
Email.o : ./HeaderField.hi
Email.o : ./EmailConfig.hi
Email.o : ../Utility/Unique.hi
Email.o : ../Utility/Auxiliary.hi
EmailConfig.o : EmailConfig.hs
HeaderField.o : HeaderField.hs
HeaderField.o : ../Utility/RFC2047.hi
MIME.o : MIME.hs
MIME.o : ../Utility/RFC2279.hi
MIME.o : HeaderField.hi
MIME.o : ../Utility/QuotedPrintable.hi
MIME.o : ContentDisposition.hi
MIME.o : ../Utility/Base64.hi
MailParser.o : MailParser.hs
MailParser.o : HeaderField.hi
MailParser.o : ./Message.hi
MailParser.o : ./RFC2822.hi
MailParser.o : ../Utility/RFC2047.hi
MailParser.o : ../Utility/QuotedPrintable.hi
MailParser.o : ../Utility/Base64.hi
Message.o : Message.hs
Message.o : HeaderField.hi
RFC2822.o : RFC2822.hs
# DO NOT DELETE: End of Haskell dependencies
