#GNU Makefile to build Library libfpreact.a 
#
#07/06/01 C. Ludescher
#

ifneq ($(MAKELEVEL),0)
# if OBJ was defined for main Makefile one level down
ifeq ("${OBJ}",".")
	override OBJ=..
endif
endif

# define system dependent flags, etc.
-include  ../share/Make.local
include ../share/Make.flags



ifdef DEBUG
        FFLAGS := $(DFFLAGS)
endif


.PHONY: all install clean realclean

ARC =  $(OBJ)/lib/libfpreact.a
OBJDIR = $(OBJ)/obj/fpreact

# don't rebuild library if using installed one in $PREFIX 
ifeq ($(MAKELEVEL),0)
	THISLIB=$(ARC)
endif

# f90 modules
Mnams = fpreact_parameters.mod hatom_mod.mod
Mobjs = fpreact_parameters.o   hatom_mod.o
MODS = $(foreach file,$(Mobjs),$(ARC)($(file)))

ifeq ($(MODUP),Y)
 MODS0=$(foreach m,$(Mnams),$(shell  echo $(m) | tr 'a-z' 'A-Z'))
 MODULES=$(foreach m,$(MODS0),$(subst .MOD,.$(MODEXT),$(m)))
else
 MODULES = $(foreach m,$(Mnams),$(subst .mod,.$(MODEXT),$(m)))
endif 

# library members
FMEM = $(subst .f90,.o, $(wildcard *.f90))
MEM = $(foreach m,$(FMEM),$(ARC)($(m)))


libs: chkdirs $(ARC)

all: libs
	@echo done 

$(OLDLIB): timestamp.inf
	@echo "--- DETECTED fpreact.a source update"
	@echo "--- Re-Making $(ARC)"
	@$(MAKE) libs

chkdirs:
	@test -d $(OBJ)/lib || mkdir -p $(OBJ)/lib
	@test -d $(OBJ)/mod || mkdir -p $(OBJ)/mod
	@test -d $(OBJ)/obj/fpreact || mkdir -p $(OBJ)/obj/fpreact

# compile f90
$(ARC)(%.o): %.f90
	$(FC90) $(FFLAGS) $(MODFLAGS) -I./ $(INCFLAGS) $(OUT) $(OBJDIR)/$*.o $<
	$(make_ar)

$(ARC): $(MODS) $(MEM)
	@$(RANLIB) $@ > /dev/null

#-------------------------------------------------------------
exec: 
	@echo 	   


install: installdirs installlib

installlib: 
	umask 133; cp $(OBJ)/lib/libfpreact.a $(LIBDIR)
	$(foreach file,$(MODULES),$(shell cp $(MDIR)/$(file) $(MODDIR)/))

installdirs:
	@test -d $(LIBDIR) || mkdir -p $(LIBDIR)


clean:
	@rm -f $(OBJDIR)/*

realclean: clean
	@rm -f $(ARC)

uninstall:
	$(foreach m,$(MODULES),$(shell rm -f $(MODDIR)/$(m) ))
	rm -f $(LIBDIR)/libfpreact.a



