[Spice-devel] [usbredir] Switch to autotools build system
Christophe Fergeau
cfergeau at redhat.com
Wed Nov 23 05:23:54 PST 2011
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 */
--
1.7.7.3
More information about the Spice-devel
mailing list