Wire gznbd into general configure.ac/Makefile.am
authorAndrey Mazo <ahippo@yandex.com>
Thu, 2 Oct 2014 00:37:58 +0000 (04:37 +0400)
committerAndrey Mazo <ahippo@yandex.com>
Thu, 2 Oct 2014 00:37:58 +0000 (04:37 +0400)
Add --enable-gznbd configure option (disabled by default).
Avoid multiple recompilations of cliserv.c by factoring it into a static
library.

This fixes gznbd compilation broken after
43b96ec0d22c0a42c20104cb66aa2d2236da3e77:

gznbd.c:(.text.startup+0x420): undefined reference to `ntohll'

Makefile.am
cliserv.c
configure.ac
gznbd/Makefile [deleted file]
gznbd/Makefile.am [new file with mode: 0644]

index 6edbb99..0981cb9 100644 (file)
@@ -1,15 +1,19 @@
-SUBDIRS = . man doc tests
+SUBDIRS = . man doc tests gznbd
 bin_PROGRAMS = nbd-server nbd-trdump
 sbin_PROGRAMS = @NBD_CLIENT_NAME@
 EXTRA_PROGRAMS = nbd-client make-integrityhuge
-nbd_client_SOURCES = nbd-client.c cliserv.h cliserv.c
-nbd_server_SOURCES = nbd-server.c cliserv.h cliserv.c lfs.h nbd.h
-nbd_trdump_SOURCES = nbd-trdump.c cliserv.h cliserv.c nbd.h
+noinst_LTLIBRARIES = libnbdsrv.la libcliserv.la
+libcliserv_la_SOURCES = cliserv.h cliserv.c
+libcliserv_la_CFLAGS = @CFLAGS@
+nbd_client_SOURCES = nbd-client.c cliserv.h
+nbd_server_SOURCES = nbd-server.c cliserv.h lfs.h nbd.h
+nbd_trdump_SOURCES = nbd-trdump.c cliserv.h nbd.h
 nbd_server_CFLAGS = @CFLAGS@ @GLIB_CFLAGS@
 nbd_trdump_CFLAGS = @CFLAGS@ @GLIB_CFLAGS@
-noinst_LTLIBRARIES = libnbdsrv.la
 libnbdsrv_la_SOURCES = nbdsrv.c nbdsrv.h
 libnbdsrv_la_CFLAGS = @CFLAGS@ @GLIB_CFLAGS@
-nbd_server_LDADD = @GLIB_LIBS@ libnbdsrv.la
+nbd_client_LDADD = libcliserv.la
+nbd_server_LDADD = @GLIB_LIBS@ libnbdsrv.la libcliserv.la
+nbd_trdump_LDADD = libcliserv.la
 make_integrityhuge_SOURCES = make-integrityhuge.c cliserv.h nbd.h nbd-debug.h
-EXTRA_DIST = gznbd maketr CodingStyle autogen.sh README.md
+EXTRA_DIST = maketr CodingStyle autogen.sh README.md
index c240f53..d3bc053 100644 (file)
--- a/cliserv.c
+++ b/cliserv.c
@@ -65,11 +65,11 @@ void logging(void) {
 }
 
 #ifdef WORDS_BIGENDIAN
-inline u64 ntohll(u64 a) {
+u64 ntohll(u64 a) {
        return a;
 }
 #else
-inline u64 ntohll(u64 a) {
+u64 ntohll(u64 a) {
        u32 lo = a & 0xffffffff;
        u32 hi = a >> 32U;
        lo = ntohl(lo);
index 663c559..b2ebf08 100644 (file)
@@ -83,6 +83,19 @@ AC_ARG_ENABLE(
   ]
 )
 
+AC_ARG_ENABLE(
+  [gznbd],
+  [AS_HELP_STRING([--enable-gznbd],[Build gznbd too (nbd server with on-the-fly decompression of images)])],
+  [
+    AS_IF(
+      [test "x$enableval" = "xyes"],
+      [ENABLE_GZNBD=yes],
+      [ENABLE_GZNBD=no]
+    )
+  ],
+  [ENABLE_GZNBD=no]
+)
+
 AC_PROG_CC_C99
 AC_PROG_CPP
 AC_PROG_INSTALL
@@ -140,11 +153,13 @@ AC_TYPE_OFF_T
 AC_TYPE_PID_T
 nbd_server_CPPFLAGS=$nbd_server_CPPFLAGS" -DSYSCONFDIR='\"$sysconfdir\"'"
 AC_SUBST(nbd_server_CPPFLAGS)
+AM_CONDITIONAL(GZNBD, [test "x$ENABLE_GZNBD" = "xyes"])
 AC_CONFIG_HEADERS([config.h])
 AC_CONFIG_FILES([Makefile
                 doc/Doxyfile
                 doc/Makefile
                 man/Makefile
+                gznbd/Makefile
                 tests/Makefile
                 tests/code/Makefile
                 tests/run/Makefile
diff --git a/gznbd/Makefile b/gznbd/Makefile
deleted file mode 100644 (file)
index 6a3778e..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-CC ?= gcc
-CFLAGS ?= -s -O2
-CFLAGS += -Wall
-CPPFLAGS += -DTRACE
-LDLIBS += -lz
-
-all: gznbd
-
-clean:
-       rm -f gznbd *.o
-
-.PHONY: all clean
diff --git a/gznbd/Makefile.am b/gznbd/Makefile.am
new file mode 100644 (file)
index 0000000..d7940bb
--- /dev/null
@@ -0,0 +1,6 @@
+if GZNBD
+bin_PROGRAMS = gznbd
+gznbd_SOURCES = gznbd.c
+gznbd_CFLAGS = -DTRACE -Wall
+gznbd_LDADD = -lz ../libcliserv.la
+endif