summaryrefslogtreecommitdiff
path: root/sample/sample-plugins/Makefile.plugins
blob: 44c9cea11f7f59ac1dcfc37a6b55348f17c4e17a (plain)
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
#  SPDX-License-Identifier: GPL-2.0-only
#
#  Copyright (C) 2020-2021 OpenVPN Inc <sales@openvpn.net>
#

#
# Plug-ins to build - listed entries should not carry any extensions
#
PLUGINS = \
	defer/simple \
	keying-material-exporter-demo/keyingmaterialexporter \
	log/log log/log_v3 \
	simple/base64 \
	simple/simple \
	client-connect/sample-client-connect

# All the plugins to build - rewritten with .so extension
all : $(foreach var, $(PLUGINS), $(var).so)

# Do not automatically remove object files
# This is a special Make setting, to avoid adding an implicit
# 'rm' command on object files - due to the .c.o/%.so rules below
.PRECIOUS: %.o

# Compile step
.c.o :
	test -d `dirname $@` || $(MKDIR_P) `dirname $@`; \
	$(CC) -c -o $@ $(CFLAGS) $(AM_CPPFLAGS) -fPIC $<

# Link step
%.so : %.o
	$(CC) $(LDFLAGS) -shared -fPIC -o $@ $<

# Clean up all build object and shared object files
clean :
	rm -f $(foreach var, $(PLUGINS), $(var).o) \
	$(foreach var, $(PLUGINS), $(var).so)