PREFIX = /usr/local/lib/ghc-6.2.1

# where to install the libHSCHD.a library
LIBDIR = $(PREFIX)

# where to install the CHD interface files
IMPORTS = $(PREFIX)/hslibs-imports

GHC = /usr/local/bin/ghc

GHC-PKG = /usr/local/bin/ghc-pkg

GHC_OPTS = --make -package TclHaskell -package-name CHD

RM = rm

OBJS = $(SRC:.hs=.o) CHD/Control/Concurrent/MVar.o \
       CHD/Control/Concurrent/QSem.o CHD/Control/Concurrent/QSemN.o \
       CHD/Control/Concurrent/SampleVar.o CHD/Control/Concurrent/Chan.o \

HIS = `find . -name "*.hi"`
OS = `find . -name "*o"`

SRC = CHD/Control/Concurrent.hs


#######################################################################
#
# make targets
#
#######################################################################

all : 	libHSCHD.a HSCHD.o

install : libHSCHD.a HSCHD.o
	if test ! -d $(LIBDIR) ; then mkdir -p $(LIBDIR) ; fi
	cp -p libHSCHD.a $(LIBDIR)/
	cp -p HSCHD.o $(LIBDIR)/
	if test ! -d $(IMPORTS) ; then mkdir -p $(IMPORTS) ; fi
	cp -p --parents $(HIS) $(IMPORTS)/

uninstall :
	-$(RM) $(LIBDIR)/libHSCHD.a
	-$(RM) -r $(IMPORTS)/CHD/

pkg : 
	./makeconf.sh $(LIBDIR) $(IMPORTS) CHD
	$(GHC-PKG) -a < CHD.conf

unpkg:
	$(GHC-PKG) -r CHD

libHSCHD.a:
	$(GHC) $(GHC_OPTS) $(SRC)
	ar cqs libHSCHD.a $(OBJS)

HSCHD.o: libHSCHD.a
	ld -r --whole-archive -o HSCHD.o libHSCHD.a

clean:
	-$(RM) $(HIS) $(OS) libHSCHD.a CHD.conf