/
Makefile.mingw32
67 lines (55 loc) · 2.16 KB
/
Makefile.mingw32
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
CXX = g++
F95 = gfortran
CXXFLAGS = -std=c++11 -O2 -fopenmp -fPIC -DTIXML_USE_STL
LDFLAGS = -lGLU32 -lgfortran -lquadmath -fopenmp
CXXFLAGS_D = -std=c++11 -g -DDEBUG -DTIXML_USE_STL
LDFLAGS_D = -lGLU32 -lgfortran -lquadmath
INCLUDES = -I./Sky -I./Tinyxml -I./VFCLibrary
DEFINES =
AR = ar
EXEC = CitySim
EXEC_D = CitySimd
LIB = lib$(EXEC).dll
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)
move $(EXEC).exe ./bin
$(EXEC_D): maind.o $(MAINOBJ_D) $(LAPACKOBJ_D) $(SKYOBJ_D) $(TINYXMLOBJ_D) $(VFCLIBRARYOBJ_D)
$(CXX) -o $@ $^ $(LDFLAGS_D)
move $(EXEC_D).exe ./bin
$(LIB): $(MAINOBJ) $(LAPACKOBJ) $(SKYOBJ) $(TINYXMLOBJ) $(VFCLIBRARYOBJ)
$(AR) rcs $@ $^
move $(LIB) ./lib/CitySim
xcopy .\\*.h .\\lib\\CitySim /y
xcopy .\\Sky\\*.h .\\lib\\CitySim /y
xcopy .\\Tinyxml\\*.h .\\lib\\CitySim /y
xcopy .\\VFCLibrary\\*.h .\\lib\\CitySim /y
xcopy .\\VFCLibrary\\*.inl .\\lib\\CitySim /y
xcopy main.cpp .\\lib\\CitySim /y
@echo all: main.cpp $(LIB) > ./lib/CitySim/Makefile
@echo $(CXX) $(CXXFLAGS) -L. main.cpp -l$(EXEC) $(LDFLAGS) -o $(EXEC) >> ./lib/CitySim/Makefile
%.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:
del /f /s *.o