
.PHONY: all install clean compiler_name

version=1.7
prefix := /usr/local
libdir := $(prefix)/lib
localstatedir := $(prefix)/lib
COMPILER := $(firstword $(shell bash -c "type -p ghc6 ghc hugs"))
COMPILER_NAME := $(notdir $(COMPILER))

GHC_FLAGS := -O2 -Wall -package regex-compat

PROGRAMS=haskell-utils update-haskell-control
SOURCES=$(addsuffix .lhs,$(PROGRAMS))
MANPAGES=haskell-utils.8 update-haskell-control.1

all: $(PROGRAMS) $(MANPAGES)

$(PROGRAMS): %: %.lhs
ifeq "$(COMPILER_NAME)" "hugs"
	(echo "#!/usr/bin/runhugs +l"; cat $<) > $@
	chmod +x $@
else
	$(COMPILER) $(GHC_FLAGS) $< -o $@
endif

$(SOURCES) $(MANPAGES): %: %.in
	sed -e "s@^#line.*@@" \
	    -e "s#@version@#$(version)#g" \
	    -e "s#@libdir@#$(libdir)#g" \
	    -e "s#@localstatedir@#$(localstatedir)#g" \
	 < $< > $@

install: $(PROGRAMS)
	install -d $(prefix)/sbin/
	install -d $(prefix)/bin/
	install haskell-utils $(prefix)/sbin/
	install update-haskell-control $(prefix)/bin/
	install -d $(localstatedir)/haskell-utils/

clean:
	rm -f *.o *.hi $(PROGRAMS) $(MANPAGES) $(SOURCES)

compiler_name:
	@echo $(COMPILER_NAME)

