1#!make
2
3default: prgs
4DEBUG=1
5ALBERTA_VERSION=2.0
6ALBERTA_DEBUG=1
7
8# Compiler options
9include ../../Make.opt
10
11########################################################################
12#   DFLAGS: DIM, DIM_OF_WORLD                                          #
13########################################################################
14DIM = 2
15DIM_OF_WORLD = 2
16NEIGH_IN_EL = 0
17ifndef USE_NETCDF
18USE_NCDF = 1
19endif
20#fuer DX, change here if not installed. Construction serves my local purposes.
21########################################################################
22#	get installation details				       #
23########################################################################
24include ../../AlbertaNum/Makefile.PATHS
25ifeq ($(ALBERTA_VERSION), 2.0)
26  include $(prefix_mf)/Makefile.alberta
27# alberta 1 kompatibilit�t
28  DFLAGS += -DDIM=$(DIM) -DALBERTA_VER=2
29else
30  include $(ALBERTA_INCLUDE_PATH)/Makefile.alberta
31endif
32########################################################################
33#netcdf support
34ifdef USE_NCDF
35LDFLAGS += $(NCDFFLAGS)
36endif
37DFLAGS += -DDIM=$(DIM) -DUSE_NCDF=$(USE_NCDF)
38#  modify default settings -- always use CXX
39#LINK = $(LIBTOOL) --mode=link --tag=$(CC) g++ $(CFLAGS) $(LDFLAGS) -o $@
40LD = g++
41%.o: %.c
42	$(CXX) $(DFLAGS) $(CPPFLAGS) $(CXXFLAGS) -I$(ALBERTA_INCLUDE_PATH) \
43	 -I$(NUM_INCLUDE_PATH)  -I$(DX_INCLUDE_PATH) -c $<
44%.o: %.cc
45	$(CXX) $(DFLAGS) $(CPPFLAGS) $(CXXFLAGS) -I$(ALBERTA_INCLUDE_PATH) \
46	 -I$(NUM_INCLUDE_PATH) -I$(DX_INCLUDE_PATH)  -c $<
47
48estimator.o: estimator.c
49	$(CC) $(DFLAGS) $(CPPFLAGS) $(CXXFLAGS) -I$(ALBERTA_INCLUDE_PATH) \
50	 -I$(NUM_INCLUDE_PATH)  -I$(DX_INCLUDE_PATH) -c $<
51########################################################################
52#   set virtual path                                                   #
53########################################################################
54VPATH = ../Common
55########################################################################
56#NUM_OFILES =	$(NUM_OBJ_PATH)/build_stat.o\
57#		$(NUM_OBJ_PATH)/build_diff.o\
58#		$(NUM_OBJ_PATH)/traverse.o \
59#		$(NUM_OBJ_PATH)/prototype_fem_elfunc.o \
60#		$(NUM_OBJ_PATH)/est.o \
61#		$(NUM_OBJ_PATH)/error_c.o   \
62#		$(NUM_OBJ_PATH)/ellipt_est.o \
63#		$(NUM_OBJ_PATH)/parab_est.o \
64#		$(NUM_OBJ_PATH)/sys_est.o \
65#		$(NUM_OBJ_PATH)/fem_base.o \
66#		$(NUM_OBJ_PATH)/adapt.o $(NUM_OBJ_PATH)/operator_parts.o \
67#	        $(NUM_OBJ_PATH)/alloc.o \
68#	        $(NUM_OBJ_PATH)/msg.o \
69#	        $(NUM_OBJ_PATH)/master.o
70
71ANUMLIBS = -L../../AlbertaNum/2d -lAlbertaNum2d
72
73ifdef USE_NCDF
74DX_OFILES   =  $(DX_OBJ_PATH)/dxexport.o
75endif
76
77.PHONY: all prgs objs clean objs_num
78
79prgs: numlibs objs demoheat obj_heat
80
81objs: demographics.o demoheat.o heat_problem.o heat.o obj_heat.o
82
83all: prgs objs
84
85realclean:
86	make -C $(NUM_OBJ_PATH) clean
87	make -C $(DX_OBJ_PATH) clean
88	make clean
89
90rebuild:
91	make -C $(NUM_OBJ_PATH) clean
92	make -C $(DX_OBJ_PATH) clean
93	make clean
94	make
95
96
97numlibs:
98	make -C $(NUM_OBJ_PATH) libs
99
100clean:
101	rm -f *.o
102
103demoheat: demoheat.o demographics.o estimator.o  $(DX_OFILES)
104	$(LINK) $^ $(LIBS)
105
106#wie erreiche ich sinnvoll abhaengigkeit von AlbertaNum2d?
107obj_heat: obj_heat.o heat.o heat_problem.o demographics.o  $(DX_OFILES)
108	$(LINK)  $^ $(ANUMLIBS) $(LIBS)
109
110ifdef USE_NCDF
111$(DX_OFILES):  dxobjs
112
113dxobjs:
114	make -C $(DX_OBJ_PATH) objs
115endif
116########################################################################
117# semi-automatically generated by g++ -MM			       #
118########################################################################
119