#!make

default: prgs
ALBERTA_VERSION=2.0
DEBUG=1
ALBERTA_DEBUG=1

# Compiler options
include ../../Make.opt

########################################################################
#   DFLAGS: DIM, DIM_OF_WORLD                                          #
########################################################################
DIM = 2
DIM_OF_WORLD = 2
NEIGH_IN_EL = 0
ifndef USE_NETCDF
USE_NCDF = 1
endif
#fuer DX, change here if not installed. Construction serves my local purposes.
########################################################################
#	get installation details				       #
########################################################################
include ../../AlbertaNum/Makefile.PATHS
#ifeq ($(ALBERTA_VERSION), 2.0)
  include $(prefix_mf)/Makefile.alberta
# alberta 1 kompatibilitt
#else
#  include $(ALBERTA_INCLUDE_PATH)/Makefile.alberta
#endif
########################################################################
#  modify default settings -- always use CXX
ifdef DMALLOC
CFLAGS +=-DDMALLOC
LDFLAGS +=-L/usr/local/lib -ldmallocxx -ldmalloc
endif
ifdef USE_NCDF
LDFLAGS += $(NCDFFLAGS)
endif
DFLAGS += -DDIM=$(DIM) -DUSE_NCDF=$(USE_NCDF)

#LINK = $(LIBTOOL) --mode=link --tag=$(CC) g++ $(CFLAGS) $(LDFLAGS) -o $@
LD =g++
%.o: %.c
	$(CXX) $(DFLAGS) $(CPPFLAGS) $(CXXFLAGS) -I$(ALBERTA_INCLUDE_PATH) \
	 -I$(NUM_INCLUDE_PATH) -c $<
%.o: %.cc
	$(CXX) $(DFLAGS) $(CPPFLAGS) $(CXXFLAGS) -I$(ALBERTA_INCLUDE_PATH) \
	 -I$(NUM_INCLUDE_PATH)  -I$(HEAT_INCLUDE_PATH) \
	  -I$(PHASE_INCLUDE_PATH)  -I$(DX_INCLUDE_PATH) -c $<

########################################################################
#   set virtual path                                                   #
########################################################################
VPATH = ../Common
########################################################################

ANUMLIBS = -L../../AlbertaNum/2d -lAlbertaNum2d


ELAST_OFILES = elast_test.o elast_problem.o  th_strain_rhs.o \
		 elast.o  
		 
HEAT_OFILES = $(HEAT_OBJ_PATH)/heat.o $(HEAT_OBJ_PATH)/heat_problem.o

ifdef USE_NCDF
DX_OFILES   =  $(DX_OBJ_PATH)/dxexport.o 
endif

.PHONY: all prgs objs clean objs_num realclean

prgs:  numlibs objs elast_test  

objs: $(ELAST_OFILES)

all: objs prgs 

realclean:
	make -C $(NUM_OBJ_PATH) clean
	make -C $(HEAT_OBJ_PATH) clean
	make -C $(DX_OBJ_PATH) clean
	make clean

#	make -C $(PHASE_OBJ_PATH) clean
rebuild:
	make -C $(NUM_OBJ_PATH) clean
	make -C $(HEAT_OBJ_PATH) clean
	make -C $(DX_OBJ_PATH) clean
	make clean
	make

numlibs: 
	make -C $(NUM_OBJ_PATH) libs

clean:
	rm -f *.o

elast_test:  $(ELAST_OFILES)  $(PHASE_OFILES)  $(HEAT_OFILES) $(DX_OFILES)
	$(LINK) $^ $(ANUMLIBS) $(LIBS)

$(HEAT_OFILES): heatobjs
$(PHASE_OFILES): phaseobjs
$(DX_OFILES):  dxobjs



heatobjs:
	make -C $(HEAT_OBJ_PATH) objs

phaseobjs:
	make -C $(PHASE_OBJ_PATH) objs

dxobjs:
	make -C $(DX_OBJ_PATH) objs

########################################################################
# semi-automatically generated by g++ -MM			       #
########################################################################

#demographics.o: demographics.c
#demoheat.o: demoheat.c demoheat.h problem.cc
#ellipt.o: ellipt.c
#nlprob.o: nlprob.c nonlin.h
#nlsolve.o: nlsolve.c nonlin.h
#nonlin.o: nonlin.c nonlin.h
#heat.o: heat.cc $(NUM_PATH)/newalberta.hh \
#  $(NUM_PATH)/master.hh \
#  $(NUM_PATH)/build_diff.hh \
#  $(NUM_PATH)/traverse_r_class.hh \
#  $(NUM_PATH)/parab_est.hh $(NUM_PATH)/error_c.h
#heat_problem.o: heat_problem.cc $(NUM_PATH)/newalberta.hh heat_problem.hh $(NUM_PATH)/operator_parts.hh
#obj_heat.o: obj_heat.cc $(NUM_PATH)/newalberta.hh \
#  $(NUM_PATH)/build_diff.hh \
#  $(NUM_PATH)/traverse_r_class.hh \
#  $(NUM_PATH)/parab_est.hh \
#  $(NUM_PATH)/operator_parts.hh demoheat.h heat_problem.hh \
#  problem.cc $(NUM_PATH)/error_c.h

