/
Makefile.mac
74 lines (61 loc) · 2.42 KB
/
Makefile.mac
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
CXX = clang++
F95 = gfortran
CXXFLAGS = -std=c++11 -O2 -fPIC -DTIXML_USE_STL -DMONOTHREAD -Wno-unused-parameter
LDFLAGS = -lgfortran -L/usr/local/lib -framework OpenGL
CXXFLAGS_D = -std=c++11 -g -DDEBUG -DTIXML_USE_STL
LDFLAGS_D = -lgfortran -L/usr/local/lib -framework OpenGL
INCLUDES = -I./Sky -I./Tinyxml -I./VFCLibrary -I./CitySimWS/src
DEFINES =
AR = ar
EXEC = CitySim
EXEC_D = CitySimd
LIB = lib$(EXEC).a
MAINSRC = building.cpp district.cpp models.cpp plant.cpp scene.cpp zone.cpp climate.cpp occupants.cpp result.cpp util.cpp surface.cpp
LAPACKSRC = $(wildcard ./LAPACK/*.f)
SKYSRC = $(wildcard ./Sky/*.cpp)
TINYXMLSRC = $(wildcard ./Tinyxml/*.cpp)
VFCLIBRARYSRC = $(wildcard ./VFCLibrary/*.cpp)
MAINOBJ = $(patsubst %.cpp, %.o, $(MAINSRC))
LAPACKOBJ = $(patsubst %.f, %.o, $(LAPACKSRC))
SKYOBJ = $(patsubst %.cpp, %.o, $(SKYSRC))
TINYXMLOBJ = $(patsubst %.cpp, %.o, $(TINYXMLSRC))
VFCLIBRARYOBJ = $(patsubst %.cpp, %.o, $(VFCLIBRARYSRC))
MAINOBJ_D = $(patsubst %.cpp, %d.o, $(MAINSRC))
LAPACKOBJ_D = $(patsubst %.f, %d.o, $(LAPACKSRC))
SKYOBJ_D = $(patsubst %.cpp, %d.o, $(SKYSRC))
TINYXMLOBJ_D = $(patsubst %.cpp, %d.o, $(TINYXMLSRC))
VFCLIBRARYOBJ_D = $(patsubst %.cpp, %d.o, $(VFCLIBRARYSRC))
all: $(EXEC) $(EXEC_D) $(LIB)
$(EXEC): main.o $(MAINOBJ) $(LAPACKOBJ) $(SKYOBJ) $(TINYXMLOBJ) $(VFCLIBRARYOBJ)
$(CXX) -o $@ $^ $(LDFLAGS)
cp $(EXEC) ~/bin
rm $(EXEC)
$(EXEC_D): maind.o $(MAINOBJ_D) $(LAPACKOBJ_D) $(SKYOBJ_D) $(TINYXMLOBJ_D) $(VFCLIBRARYOBJ_D)
$(CXX) -o $@ $^ $(LDFLAGS_D)
cp $(EXEC_D) ~/bin
rm $(EXEC_D)
$(LIB): $(MAINOBJ) $(LAPACKOBJ) $(SKYOBJ) $(TINYXMLOBJ) $(VFCLIBRARYOBJ)
$(AR) rcs $@ $^
cp $(LIB) ~/lib/CitySim
cp $(wildcard ./*.h) ~/lib/CitySim
cp $(wildcard ./Sky/*.h) ~/lib/CitySim
cp $(wildcard ./Tinyxml/*.h) ~/lib/CitySim
cp $(wildcard ./VFCLibrary/*.h) ~/lib/CitySim
cp $(wildcard ./VFCLibrary/*.inl) ~/lib/CitySim
cp main.cpp ~/lib/CitySim
@echo "all: main.cpp $(LIB)" > ~/lib/CitySim/Makefile
@echo " $(CXX) $(CXXFLAGS) -L. main.cpp -l$(EXEC) $(LDFLAGS) -o $(EXEC)" >> ~/lib/CitySim/Makefile
rm $(LIB)
%.o: %.cpp
$(CXX) $(INCLUDES) $(DEFINES) $(CXXFLAGS) -c $< -o $*.o
%.o: %.f
$(F95) -c -O2 $< -o $*.o
%d.o: %.cpp
$(CXX) $(INCLUDES) $(DEFINES) $(CXXFLAGS_D) -c $< -o $*d.o
%d.o: %.f
$(F95) -c -g $< -o $*d.o
clean: $(MAINOBJ) $(LAPACKOBJ) $(SKYOBJ) $(TINYXMLOBJ) $(VFCLIBRARYOBJ) $(MAINOBJ_D) $(LAPACKOBJ_D) $(SKYOBJ_D) $(TINYXMLOBJ_D) $(VFCLIBRARYOBJ_D)
rm -f $^
rm -f *.o
clear:
rm -f *.o