plugins: Wire up rust plugin support for NBD_INFO_INIT_STATE
[nbdkit/ericb.git] / server / Makefile.am
blob465d5aa3cbdefb20a9a7d98c32415a59b84d6092
1 # nbdkit
2 # Copyright (C) 2013-2019 Red Hat Inc.
4 # Redistribution and use in source and binary forms, with or without
5 # modification, are permitted provided that the following conditions are
6 # met:
8 # * Redistributions of source code must retain the above copyright
9 # notice, this list of conditions and the following disclaimer.
11 # * Redistributions in binary form must reproduce the above copyright
12 # notice, this list of conditions and the following disclaimer in the
13 # documentation and/or other materials provided with the distribution.
15 # * Neither the name of Red Hat nor the names of its contributors may be
16 # used to endorse or promote products derived from this software without
17 # specific prior written permission.
19 # THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND
20 # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
21 # THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
22 # PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR
23 # CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24 # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25 # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
26 # USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
27 # ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
28 # OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
29 # OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
30 # SUCH DAMAGE.
32 include $(top_srcdir)/common-rules.mk
34 EXTRA_DIST = nbdkit.syms
36 sbin_PROGRAMS = nbdkit
38 nbdkit_SOURCES = \
39         backend.c \
40         background.c \
41         captive.c \
42         connections.c \
43         crypto.c \
44         debug.c \
45         debug-flags.c \
46         extents.c \
47         filters.c \
48         internal.h \
49         locks.c \
50         log.c \
51         log-stderr.c \
52         log-syslog.c \
53         main.c \
54         options.h \
55         plugins.c \
56         protocol.c \
57         protocol-handshake.c \
58         protocol-handshake-oldstyle.c \
59         protocol-handshake-newstyle.c \
60         public.c \
61         quit.c \
62         signals.c \
63         socket-activation.c \
64         sockets.c \
65         threadlocal.c \
66         usergroup.c \
67         $(top_srcdir)/include/nbdkit-plugin.h \
68         $(top_srcdir)/include/nbdkit-filter.h \
69         $(NULL)
70 if ENABLE_LIBFUZZER
71 nbdkit_SOURCES += fuzzer.c
72 endif
74 nbdkit_CPPFLAGS = \
75         -Dbindir=\"$(bindir)\" \
76         -Dlibdir=\"$(libdir)\" \
77         -Dmandir=\"$(mandir)\" \
78         -Dplugindir=\"$(plugindir)\" \
79         -Dfilterdir=\"$(filterdir)\" \
80         -Dsbindir=\"$(sbindir)\" \
81         -Dsysconfdir=\"$(sysconfdir)\" \
82         -I$(top_srcdir)/include \
83         -I$(top_srcdir)/common/include \
84         -I$(top_srcdir)/common/protocol \
85         -I$(top_srcdir)/common/utils \
86         $(NULL)
87 nbdkit_CFLAGS = \
88         $(PTHREAD_CFLAGS) \
89         $(WARNINGS_CFLAGS) \
90         $(GNUTLS_CFLAGS) \
91         $(LIBSELINUX_CFLAGS) \
92         $(VALGRIND_CFLAGS) \
93         $(NULL)
94 nbdkit_LDADD = \
95         $(GNUTLS_LIBS) \
96         $(LIBSELINUX_LIBS) \
97         $(DL_LIBS) \
98         $(top_builddir)/common/protocol/libprotocol.la \
99         $(top_builddir)/common/utils/libutils.la \
100         $(NULL)
101 nbdkit_LDFLAGS = \
102         $(PTHREAD_LIBS) \
103         $(DL_LDFLAGS) \
104         $(NULL)
105 if USE_LINKER_SCRIPT_FOR_SERVER
106 # We have to disable the linker script for libFuzzer because Clang
107 # adds loads of fuzzer and ASAN-related symbols that are required by
108 # the plugins but which our linker script tries to hide.
109 if !ENABLE_LIBFUZZER
110 nbdkit_LDFLAGS += -Wl,--version-script=$(srcdir)/nbdkit.syms
111 endif
112 endif
114 # synopsis.c is generated from docs/synopsis.txt where it is also
115 # used to generate the man page.  It is included in main.c.
117 BUILT_SOURCES = synopsis.c
118 EXTRA_DIST += synopsis.c
119 nbdkit_DEPENDENCIES = synopsis.c
120 CLEANFILES += synopsis.c
121 main.c: synopsis.c
122 synopsis.c: $(top_srcdir)/docs/synopsis.txt
123         rm -f $@ $@-t
124         $(SED) -e 's/\(.*\)/"\1\\n"/g' $< > $@-t
125         mv $@-t $@
127 # pkg-config / pkgconf
129 pkgconfigdir = $(libdir)/pkgconfig
130 pkgconfig_DATA = nbdkit.pc
132 # Unit testing
134 TESTS = test-public
136 check_PROGRAMS = test-public
138 test_public_SOURCES = \
139         test-public.c \
140         public.c \
141         extents.c \
142         $(NULL)
143 test_public_CPPFLAGS = \
144         -I$(top_srcdir)/include \
145         -I$(top_srcdir)/common/include \
146         -I$(top_srcdir)/common/protocol \
147         -I$(top_srcdir)/common/utils \
148         $(NULL)
149 test_public_CFLAGS = $(WARNINGS_CFLAGS) $(VALGRIND_CFLAGS)
150 test_public_LDADD = \
151         $(top_builddir)/common/utils/libutils.la \
152         $(NULL)