-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathMakefile
85 lines (62 loc) · 2.18 KB
/
Makefile
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
#General options
WX = 3.2
GTK = 3
# General compiler options
CXX = g++
CFLAGS = -Wall -std=c++11
# Includes
INCL = -ICommon/ -I/usr/local/lib/wx/include/gtk$(GTK)-unicode-$(WX) -I/usr/local/include/wx-$(WX)
# Release flags
RELCFLAGS = -DNDEBUG -D_FILE_OFFSET_BITS=64 -DWXUSINGDLL -D__WXGTK__ -pthread
# Debug flags
DBGCFLAGS = -D_FILE_OFFSET_BITS=64 -DWXUSINGDLL -D__WXGTK__ -pthread
# Libraries
WXLFLAGS = -lwx_gtk$(GTK)u_xrc-$(WX) -lwx_gtk$(GTK)u_webview-$(WX) -lwx_gtk$(GTK)u_stc-$(WX) -lwx_gtk$(GTK)u_richtext-$(WX) -lwx_gtk$(GTK)u_ribbon-$(WX) -lwx_gtk$(GTK)u_propgrid-$(WX) -lwx_gtk$(GTK)u_aui-$(WX) -lwx_gtk$(GTK)u_gl-$(WX) -lwx_gtk$(GTK)u_html-$(WX) -lwx_gtk$(GTK)u_qa-$(WX) -lwx_gtk$(GTK)u_adv-$(WX) -lwx_gtk$(GTK)u_core-$(WX) -lwx_baseu_xml-$(WX) -lwx_baseu_net-$(WX) -lwx_baseu-$(WX)
LDFLAGS = $(WXLFLAGS)
LDDFLAGS = $(WXLFLAGS)
# Paths & files
# !!! >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
SRCPATH = Common
SRC = main.cpp
OBJS = $(SRC:.cpp=.o)
EXE = wxWidgetsApp
RELDIR = Release_linux/obj
RELBIN = Release_linux
RELEXE = $(RELBIN)/$(EXE)
RELOBJS = $(addprefix $(RELDIR)/, $(OBJS))
DBGDIR = Debug_linux/obj
DBGBIN = Debug_linux
DBGEXE = $(DBGBIN)/$(EXE)
DBGOBJS = $(addprefix $(DBGDIR)/, $(OBJS))
All: Clean Prepare Release Debug
Remake: remakeRelease remakeDebug
remakeRelease: cleanRelease Release
remakeDebug: cleanDebug Debug
Prepare: prepareRelease prepareDebug
# Release
Release: prepareRelease doRelease
prepareRelease:
mkdir -p $(RELDIR)
mkdir -p $(RELBIN)
doRelease: $(RELOBJS)
$(CXX) $(RELOBJS) $(LDFLAGS) -o $(RELEXE)
$(RELOBJS): $(RELDIR)/%.o: $(SRCPATH)/%.cpp
$(CXX) -c $< $(CFLAGS) $(RELCFLAGS) $(INCL) -o $@
# Debug
Debug: prepareDebug doDebug
prepareDebug:
mkdir -p $(DBGDIR)
mkdir -p $(DBGBIN)
doDebug: $(DBGOBJS)
$(CXX) $(DBGOBJS) $(LDDFLAGS) -o $(DBGEXE)
$(DBGOBJS): $(DBGDIR)/%.o: $(SRCPATH)/%.cpp
$(CXX) -c $< $(CFLAGS) $(DBGCFLAGS) $(INCL) -o $@
# Clean
Clean: cleanRelease cleanDebug
cleanRelease:
rm -f -v $(RELDIR)/*.o $(RELEXE)
cleanDebug:
rm -f -v $(DBGDIR)/*.o $(DBGEXE)
# Other
.PHONY: All doRelease doDebug Prepare prepareRelease prepareDebug Clean cleanRelease cleanDebug Remake remakeRelase remakeDebug
# DO NOT DELETE