include ${EOS_HOME}/src/Config/${EOS_HOST}${FLAG_ICC}.inc
-include Config/Define.inc

FFTWVERSION=3.3.10
NRVERSION=1.1
#GSLVERSION=1.16
GSLVERSION=2.7
GSLNAME=gsl-$(GSLVERSION)
GSLWHERE=ftp://ftp.gnu.org/gnu/gsl
GSLWHERE=ftp://ftp.jaist.ac.jp/pub/GNU/gsl/

check: first-check fftw-check nr-check gslCheck
cleanAll:  


first-check:
	#ln -sf ../../src/MATH/Config .

fftw-check::
	#ln -sf ../../src/MATH/fftw-$(FFTWVERSION).tar.gz .
	curl -L http://www.fftw.org/fftw-$(FFTWVERSION).tar.gz > fftw-$(FFTWVERSION).tar.gz
	gzip -dc fftw-$(FFTWVERSION).tar.gz | tar xvf -

nr-check::
	ln -sf ../../src/MATH/nr-$(NRVERSION).tar.gz .
	gzip -dc nr-$(NRVERSION).tar.gz | tar xvf -	


gslCheck:: 
	curl -L $(GSLWHERE)/$(GSLNAME).tar.gz  > $(GSLNAME).tar.gz
	tar xvzf $(GSLNAME).tar.gz  


config: fftw-config nr-config gslConfig


fftw-config:
	case $(OSTYPE) in \
		'CELLLINUX64' ) \
			echo "altivec" ; \
			cd  fftw-$(FFTWVERSION) ; ./configure  --prefix=${EOS_HOME}/util/$(OSTYPE)/ CC=spu-gcc --with-gcc -enable-float --enable-cell --enable-type-prefix --enable-fma ; \
			;; \
		'X86LINUX64' ) \
			echo "x86Linux64" ; \
			cd  fftw-$(FFTWVERSION) ; ./configure --prefix=${EOS_HOME}/util/$(OSTYPE)/ -enable-float --enable-fma --enable-threads --enable-shared; \
			;; \
		'X86LINUX64ICC' ) \
			echo "x86Linux64icc" ; \
			cd  fftw-$(FFTWVERSION) ; ./configure --prefix=${EOS_HOME}/util/$(OSTYPE)/ CC=icc CFLAGS=-gcc --with-our-malloc16 --enable-sse2 -enable-float --enable-fma --enable-threads --enable-shared; \
			;; \
		'ARM64MAC64' ) \
			echo "arm64Mac64" ; \
			cd  fftw-$(FFTWVERSION) ; ./configure --prefix=${EOS_HOME}/util/$(OSTYPE)/ --with-gcc -enable-float --enable-type-prefix --enable-threads ; \
			;; \
		*) \
			echo "others" ; \
			cd  fftw-$(FFTWVERSION) ; ./configure --prefix=${EOS_HOME}/util/$(OSTYPE)/ --with-gcc -enable-float --enable-type-prefix --enable-sse --enable-threads ; \
			;; \
	esac
nr-config:
	cd nr; make config

gsl-config::
	cd $(GSLNAME); ./configure --prefix=${EOS_HOME}/util/$(OSTYPE)/ --with-gnu-ld

all: fftw nr
	make install

nr:
	cd nr; make all

gsl::
	cd $(GSLNAME); make ; make test; make install

fftw:
	cd  fftw-$(FFTWVERSION) ;  make ; make check

install: fftw-install

fftw-install:
	cd  fftw-$(FFTWVERSION) ;  make install
	
clean: fftw-clean nr-clean

fftw-clean:
	cd ffw; make clean

nr-clean:
	cd nr; make clean

gsl-clean:
	cd $(GSLNAME); make clean

gsl-cleanAll:
	rm -rf $(GSLNAME)
	rm -f $(GSLNAME).tar.gz
