PACKAGE=DBCONNECT

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

PGLIB=`$(PG_CONFIG) --libdir`

PGINCLUDE=`$(PG_CONFIG) --includedir`

## GHC package stuff

#PACKAGEROOT=/home/proglang/public/teaching/internet-2003
#PACKAGEROOT=/usr/lib/ghc-6.2
PACKAGEROOT=$(HOME)

PACKAGEDIR=$(PACKAGEROOT)/$(PACKAGE)
PACKAGECONFIG=$(PACKAGEROOT)/package.conf

## lib directory on target machine
PGLIB_TARGET=`$(PG_CONFIG) --libdir`

EXTRA_LD_OPTS=	-B dynamic \
		-L $(PGLIB) \
		-L /usr/local/lib \
		-R $(PGLIB_TARGET)

HC_SPEC_FLAGS=  -fglasgow-exts -package-name $(PACKAGE) \
	-package c2hs -package text

OPT=		-ffi 

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

HINCLUDES=

LIBSOURCES=$(HS_FILES) $(CHS_FILES)
HS_FILES= Dbconnect.hs  
HI_FILES= Dbconnect.hi
CHS_FILES= Libpqfe.chs


## targets

all:  libDBCONNECT.a

libDBCONNECT.a: libDBCONNECT.a(Libpqfe.o Dbconnect.o)
	$(RANLIB) $@

install: all
	$(MKDIR) -p $(PACKAGELIBDIR)
	$(MKDIR) -p $(PACKAGEIMPORTDIR)
	$(INSTALL) -c -m 644 libDBCONNECT.a $(PACKAGELIBDIR)
	$(INSTALL) -c -m 644 Dbconnect.hi $(PACKAGEIMPORTDIR)
ifeq ($(ENABLE_REG_PACKAGE),yes)
	$(GENPKG) $(PACKAGE) --import_dirs $(PACKAGEIMPORTDIR) --library_dirs $(PACKAGELIBDIR) --hs_libraries DBCONNECT --extra_libraries pq --package_deps haskell98 c2hs --extra_ld_opts $(EXTRA_LD_OPTS) | $(GHCPKG) $(GHCPKGFLAGS) --update-package --auto-ghci-libs
endif



# install as root!
# unused, handled in ../Makefile
TARGETDIR=$(PACKAGEDIR)
IMPORTDIR=$(TARGETDIR)   ##  /imports
obsolete-install: libDBCONNECT.a
	mkdir -p $(IMPORTDIR)
	install -c -m 644 libDBCONNECT.a $(TARGETDIR)
	install -c -m 644 $(HI_FILES) $(IMPORTDIR)
	GenPKG $(PACKAGE) --import_dirs $(IMPORTDIR) --source_dirs $(TARGETDIR) --library_dirs $(TARGETDIR) --hs_libraries DBCONNECT --extra_libraries pq --package_deps haskell98 c2hs --extra_ld_opts $(EXTRA_LD_OPTS) | ghc-pkg --config-file $(PACKAGECONFIG) --update-package --auto-ghci-libs

depend: Libpqfe.hs
	$(HC) -M $(HCFLAGS) $(HS_FILES)

doc::
	$(HADDOCK) -o $(DOCDIR) -h $(HS_FILES) 

Libpqfe.hs : Libpqfe.chs
	$(C2HS) $(PGINCLUDE)/libpq-fe.h Libpqfe.chs

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

veryclean: clean
	$(RM) -f *.a $(CHS_FILES:.chs=.hs)

# DO NOT DELETE: Beginning of Haskell dependencies
Dbconnect.o : Dbconnect.hs
Dbconnect.o : ./Libpqfe.hi
# DO NOT DELETE: End of Haskell dependencies
