
#####
FC = ifort
FFLAGS   = -traceback
F90FLAGS = -traceback \
           -check all \
           -warn all  \
           -std -fpe0 -ftrapuv \
           -gen-interface -mod ./mod/
FPPFLAGS = 

SRC = opacparam.f90 \
      condint.f     \
      condegsc13.f  \
      condecore.f90 \
      radopac.f90   \
      opacity.f90   \
      test3.f90

LIB = opac
EXE = opac.out

OUTLOG = ./out/outlog.dat
OUTPUT = $(OUTLOG) ./out/opac.dat ./out/opac2.dat    \
         ./out/0.75Msun_H.dat  ./out/0.75Msun_Ni.dat \
         ./out/2.01Msun_H.dat  ./out/2.01Msun_Ni.dat

#####
LIBNAME = lib$(LIB).a
OBJ = $(subst .f,.o,$(subst .f90,.o,$(SRC)))
LIBOBJ = $(OBJ:%.o=$(LIBNAME)(%.o))

#####
.PHONY: all clean distclean clear delete check help

all:$(EXE)

clean:
	@rm -vf *~

distclean:clean
	@rm -vf ./mod/*
	@rm -vf *.o $(EXE) $(LIBNAME)

clear:clean
	@rm -vf $(OUTPUT)
	@rm -vf ./plot/*.ps ./plot/*.bmp


allclear:distclean clear

check:
	@if [ -f $(OUTLOG) ]; then \
          echo "Error: [ make exe ]" ;\
          echo "  '$(OUTLOG)' has already existed." ;\
          echo "" ;\
          exit 1 ;\
        fi

exe:$(EXE) check
	./$(EXE) 2>&1 | tee $(OUTLOG) 

help:
	@echo "##### Variables ##########"
	@echo "  LIBNAME = $(LIBNAME)"
	@echo "  LIBOBJ = $(LIBOBJ)"
	@echo "  OBJ = $(OBJ)"


##### DEPENDENCY ########################################################

$(EXE): $(LIBNAME)
	$(LINK.F) $(OUTPUT_OPTION) -L. -l$(LIB)

$(LIBNAME):$(LIBOBJ)

##### PARTTERN RULES ####################################################

%.o:%.f90 makefile
	$(FC) $(F90FLAGS) -c $(FPPFLAGS) $<

%.o:%.f makefile
	$(COMPILE.F) $(FPPFLAGS) $<

