[Spice-devel] [PATCH 1/1] streaming-agent: Make-It-Quick make-only build system

Christophe de Dinechin christophe at dinechin.org
Thu Sep 27 15:41:14 UTC 2018


From: Christophe de Dinechin <dinechin at redhat.com>

Make-it-Quick is a make-only build system that uses makefiles
for autoconfiguration. For SPICE, it provides a faster, easier to
maintain and more flexible build system.

A key feature made possible by this build system is top-level builds.
Top-level builds are made from a 'spice' directory that has protocol,
common, server and client as its sub-directories. This makes it easy
to make changes in protocol or common and rebuild all impacted server
and client code, with proper header dependency tracking.

The make-it-quick system is still evolving rapidly. In its current
incarnation, it does not yet offer all the usual targets expected from
a makefile generated by automake.

Github review link: https://github.com/c3d/spice-streaming-agent/commits/c3d-build

Signed-off-by: Christophe de Dinechin <dinechin at redhat.com>
---
 Makefile     | 19 +++++++++++++++++++
 src/Makefile | 38 ++++++++++++++++++++++++++++++++++++++
 2 files changed, 57 insertions(+)
 create mode 100644 Makefile
 create mode 100644 src/Makefile

diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..0bcf7a7
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,19 @@
+MIQ=make-it-quick/
+
+SUBDIRS=src
+
+AUTOSTART=	spice-streaming.deskop
+SRC_AUTOSTART=	src/$(AUTOSTART)
+XDG_AUTOSTART=	$(SYSCONFIG)xdg/autostart/$(AUTOSTART)
+GDM_AUTOSTART=	$(PREFIX_SHARE)gdm/greeter/autostart/$(AUTOSTART)
+
+HEADERS=	$(wildcard include/spice-streaming-agent/*.hpp)
+PREFIX_HDR=	$(PREFIX)include/spice-streaming-agent/
+
+include $(MIQ)rules.mk
+$(MIQ)rules.mk:
+	git clone http://github.com/c3d/make-it-quick
+
+install: $(XDG_AUTOSTART) $(GDM_AUTOSTART)
+$(XDG_AUTOSTART) $(GDM_AUTOSTART): $(SRC_AUTOSTART)
+	$(PRINT_INSTALL) $< $@
diff --git a/src/Makefile b/src/Makefile
new file mode 100644
index 0000000..15bd7da
--- /dev/null
+++ b/src/Makefile
@@ -0,0 +1,38 @@
+TOP=../
+MIQ=$(TOP)make-it-quick/
+
+PRODUCTS=	spice-streaming-agent.exe
+
+PKGCONFIGS=	libjpeg							\
+		x11
+
+ifndef SPICE_PROTOCOL
+PKGCONFIGS+=	spice-protocol
+endif
+
+CONFIG=		libpthread						\
+		libdl							\
+		libX11							\
+		libXfixes
+
+SOURCES=	spice-streaming-agent.cpp 				\
+		concrete-agent.cpp					\
+		cursor-updater.cpp 					\
+		frame-log.cpp	 					\
+		mjpeg-fallback.cpp					\
+		jpeg.cpp						\
+		stream-port.cpp						\
+		error.cpp						\
+		hexdump.c
+
+INCLUDES=	.							\
+		../include						\
+		$(SPICE_PROTOCOL)
+
+DEFINES=	SPICE_STREAMING_AGENT_PROGRAM				\
+		PLUGINSDIR=\"$(PREFIX_LIB)spice-streaming-agent\"	\
+		VERSION=\"$(PACKAGE_VERSION)\"
+
+include $(MIQ)rules.mk
+$(MIQ)rules.mk:
+	cd $(TOP) && make $(TARGET)
--
2.13.5 (Apple Git-94)


More information about the Spice-devel mailing list