[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