# Uses gfortran windows or linux with dislin graphics

# TYP=WIN
TYP=LIN
# TYP=MAC

ifeq ($(TYP),WIN)
  LIB=C:\dislin\disgf_d.a \
    C:\MinGW32\lib\libcomdlg32.a \
    C:\MinGW32\lib\libgdi32.a 
  MOD=-IC:\dislin\gf\real64
  FC = gfortran -c -O2 $(MOD)
else 
  LIB=/users/pjk/dislin-10.3/darwin_intel_64/bin
  MOD=-I../../dislin/d
  FC = gfortran -c -fbounds-check -fbacktrace -ffpe-trap='invalid' -Wall -Wconversion -std=f95 $(MOD)
  FG = gfortran -c -fbounds-check -fbacktrace -ffpe-trap='invalid' -Wall -Wconversion -std=f95

endif

FO = gfortran -o 

all: CRUX
CRUX: CRUX.o cruxprocs.o cruxutil.o cruxdata.o 
	$(FO) CRUX CRUX.o cruxprocs.o cruxutil.o cruxdata.o dislin.o  $(LIB) 
#	$(FO) CRUX CRUX.o cruxprocs.o cruxutil.o cruxdata.o dislin.o 
ifeq ($(TYP),WIN)
	copy CRUX.exe ..
	del CRUX.exe
else
	mv CRUX ../
endif

CRUX.o: ../f90/CRUX.f90 cruxprocs.o 
	$(FC) ../f90/CRUX.f90 
cruxprocs.o: ../f90/cruxprocs.f90  cruxutil.o 
	$(FC) ../f90/cruxprocs.f90 
cruxutil.o: ../f90/cruxutil.f90 cruxdata.o dislin.o
	$(FC) ../f90/cruxutil.f90 
cruxdata.o: ../f90/cruxdata.f90
	$(FC) ../f90/cruxdata.f90
dislin.o: ../../dislin/d/dislin.f90
	$(FG) ../../dislin/d/dislin.f90
# Cleaning the project
clean:
ifeq ($(TYP),WIN)
	del *.o *.mod ..\CRUX.exe
else
	rm *.o *.mod ../CRUX   
endif
# End of the makefile
