-
Notifications
You must be signed in to change notification settings - Fork 1
/
Makefile
executable file
·399 lines (323 loc) · 14.3 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
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
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
#SPDX-License-Identifier: EPL-2.0
#Copyright 2019 DaSoftver LLC. Written by Sergio Mijatovic.
#Licensed under Eclipse Public License - v 2.0. See LICENSE file.
#On the web https://vely.dev/ - this file is part of Vely framework.
#makefile for Vely
.DEFAULT_GOAL=build
SHELL:=/bin/bash
#shortcut for DEBUGINFO
DEBUGINFO=$(DI)
#short cut for Address Sanitizer, internal only
ASAN=$(A)
#get pcre2 version and libs
PCRE2_VER=$(shell pcre2-config --version)
PCRE2_LIBS=$(shell pcre2-config --libs-posix)
PCRE2_LIB_DL=$(shell echo -n "$(PCRE2_LIBS)" |sed -n 's/-l\([^[:space:]]*\).*$$/\1/gp')
#these must be the same (VV_PLATFORM_ID,VV_PLATFORM_VERSION) used in sys
OSNAME=$(shell . ./sys; echo -n $${VV_PLATFORM_ID})
OSVERSION=$(shell . ./sys; echo -n $${VV_PLATFORM_VERSION})
OSNAMEID=$(shell . ./sys; echo -n $${VV_OSNAME_ID})
SYSTEMTYPE=$(shell ./sys showtype)
SYSTEMID=$(shell ./sys showid)
PGCONF=$(shell ./sys pgconf)
ANNOBIN=$(shell ./sys annobin)
DATE=$(shell date +"%b-%d-%Y")
VV_OS_CLOSE_2=$(shell grep OS_Close /usr/include/fcgios.h|grep shutdown|wc -l)
#these 2 must match application name from config file from each application
CC=gcc
#get build version and release
PACKAGE_VERSION=$(shell . .version; echo $${PACKAGE_VERSION})
BUILDVER=$(shell echo $(PACKAGE_VERSION)|sed "s/\(.*\)\.\(.*\)\.\(.*\)/\1.\2/g")
BUILDREL=$(shell echo $(PACKAGE_VERSION)|sed "s/\(.*\)\.\(.*\)\.\(.*\)/\3/g")
ifeq ($(strip $(BUILDVER)),)
BUILDVER=2
endif
ifeq ($(strip $(BUILDREL)),)
BUILDREL=100
endif
ifeq ($(strip $(SYSTEMTYPE)),fedora)
V_LIB=$(shell rpm -E '%{_libdir}')/vely
else
V_LIB=/usr/lib/vely
endif
ifeq ($(strip $(SYSTEMTYPE)),fedora)
V_INC=$(shell rpm -E '%{_includedir}')/vely
else
V_INC=/usr/include/vely
endif
ifeq ($(strip $(SYSTEMTYPE)),fedora)
V_BIN=$(shell rpm -E '%{_bindir}')
else
V_BIN=/usr/bin
endif
ifeq ($(strip $(SYSTEMTYPE)),fedora)
V_MAN=$(shell rpm -E '%{_mandir}')/man2
else
V_MAN=/usr/share/man/man2
endif
#see if man pages exist (or if not, need reindex)
MANEXIST=$(shell if [ -d "$(V_MAN)" ]; then echo "1"; else echo "0"; fi)
ifeq ($(strip $(SYSTEMTYPE)),fedora)
V_VV_DATADIR=$(shell rpm -E '%{_datadir}')
V_VV_DOCS=$(shell rpm -E '%{_datadir}')/vely
else
V_VV_DATADIR=/usr/share
V_VV_DOCS=/usr/share/vely
endif
ifeq ($(strip $(SYSTEMID)),opensuse)
VV_FCGI_INCLUDE=-I /usr/include/fastcgi
else
VV_FCGI_INCLUDE=
endif
V_VV_EXAMPLES=$(V_VV_DOCS)/examples
ifeq ($(strip $(PGCONF)),yes)
VV_POSTGRES_INCLUDE=-I $(shell pg_config --includedir)
else
VV_POSTGRES_INCLUDE=$(shell pkg-config --cflags libpq)
endif
VV_MARIA_INCLUDE=$(shell mariadb_config --include)
VV_MARIA_LGPLCLIENT_LIBS=$(shell mariadb_config --libs)
#$(shell mariadb_config --libs_sys)
#based on DEBUGINFO from debug file, we use appropriate tags
#Note: we always use -g in order to get line number of where the problem is
#(optimization is still valid though)
OPTIM_COMP_DEBUG=-g3 -DDEBUG -rdynamic
OPTIM_COMP_PROD=-O3
OPTIM_LINK_PROD=
OPTIM_LINK_DEBUG=-rdynamic
ifeq ($(DEBUGINFO),1)
OPTIM_COMP=$(OPTIM_COMP_DEBUG)
OPTIM_LINK=$(OPTIM_LINK_DEBUG)
else
OPTIM_COMP=$(OPTIM_COMP_PROD)
OPTIM_LINK=$(OPTIM_LINK_PROD)
endif
ifeq ($(ASAN),1)
ASAN=-fsanitize=address -fsanitize-recover=address
else
ASAN=
endif
#C flags are as strict as we can do, in order to discover as many bugs as early on
CFLAGS=-std=gnu89 -Werror -Wall -Wextra -Wuninitialized -Wmissing-declarations -Wformat -Wno-format-zero-length -fsigned-char -fpic $(VV_MARIA_INCLUDE) $(VV_POSTGRES_INCLUDE) $(VV_FCGI_INCLUDE) -DVV_OSNAME_ID=$(OSNAMEID) -DVV_OSNAME="\"$(OSNAME)\"" -DVV_OSVERSION="\"$(OSVERSION)\"" -DVV_PKGVERSION="\"$(PACKAGE_VERSION)\"" $(OPTIM_COMP) $(ASAN)
#linker flags include mariadb (LGPL), crypto (OpenSSL, permissive license). This is for building object code that's part
#this is for installation at customer's site where we link VELY with mariadb (LGPL), crypto (OpenSSL)
LDFLAGS=-Wl,-rpath=$(DESTDIR)$(V_LIB) -L$(DESTDIR)$(V_LIB) $(OPTIM_LINK) $(ASAN)
#Libraries and executables must be 0755 or the packager (RPM) will say they are not satisfied
.PHONY: install
install:
install -m 0755 -d $(DESTDIR)/var/lib/vv/bld
install -m 0755 -d $(DESTDIR)$(V_INC)
install -D -m 0644 vely.h -t $(DESTDIR)$(V_INC)/
install -D -m 0644 vfcgi.h -t $(DESTDIR)$(V_INC)/
install -m 0755 -d $(DESTDIR)$(V_LIB)
install -D -m 0755 libvelypg.so -t $(DESTDIR)$(V_LIB)/
install -D -m 0755 libvelydb.so -t $(DESTDIR)$(V_LIB)/
install -D -m 0755 libvelylite.so -t $(DESTDIR)$(V_LIB)/
install -D -m 0755 libvelymys.so -t $(DESTDIR)$(V_LIB)/
install -D -m 0755 libvelysec.so -t $(DESTDIR)$(V_LIB)/
install -D -m 0755 libvelytree.so -t $(DESTDIR)$(V_LIB)/
install -D -m 0755 libvelycurl.so -t $(DESTDIR)$(V_LIB)/
install -D -m 0755 libvelypcre2.so -t $(DESTDIR)$(V_LIB)/
install -D -m 0755 libvelypcre2glibc.so -t $(DESTDIR)$(V_LIB)/
install -D -m 0755 libfcgively.so -t $(DESTDIR)$(V_LIB)/
install -D -m 0755 libvely.so -t $(DESTDIR)$(V_LIB)/
install -D -m 0755 libvelyfcli.so -t $(DESTDIR)$(V_LIB)/
install -D -m 0755 libvelyfsrv.so -t $(DESTDIR)$(V_LIB)/
install -D -m 0644 stub_sqlite.o -t $(DESTDIR)$(V_LIB)/
install -D -m 0644 stub_postgres.o -t $(DESTDIR)$(V_LIB)/
install -D -m 0644 stub_mariadb.o -t $(DESTDIR)$(V_LIB)/
install -D -m 0644 stub_gendb.o -t $(DESTDIR)$(V_LIB)/
install -D -m 0644 stub_fcgi.o -t $(DESTDIR)$(V_LIB)/
install -D -m 0644 stub_pcre2.o -t $(DESTDIR)$(V_LIB)/
install -D -m 0644 stub_curl.o -t $(DESTDIR)$(V_LIB)/
install -D -m 0644 stub_tree.o -t $(DESTDIR)$(V_LIB)/
install -D -m 0644 stub_crypto.o -t $(DESTDIR)$(V_LIB)/
install -D -m 0644 stub_before.o -t $(DESTDIR)$(V_LIB)/
install -D -m 0644 stub_after.o -t $(DESTDIR)$(V_LIB)/
install -D -m 0644 stub_startup.o -t $(DESTDIR)$(V_LIB)/
install -D -m 0644 v.vim -t $(DESTDIR)$(V_LIB)/
install -D -m 0644 vmakefile -t $(DESTDIR)$(V_LIB)/
install -D -m 0644 CHANGELOG -t $(DESTDIR)$(V_LIB)/
install -m 0755 -d $(DESTDIR)$(V_BIN)
install -D -m 0755 v1 -t $(DESTDIR)$(V_LIB)/
install -D -m 0755 vdiag -t $(DESTDIR)$(V_LIB)/
install -D -m 0755 vv -t $(DESTDIR)$(V_BIN)/
install -D -m 0755 vf -t $(DESTDIR)$(V_BIN)/
install -m 0755 -d $(DESTDIR)$(V_MAN)
install -D -m 0644 docs/*.2vv -t $(DESTDIR)$(V_MAN)/
mv $(DESTDIR)$(V_MAN)/index.2vv $(DESTDIR)$(V_MAN)/vely.2vv
install -D -m 0755 sys -t $(DESTDIR)$(V_LIB)/
sed -i "s|^[ ]*export[ ]*VV_LIBRARY_PATH[ ]*=.*|export VV_LIBRARY_PATH=$(V_LIB)|g" $(DESTDIR)$(V_LIB)/sys
sed -i "s|^[ ]*export[ ]*VV_LIBRARY_PATH[ ]*=.*|export VV_LIBRARY_PATH=$(V_LIB)|g" $(DESTDIR)$(V_BIN)/vv
sed -i "s|^[ ]*export[ ]*VV_INCLUDE_PATH[ ]*=.*|export VV_INCLUDE_PATH=$(V_INC)|g" $(DESTDIR)$(V_LIB)/sys
sed -i "s|^[ ]*export[ ]*VV_VERSION[ ]*=.*|export VV_VERSION=$(BUILDVER).$(BUILDREL)|g" $(DESTDIR)$(V_LIB)/sys
sed -i "s/\$$VERSION/$(BUILDVER).$(BUILDREL)/g" $(DESTDIR)$(V_MAN)/*.2vv
sed -i "s/\$$DATE/$(DATE)/g" $(DESTDIR)$(V_MAN)/*.2vv
for i in $$(ls $(DESTDIR)$(V_MAN)/*.2vv); do gzip -f $$i; done
install -m 0755 -d $(DESTDIR)$(V_VV_DOCS)
install -m 0755 -d $(DESTDIR)$(V_VV_EXAMPLES)
install -D -m 0644 docs/velydocker.tar.gz -t $(DESTDIR)$(V_VV_EXAMPLES)/
install -D -m 0644 docs/hash-server.tar.gz -t $(DESTDIR)$(V_VV_EXAMPLES)/
install -D -m 0644 docs/cookies.tar.gz -t $(DESTDIR)$(V_VV_EXAMPLES)/
install -D -m 0644 docs/create-table.tar.gz -t $(DESTDIR)$(V_VV_EXAMPLES)/
install -D -m 0644 docs/form.tar.gz -t $(DESTDIR)$(V_VV_EXAMPLES)/
install -D -m 0644 docs/sendmail.tar.gz -t $(DESTDIR)$(V_VV_EXAMPLES)/
install -D -m 0644 docs/stock.tar.gz -t $(DESTDIR)$(V_VV_EXAMPLES)/
install -D -m 0644 docs/file-manager.tar.gz -t $(DESTDIR)$(V_VV_EXAMPLES)/
install -D -m 0644 docs/multitenant-SaaS.tar.gz -t $(DESTDIR)$(V_VV_EXAMPLES)/
install -D -m 0644 docs/utility.tar.gz -t $(DESTDIR)$(V_VV_EXAMPLES)/
install -D -m 0644 docs/hello-world.tar.gz -t $(DESTDIR)$(V_VV_EXAMPLES)/
install -D -m 0644 docs/write-report.tar.gz -t $(DESTDIR)$(V_VV_EXAMPLES)/
install -D -m 0644 docs/json.tar.gz -t $(DESTDIR)$(V_VV_EXAMPLES)/
install -D -m 0644 docs/shopping.tar.gz -t $(DESTDIR)$(V_VV_EXAMPLES)/
echo -n "$(PCRE2_VER)" > pcre2_version; install -D -m 0755 pcre2_version -t $(DESTDIR)$(V_LIB)/
echo -n "$(PCRE2_LIBS)" > pcre2_libs; install -D -m 0755 pcre2_libs -t $(DESTDIR)$(V_LIB)/
#This must be last, in this order, as it saves and then applies SELinux policy where applicable.
#This runs during rpm creation or during sudo make install
#it does NOT run during rpm installation, there is post scriptlet that calls vely.sel to do that (VV_NO_SEL)
if [[ "$(SYSTEMTYPE)" == "fedora" && "$(SYSTEMID)" != "opensuse" ]]; then install -D -m 0644 vv.te -t $(DESTDIR)$(V_LIB)/selinux ; install -D -m 0644 vely.te -t $(DESTDIR)$(V_LIB)/selinux ; install -D -m 0644 vv.fc -t $(DESTDIR)$(V_LIB)/selinux ; install -D -m 0755 vely.sel -t $(DESTDIR)$(V_LIB)/selinux ; if [ "$(VV_NO_SEL)" != "1" ]; then ./vely.sel "$(DESTDIR)$(V_LIB)/selinux" "$(DESTDIR)$(V_VV_DATADIR)" "$(DESTDIR)$(V_BIN)"; fi ; fi
.PHONY: uninstall
uninstall:
@if [ ! -f "$(DESTDIR)$(V_LIB)/sys" ]; then echo "Vely not installed, cannot uninstall."; exit -1; else echo "Uninstalling Vely..."; fi
. $(DESTDIR)$(V_LIB)/sys
rm -rf $(DESTDIR)$(V_INC)
rm -f $(DESTDIR)$(V_BIN)/vv
rm -f $(DESTDIR)$(V_BIN)/vf
rm -f $(DESTDIR)$(V_MAN)/*.2vv
rm -rf $(DESTDIR)$(V_VV_DOCS)
rm -rf $(DESTDIR)$(V_LIB)
.PHONY: binary
binary:build
@;
.PHONY: build
build: libfcgively.so libvelyfcli.so libvelyfsrv.so libvely.so libvelydb.so libvelysec.so libvelymys.so libvelylite.so libvelypg.so libvelycurl.so libvelytree.so libvelypcre2.so libvelypcre2glibc.so v1.o stub_sqlite.o stub_postgres.o stub_mariadb.o stub_gendb.o stub_curl.o stub_tree.o stub_pcre2.o stub_fcgi.o stub_crypto.o stub_after.o stub_before.o stub_startup.o vf
@echo "Building version $(BUILDVER).$(BUILDREL)"
$(CC) -o v1 v1.o chandle.o velyrtc.o velymem.o hash.o $(LDFLAGS)
.PHONY: clean
clean:
touch *.c
touch *.h
rm -rf debian/vely
rm -rf *.tar.gz
rm -f pcre2_version pcre2_libs
#
# Other than VELY preprocessor, we do NOT use any libraries at customer's site -
# the Makefile for application (such as in hello world example) will link with
# those libraries AT customer site.
#
v1.o: v1.c
$(CC) -c -o $@ $< $(CFLAGS)
vf: vf.o
$(CC) -o vf vf.o $(LDFLAGS)
libfcgively.so: chandle.o json.o hash.o utf8.o fcgi_velyrt.o velyrtc.o velymem.o
rm -f libfcgively.so
$(CC) -shared -o libfcgively.so $^
if [ "$(DEBUGINFO)" != "1" ]; then strip --strip-unneeded libfcgively.so ; fi
libvely.so: chandle.o json.o hash.o utf8.o velyrt.o velyrtc.o velymem.o
rm -f libvely.so
$(CC) -shared -o libvely.so $^
if [ "$(DEBUGINFO)" != "1" ]; then strip --strip-unneeded libvely.so ; fi
libvelypg.so: pg.o
rm -f libvelypg.so
$(CC) -shared -o libvelypg.so $^
if [ "$(DEBUGINFO)" != "1" ]; then strip --strip-unneeded libvelypg.so ; fi
libvelylite.so: lite.o
rm -f libvelylite.so
$(CC) -shared -o libvelylite.so $^
if [ "$(DEBUGINFO)" != "1" ]; then strip --strip-unneeded libvelylite.so ; fi
libvelymys.so: mys.o
rm -f libvelymys.so
$(CC) -shared -o libvelymys.so $^
if [ "$(DEBUGINFO)" != "1" ]; then strip --strip-unneeded libvelymys.so ; fi
libvelydb.so: db.o
rm -f libvelydb.so
$(CC) -shared -o libvelydb.so $^
if [ "$(DEBUGINFO)" != "1" ]; then strip --strip-unneeded libvelydb.so ; fi
libvelysec.so: sec.o
rm -f libvelysec.so
$(CC) -shared -o libvelysec.so $^
if [ "$(DEBUGINFO)" != "1" ]; then strip --strip-unneeded libvelysec.so ; fi
libvelycurl.so: curl.o
rm -f libvelycurl.so
$(CC) -shared -o libvelycurl.so $^
if [ "$(DEBUGINFO)" != "1" ]; then strip --strip-unneeded libvelycurl.so ; fi
libvelytree.so: tree.o
rm -f libvelytree.so
$(CC) -shared -o libvelytree.so $^
if [ "$(DEBUGINFO)" != "1" ]; then strip --strip-unneeded libvelytree.so ; fi
libvelypcre2.so: pcre2.o
rm -f libvelypcre2.so
$(CC) -shared -o libvelypcre2.so $^
if [ "$(DEBUGINFO)" != "1" ]; then strip --strip-unneeded libvelypcre2.so ; fi
libvelypcre2glibc.so: pcre2glibc.o
rm -f libvelypcre2glibc.so
$(CC) -shared -o libvelypcre2glibc.so $^
if [ "$(DEBUGINFO)" != "1" ]; then strip --strip-unneeded libvelypcre2glibc.so ; fi
utf8.o: utf8.c vely.h
$(CC) -c -o $@ $< $(CFLAGS)
json.o: json.c vely.h
$(CC) -c -o $@ $< $(CFLAGS)
hash.o: hash.c vely.h
$(CC) -c -o $@ $< $(CFLAGS)
tree.o: tree.c vely.h
$(CC) -c -o $@ $< $(CFLAGS)
chandle.o: chandle.c vely.h
$(CC) -c -o $@ $< $(CFLAGS)
pg.o: pg.c vely.h
$(CC) -c -o $@ $< $(CFLAGS)
db.o: db.c vely.h
$(CC) -c -o $@ $< $(CFLAGS)
lite.o: lite.c vely.h
$(CC) -c -o $@ $< $(CFLAGS)
mys.o: mys.c vely.h
$(CC) -c -o $@ $< $(CFLAGS)
sec.o: sec.c vely.h
$(CC) -c -o $@ $< $(CFLAGS)
stub_after.o: stub_after.c vely.h
$(CC) -c -o $@ $< $(CFLAGS)
stub_before.o: stub_before.c vely.h
$(CC) -c -o $@ $< $(CFLAGS)
stub_startup.o: stub_startup.c vely.h
$(CC) -c -o $@ $< $(CFLAGS)
stub_crypto.o: stub.c vely.h
$(CC) -c -o $@ -DVV_CRYPTO $< $(CFLAGS)
stub_curl.o: stub.c vely.h
$(CC) -c -o $@ -DVV_CURL $< $(CFLAGS)
stub_tree.o: stub.c vely.h
$(CC) -c -o $@ -DVV_TREE $< $(CFLAGS)
stub_pcre2.o: stub.c vely.h
$(CC) -c -o $@ -DVV_PCRE2 $< $(CFLAGS)
stub_fcgi.o: stub.c vely.h
$(CC) -c -o $@ -DVV_FCGI $< $(CFLAGS)
stub_sqlite.o: stub.c vely.h
$(CC) -c -o $@ -DVV_STUB_SQLITE $< $(CFLAGS)
stub_postgres.o: stub.c vely.h
$(CC) -c -o $@ -DVV_STUB_POSTGRES $< $(CFLAGS)
stub_mariadb.o: stub.c vely.h
$(CC) -c -o $@ -DVV_STUB_MARIADB $< $(CFLAGS)
stub_gendb.o: stub.c vely.h
$(CC) -c -o $@ -DVV_STUB_GENDB $< $(CFLAGS)
curl.o: curl.c vely.h
$(CC) -c -o $@ $< $(CFLAGS)
pcre2.o: pcre2.c vely.h
NEWPCRE2=$$(./sys greater_than_eq "$(PCRE2_VER)" "10.37"); if [ "$$NEWPCRE2" == "0" ]; then FORCE_POSIXREGEX="-DVV_C_POSIXREGEX"; else FORCE_POSIXREGEX="-DPCRE2_LIB_DL=\"$(PCRE2_LIB_DL)\""; fi ; $(CC) -c -o $@ $< $$FORCE_POSIXREGEX $(CFLAGS)
pcre2glibc.o: pcre2.c vely.h
$(CC) -c -o $@ $< -DVV_C_POSIXREGEX $(CFLAGS)
velyrtc.o: velyrtc.c vely.h
$(CC) -c -o $@ $< $(CFLAGS)
fcgi_velyrt.o: velyrt.c vely.h
$(CC) -c -o $@ $< $(CFLAGS)
velyrt.o: velyrt.c vely.h
$(CC) -c -DVV_COMMAND -o $@ $< $(CFLAGS)
velymem.o: velymem.c vely.h
$(CC) -c -o $@ $< $(CFLAGS)
vf.o: vf.c
$(CC) -c -o $@ $< $(CFLAGS)
libvelyfcli.so: fcli.c vfcgi.h
rm -f libvelyfcli.so
$(CC) -shared -o libvelyfcli.so $^ $(CFLAGS)
if [ "$(DEBUGINFO)" != "1" ]; then strip --strip-unneeded libvelyfcli.so ; fi
libvelyfsrv.so: fcli.c vfcgi.h
rm -f libvelyfsrv.so
$(CC) -shared -o libvelyfsrv.so $^ $(CFLAGS) -DVV_VELYSRV
if [ "$(DEBUGINFO)" != "1" ]; then strip --strip-unneeded libvelyfsrv.so ; fi