daemon: Remove separate configure of daemon subdirectory.
[libguestfs.git] / daemon / Makefile.am
index 75867cb..2fe6573 100644 (file)
@@ -1,5 +1,5 @@
 # libguestfs-daemon
-# Copyright (C) 2009 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
+libsrcdir = $(top_builddir)/src
 
 generator_built = \
        actions.h \
        stubs.c \
        names.c
 
-.PHONY: force
+BUILT_SOURCES = \
+       $(generator_built) \
+       guestfs_protocol.c \
+       guestfs_protocol.h \
+       errnostring_gperf.c \
+       errnostring_gperf.gperf \
+       errnostring.c \
+       errnostring.h
+
+EXTRA_DIST = $(BUILT_SOURCES) \
+       .gitignore
+
+noinst_LIBRARIES = libprotocol.a
 
-$(generator_build): $(libsrcdir)/stamp-generator
-$(libsrcdir)/stamp-generator: force
-       $(MAKE) -C $(libsrcdir) stamp-generator
+# 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
 
-BUILT_SOURCES = $(generator_built)
+guestfs_protocol.c: $(libsrcdir)/guestfs_protocol.c
+       rm -f $@
+       ln $< $@
+guestfs_protocol.h: $(libsrcdir)/guestfs_protocol.h
+       rm -f $@
+       ln $< $@
+$(libsrcdir)/guestfs_protocol.c: force
+       $(MAKE) -C $(libsrcdir) guestfs_protocol.c
+$(libsrcdir)/guestfs_protocol.h: force
+       $(MAKE) -C $(libsrcdir) guestfs_protocol.h
 
-EXTRA_DIST = $(BUILT_SOURCES)
+# 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 =
 
-$(libsrcdir)/guestfs_protocol.o: force
-       $(MAKE) -C $(libsrcdir) guestfs_protocol.o
+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 \
@@ -63,6 +109,7 @@ guestfsd_SOURCES = \
        ext2.c \
        fallocate.c \
        file.c \
+       findfs.c \
        fill.c \
        find.c \
        fsck.c \
@@ -72,11 +119,15 @@ guestfsd_SOURCES = \
        guestfsd.c \
        headtail.c \
        hexdump.c \
+       htonl.c \
        initrd.c \
        inotify.c \
+       is.c \
        link.c \
        ls.c \
+       luks.c \
        lvm.c \
+       lvm-filter.c \
        mkfs.c \
        mknod.c \
        modprobe.c \
@@ -95,6 +146,7 @@ guestfsd_SOURCES = \
        sfdisk.c \
        sleep.c \
        stat.c \
+       statvfs.c \
        strings.c \
        stubs.c \
        swap.c \
@@ -108,7 +160,21 @@ guestfsd_SOURCES = \
        xattr.c \
        zero.c \
        zerofree.c
-guestfsd_LDADD = $(libsrcdir)/guestfs_protocol.o lib/libgnu.a
+guestfsd_LDADD = \
+       liberrnostring.a \
+       libprotocol.a \
+       $(SELINUX_LIB) \
+       $(AUGEAS_LIB) \
+       $(top_builddir)/gnulib/lib/.libs/libgnu.a \
+       $(GETADDRINFO_LIB) \
+       $(HOSTENT_LIB) \
+       $(INET_NTOP_LIB) \
+       $(LIBSOCKET) \
+       $(LIB_CLOCK_GETTIME) \
+       $(LIBINTL) \
+       $(SERVENT_LIB)
 
-AM_CPPFLAGS = -I$(srcdir)/lib -Ilib
+guestfsd_CPPFLAGS = -I$(top_srcdir)/gnulib/lib
 guestfsd_CFLAGS = $(WARN_CFLAGS) $(WERROR_CFLAGS)
+
+.PHONY: force