Coverity: Don't call free_strings (NULL).
[libguestfs.git] / daemon / Makefile.am
index 0e2ac6e..8fb070f 100644 (file)
@@ -36,18 +36,21 @@ $(generatorsrcdir)/stamp-generator: force
 BUILT_SOURCES = \
        $(generator_built) \
        guestfs_protocol.c \
-       guestfs_protocol.h
+       guestfs_protocol.h \
+       errnostring_gperf.c \
+       errnostring_gperf.gperf \
+       errnostring.c \
+       errnostring.h
 
 EXTRA_DIST = $(BUILT_SOURCES) \
        .gitignore
 
-# This convenience library is solely to avoid compiler warnings
-# in its generated sources.
 noinst_LIBRARIES = libprotocol.a
-libprotocol_a_SOURCES = \
-       guestfs_protocol.c \
-       guestfs_protocol.h
-libprotocol_a_CFLAGS =
+
+# This convenience library is solely to compile its generated sources with
+# custom flags.
+libprotocol_a_SOURCES = guestfs_protocol.c guestfs_protocol.h
+libprotocol_a_CFLAGS = -Wall -Wno-unused -fno-strict-aliasing
 
 guestfs_protocol.c: $(libsrcdir)/guestfs_protocol.c
        rm -f $@
@@ -60,6 +63,29 @@ $(libsrcdir)/guestfs_protocol.c: force
 $(libsrcdir)/guestfs_protocol.h: force
        $(MAKE) -C $(libsrcdir) guestfs_protocol.h
 
+# Build the errnostring perfect hash code.  The generated code has lots
+# of warnings so we must compile it in a separate mini-library.
+noinst_LIBRARIES += liberrnostring.a
+liberrnostring_a_SOURCES = \
+       errnostring_gperf.c \
+       errnostring.h \
+       errnostring.c
+liberrnostring_a_CFLAGS =
+
+errnostring_gperf.c: errnostring_gperf.gperf
+       rm -f $@
+       $(GPERF) -t $< > $@-t
+       mv $@-t $@
+errnostring_gperf.gperf: $(libsrcdir)/errnostring_gperf.gperf
+       rm -f $@
+       ln $< $@
+errnostring.c: $(libsrcdir)/errnostring.c
+       rm -f $@
+       ln $< $@
+errnostring.h: $(libsrcdir)/errnostring.h
+       rm -f $@
+       ln $< $@
+
 noinst_PROGRAMS = guestfsd
 guestfsd_SOURCES = \
        actions.h \
@@ -137,6 +163,7 @@ guestfsd_SOURCES = \
        zero.c \
        zerofree.c
 guestfsd_LDADD = \
+       liberrnostring.a \
        libprotocol.a \
        lib/libgnu.a \
        $(GETADDRINFO_LIB) \