aboutsummaryrefslogtreecommitdiff
path: root/src/AMRHierLib/Makefile
blob: ed7714df2a93f9d4530aa71b8488877bbbfc0b37 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
#!gmake
# Include common defines

#Change this to SHARED to build and install shared version
BUILDVERSION = STATIC

# FlexIO
# Set this to your location of FlexIO
FLEXIO_INCPATH = -I..
FLEXIO_LIBPATH = -L..

# Support Libs
# Set this to your location of the support libs (here: subdirectory Support)
ifneq ($(USE_INSTALLED_SUPPORT_LIBS), 1)
SUPPORT_INCPATH = -ISupport/include
SUPPORT_LIBPATH = -LSupport/lib
endif

# If needed: System specific LIBPATH. Here: We need to include the lib dir of our custom gcc-3.1.1 installation
SYSTEM_LIBPATH = -Wl,--rpath,/usr/global/packages/languages/gcc-3.1.1/lib

# Programs
CC		= gcc3.1
CXX		= g++3.1
AR		= ar
INSTALL		= install 
RM		= rm

# Options
OPTFLAGS	= -g
#OPTFLAGS	= -O2
SOPOSOPT	= -Wl,--rpath -Wl,
AR_CREATEFLAGS	= rv

# Directories
OBJDIR		= objLinux

# Where to install
INSTALLPREFIX		= $(HOME)/WorkCVS
INSTALLARCHDEPPREFIX	= $(INSTALLPREFIX)
INSTALLBINPATH		= $(INSTALLARCHDEPPREFIX)/bin
INSTALLLIBPATH		= $(INSTALLARCHDEPPREFIX)/lib-g++3.1
INSTALLINCPATH		= $(INSTALLPREFIX)/include

ifeq ($(USE_INSTALLED_SUPPORT_LIBS), 1)
INCPATH		= -I. -I$(INSTALLINCPATH) $(FLEXIO_INCPATH)
LIBPATH		= -L$(INSTALLLIBPATH) $(SOPOSOPT)$(INSTALLLIBPATH) $(FLEXIO_LIBPATH) $(SYSTEM_LIBPATH)
else
INCPATH		= -I. $(FLEXIO_INCPATH) $(SUPPORT_INCPATH) -I$(INSTALLINCPATH) 
LIBPATH		= -L$(INSTALLLIBPATH) $(SOPOSOPT)$(INSTALLLIBPATH) $(FLEXIO_LIBPATH) $(SUPPORT_LIBPATH) $(SYSTEM_LIBPATH)
endif
CPPFLAGS	= $(OPTFLAGS) $(INCPATH) -Wall
CXXFLAGS	= $(PROJ_CXXFLAGS)

GeometryLib	= -lGeometry
MathLib		= -lm
#FlexIOLibs	= -lAMR -lieeeio -lhdfio -ldf
FlexIOLibs	= -lAMR -lieeeio
AMRHierLib	= -lAMRHier

AMRHLIB_STATIC	= libAMRHier.a
AMRHLIB_SHARED	= libAMRHier.so
ifeq ($(BUILDVERSION), SHARED)
AMRHLIB	= $(AMRHLIB_SHARED)
else
AMRHLIB	= $(AMRHLIB_STATIC)
endif
AMRHLIB_SRC.CC	= AMRHierarchy.cc AMRGrid.cc AMRLevel.cc AMRGridCell.cc 
AMRHLIB_INC	= AMRHierarchy.hh AMRHierarchy.icc AMRGrid.hh AMRGrid.icc AMRLevel.hh AMRLevel.icc AMRGridCell.hh AMRGridCell.icc AMRGridStitcher.hh AMRGridStitcher.cc
AMRHLIB_OBJ	= $(addprefix $(OBJDIR)/, $(AMRHLIB_SRC.CC:.cc=.o))

PAMRH		= PrintAMRHier
PAMRH_SRC.CC	= PrintAMRHier.cc
PAMRH_OBJ	= $(addprefix $(OBJDIR)/, $(PAMRH_SRC.CC:.cc=.o))
PAMRH_LIBS	= $(AMRHierLib) $(FlexIOLibs) $(MathLib)

WSC		= WriteStitchCells
WSC_SRC.CC	= WriteStitchCells.cc StitchCellWriter.cc
WSC_OBJ		= $(addprefix $(OBJDIR)/, $(WSC_SRC.CC:.cc=.o))
ifeq ($(USE_INSTALLED_SUPPORT_LIBS), 1)
WSC_LIBS	= $(AMRHierLib) $(FlexIOLibs) $(GeometryLib) $(MathLib)
else
WSC_LIBS	= $(AMRHierLib) $(FlexIOLibs) $(MathLib)
endif

VOL2IEEEIO	= Vol2IEEEIO
VOL2IEEEIO_SRC.CC= Vol2IEEEIO.cc
VOL2IEEEIO_OBJ	= $(addprefix $(OBJDIR)/, $(VOL2IEEEIO_SRC.CC:.cc=.o))
VOL2IEEEIO_LIBS	= $(FlexIOLibs) -lz

DEPENDENCIES	= $(AMRHLIB_OBJ:.o=.d) $(PAMRH_OBJ:.o=.d) $(WDPF_OBJ:.o=.c)

PROJ_TARGETS	= $(AMRHLIB) $(PAMRH) $(WSC) $(VOL2IEEEIO)

all: $(PROJ_TARGETS)

# Implicit Rules
$(OBJDIR)/%.o: %.cc
	@rm -f $(OBJDIR)/$*.d
	$(COMPILE.cc) -Wp,-MD,$(OBJDIR)/$*.P $(OUTPUT_OPTION) $<
	@sed -e 's/$*\.o/$(OBJDIR)\/$*.o/g' -e 's/moc_[^.]*\.cc//g' <$(OBJDIR)/$*.P >$(OBJDIR)/$*.d
	@rm -f $(OBJDIR)/$*.P

# Project Rules
$(AMRHLIB_STATIC): $(AMRHLIB_OBJ)
	$(AR) $(ARFLAGS) $@ $(AMRHLIB_OBJ)

$(AMRHLIB_SHARED): $(AMRHLIB_OBJ)
	$(CXX) $(OPTFLAGS) -shared $(AMRHLIB_OBJ) $(AMRLib) $(IEEEIOLib) $(MathLib) -o $@

$(PAMRH): $(PAMRH_OBJ) $(AMRHLIB)
	$(CXX) $(CXXFLAGS) $(PAMRH_OBJ) -L. $(LIBPATH) -o $@ $(PAMRH_LIBS)

$(WSC): $(WSC_OBJ) $(AMRHLIB)
	$(CXX) $(CXXFLAGS) $(WSC_OBJ) -L. $(LIBPATH) -o $@ $(WSC_LIBS)

$(VOL2IEEEIO): $(VOL2IEEEIO_OBJ) $(AMRHLIB)
	$(CXX) $(CXXFLAGS) $(VOL2IEEEIO_OBJ) -L. $(LIBPATH) -o $@ $(VOL2IEEEIO_LIBS)

install: $(TARGETS)
	$(INSTALL) -d $(INSTALLINCPATH) $(INSTALLLIBPATH)
	$(INSTALL) -m 644 $(AMRHLIB) $(INSTALLLIBPATH)
	$(INSTALL) -m 644 $(AMRHLIB_INC) $(INSTALLINCPATH) 

clean:  
	$(RM) -rf $(OBJDIR) core Makedepend.$(TARGET_OS) tags

setup:
	mkdir $(OBJDIR)

distclean: clean
	$(RM) -f $(PROJ_TARGETS)

ifeq ($(CXX), g++)
sinclude $(DEPENDENCIES)
else
sinclude Makedepend.$(TARGET_OS)
endif