-
-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathcommon.mk
226 lines (208 loc) · 6.74 KB
/
common.mk
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
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
APPS = vkvm keyTest
COMMA = ,
vkvm_version = 1.2.3
vkvm_version_nums = $(subst .,$(COMMA),$(vkvm_version)),0
vkvm_version_date = 2024-11-04
vkvm_author = Daniel Starke
CPPMETAFLAGS = '-DVKVM_VERSION="$(vkvm_version) ($(vkvm_version_date))"' '-DVKVM_VERSION_NUMS=$(vkvm_version_nums)' '-DVKVM_AUTHOR="$(vkvm_author)"'
CPPFLAGS += $(CPPMETAFLAGS)
ifeq (1,$(TRACE))
CPPFLAGS += -DVKVM_TRACE
endif
vkvm_obj = \
libpcf/cvutf8 \
libpcf/natcmps \
libpcf/serial \
pcf/color/SplitColor \
pcf/image/Draw \
pcf/image/Filter \
pcf/image/Svg \
pcf/gui/HoverButton \
pcf/gui/HoverChoice \
pcf/gui/HoverDropDown \
pcf/gui/ScrollableValueInput \
pcf/gui/SvgButton \
pcf/gui/SvgData \
pcf/gui/SvgView \
pcf/gui/Utility \
pcf/gui/VkvmControl \
pcf/gui/VkvmView \
pcf/serial/Port \
pcf/serial/Vkvm \
pcf/video/Capture \
pcf/UtilityLinux \
vkvm
vkvm_lib = \
libfltk \
libfltk_gl \
$(OSLIBS)
keyTest_obj = \
libpcf/serial \
pcf/serial/Vkvm \
keyTest
keyTest_lib = $(OSLIBS)
all: $(DSTDIR) $(addprefix $(DSTDIR)/,$(addsuffix $(BINEXT),$(APPS)))
.PHONY: $(DSTDIR)
$(DSTDIR):
mkdir -p $(DSTDIR)
.PHONY: clean
clean:
$(RM) -r $(DSTDIR)/*
ifeq (,$(strip $(WINDRES)))
$(DSTDIR)/vkvm$(BINEXT): $(addprefix $(DSTDIR)/,$(addsuffix $(OBJEXT),$(vkvm_obj)))
$(AR) rs $(DSTDIR)/vkvm.a $+
$(LD) $(LDFLAGS) $(LDWINAPP) -o $@ $(DSTDIR)/vkvm.a $(vkvm_lib:lib%=-l%)
else
$(DSTDIR)/vkvm$(BINEXT): $(addprefix $(DSTDIR)/,$(addsuffix $(OBJEXT),$(vkvm_obj))) | $(DSTDIR)/version$(OBJEXT)
$(AR) rs $(DSTDIR)/vkvm.a $+
$(LD) $(LDFLAGS) $(LDWINAPP) -o $@ $(DSTDIR)/vkvm.a $(vkvm_lib:lib%=-l%) $(DSTDIR)/version$(OBJEXT)
endif
$(DSTDIR)/keyTest$(BINEXT): $(addprefix $(DSTDIR)/,$(addsuffix $(OBJEXT),$(keyTest_obj)))
$(AR) rs $(DSTDIR)/keyTest.a $+
$(LD) $(LDFLAGS) -o $@ $(DSTDIR)/keyTest.a $(keyTest_lib:lib%=-l%)
$(DSTDIR)/%$(OBJEXT): $(SRCDIR)/%$(CEXT)
mkdir -p "$(dir $@)"
$(CC) $(CWFLAGS) $(CPPFLAGS) $(CFLAGS) -o $@ -c $<
$(DSTDIR)/%$(OBJEXT): $(SRCDIR)/%$(CXXEXT)
mkdir -p "$(dir $@)"
$(CXX) $(CWFLAGS) $(CPPFLAGS) $(CXXFLAGS) -o $@ -c $<
$(DSTDIR)/%$(OBJEXT): $(SRCDIR)/%$(RCEXT)
mkdir -p "$(dir $@)"
$(CXX) -x c++ -E $(CPPMETAFLAGS) -o [email protected] $<
$(WINDRES) [email protected] $@
$(SRCDIR)/license.hpp: LICENSE $(SCRIPTDIR)/convert-license.sh
vkvm_author="$(vkvm_author)" $(SCRIPTDIR)/convert-license.sh LICENSE $@
# dependencies
$(DSTDIR)/vkvm$(OBJEXT): \
$(SRCDIR)/vkm-periphery/UsbKeys.hpp \
$(SRCDIR)/libpcf/cvutf8.h \
$(SRCDIR)/libpcf/target.h \
$(SRCDIR)/pcf/color/SplitColor.hpp \
$(SRCDIR)/pcf/color/Utility.hpp \
$(SRCDIR)/pcf/gui/HoverButton.hpp \
$(SRCDIR)/pcf/gui/Utility.hpp \
$(SRCDIR)/pcf/gui/VkvmControl.hpp \
$(SRCDIR)/pcf/gui/VkvmView.hpp \
$(SRCDIR)/pcf/image/Draw.hpp \
$(SRCDIR)/pcf/serial/Port.hpp \
$(SRCDIR)/pcf/serial/Vkvm.hpp \
$(SRCDIR)/pcf/video/Capture.hpp \
$(SRCDIR)/pcf/UtilityLinux.hpp \
$(SRCDIR)/pcf/Utility.hpp
$(DSTDIR)/keyTest$(OBJEXT): \
$(SRCDIR)/vkm-periphery/UsbKeys.hpp \
$(SRCDIR)/libpcf/serial.h \
$(SRCDIR)/libpcf/target.h \
$(SRCDIR)/pcf/serial/Vkvm.hpp
$(DSTDIR)/libpcf/cvutf8$(OBJEXT): \
$(SRCDIR)/libpcf/cvutf8.h
$(DSTDIR)/libpcf/natcmps$(OBJEXT): \
$(SRCDIR)/libpcf/natcmp.i \
$(SRCDIR)/libpcf/natcmps.h
$(DSTDIR)/libpcf/serial$(OBJEXT): \
$(SRCDIR)/libpcf/serial.h
$(DSTDIR)/pcf/color/SplitColor$(OBJEXT): \
$(SRCDIR)/pcf/color/SplitColor.hpp
$(DSTDIR)/pcf/gui/DynWidthButton$(OBJEXT): \
$(SRCDIR)/pcf/gui/DynWidthButton.hpp \
$(SRCDIR)/pcf/gui/HoverButton.hpp
$(DSTDIR)/pcf/gui/HoverButton$(OBJEXT): \
$(SRCDIR)/pcf/gui/HoverButton.hpp
$(DSTDIR)/pcf/gui/HoverChoice$(OBJEXT): \
$(SRCDIR)/pcf/gui/HoverChoice.hpp
$(DSTDIR)/pcf/gui/HoverDropDown$(OBJEXT): \
$(SRCDIR)/pcf/gui/HoverDropDown.hpp
$(DSTDIR)/pcf/gui/ScrollableValueInput$(OBJEXT): \
$(SRCDIR)/pcf/gui/ScrollableValueInput.hpp
$(DSTDIR)/pcf/gui/SvgButton$(OBJEXT): \
$(SRCDIR)/extern/nanosvg.h \
$(SRCDIR)/extern/nanosvgrast.h \
$(SRCDIR)/pcf/gui/SvgButton.hpp \
$(SRCDIR)/pcf/gui/Utility.hpp \
$(SRCDIR)/pcf/image/Filter.hpp \
$(SRCDIR)/pcf/image/Svg.hpp
$(DSTDIR)/pcf/gui/SvgData$(OBJEXT): \
$(SRCDIR)/pcf/gui/SvgData.hpp
$(DSTDIR)/pcf/gui/SvgView$(OBJEXT): \
$(SRCDIR)/pcf/gui/SvgView.hpp
$(DSTDIR)/pcf/gui/Utility$(OBJEXT): \
$(SRCDIR)/pcf/gui/Utility.hpp \
$(SRCDIR)/pcf/Utility.hpp
$(DSTDIR)/pcf/gui/VkvmControl$(OBJEXT): \
$(SRCDIR)/vkm-periphery/UsbKeys.hpp \
$(SRCDIR)/extern/nanosvg.h \
$(SRCDIR)/extern/nanosvgrast.h \
$(SRCDIR)/libpcf/cvutf8.h \
$(SRCDIR)/libpcf/natcmps.h \
$(SRCDIR)/libpcf/target.h \
$(SRCDIR)/pcf/color/Utility.hpp \
$(SRCDIR)/pcf/gui/HoverButton.hpp \
$(SRCDIR)/pcf/gui/HoverChoice.hpp \
$(SRCDIR)/pcf/gui/HoverDropDown.hpp \
$(SRCDIR)/pcf/gui/SvgButton.hpp \
$(SRCDIR)/pcf/gui/SvgData.hpp \
$(SRCDIR)/pcf/gui/SvgView.hpp \
$(SRCDIR)/pcf/gui/Utility.hpp \
$(SRCDIR)/pcf/gui/VkvmControl.hpp \
$(SRCDIR)/pcf/gui/VkvmView.hpp \
$(SRCDIR)/pcf/image/Filter.hpp \
$(SRCDIR)/pcf/image/Svg.hpp \
$(SRCDIR)/pcf/serial/Port.hpp \
$(SRCDIR)/pcf/serial/Vkvm.hpp \
$(SRCDIR)/pcf/video/Capture.hpp \
$(SRCDIR)/pcf/Cloneable.hpp \
$(SRCDIR)/pcf/Utility.hpp \
$(SRCDIR)/license.hpp
$(DSTDIR)/pcf/gui/VkvmView$(OBJEXT): \
$(SRCDIR)/pcf/color/Utility.hpp \
$(SRCDIR)/pcf/gui/Utility.hpp \
$(SRCDIR)/pcf/gui/VkvmView.hpp \
$(SRCDIR)/pcf/video/Capture.hpp \
$(SRCDIR)/pcf/Cloneable.hpp \
$(SRCDIR)/pcf/Utility.hpp
$(DSTDIR)/pcf/image/Draw$(OBJEXT): \
$(SRCDIR)/pcf/color/SplitColor.hpp \
$(SRCDIR)/pcf/image/Draw.hpp
$(DSTDIR)/pcf/image/Filter$(OBJEXT): \
$(SRCDIR)/pcf/color/SplitColor.hpp \
$(SRCDIR)/pcf/image/Filter.hpp
$(DSTDIR)/pcf/image/Svg$(OBJEXT): \
$(SRCDIR)/extern/nanosvg.h \
$(SRCDIR)/extern/nanosvgrast.h \
$(SRCDIR)/pcf/image/Svg.hpp
$(DSTDIR)/pcf/serial/Port$(OBJEXT): \
$(SRCDIR)/vkm-periphery/Meta.hpp \
$(SRCDIR)/libpcf/cvutf8.h \
$(SRCDIR)/libpcf/target.h \
$(SRCDIR)/pcf/serial/Port.hpp \
$(SRCDIR)/pcf/serial/PortLinux.ipp \
$(SRCDIR)/pcf/serial/PortWin.ipp \
$(SRCDIR)/pcf/ScopeExit.hpp \
$(SRCDIR)/pcf/UtilityLinux.hpp
$(DSTDIR)/pcf/serial/Vkvm$(OBJEXT): \
$(SRCDIR)/vkm-periphery/UsbKeys.hpp \
$(SRCDIR)/libpcf/serial.h \
$(SRCDIR)/libpcf/target.h \
$(SRCDIR)/pcf/serial/Vkvm.hpp \
$(SRCDIR)/pcf/ScopeExit.hpp
$(DSTDIR)/pcf/video/Capture$(OBJEXT): \
$(SRCDIR)/vkm-periphery/Framing.hpp \
$(SRCDIR)/vkm-periphery/Protocol.hpp \
$(SRCDIR)/libpcf/cvutf8.h \
$(SRCDIR)/libpcf/target.h \
$(SRCDIR)/pcf/color/Utility.hpp \
$(SRCDIR)/pcf/gui/HoverChoice.hpp \
$(SRCDIR)/pcf/gui/ScrollableValueInput.hpp \
$(SRCDIR)/pcf/gui/Utility.hpp \
$(SRCDIR)/pcf/video/Capture.hpp \
$(SRCDIR)/pcf/video/CaptureDirectShow.ipp \
$(SRCDIR)/pcf/video/CaptureVideo4Linux2.ipp \
$(SRCDIR)/pcf/Cloneable.hpp \
$(SRCDIR)/pcf/ScopeExit.hpp \
$(SRCDIR)/pcf/Utility.hpp \
$(SRCDIR)/pcf/UtilityLinux.hpp \
$(SRCDIR)/pcf/UtilityWindows.hpp
$(DSTDIR)/pcf/UtilityLinux$(OBJEXT): \
$(SRCDIR)/libpcf/target.h \
$(SRCDIR)/pcf/UtilityLinux.hpp \
$(SRCDIR)/pcf/Utility.hpp