dsp-0.1: Makefile
LIBS= Matrix
LIBS+= Polynomial
LIBS+= Numeric
LIBS+= DSP
APPS= FFTBench
APPS+= FFTTest
APPS+= Article
APPS+= IIRDemo
APPS+= FreqDemo
APPS+= NoiseDemo
#OPT= -O -funbox-strict-fields
#OPT+= -fvia-C -O2-for-C
#PROF= -prof -auto-all
#WARN= -W
#WARN= -Wall
#HEAP= -H128m
HC= ghc-5.04.3
#HC= ghc-6.0
GC= green-card
GC_PATH= /usr/local/lib/green-card
GC_LIBS= $(GC_PATH)/StdDIS.o
GSL_PATH= /usr/local/lib
GSL_INC= /usr/local/include
#GSL_LIBS= -lgsl -lgslcblas
GSL_LIBS= -lgsl -lcblas -latlas
TARGET= ffi
GCSRCS= Numeric/Special/Airy.gc
GCSRCS+= Numeric/Special/Bessel.gc
GCSRCS+= Numeric/Special/Clausen.gc
GCSRCS+= Numeric/Special/Ellint.gc
GCSRCS+= Numeric/Special/Elljac.gc
GCSRCS+= Numeric/Special/Erf.gc
GCOBJS= $(GCSRCS:.gc=.o)
HSFLAGS= -fno-glasgow-exts ${OPT} ${PROF} ${WARN} ${HEAP}
HSFLAGS+= -cpp -fffi -package lang -I$(GSL_INC) -i$(GC_PATH)
INSTALLDIR= /usr/home/donadio/lib/hs
URL= http://haskelldsp.sourceforge.net/
.SUFFIXES:
.SUFFIXES: .o .hs .gc
.gc.o:
$(GC) -t $(TARGET) -i $(GC_PATH) $<
$(HC) $(HSFLAGS) -I. -I$(GSL_INC) -i$(GC_PATH) -package-name=Numeric -package lang -c $*.hs -o $*_hs.o
$(HC) $(HSFLAGS) -I. -I$(GSL_INC) -i$(GC_PATH) -package-name=Numeric -package lang -c $*_stub_$(TARGET).c -o $*_stub_$(TARGET).o
$(LD) -r -o $@ $*_hs.o $*_stub_$(TARGET).o
# $(RM) $*.hs
$(RM) $*_stub_$(TARGET).c $*_stub_$(TARGET).h
$(RM) $*_hs.o $*_stub_$(TARGET).o
all: foreign libs
apps:
for f in ${APPS}; do \
$(HC) --make ${HSFLAGS} -o $$f demo/$$f.hs ;\
done
foreign: $(GCOBJS)
libs:
for f in ${LIBS}; do \
find $$f \( -name "*.lhs" -or -name "*.hs" \) -print | xargs $(HC) --make -package-name=$$f ${HSFLAGS} ;\
done
docs:
find ${LIBS} -name "*.hs" -print | xargs haddock -h -o doc -t "Haskell DSP Library" -s "${URL}"
install: #libs
for f in ${LIBS}; do \
rm -f libHS$$f.a HS$$f.o ;\
find $$f -name "*.o" -print | xargs ar cqs libHS$$f.a ;\
ld -r --whole-archive -o HS$$f.o libHS$$f.a ;\
for i in `find $$f -name "*.hi" -print`; do \
mkdir -p `dirname ${INSTALLDIR}/imports/$$i` ;\
install -m 644 $$i ${INSTALLDIR}/imports/$$i ;\
done ;\
install -m 644 libHS$$f.a ${INSTALLDIR} ;\
install -m 644 HS$$f.o ${INSTALLDIR} ;\
installdir=${INSTALLDIR} ghc-pkg -f mpd.conf -u < pkg/$$f.pkg ;\
done
test: test.hs
$(HC) -cpp -package lang -i$(GC_PATH) -L$(GSL_PATH) $(GSL_LIBS) --make -o test test.hs
snapshot:
tar cfz haskelldsp-snapshot.tar.gz ${LIBS} demo doc \
COPYING README TODO Makefile
clean:
find . -name "*.o" -print | xargs rm -f
find . -name "*.hi" -print | xargs rm -f
find . -name "*~" -print | xargs rm -f
rm -f $(GCSRCS:.gc=.hs)
rm -f $(GCSRCS:.gc=_stub_$(TARGET).c)
rm -f $(GCSRCS:.gc=_stub_$(TARGET).h)
rm -f *.a
rm -f *.prof
realclean: clean
rm -f ${APPS}
rm -f *.core
rm -f haskelldsp-snapshot.tar.gz