HC = ghc
AR = ar
LD = ld
INSTALL = install

LIBRARY = /usr/local/lib

PREFIX = Codec/Encryption

HC_OPTS= -package text -i$(PREFIX) -fglasgow-exts
  
SRCS = BlowfishAux.hs Modes.hs Blowfish.hs Padding.hs DESAux.hs \
       Utils.hs DES.hs

PRESRCS = $(foreach src, $(SRCS), $(PREFIX)/$(src))

HISRCS  = $(patsubst %.hs, %.hi, $(PRESRCS))

OBJS = $(patsubst %.hs, %.o, $(PRESRCS))

.SUFFIXES: .o .hs .hi

package: $(OBJS)
	rm -f libHScrypto.a
	$(AR) -q libHScrypto.a $^
	$(LD) -r -o HScrypto.o $^

install: libHScrypto.a HScrypto.o $(HI_SRC)
	$(INSTALL) libHScrypto.a $(LIBRARY)/libHScrypto.a
	$(INSTALL) HScrypto.o $(LIBRARY)/HScrypto.o
	$(INSTALL) -d $(LIBRARY)/imports/HScrypto
	for i in $(HISRCS); do \
	   $(INSTALL) -d $(LIBRARY)/imports/HScrypto/`dirname $$i`; \
	   $(INSTALL) -c $$i $(LIBRARY)/imports/HScrypto/`dirname $$i`; \
	done

Test:	$(OBJS) Test.o
	$(HC) -o $@ $(HC_OPTS) $(OBJS) Test.o

.o.hi:
	@

.hs.o:
	$(HC) -c $< $(HC_OPTS) -package-name crypto

doc: 
	haddock -h $(PRESRCS)

clean:
	rm $(OBJS) *.hi *.html *.css *.gif Test

depend:
	ghc -M $(HC_OPTS) $(PRESRCS)
# DO NOT DELETE: Beginning of Haskell dependencies
Codec/Encryption/BlowfishAux.o : Codec/Encryption/BlowfishAux.hs
Codec/Encryption/Modes.o : Codec/Encryption/Modes.hs
Codec/Encryption/Blowfish.o : Codec/Encryption/Blowfish.hs
Codec/Encryption/Blowfish.o : Codec/Encryption/BlowfishAux.hi
Codec/Encryption/Blowfish.o : Codec/Encryption/Utils.hi
Codec/Encryption/Padding.o : Codec/Encryption/Padding.hs
Codec/Encryption/Padding.o : Codec/Encryption/Utils.hi
Codec/Encryption/DESAux.o : Codec/Encryption/DESAux.hs
Codec/Encryption/Utils.o : Codec/Encryption/Utils.hs
Codec/Encryption/DES.o : Codec/Encryption/DES.hs
Codec/Encryption/DES.o : Codec/Encryption/DESAux.hi
Test.o : Test.hs
Test.o : Codec/Encryption/DES.hi
Test.o : Codec/Encryption/Padding.hi
Test.o : Codec/Encryption/Modes.hi
Test.o : Codec/Encryption/Blowfish.hi
Test.o : Codec/Encryption/Utils.hi
# DO NOT DELETE: End of Haskell dependencies
