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
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
32 include $(top_srcdir)/common-rules.mk
34 EXTRA_DIST = nbdkit.syms
36 sbin_PROGRAMS = nbdkit
57 protocol-handshake.c \
58 protocol-handshake-oldstyle.c \
59 protocol-handshake-newstyle.c \
67 $(top_srcdir)/include/nbdkit-plugin.h \
68 $(top_srcdir)/include/nbdkit-filter.h \
71 nbdkit_SOURCES += fuzzer.c
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 \
91 $(LIBSELINUX_CFLAGS) \
98 $(top_builddir)/common/protocol/libprotocol.la \
99 $(top_builddir)/common/utils/libutils.la \
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.
110 nbdkit_LDFLAGS += -Wl,--version-script=$(srcdir)/nbdkit.syms
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
122 synopsis.c: $(top_srcdir)/docs/synopsis.txt
124 $(SED) -e 's/\(.*\)/"\1\\n"/g' $< > $@-t
127 # pkg-config / pkgconf
129 pkgconfigdir = $(libdir)/pkgconfig
130 pkgconfig_DATA = nbdkit.pc
136 check_PROGRAMS = test-public
138 test_public_SOURCES = \
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 \
149 test_public_CFLAGS = $(WARNINGS_CFLAGS) $(VALGRIND_CFLAGS)
150 test_public_LDADD = \
151 $(top_builddir)/common/utils/libutils.la \