#
# Makefile for WASH/CGI (Haskell98)
# copyright 2001/2002 by Peter Thiemann
#

PACKAGE=WASH-CGI
VERSION=1.4.37

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

HC_SPEC_FLAGS=	-package-name $(PACKAGE) -package text # -fglasgow-exts		# -cpp -package posix -package data
HCLOADFLAGS=
HCINCLUDES=	-i$(PATH_TO_UTILITY):$(PATH_TO_WASHMAIL):$(PATH_TO_WASHHTML)
#OPT=		-fvia-C -O2-for-C 
#OPT=		-O
OPT=

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

HS_FILES=	$(LIBSOURCES) GuaranteedCGI.hs

TMPDIR=/tmp
FULLNAME=$(PACKAGE)-$(VERSION)
FILES= Makefile README INSTALL LICENSE WASH.pkg WASH-CGI.pkg $(LIBSOURCES)
LIBSOURCES= \
	AbstractSelector.hs \
	CGI.hs \
	CGIConfig.hs \
	CGIGraphics.hs \
	CGIInternals.hs \
	CGIMonad.hs \
	CGIOutput.hs \
	CGITypes.hs \
	CGIXX.hs \
	ContentType.hs \
	Cookie.hs \
	CookieIO.hs \
	Debug.hs \
	EventHandlers.hs \
	Fields.hs \
	Frames.hs \
	GuaranteedCGI.hs \
	HTMLMail.hs \
	HTMLWrapper.hs \
	Images.hs \
	PPM.hs \
	Persistent2.hs \
	RawCGITypes.hs \
	RawCGI.hs \
	RawCGIInternal.hs \
	StateItem.hs \
	Style.hs \
	Submit98.hs \
	SubmitXX.hs \
	Types.hs \

DOCDIR= doc

all: libWASHCGI.a

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

install-everything: install install-example-sources

install-distribution: $(FULLNAME).tgz WASH-CGI-Examples-$(VERSION).tgz
	$(INSTALL) -c -m 644 $(FULLNAME).tgz WASH-CGI-Examples-$(VERSION).tgz $(WWWDIR)

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

install: install-dumb-package
ifeq ($(ENABLE_REG_PACKAGE),yes)
	$(GENPKG) WASH --package_deps WASH-CGI --extra_ghc_opts -F -pgmF $(bindir)/wash2hs | $(GHCPKG) $(GHCPKGFLAGS) --update-package --auto-ghci-libs
endif

$(FULLNAME).tgz: $(FILES) $(EXFILES) documentation
	$(RM) -rf $(TMPDIR)/$(FULLNAME)
	$(MKDIR) -p $(TMPDIR)/$(FULLNAME)/$(EXDIR) $(TMPDIR)/$(FULLNAME)/$(DOCDIR)
	$(CP) $(FILES) $(TMPDIR)/$(FULLNAME)
	$(CP) $(addprefix $(EXDIR),$(EXSOURCES)) $(TMPDIR)/$(FULLNAME)/$(EXDIR)
	$(CP) $(DOCDIR)/*.html $(DOCDIR)/*.gif $(DOCDIR)/*.css $(TMPDIR)/$(FULLNAME)/$(DOCDIR)
	$(TAR) cvhfCz $@ $(TMPDIR) $(FULLNAME)

documentation::
	$(HADDOCK) -o $(DOCDIR) -h $(LIBSOURCES)

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

veryclean:: clean

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

# DO NOT DELETE: Beginning of Haskell dependencies
AbstractSelector.o : AbstractSelector.hs
AbstractSelector.o : ../Utility/JavaScript.hi
AbstractSelector.o : ../Utility/URLCoding.hi
AbstractSelector.o : ./RawCGIInternal.hi
AbstractSelector.o : ./HTMLWrapper.hi
AbstractSelector.o : ./CGIMonad.hi
AbstractSelector.o : ./CGIInternals.hi
CGI.o : CGI.hs
CGI.o : ./Frames.hi
CGI.o : ./HTMLWrapper.hi
CGI.o : ./Style.hi
CGI.o : ./Fields.hi
CGI.o : ./CGITypes.hi
CGI.o : ./CGIOutput.hi
CGI.o : ./Submit98.hi
CGI.o : ./CGIInternals.hi
CGI.o : ./CGIMonad.hi
CGI.o : AbstractSelector.hi
CGIConfig.o : CGIConfig.hs
CGIGraphics.o : CGIGraphics.hs
CGIGraphics.o : CGIConfig.hi
CGIGraphics.o : ../Utility/Unique.hi
CGIGraphics.o : ../WASH/HTMLMonad.hi
CGIGraphics.o : ./PPM.hi
CGIGraphics.o : ./CGIMonad.hi
CGIGraphics.o : ./CGIInternals.hi
CGIGraphics.o : ./CGITypes.hi
CGIGraphics.o : ./RawCGIInternal.hi
CGIGraphics.o : ../Utility/Hex.hi
CGIInternals.o : CGIInternals.hs
CGIInternals.o : CGIConfig.hi
CGIInternals.o : ../Utility/URLCoding.hi
CGIInternals.o : ./RawCGIInternal.hi
CGIInternals.o : ../Utility/RFC2397.hi
CGIInternals.o : ../Utility/RFC2279.hi
CGIInternals.o : ../Utility/JavaScript.hi
CGIInternals.o : ./Images.hi
CGIInternals.o : ./HTMLWrapper.hi
CGIInternals.o : ./Frames.hi
CGIInternals.o : ./Fields.hi
CGIInternals.o : ./EventHandlers.hi
CGIInternals.o : ./CGITypes.hi
CGIInternals.o : ./CGIOutput.hi
CGIInternals.o : ./CGIMonad.hi
CGIInternals.o : ./CookieIO.hi
CGIInternals.o : ../Utility/Base64.hi
CGIInternals.o : ../Utility/Auxiliary.hi
CGIMonad.o : CGIMonad.hs
CGIMonad.o : ../Utility/SHA1.hi
CGIMonad.o : ./RawCGIInternal.hi
CGIMonad.o : ../WASH/HTMLMonad.hi
CGIMonad.o : ./CGITypes.hi
CGIOutput.o : CGIOutput.hs
CGIOutput.o : ../WASH/HTMLTemplates.hi
CGIOutput.o : ./HTMLWrapper.hi
CGIOutput.o : ./CGITypes.hi
CGIOutput.o : CGIConfig.hi
CGIOutput.o : ../Utility/Shell.hi
CGIOutput.o : ../Utility/RFC2279.hi
CGIOutput.o : ./Debug.hi
CGIOutput.o : ../Utility/BulkIO.hi
CGIOutput.o : ../Utility/Auxiliary.hi
CGITypes.o : CGITypes.hs
CGITypes.o : ./HTMLWrapper.hi
CGIXX.o : CGIXX.hs
CGIXX.o : ./Frames.hi
CGIXX.o : ./HTMLWrapper.hi
CGIXX.o : ./Style.hi
CGIXX.o : ./Fields.hi
CGIXX.o : CGITypes.hi
CGIXX.o : CGIOutput.hi
CGIXX.o : ./SubmitXX.hi
CGIXX.o : CGIInternals.hi
CGIXX.o : CGIMonad.hi
ContentType.o : ContentType.hs
Cookie.o : Cookie.hs
Cookie.o : ./StateItem.hi
Cookie.o : ./Types.hi
Cookie.o : ../WASH/HTMLMonad.hi
Cookie.o : CGIMonad.hi
Cookie.o : CGIInternals.hi
CookieIO.o : CookieIO.hs
CookieIO.o : ../Utility/URLCoding.hi
CookieIO.o : ./RawCGITypes.hi
CookieIO.o : ./Debug.hi
CookieIO.o : CGIMonad.hi
Debug.o : Debug.hs
Debug.o : ../Utility/IntToString.hi
Debug.o : ../Utility/ISO8601.hi
Debug.o : ../Utility/Shell.hi
Debug.o : ./RawCGITypes.hi
Debug.o : ../Utility/Auxiliary.hi
EventHandlers.o : EventHandlers.hs
EventHandlers.o : ./HTMLWrapper.hi
Fields.o : Fields.hs
Fields.o : CGITypes.hi
Fields.o : ../Utility/SimpleParser.hi
Fields.o : ../Utility/ISO8601.hi
Frames.o : Frames.hs
Frames.o : ../Utility/JavaScript.hi
Frames.o : ../Utility/URLCoding.hi
Frames.o : ./RawCGIInternal.hi
Frames.o : ./Images.hi
Frames.o : Fields.hi
Frames.o : EventHandlers.hi
Frames.o : CGITypes.hi
Frames.o : CGIOutput.hi
Frames.o : CGIMonad.hi
Frames.o : CGIConfig.hi
Frames.o : CookieIO.hi
Frames.o : ./HTMLWrapper.hi
Frames.o : ../Utility/Auxiliary.hi
GuaranteedCGI.o : GuaranteedCGI.hs
GuaranteedCGI.o : CGI.hi
GuaranteedCGI.o : ../WASH/HTMLMonad98.hi
GuaranteedCGI.o : CGIInternals.hi
GuaranteedCGI.o : ./Style.hi
GuaranteedCGI.o : Fields.hi
GuaranteedCGI.o : CGITypes.hi
HTMLMail.o : HTMLMail.hs
HTMLMail.o : ../Mail/MIME.hi
HTMLMail.o : ../WASH/HTMLMonad.hi
HTMLWrapper.o : HTMLWrapper.hs
HTMLWrapper.o : ../WASH/HTMLMonad.hi
Images.o : Images.hs
Images.o : ../Utility/JavaScript.hi
Images.o : ../Utility/RFC2397.hi
Images.o : CGITypes.hi
PPM.o : PPM.hs
Persistent2.o : Persistent2.hs
Persistent2.o : ../Utility/Base32.hi
Persistent2.o : ../Utility/SHA1.hi
Persistent2.o : ./StateItem.hi
Persistent2.o : ../Utility/Locking.hi
Persistent2.o : ./Types.hi
Persistent2.o : CGIInternals.hi
Persistent2.o : CGI.hi
Persistent2.o : ../Utility/Auxiliary.hi
Persistent2.o : CGIConfig.hi
RawCGITypes.o : RawCGITypes.hs
RawCGITypes.o : CGITypes.hi
RawCGI.o : RawCGI.hs
RawCGI.o : ./RawCGIInternal.hi
RawCGI.o : CGITypes.hi
RawCGIInternal.o : RawCGIInternal.hs
RawCGIInternal.o : Debug.hi
RawCGIInternal.o : ../Utility/Hex.hi
RawCGIInternal.o : ../Utility/BulkIO.hi
RawCGIInternal.o : RawCGITypes.hi
RawCGIInternal.o : CGITypes.hi
RawCGIInternal.o : CGIConfig.hi
RawCGIInternal.o : ../Utility/RFC2279.hi
RawCGIInternal.o : ../Utility/URLCoding.hi
RawCGIInternal.o : ../Utility/Unique.hi
RawCGIInternal.o : ../Utility/Auxiliary.hi
StateItem.o : StateItem.hs
Style.o : Style.hs
Style.o : ../WASH/HTMLMonad.hi
Submit98.o : Submit98.hs
Submit98.o : HTMLWrapper.hi
Submit98.o : EventHandlers.hi
Submit98.o : CGIMonad.hi
Submit98.o : CGIInternals.hi
Submit98.o : AbstractSelector.hi
SubmitXX.o : SubmitXX.hs
SubmitXX.o : EventHandlers.hi
SubmitXX.o : CGIMonad.hi
SubmitXX.o : CGIInternals.hi
Types.o : Types.hs
GuaranteedCGI.o : GuaranteedCGI.hs
GuaranteedCGI.o : CGI.hi
GuaranteedCGI.o : ../WASH/HTMLMonad98.hi
GuaranteedCGI.o : CGIInternals.hi
GuaranteedCGI.o : Style.hi
GuaranteedCGI.o : Fields.hi
GuaranteedCGI.o : CGITypes.hi
# DO NOT DELETE: End of Haskell dependencies
