#GNU Makefile to build mds_start 
#
#01/28/02 C. Ludescher : created


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


OBJDIR = $(OBJ)/obj/mds_start


#=============================================================
 
# fortran archive members
FMEM = mds_start.o 
MEM = $(foreach file,$(FMEM),$(ARC)($(file)))

LDLIBS =  -L$(OBJ)/lib $(LLOC) -luflib -lmds_sub -lufhdf \
	  -lmdstransp  -lureadsub -ltokyr -lvaxonly -lportlib -lsgdummy

LD_YR  = -L$(OBJ)/lib $(LLOC) -lureadsub -ltokyr -lvaxonly -lsgdummy\
	 -lportlib

LD_GET = -L$(OBJ)/lib $(LLOC) -lmds_sub -lmdstransp -lureadsub -ltokyr -lvaxonly \
	 -lportlib -lsgdummy

srcdir = $(shell pwd)
etcdir = $(shell (cd ../etc; pwd))

SCRIPTS = $(sort $(shell $(LS) *.pl *yy* ask* tr_* to* *.tcl datprep ck_tmplate))
FILES   = trdat.list TOKAMAK.DAT 

.PHONY: clean realclean checkdir all exec


libs: chkdirs 
 
all:  libs exec 
	@echo done  


chkdirs:
	@test -d $(OBJ)/test || mkdir -p $(OBJ)/test
	@test -d $(OBJDIR)   || mkdir -p $(OBJDIR)
 
#
#---------------------------------------------------
#
# Build Test Programs
#=====================
# pre-pocess / compile .F

$(OBJDIR)/%.o: %.F
	$(F_proc)

$(OBJDIR)/%.o: %.f
	$(FC) $(FFLAGS) $(OUT) $@ $<


exec: chkdirs chktest $(OBJ)/test/mds_start $(OBJ)/test/set_yr \
	$(OBJ)/test/mds_get_inf

chktest:
	@for i in $(SCRIPTS); do \
	(cd $(OBJ)/test; test -f $$i || ln -s $(srcdir)/$$i $$i;) done 
	@for i in $(FILES); do \
	(cd $(OBJ)/test; test -f $$i || ln -s $(etcdir)/$$i $$i;) done 
	@test -f $(OBJ)/test/37065Z01TR.DAT || cp ../TFTR/test/37065Z01TR.DAT $(OBJ)/test/

$(OBJ)/test/mds_start: $(OBJDIR)/mds_start.o 
	$(FC) $(LDFLAGS) -o $@ $< $(LDLIBS) $(LUSRLIB) \
	      $(MDSLIB) $(NETCDF) $(EDITLIBS) $(XFLIB) $(XLIBS) 

$(OBJ)/test/set_yr: $(OBJDIR)/set_yr.o 
	$(FC) $(LDFLAGS) -o $@ $< $(LD_YR) $(LUSRLIB) $(NETCDF) $(EDITLIBS) \
	      $(XFLIB) $(XLIBS) 

$(OBJ)/test/mds_get_inf: $(OBJDIR)/mds_get_inf.o 
	$(FC) $(LDFLAGS) -o $@ $< $(LD_GET) $(LUSRLIB) $(NETCDF) $(EDITLIBS) \
	      $(XFLIB) $(XLIBS) $(MDSLIB) 


#-------------------------------------------------------------------------
install:
	@test -d $(BINDIR) || mkdir -p $(BINDIR)
	@test -d $(ETCDIR) || mkdir -p $(ETCDIR)
	umask 022; if test -f $(OBJ)/test/mds_start; then cp  $(OBJ)/test/mds_start $(BINDIR)/; fi
	umask 022; if test -f $(OBJ)/test/set_yr; then cp  $(OBJ)/test/set_yr $(BINDIR)/; fi
	umask 022; if test -f $(OBJ)/test/mds_get_inf; then cp  $(OBJ)/test/mds_get_inf $(BINDIR)/; fi
	umask 022; cp  $(SCRIPTS) $(ETCDIR)/
	cp -r $(etcdir)/* $(ETCDIR)/

uninstall:
	rm $(BINDIR)/mds_start
	@(cd $(ETCDIR); rm -f $(FILES) $(SCRIPTS))

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

realclean: clean
	@(cd $(OBJ)/test; rm -f $(FILES))

