include ../../Makefile.in

#CMP = f2py
#F90 = ifort
#F77 = ifort
#FFLAGS = -O3
#F2PL = -DF2PY_REPORT_ON_ARRAY_COPY=1 --arch='-O3'

all : libclebsch.a krams.so strns.so linalg.so ldau.so

#all : libinalg.a libminim.a libSk.a libclebsch.a fort_read.so mod_Sk.so symmetr.so strns.so transb.so cmp_olocef.so linalg.so tetra.so cmp_rho.so ldau.so mix.so dia_gho.so mtoverlap.so krams.so smf.so optics.so cmtrans.so YlmAYlm.so libYlm.so

libinalg.a : libinalg.f90 lib_cinv.f
	$(F90) -c $(FFLAGS) libinalg.f90 
	$(F77) -c $(FFLAGS) lib_cinv.f
	ar cr libinalg.a libinalg.o lib_cinv.o

libminim.a : minim.f
	$(F77) -c $(FFLAGS) minim.f
	ar cr libminim.a minim.o

libSk.a : mod_Sk.f90
	$(F90) -c $(FFLAGS) $?
	ar cr $@ mod_Sk.o

libclebsch.a : mod_clebsch.f90
	$(F90) -c $(FFLAGS) mod_clebsch.f90
	ar cr libclebsch.a mod_clebsch.o

fort_read.so : fort_read.f90
	$(CMP) $(F2PL) -c $? -m fort_read

mod_Sk.so : mod_Sk.f90
	$(CMP) $(F2PL) -c $? -m mod_Sk

symmetr.so : symmetr.f90 rot_mat0.f90 rot_mat1.f90
	$(CMP) $(F2PL) -c symmetr.f90 rot_mat1.f90 rot_mat0.f90 -m symmetr --link-lapack_opt -L. -linalg

strns.so : strns.f90
	$(CMP) $(F2PL) -c $? -m strns -L. -lclebsch

transb.so : transb.f90
	$(CMP) $(F2PL) -c $? -m transb  --link-lapack_opt -L. -lSk -linalg -lminim

cmp_olocef.so : cmp_olocef.f90
	$(CMP) $(F2PL) -c $? -m cmp_olocef --link-lapack_opt -L. -linalg

linalg.so : libinalg.f90
	$(CMP) $(F2PL) -c $? -m linalg --link-lapack_opt

tetra.so : wtetrah.f90 tetrah.f90 libtetrah.f90 libtetrahi.f90 creorder.f90 libmetrop.f90 tetrahi.f90 sort.f
	$(F77) -c $(FFLAGS) sort.f
	$(F90) $(FFLAGS) -c libtetrah.f90
	$(F90) $(FFLAGS) -c libtetrahi.f90
	$(F90) $(FFLAGS) -c creorder.f90
	ar cr libtetrah.a libtetrah.o libtetrahi.o creorder.o sort.o
	$(F90) $(FFLAGS) -c libmetrop.f90
	ar cr libmetrop.a libmetrop.o
	$(CMP) $(F2PL) -c wtetrah.f90 tetrah.f90 tetrahi.f90 -m tetra -L. -ltetrah -lmetrop

cmp_rho.so : cmp_rho1.f90
	$(CMP) $(F2PL) -c cmp_rho1.f90 -m cmp_rho --link-lapack_opt -L. -lSk -linalg

mix.so : mix.f90
	$(CMP) $(F2PL) -c mix.f90 -m mix --link-lapack_opt

ldau.so : ldau.f90
	$(CMP) $(F2PL) -c ldau.f90 -m ldau -L. -lclebsch

dia_gho.so : dia_gho.f90
	$(CMP) $(F2PL) -c dia_gho.f90 -m dia_gho  --link-lapack_opt 

mtoverlap.so : mtoverlap.f90
	$(CMP) $(F2PL) -c $? -m mtoverlap  --link-lapack_opt -L. -lSk -linalg

krams.so : krams.f90
	$(CMP) $(F2PL) -c $? -m krams

smf.so : smf.f90
	$(CMP) $(F2PL) -c smf.f90 -m smf --link-lapack_opt

optics.so : optics.f90
	$(CMP) $(F2PL) -c optics.f90 dia_gho.f90 -m optics  -L. -linalg --link-lapack_opt

libintgs.a : intgs.f90 Slatec.f
	$(F77) -c $(FFLAGS) Slatec.f
	$(F90) -c $(FFLAGS) intgs.f90
	ar cr libintgs.a intgs.o Slatec.o

cmtrans.so : cmtrans.f90 intgs.f90 libintgs.a
	$(CMP) $(F2PL) -c cmtrans.f90 dia_gho.f90 -m cmtrans -L. -lintgs -linalg --link-lapack_opt

YlmAYlm.so : YlmAYlm.f90
	$(CMP) $(F2PL) -c YlmAYlm.f90 -m YlmAYlm

libYlm.so : libYlm.f
	$(CMP) $(F2PL) -c libYlm.f -m libYlm


clean :
	rm -rf *.so *.o *.a *.mod
