###############################################################################
#                                                                             #
#                        Generic Makefile for IRelakit                        #
#                                                                             # 
#  make              ... generate executable                                  #
#  make clean        ... delete unnecessary files                             #
#                                                                             #
###############################################################################

###############################################################################
#                           User defined variables                            #
###############################################################################

RED = 033[31m
GREEN = 033[32m
YELLOW = 033[33m
BLUE = 033[34m
RESET = 033[0m
#---------------- compiler -----------------
FC = ifort
#------------- compiler options ------------
FOPT = -O -FR -mp1 -w -prec_div -pc80 -pad -ip -DINTEL_VML -traceback -assume buffered_io -I$(MKLROOT)/include
#-------------- loader options -------------
LDFLAGS = $(FOPT) -L$(MKLROOT)/lib/$(MKL_TARGET_ARCH) -pthread 
R_LIBS =  -lmkl_lapack95_lp64 -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -openmp -lpthread
###############################################################################
#                       End of user defined variables                         #
###############################################################################
DESTDIR  = ./
EXECN  = IRelakit
EXECN1 = xyz2wrl
EXECN2 = xyz2x3d


EXEC     = $(DESTDIR)$(EXECN)
EXEC1    = $(DESTDIR)$(EXECN1)
EXEC2    = $(DESTDIR)$(EXECN2)


OBJS =	$(EXECN).o 
OBJS1 =	$(EXECN1).o 
OBJS2 =	$(EXECN2).o 


all:$(EXEC) $(EXEC1) $(EXEC2)

	@echo ""
	@echo "................................................................"
	@echo "                         MakeFile                               "                                     
	@echo "                     by Morteza Jamal                           "
	@echo "                         (C) 2026                               "                                     
	@echo ".######..#####...######..##.......####...##..##..######..######."
	@echo "...##....##..##..##......##......##..##..##.##.....##......##..."
	@echo "...##....#####...####....##......######..####......##......##..."
	@echo "...##....##..##..##......##......##..##..##.##.....##......##..."
	@echo ".######..##..##..######..######..##..##..##..##..######....##..."
	@echo "................................................................"
	@echo ""                                                     

#target:dependency
#comments

$(EXEC):$(OBJS)
	$(FC) -o $@ $< $(LDFLAGS) $(R_LIBS)  	

$(EXEC1):$(OBJS1)
	$(FC) -o $@ $< $(LDFLAGS) $(R_LIBS)  
		
$(EXEC2):$(OBJS2)
	$(FC) -o $@ $< $(LDFLAGS) $(R_LIBS)  	

	@echo "" 	
	@echo "compilation completed..."
	@echo " "
   

clean:	  
	-rm -f  *.o
	@echo clean

#.f.o:
%.o: %.f
	$(FC) $(FOPT) -c $<   
.f90.o:
	$(FC) $(FOPT) -c $<
