packages feed

hxt-filter-8.2.0: Makefile

include Version.mk

HXT_HOME	= .

DIST		= $(DIST_NAME)
DIST_TAR	= $(DIST_NAME).tar.gz
DIST_FILES	= Makefile Version.mk README LICENCE Setup.lhs $(SOFTWARE).cabal

SETUP		= Setup.lhs

VERSIONTAG	= $(DIST_NAME)
PUBDATE		:= $(shell date +%Y-%m-%d)

EDIT_VERSION	= sed 's/%DISTFILE%/$(DIST_NAME)/g' \
		| sed 's/%VERSION%/$(VERSION)/g' \
		| sed 's/%PUBDATE%/$(PUBDATE)/g'

HSCOLOUR	= HsColour
HSCOLOUR_CSS	= doc/hscolour.css

# --------------------------------------------------

all		:
		$(MAKE) -C src all
		$(MAKE)        $(SOFTWARE).cabal

allexamples	:
		$(MAKE) -C examples all

test		:
		$(MAKE) -C examples test

# ------------------------------------------------------------

cabal		:
		$(MAKE) cabal_configure cabal_build cabal_doc cabal_install

cabal_configure :
		runhaskell $(SETUP) configure --global

cabal_doc	:
		$(HSCOLOUR) -print-css > $(HSCOLOUR)
		runhaskell $(SETUP) haddock --hyperlink-source --hscolour-css=$(HSCOLOUR)
		rm -f $(HSCOLOUR)

cabal_build	:
		runhaskell $(SETUP) build

cabal_install	:
		sudo runhaskell $(SETUP) install --global

# ------------------------------------------------------------

$(SOFTWARE).cabal	: src/$(SOFTWARE)-package.hs src/Makefile Makefile
		$(MAKE) -C src ../$(SOFTWARE).cabal

DOC_HXT		= $(DIST)/doc/$(SOFTWARE)

doc		: $(SOFTWARE).cabal
		$(MAKE) cabal_configure cabal_doc
		[ -d $(DOC_HXT) ] || mkdir -p $(DOC_HXT)
		( cd dist/doc/html/$(SOFTWARE) ; tar cf - . ) | ( cd $(DOC_HXT) ; tar xf - )

dist		: all doc
		[ -d $(DIST) ] || mkdir -p $(DIST)
		$(MAKE) -C src      dist
		$(MAKE) -C examples dist
		cp $(DIST_FILES) $(DIST)

tarball		: dist
		tar -zcvf $(DIST_TAR) $(DIST)

# ------------------------------------------------------------

clean		:
		$(MAKE) -C src      clean
		$(MAKE) -C examples clean
		rm -rf $(DIST) $(DIST_TAR) $(SOFTWARE).cabal .setup-config .installed-pkg-config dist

# ------------------------------------------------------------

tag		:
		darcs tag $(VERSIONTAG) .

install		:
		$(MAKE) -C src install

uninstall		:
		$(MAKE) -C src uninstall

DISTDATE	= $(shell date -r $(DIST_TAR) +%Y-%m-%d.%R)

distcopy	: $(DIST_TAR)
		scp $(DIST_TAR) hxt@darcs.fh-wedel.de:/home/hxt/$(SOFTWARE)/$(SOFTWARE)-head-$(DISTDATE).tar.gz

# --------------------------------------------------

.PHONY		: all doc test dist clean tag install uninstall tarball webpage cleanwebpage

# --------------------------------------------------

# Create webpage directory for distribution

WEBHOME		= ../../../fh/public_html/HXmlToolbox

webpage		: tarball
		[ -d $(WEBHOME) ] || exit 1
		[ -d $(WEBHOME)/hdoc-filter ] || mkdir -p $(WEBHOME)/hdoc-filter
		cp -r dist/doc/html/$(SOFTWARE)/* $(WEBHOME)/hdoc-filter
		cp $(DIST_TAR) $(WEBHOME)

# --------------------------------------------------

# make a clean installation from distribution tar

PROD_DIR	= ~/tmp
INSTALL		= echo now run: "(" cd $(PROD_DIR)/$(DIST) ";" 
INSTEND		= ")"

distbuild	: tarball
		( [ -f $(DIST_TAR) ] || exit 1 \
		; cp -f $(DIST_TAR) $(PROD_DIR) || exit 1 \
		; cd $(PROD_DIR) || exit 1 \
		; rm -rf $(DIST) \
		; tar xvzf $(DIST_TAR) \
		; cd $(DIST) || exit 1 \
		; runhaskell $(SETUP) configure || exit 1 \
		; runhaskell $(SETUP) build || exit 1 \
		; $(INSTALL) sudo runhaskell $(SETUP) install --global $(INSTEND) \
		)

distinstall	:
		$(MAKE) distbuild INSTALL="" INSTEND=""

# --------------------------------------------------
#

# end Makefile