SHELL   = /bin/sh

PROGNAME = ABM_APH

POTENTIAL = LI3_ALL

LIBNAME   = $(POTENTIAL)Lib_$(FC).a

LIBRARY   = ../../lib/$(LIBNAME)

# Determine Operating system.
SYSTEM = $(shell uname)

include Makefile.opt

TIME = $(shell date '+%F')

SMAIN  = $(shell ls src/*.main)

SLOC = $(shell ls src/* )

SRCS  = $(SLOC:src/%=%)

BASES = $(basename $(SRCS) )

BFILES  = $(SRCS:%=$(BACKUP)/%)

OBJS  = $(addsuffix .o, $(BASES))

OLOC  = $(OBJS:%=$(OBJDIR)/%)

VPATH   = .:src:$(OBJDIR):Modules:backup

# Locations of temporary bin (DEST), install, backup, objdir and include directories.

SRCDIR  = src

DEST    = bin

INSTDIR = $(HOME)/bin

BACKUP	= backup

OBJDIR	= objs/$(FC)

PRINT   = lpr

# Rules for making object files from FORTRAN source
%.o : %.main
	$(FC) $(FFLAGS) $(DEBUGSTAT) -c $< -o $(OBJDIR)/$*.o
%.o : %.f90
	$(FC) $(FFLAGS) $(DEBUGSTAT) -c $< -o $(OBJDIR)/$*.o
%.o : %.f
	$(FC) $(FFLAGS) $(DEBUGSTAT) -c $< -o $(OBJDIR)/$*.o
%.o : %.for
	$(FC) $(FFLAGS) $(DEBUGSTAT) -c $< -o $(OBJDIR)/$*.o
%.o : %.F
	$(FC) $(FFLAGS) $(DEBUGSTAT) -c $< -o $(OBJDIR)/$*.o

# Link objects to produce executables.
$(LIBRARY):     $(OBJS) $(SRCS)
		@echo Creating $(LIBRARY)
		@ar cru $(LIBRARY) $(OLOC)

# Delete object and core files.
clean:;
		@echo Removing $(OLOC) core $(PROGRAM)
		@rm -f $(OLOC) core $(PROGRAM)

# List source files.
echo:;
		@echo $(SRCS)

# Print all source files.
print:;
		@$(PRINT) $(HDRS) $(SRCS)

# Backup source files before making complicated changes.
backup: FORCE
		@echo copying $(SRCS) to $(BACKUP)
		@for i in ${SRCS}; \
			do \
				(cp -u $(SRCDIR)/$$i $(BACKUP)/$$i) \
			done
		@echo making tarfile $(BACKUP)/$(TIME).tar
		@tar cf $(BACKUP)/$(TIME).tar src
FORCE:

# Make Variables.
prvar:
		@echo Variables used in this Makefile
		@echo FC=$(FC)
		@echo SHELL=$(SHELL)
		@echo PROGNAME=$(PROGNAME)
		@echo POTS=$(POTS)
		@echo FFLAGS=$(FFLAGS)
		@echo INCDIR=$(INCDIR)
		@echo LD=$(LD)
		@echo LDFLAGS=$(LDFLAGS)
		@echo DEBUGSTAT=$(DEBUGSTAT)
		@echo SRCS=$(SRCS)
		@echo SLOC=$(SLOC)
		@echo BASES=$(BASES)
		@echo BFILES=$(BFILES)
		@echo VPATH=$(VPATH)
		@echo DEST=$(DEST)
		@echo OBJS=$(OBJS)
		@echo OLOC=$(OLOC)
                @echo LIBS=$(LIBS)
