#
# This is mult/makefile
# It makes fftmult  : demo of the fast fourier transform multiplication
#          karamult : demo of the karatsuba multiplication
#          speedcmp : speed comparison of fft-, karatsuba- and direct multiplication
#

#CXX=gcc
LIBS=-lstdc++
XSUFFIX=elf

CXXFLAGS=-Wall -O

TARGETS=fftmult.$(XSUFFIX) \
        karamult.$(XSUFFIX) \
        speedcmp.$(XSUFFIX)   

fftmult.$(XSUFFIX) : fftmult.cc fft.cc print.cc getdigs.cc *.h
	$(CXX) $(CXXFLAGS) $(LIBS) -o $@ fftmult.cc fft.cc print.cc getdigs.cc
	strip $@

karamult.$(XSUFFIX) : karamult.cc kara.cc print.cc getdigs.cc *.h
	$(CXX) $(CXXFLAGS) $(LIBS) -o $@ karamult.cc kara.cc print.cc getdigs.cc
	strip $@

speedcmp.$(XSUFFIX) : speedcmp.cc kara.cc fft.cc print.cc *.h
	$(CXX) $(CXXFLAGS) $(LIBS) -o $@ speedcmp.cc kara.cc fft.cc print.cc
	strip $@

.PHONY: all runall
all:  $(TARGETS) 

$(TARGETS) : makefile.* *.in

runall: $(TARGETS) *.in
	fftmult.$(XSUFFIX) < fftmult.in
	karamult.$(XSUFFIX)   < karamult.in
	speedcmp.$(XSUFFIX)   < speedcmp.in

