Hi,

Thanks,

I've pushed this to my usbredir git tree, with 33 small changes:

    1) LIBUSBREDIRPARSER_SO_VERSION 1:0:0 should be 0:0:0, so that the soname
       does not change by going from Makefiles to autofoo
    2) Drop LIBGPOD_SO_VERSION from configure.ac
    3) Make libusb pkgconfig check require version >= 1.0.9

Regards,

Hans

On 11/23/2011 02:23 PM, Christophe Fergeau wrote:
Replace the current build system with an autotools based one.
---
  Make.rules                              |   28 ----------------
  Makefile                                |   18 -----------
  Makefile.am                             |    1 +
  autogen.sh                              |    4 ++
  configure.ac                            |   44 ++++++++++++++++++++++++++
  usbredirhost/Makefile                   |   52 -------------------------------
  usbredirhost/Makefile.am                |   15 +++++++++
  usbredirhost/libusbredirhost.pc.in      |   10 ++++++
  usbredirhost/usbredirhost.c             |    1 +
  usbredirparser/Makefile                 |   44 --------------------------
  usbredirparser/Makefile.am              |   12 +++++++
  usbredirparser/libusbredirparser.pc.in  |    9 +++++
  usbredirparser/usbredirparser.c         |    2 +
  usbredirserver/Makefile                 |   20 ------------
  usbredirserver/Makefile.am              |    8 +++++
  usbredirserver/usbredirserver.c         |    7 +++-
  usbredirtestclient/Makefile             |   13 --------
  usbredirtestclient/Makefile.am          |    5 +++
  usbredirtestclient/usbredirtestclient.c |    6 ++-
  19 files changed, 120 insertions(+), 179 deletions(-)
  delete mode 100644 Make.rules
  delete mode 100644 Makefile
  create mode 100644 Makefile.am
  create mode 100755 autogen.sh
  create mode 100644 configure.ac
  delete mode 100644 usbredirhost/Makefile
  create mode 100644 usbredirhost/Makefile.am
  create mode 100644 usbredirhost/libusbredirhost.pc.in
  delete mode 100644 usbredirparser/Makefile
  create mode 100644 usbredirparser/Makefile.am
  create mode 100644 usbredirparser/libusbredirparser.pc.in
  delete mode 100644 usbredirserver/Makefile
  create mode 100644 usbredirserver/Makefile.am
  delete mode 100644 usbredirtestclient/Makefile
  create mode 100644 usbredirtestclient/Makefile.am

diff --git a/Make.rules b/Make.rules
deleted file mode 100644
index 4d4c4ea..0000000
--- a/Make.rules
+++ /dev/null
@@ -1,28 +0,0 @@
-USBREDIR_VERSION=0.3.1
-
-# These ones can be overriden from the cmdline
-CFLAGS  = -g -O2 -Wall -Wpointer-arith -Wstrict-prototypes 
-Wmissing-prototypes -Werror
-PREFIX  = /usr/local
-LIBDIR  = $(PREFIX)/lib
-SBINDIR = $(PREFIX)/sbin
-
-# These ones should not be overriden from the cmdline
-override CPPFLAGS += -I../usbredirparser -I../usbredirhost 
-DUSBREDIR_VERSION='"$(USBREDIR_VERSION)"'
-override LDFLAGS += -L../usbredirparser -L../usbredirhost
-
-# And last various rules
-%.o: %.c
-       $(CC) -Wp,-MMD,"$*.d",-MQ,"$@",-MP -c $(CPPFLAGS) $(CFLAGS) -o $@ $<
-
-%.o: %.cpp
-       $(CXX) -Wp,-MMD,"$*.d",-MQ,"$@",-MP -c $(CPPFLAGS) $(CXXFLAGS) -o $@ $<
-
-%.so:
-       $(CC) -shared $(LDFLAGS) -Wl,-soname,$@.$(LIB_RELEASE) -o 
$@.$(LIB_RELEASE) $^ $(LIBS_$*)
-       ln -f -s $@.$(LIB_RELEASE) $@
-
-%.a:
-       $(AR) cqs $@ $^
-
-clean::
-       rm -f core core.[0123456789]* *~ *.o *.d *.a *.so* DEADJOE *.orig *.rej 
$(TARGETS)
diff --git a/Makefile b/Makefile
deleted file mode 100644
index 18600fb..0000000
--- a/Makefile
+++ /dev/null
@@ -1,18 +0,0 @@
-SUBDIRS = usbredirparser usbredirhost usbredirserver usbredirtestclient
-
-all install clean::
-       for i in $(SUBDIRS); do \
-               $(MAKE) -C $$i $@ || exit 1; \
-       done
-
-tag:
-       @git tag -a -m "Tag as usbredir-$(USBREDIR_VERSION)" 
usbredir-$(USBREDIR_VERSION)
-       @echo "Tagged as usbredir-$(USBREDIR_VERSION)"
-
-archive-no-tag:
-       @git archive --format=tar --prefix=usbredir-$(USBREDIR_VERSION)/ 
usbredir-$(USBREDIR_VERSION)>  usbredir-$(USBREDIR_VERSION).tar
-       @bzip2 -f usbredir-$(USBREDIR_VERSION).tar
-
-archive: clean tag archive-no-tag
-
-include Make.rules
diff --git a/Makefile.am b/Makefile.am
new file mode 100644
index 0000000..288463c
--- /dev/null
+++ b/Makefile.am
@@ -0,0 +1 @@
+SUBDIRS = usbredirparser usbredirhost usbredirserver usbredirtestclient
diff --git a/autogen.sh b/autogen.sh
new file mode 100755
index 0000000..52083e5
--- /dev/null
+++ b/autogen.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+
+autoreconf -fi
+./configure $@
diff --git a/configure.ac b/configure.ac
new file mode 100644
index 0000000..d617d0b
--- /dev/null
+++ b/configure.ac
@@ -0,0 +1,44 @@
+AC_PREREQ(2.63)
+AC_INIT([usbredir], [0.3.1])
+AC_CONFIG_SRCDIR([configure.ac])
+
+AM_CONFIG_HEADER([config.h])
+
+dnl libtool versioning
+# +1 : 0 : +1  == adds new functions to the interface
+# +1 : 0 : 0   == changes or removes functions (changes include both
+#                 changes to the signature and the semantic)
+#  ? :+1 : ?   == just internal changes
+# CURRENT : REVISION : AGE
+LIBUSBREDIRHOST_SO_VERSION=1:0:0
+AC_SUBST(LIBUSBREDIRHOST_SO_VERSION)
+
+LIBUSBREDIRPARSER_SO_VERSION=1:0:0
+AC_SUBST(LIBUSBREDIRPARSER_SO_VERSION)
+
+LIBGPOD_SO_VERSION=7:2:3
+AC_SUBST(LIBGPOD_SO_VERSION)
+
+AM_INIT_AUTOMAKE([foreign dist-bzip2 no-dist-gzip])
+m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])])
+
+AC_PROG_CC
+AC_HEADER_STDC
+AC_PROG_INSTALL
+AC_PROG_LN_S
+LT_INIT
+dnl AC_DEFINE(_GNU_SOURCE, [1], [Enable GNU extensions])
+
+PKG_PROG_PKG_CONFIG
+PKG_CHECK_MODULES(LIBUSB, [libusb-1.0])
+
+AC_CONFIG_FILES([
+Makefile
+usbredirhost/Makefile
+usbredirhost/libusbredirhost.pc
+usbredirparser/Makefile
+usbredirparser/libusbredirparser.pc
+usbredirserver/Makefile
+usbredirtestclient/Makefile
+])
+AC_OUTPUT
diff --git a/usbredirhost/Makefile b/usbredirhost/Makefile
deleted file mode 100644
index 1b5d62f..0000000
--- a/usbredirhost/Makefile
+++ /dev/null
@@ -1,52 +0,0 @@
-override CPPFLAGS    += $(shell pkg-config --cflags libusb-1.0)
-
-LIBS_libusbredirhost  = $(shell pkg-config --libs libusb-1.0)
-
-USBREDIRHOST_OBJS     = usbredirhost.o
-USBREDIRHOST_DEPS     = $(USBREDIRHOST_OBJS)
-TARGETS               = $(USBREDIRHOST_LIB) libusbredirhost.pc
-INCLUDES              = usbredirhost.h
-
-ifeq ($(LINKTYPE),static)
-USBREDIRHOST_LIB      = libusbredirhost.a
-else
-USBREDIRHOST_LIB      = libusbredirhost.so
-USBREDIRHOST_DEPS    += ../usbredirparser/libusbredirparser.so
-override CPPFLAGS    += -fPIC
-endif
-
-LIB_RELEASE = 1
-
-all: $(TARGETS)
-
--include $(USBREDIRHOST_OBJS:.o=.d)
-
-$(USBREDIRHOST_LIB): $(USBREDIRHOST_DEPS)
-
-libusbredirhost.pc:
-       @echo prefix=$(PREFIX)>  libusbredirhost.pc
-       @echo libdir=$(LIBDIR)>>  libusbredirhost.pc
-       @echo>>  libusbredirhost.pc
-       @echo 'Name: libusbredirhost'>>  libusbredirhost.pc
-       @echo 'Description: usbredirhost library'>>  libusbredirhost.pc
-       @echo 'Version: '$(USBREDIR_VERSION)>>  libusbredirhost.pc
-       @echo 'Requires.private: libusbredirparser'>>  libusbredirhost.pc
-       @echo 'Libs: -L$${libdir} -lusbredirhost'>>  libusbredirhost.pc
-       @echo 'Libs.private: -lusb-1.0'>>  libusbredirhost.pc
-       @echo 'Cflags: -I$${prefix}/include'>>  libusbredirhost.pc
-
-install: all
-       mkdir -p $(DESTDIR)$(PREFIX)/include
-       install -p -m 644 $(INCLUDES) $(DESTDIR)$(PREFIX)/include
-       mkdir -p $(DESTDIR)$(LIBDIR)
-ifeq ($(LINKTYPE),static)
-       install -m 644 $(USBREDIRHOST_LIB) $(DESTDIR)$(LIBDIR)
-else
-       install -m 755 $(USBREDIRHOST_LIB).$(LIB_RELEASE) $(DESTDIR)$(LIBDIR)
-       cd $(DESTDIR)$(LIBDIR)&&  \
-         ln -f -s $(USBREDIRHOST_LIB).$(LIB_RELEASE) $(USBREDIRHOST_LIB)
-endif
-       mkdir -p $(DESTDIR)$(LIBDIR)/pkgconfig
-       install -m 644 libusbredirhost.pc $(DESTDIR)$(LIBDIR)/pkgconfig
-
-include ../Make.rules
diff --git a/usbredirhost/Makefile.am b/usbredirhost/Makefile.am
new file mode 100644
index 0000000..ecf91fc
--- /dev/null
+++ b/usbredirhost/Makefile.am
@@ -0,0 +1,15 @@
+lib_LTLIBRARIES = libusbredirhost.la
+
+libusbredirhost_la_SOURCES = usbredirhost.c
+libusbredirhost_ladir = $(includedir)
+libusbredirhost_la_HEADERS = usbredirhost.h
+libusbredirhost_la_CFLAGS = $(LIBUSB_CFLAGS) -I$(top_srcdir)/usbredirparser
+libusbredirhost_la_LIBADD = $(LIBUSB_LIBS) \
+                            $(top_builddir)/usbredirparser/libusbredirparser.la
+libusbredirhost_la_LDFLAGS = -version-info $(LIBUSBREDIRHOST_SO_VERSION) \
+                             -no-undefined
+
+pkgconfigdir = $(libdir)/pkgconfig
+pkgconfig_DATA = libusbredirhost.pc
+
+EXTRA_DIST = libusbredirhost.pc
diff --git a/usbredirhost/libusbredirhost.pc.in 
b/usbredirhost/libusbredirhost.pc.in
new file mode 100644
index 0000000..c69d13b
--- /dev/null
+++ b/usbredirhost/libusbredirhost.pc.in
@@ -0,0 +1,10 @@
+prefix=@prefix@
+libdir=@libdir@
+includedir=@includedir@
+
+Name: libusbredirhost
+Description: usbredirhost library
+Version: @VERSION@
+Libs: -L${libdir} -lusbredirhost
+Requires.private: libusb-1.0 libusbredirparser
+Cflags: -I${includedir}
diff --git a/usbredirhost/usbredirhost.c b/usbredirhost/usbredirhost.c
index f794ded..f55d55c 100644
--- a/usbredirhost/usbredirhost.c
+++ b/usbredirhost/usbredirhost.c
@@ -18,6 +18,7 @@
     You should have received a copy of the GNU Lesser General Public
     License along with this library; if not, see<http://www.gnu.org/licenses/>.
  */
+#include "config.h"

  #include<stdio.h>
  #include<stdlib.h>
diff --git a/usbredirparser/Makefile b/usbredirparser/Makefile
deleted file mode 100644
index c33d264..0000000
--- a/usbredirparser/Makefile
+++ /dev/null
@@ -1,44 +0,0 @@
-USBREDIRPARSER_OBJS = usbredirparser.o
-TARGETS             = $(USBREDIRPARSER_LIB) libusbredirparser.pc
-INCLUDES            = usbredirproto.h usbredirparser.h
-
-ifeq ($(LINKTYPE),static)
-USBREDIRPARSER_LIB  = libusbredirparser.a
-else
-USBREDIRPARSER_LIB  = libusbredirparser.so
-override CPPFLAGS  += -fPIC
-endif
-
-LIB_RELEASE = 0
-
-all: $(TARGETS)
-
--include $(USBREDIRPARSER_OBJS:.o=.d)
-
-$(USBREDIRPARSER_LIB): $(USBREDIRPARSER_OBJS)
-
-libusbredirparser.pc:
-       @echo prefix=$(PREFIX)>  libusbredirparser.pc
-       @echo libdir=$(LIBDIR)>>  libusbredirparser.pc
-       @echo>>  libusbredirparser.pc
-       @echo 'Name: libusbredirparser'>>  libusbredirparser.pc
-       @echo 'Description: usbredirparser library'>>  libusbredirparser.pc
-       @echo 'Version: '$(USBREDIR_VERSION)>>  libusbredirparser.pc
-       @echo 'Libs: -L$${libdir} -lusbredirparser'>>  libusbredirparser.pc
-       @echo 'Cflags: -I$${prefix}/include'>>  libusbredirparser.pc
-
-install: all
-       mkdir -p $(DESTDIR)$(PREFIX)/include
-       install -p -m 644 $(INCLUDES) $(DESTDIR)$(PREFIX)/include
-       mkdir -p $(DESTDIR)$(LIBDIR)
-ifeq ($(LINKTYPE),static)
-       install -m 644 $(USBREDIRPARSER_LIB) $(DESTDIR)$(LIBDIR)
-else
-       install -m 755 $(USBREDIRPARSER_LIB).$(LIB_RELEASE) $(DESTDIR)$(LIBDIR)
-       cd $(DESTDIR)$(LIBDIR)&&  \
-         ln -f -s $(USBREDIRPARSER_LIB).$(LIB_RELEASE) $(USBREDIRPARSER_LIB)
-endif
-       mkdir -p $(DESTDIR)$(LIBDIR)/pkgconfig
-       install -m 644 libusbredirparser.pc $(DESTDIR)$(LIBDIR)/pkgconfig
-
-include ../Make.rules
diff --git a/usbredirparser/Makefile.am b/usbredirparser/Makefile.am
new file mode 100644
index 0000000..a47450c
--- /dev/null
+++ b/usbredirparser/Makefile.am
@@ -0,0 +1,12 @@
+lib_LTLIBRARIES = libusbredirparser.la
+
+libusbredirparser_la_SOURCES = usbredirparser.c
+libusbredirparser_ladir = $(includedir)
+libusbredirparser_la_HEADERS = usbredirparser.h  usbredirproto.h
+libusbredirparser_la_LDFLAGS = -version-info $(LIBUSBREDIRPARSER_SO_VERSION) \
+                               -no-undefined
+
+pkgconfigdir = $(libdir)/pkgconfig
+pkgconfig_DATA = libusbredirparser.pc
+
+EXTRA_DIST = libusbredirparser.pc
diff --git a/usbredirparser/libusbredirparser.pc.in 
b/usbredirparser/libusbredirparser.pc.in
new file mode 100644
index 0000000..6c9b286
--- /dev/null
+++ b/usbredirparser/libusbredirparser.pc.in
@@ -0,0 +1,9 @@
+prefix=@prefix@
+libdir=@libdir@
+includedir=@includedir@
+
+Name: libusbredirparser
+Description: usbredirparser library
+Version: @VERSION@
+Libs: -L${libdir} -lusbredirparser
+Cflags: -I${includedir}
diff --git a/usbredirparser/usbredirparser.c b/usbredirparser/usbredirparser.c
index 6237b3b..ae731e0 100644
--- a/usbredirparser/usbredirparser.c
+++ b/usbredirparser/usbredirparser.c
@@ -18,6 +18,8 @@
     You should have received a copy of the GNU Lesser General Public
     License along with this library; if not, see<http://www.gnu.org/licenses/>.
  */
+#include "config.h"
+
  #include<stdio.h>
  #include<stdlib.h>
  #include<stdarg.h>
diff --git a/usbredirserver/Makefile b/usbredirserver/Makefile
deleted file mode 100644
index 889b839..0000000
--- a/usbredirserver/Makefile
+++ /dev/null
@@ -1,20 +0,0 @@
-override CPPFLAGS    += $(shell pkg-config --cflags libusb-1.0)
-LIBS                  = $(shell pkg-config --libs libusb-1.0)
-
-USBREDIRSERVER_OBJS   = usbredirserver.o
-TARGETS               = usbredirserver
-
-all: $(TARGETS)
-
--include *.d
-
-usbredirserver: $(USBREDIRSERVER_OBJS)
-# rpath-link so that usbredirparser (needed by usbredirhost) can be found
-# when building without having a previous version installed
-       $(CC) $(LDFLAGS) -Wl,-rpath-link,../usbredirparser -o $@ $^ $(LIBS) 
-lusbredirhost
-
-install: all
-       mkdir -p $(DESTDIR)$(SBINDIR)
-       install -m 755 usbredirserver $(DESTDIR)$(SBINDIR)
-
-include ../Make.rules
diff --git a/usbredirserver/Makefile.am b/usbredirserver/Makefile.am
new file mode 100644
index 0000000..6d059f5
--- /dev/null
+++ b/usbredirserver/Makefile.am
@@ -0,0 +1,8 @@
+sbin_PROGRAMS = usbredirserver
+
+usbredirserver_SOURCES = usbredirserver.c
+usbredirserver_LDADD = $(LIBUSB_LIBS) \
+                       $(top_builddir)/usbredirhost/libusbredirhost.la
+usbredirserver_CFLAGS = $(LIBUSB_CFLAGS) \
+                        -I$(top_srcdir)/usbredirhost \
+                        -I$(top_srcdir)/usbredirparser
diff --git a/usbredirserver/usbredirserver.c b/usbredirserver/usbredirserver.c
index 33fa231..5ba3e04 100644
--- a/usbredirserver/usbredirserver.c
+++ b/usbredirserver/usbredirserver.c
@@ -19,6 +19,8 @@
     along with this library; if not, see<http://www.gnu.org/licenses/>.
  */

+#include "config.h"
+
  #include<stdio.h>
  #include<stdlib.h>
  #include<stdarg.h>
@@ -35,7 +37,8 @@
  #include<netdb.h>
  #include "usbredirhost.h"

-#define VERSION "usbredirserver " USBREDIR_VERSION
+
+#define SERVER_VERSION "usbredirserver " PACKAGE_VERSION

  static int verbose = usbredirparser_info;
  static int client_fd, running = 1;
@@ -350,7 +353,7 @@ int main(int argc, char *argv[])

          host = usbredirhost_open(ctx, handle, usbredirserver_log,
                                   usbredirserver_read, usbredirserver_write,
-                                 NULL, VERSION, verbose, 0);
+                                 NULL, SERVER_VERSION, verbose, 0);
          if (!host)
              exit(1);
          run_main_loop();
diff --git a/usbredirtestclient/Makefile b/usbredirtestclient/Makefile
deleted file mode 100644
index 6df1440..0000000
--- a/usbredirtestclient/Makefile
+++ /dev/null
@@ -1,13 +0,0 @@
-USBREDIRTESTCLIENT_OBJS = usbredirtestclient.o
-TARGETS                 = usbredirtestclient
-
-all: $(TARGETS)
-
--include *.d
-
-usbredirtestclient: $(USBREDIRTESTCLIENT_OBJS)
-       $(CC) $(LDFLAGS) -o $@ $^ $(LIBS) -lusbredirparser
-
-install:
-
-include ../Make.rules
diff --git a/usbredirtestclient/Makefile.am b/usbredirtestclient/Makefile.am
new file mode 100644
index 0000000..c054a4d
--- /dev/null
+++ b/usbredirtestclient/Makefile.am
@@ -0,0 +1,5 @@
+noinst_PROGRAMS = usbredirtestclient
+
+usbredirtestclient_SOURCES = usbredirtestclient.c
+usbredirtestclient_LDADD = $(top_builddir)/usbredirparser/libusbredirparser.la
+usbredirtestclient_CFLAGS = -I$(top_srcdir)/usbredirparser
diff --git a/usbredirtestclient/usbredirtestclient.c 
b/usbredirtestclient/usbredirtestclient.c
index bda23e2..7fbff8b 100644
--- a/usbredirtestclient/usbredirtestclient.c
+++ b/usbredirtestclient/usbredirtestclient.c
@@ -19,6 +19,8 @@
     along with this library; if not, see<http://www.gnu.org/licenses/>.
  */

+#include "config.h"
+
  #include<stdio.h>
  #include<stdlib.h>
  #include<stdarg.h>
@@ -39,7 +41,7 @@
  #define EP2I(ep_address) (((ep_address&  0x80)>>  3) | (ep_address&  0x0f))
  #define I2EP(i) (((i&  0x10)<<  3) | (i&  0x0f))

-#define VERSION "usbredirtestclient " USBREDIR_VERSION
+#define TESTCLIENT_VERSION "usbredirtestclient " PACKAGE_VERSION

  static void usbredirtestclient_device_connect(void *priv,
      struct usb_redir_device_connect_header *device_connect);
@@ -283,7 +285,7 @@ int main(int argc, char *argv[])
      parser->bulk_packet_func = usbredirtestclient_bulk_packet;
      parser->iso_packet_func = usbredirtestclient_iso_packet;
      parser->interrupt_packet_func = usbredirtestclient_interrupt_packet;
-    usbredirparser_init(parser, VERSION, NULL, 0, 0);
+    usbredirparser_init(parser, TESTCLIENT_VERSION, NULL, 0, 0);

      /* Queue a reset + set config the other test commands will be send in
         response to the status packets of previous commands */
_______________________________________________
Spice-devel mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/spice-devel

Reply via email to