daemon: Remove separate configure of daemon subdirectory.
[libguestfs.git] / daemon / Makefile.am
index 0e2ac6e..2fe6573 100644 (file)
@@ -1,5 +1,5 @@
 # libguestfs-daemon
-# Copyright (C) 2010 Red Hat Inc.
+# Copyright (C) 2011 Red Hat Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 
-ACLOCAL_AMFLAGS = -I m4
+include $(top_srcdir)/subdir-rules.mk
 
-SUBDIRS = lib tests .
-
-libsrcdir = $(top_builddir)/../src
-generatorsrcdir = $(top_builddir)/../generator
+libsrcdir = $(top_builddir)/src
 
 generator_built = \
        actions.h \
        stubs.c \
        names.c
 
-.PHONY: force
-
-$(generator_built): $(generatorsrcdir)/stamp-generator
-$(generatorsrcdir)/stamp-generator: force
-       $(MAKE) -C $(generatorsrcdir) stamp-generator
-
 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,14 +54,44 @@ $(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 $< $@
+
+if INSTALL_DAEMON
+sbin_PROGRAMS = guestfsd
+else
 noinst_PROGRAMS = guestfsd
+endif
+
 guestfsd_SOURCES = \
+       9p.c \
        actions.h \
        available.c \
        augeas.c \
        base64.c \
        blkid.c \
        blockdev.c \
+       btrfs.c \
        checksum.c \
        cmp.c \
        command.c \
@@ -137,8 +161,11 @@ guestfsd_SOURCES = \
        zero.c \
        zerofree.c
 guestfsd_LDADD = \
+       liberrnostring.a \
        libprotocol.a \
-       lib/libgnu.a \
+       $(SELINUX_LIB) \
+       $(AUGEAS_LIB) \
+       $(top_builddir)/gnulib/lib/.libs/libgnu.a \
        $(GETADDRINFO_LIB) \
        $(HOSTENT_LIB) \
        $(INET_NTOP_LIB) \
@@ -147,5 +174,7 @@ guestfsd_LDADD = \
        $(LIBINTL) \
        $(SERVENT_LIB)
 
-AM_CPPFLAGS = -I$(srcdir)/lib -Ilib
+guestfsd_CPPFLAGS = -I$(top_srcdir)/gnulib/lib
 guestfsd_CFLAGS = $(WARN_CFLAGS) $(WERROR_CFLAGS)
+
+.PHONY: force