summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHans de Goede <hdegoede@redhat.com>2011-05-06 16:28:05 +0200
committerHans de Goede <hdegoede@redhat.com>2011-05-06 16:28:05 +0200
commite3b6c0bf471606ab049e7adc94564b7d45ff6831 (patch)
treeb4a4b20b70326a6efcd37ce8f93bb76f79a9e4b5
parent2c67fa9b3317dc5fbe109ad25c52efb0eea33858 (diff)
Replace compile.sh with a proper buildsys
-rw-r--r--Make.rules30
-rw-r--r--Makefile8
-rwxr-xr-xcompile.sh7
-rw-r--r--usbredirhost/Makefile50
-rw-r--r--usbredirparser/Makefile42
-rw-r--r--usbredirserver/Makefile18
-rw-r--r--usbredirtestclient/Makefile13
7 files changed, 161 insertions, 7 deletions
diff --git a/Make.rules b/Make.rules
new file mode 100644
index 0000000..d9d9f25
--- /dev/null
+++ b/Make.rules
@@ -0,0 +1,30 @@
+USBREDIR_VERSION=0.0.1
+
+# These ones can be overriden from the cmdline
+CFLAGS = -g -O2 -Wall -Wpointer-arith -Wstrict-prototypes -Wmissing-prototypes
+PREFIX = /usr/local
+LIBDIR = $(PREFIX)/lib
+SBINDIR = $(PREFIX)/sbin
+
+# These ones should not be overriden from the cmdline
+override CPPFLAGS += -I../usbredirparser -I../usbredirhost
+override LDFLAGS += -L../usbredirparser -L../usbredirhost
+# This is the soname version for the various build libs
+LIB_RELEASE = 0
+
+# 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
new file mode 100644
index 0000000..572d486
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,8 @@
+SUBDIRS = usbredirparser usbredirhost usbredirserver usbredirtestclient
+
+all install clean::
+ for i in $(SUBDIRS); do \
+ $(MAKE) -C $$i $@; \
+ done
+
+include Make.rules
diff --git a/compile.sh b/compile.sh
deleted file mode 100755
index a0a2e59..0000000
--- a/compile.sh
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/bin/sh
-set -e
-
-gcc -g -O2 -Wall -I/usr/include/libusb-1.0 -o usbredirserver \
- usbredirserver.c usbredirhost.c usbredirparser.c -lusb-1.0
-
-gcc -O2 -Wall -o usbredirtestclient usbredirtestclient.c usbredirparser.c
diff --git a/usbredirhost/Makefile b/usbredirhost/Makefile
new file mode 100644
index 0000000..b571bc0
--- /dev/null
+++ b/usbredirhost/Makefile
@@ -0,0 +1,50 @@
+override CPPFLAGS += $(shell pkg-config --cflags libusb-1.0)
+
+LIBS_libusbredirhost = -lusb-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
+
+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/usbredirparser/Makefile b/usbredirparser/Makefile
new file mode 100644
index 0000000..61ce233
--- /dev/null
+++ b/usbredirparser/Makefile
@@ -0,0 +1,42 @@
+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
+
+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/usbredirserver/Makefile b/usbredirserver/Makefile
new file mode 100644
index 0000000..26639d4
--- /dev/null
+++ b/usbredirserver/Makefile
@@ -0,0 +1,18 @@
+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)
+ $(CC) $(LDFLAGS) -o $@ $^ $(LIBS) -lusbredirhost
+
+install: all
+ mkdir -p $(DESTDIR)$(SBINDIR)
+ install -m 755 usbredirserver $(DESTDIR)$(SBINDIR)
+
+include ../Make.rules
diff --git a/usbredirtestclient/Makefile b/usbredirtestclient/Makefile
new file mode 100644
index 0000000..6df1440
--- /dev/null
+++ b/usbredirtestclient/Makefile
@@ -0,0 +1,13 @@
+USBREDIRTESTCLIENT_OBJS = usbredirtestclient.o
+TARGETS = usbredirtestclient
+
+all: $(TARGETS)
+
+-include *.d
+
+usbredirtestclient: $(USBREDIRTESTCLIENT_OBJS)
+ $(CC) $(LDFLAGS) -o $@ $^ $(LIBS) -lusbredirparser
+
+install:
+
+include ../Make.rules