Hi On Fri, Sep 28, 2018 at 2:19 PM Christophe Fergeau <cfergeau@xxxxxxxxxx> wrote: > > Hey, > > We just added meson support to spice/spice-gtk, I'd rather we don't add > a 3rd way to build spice, 2 is already error-prone enough :) > I agree, I would rather focus on making meson the only build-sys, by fixing the remaining issues (dist'ing for ex). > Christophe > > > On Thu, Sep 27, 2018 at 05:33:37PM +0200, Christophe de Dinechin wrote: > > From: Christophe de Dinechin <dinechin@xxxxxxxxxx> > > > > 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. > > > > Reminder: You need the corresponding RFC in spice-common > > > > Github review link: https://github.com/c3d/spice-server/commits/c3d-build > > > > Signed-off-by: Christophe de Dinechin <dinechin@xxxxxxxxxx> > > --- > > Makefile | 15 +++ > > docs/Makefile | 19 +++ > > docs/manual/Makefile | 22 ++++ > > server/Makefile | 160 +++++++++++++++++++++++ > > server/config/check_lz4_compress_fast_continue.c | 16 +++ > > subprojects/spice-common | 2 +- > > 6 files changed, 233 insertions(+), 1 deletion(-) > > create mode 100644 Makefile > > create mode 100644 docs/Makefile > > create mode 100644 docs/manual/Makefile > > create mode 100644 server/Makefile > > create mode 100644 server/config/check_lz4_compress_fast_continue.c > > > > diff --git a/Makefile b/Makefile > > new file mode 100644 > > index 00000000..bde2edc0 > > --- /dev/null > > +++ b/Makefile > > @@ -0,0 +1,15 @@ > > +PACKAGE_NAME=spice-server > > +PACKAGE_VERSION=0.13 > > +PACKAGE_DESCRIPTION=SPICE server library > > +PACKAGE_REQUIRES=spice-protocol >= 0.12.14 > > +PACKAGE_URL=http://spice-space.org > > + > > +MIQ=make-it-quick/ > > + > > +SUBDIRS= server docs > > + > > +# Set srcdir which is used by GNUmakefile in this directory > > +srcdir=. > > +include $(MIQ)rules.mk > > +$(MIQ)rules.mk: > > + git clone http://github.com/c3d/make-it-quick > > diff --git a/docs/Makefile b/docs/Makefile > > new file mode 100644 > > index 00000000..7fed8c6f > > --- /dev/null > > +++ b/docs/Makefile > > @@ -0,0 +1,19 @@ > > +TOP=../ > > +MIQ=$(TOP)make-it-quick/ > > + > > +ASCIIDOC=asciidoc > > +ASCIIDOC_FLAGS=-a icons -a toc > > + > > +HTML_FILES=spice_style.html spice_threading_model.html > > +TO_CLEAN+=$(HTML_FILES) > > + > > +SUBDIRS=manual > > + > > +include $(MIQ)rules.mk > > +$(MIQ)rules.mk: > > + cd $(TOP) && make $(TARGET) > > + > > +build: $(HTML_FILES) > > + > > +%.html: %.txt > > + $(PRINT_GENERATE) $(ASCIIDOC) -n $(ASCIIDOC_FLAGS) -o $@ $< > > diff --git a/docs/manual/Makefile b/docs/manual/Makefile > > new file mode 100644 > > index 00000000..96cd6422 > > --- /dev/null > > +++ b/docs/manual/Makefile > > @@ -0,0 +1,22 @@ > > +TOP=../ > > +MIQ=$(MIQ)rules.mk > > + > > +ASCIIDOC=asciidoc > > +A2X=a2x > > +ASCIIDOC_FLAGS=-a icons -a toc > > + > > +DOC_FILES=manual.html manual.chunked > > +DOC_DIR=$(OBJDIR)manual-chunked/ > > +TO_CLEAN+=$(DOC_FILES) > > + > > +include $(MIQ)rules.mk > > +$(MIQ)rules.mk: > > + cd $(TOP) && make $(TARGET) > > + > > +%.html: %.txt > > + $(PRINT_GENERATE) $(ASCIIDOC) $(ASCIIDOC_FLAGS) -o $@ $< > > + > > +manual.chunked: manual.txt $(DOC_DIR).mkdir-only > > + $(PRINT_GENERATE) $(A2X) -f chunked -D $(DOC_DIR) $(ASCIIDOC_FLAGS) $< > > + > > +build: $(DOC_FILES) > > diff --git a/server/Makefile b/server/Makefile > > new file mode 100644 > > index 00000000..8e00a5ad > > --- /dev/null > > +++ b/server/Makefile > > @@ -0,0 +1,160 @@ > > +TOP=../ > > +MIQ=$(TOP)make-it-quick/ > > + > > +PRODUCTS= spice-server.dll > > +PRODUCTS_VERSION=1.12.5 > > + > > +SPICE_SERVER_VERSION=\"$(shell ../build-aux/git-version-gen ../.tarball-version)\" > > + > > +PACKAGE_NAME=spice-server > > +PACKAGE_VERSION=0.13 > > +PACKAGE_DESCRIPTION=SPICE server library > > +PACKAGE_URL=https://spice-space.org > > +PACKAGE_REQUIRES=spice-protocol >= 0.12.14 > > +PACKAGE_BUGS=spice-devel@xxxxxxxxxxxxxxxxxxxxx > > +PACKAGE_DIR= # Goes directly in $(PREFIX)/lib/ > > + > > +PREFIX_DLL=$(PREFIX_LIB) > > + > > +PKGCONFIGS= pixman-1 \ > > + openssl \ > > + liblz4? \ > > + gobject-2.0 \ > > + glib-2.0 \ > > + gio-2.0 \ > > + zlib \ > > + opus \ > > + libjpeg? \ > > + gstreamer-1.0 \ > > + gstreamer-base-1.0 \ > > + gstreamer-app-1.0 \ > > + gstreamer-video-1.0 \ > > + gstreamer-audio-1.0 \ > > + gstreamer-plugins-base-1.0 \ > > + orc-0.4 > > + > > +LDFLAGS_SPICE= --version-script=./spice-server.syms > > +LDFLAGS_BUILDENV_linux=$(LDFLAGS_SPICE:%=-Wl,%) > > + > > +SPICE_COMMON?=$(TOP)subprojects/spice-common/ > > + > > +ifndef SPICE_PROTOCOL > > +PKGCONFIGS+= spice-protocol > > +endif > > + > > +CONFIG= <lz4.h> \ > > + libjpeg \ > > + lz4_compress_fast_continue > > + > > +GENERATED= spice-server-enums.h \ > > + spice-server-enums.c \ > > + spice-version.h > > + > > +SOURCES= $(filter %.c, $(GENERATED)) \ > > + agent-msg-filter.c \ > > + char-device.c \ > > + common-graphics-channel.c \ > > + cursor-channel.c \ > > + cursor-channel-client.c \ > > + dcc.c \ > > + dcc-send.c \ > > + dispatcher.c \ > > + display-channel.c \ > > + event-loop.c \ > > + glz-encoder.c \ > > + glz-encoder-dict.c \ > > + image-cache.c \ > > + image-encoders.c \ > > + inputs-channel.c \ > > + inputs-channel-client.c \ > > + jpeg-encoder.c \ > > + main-channel.c \ > > + main-channel-client.c \ > > + main-dispatcher.c \ > > + memslot.c \ > > + mjpeg-encoder.c \ > > + net-utils.c \ > > + pixmap-cache.c \ > > + red-channel.c \ > > + red-channel-capabilities.c \ > > + red-channel-client.c \ > > + red-client.c \ > > + red-parse-qxl.c \ > > + red-pipe-item.c \ > > + red-qxl.c \ > > + red-record-qxl.c \ > > + red-replay-qxl.c \ > > + reds.c \ > > + red-stream.c \ > > + red-worker.c \ > > + sound.c \ > > + spice-bitmap-utils.c \ > > + spicevmc.c \ > > + stat-file.c \ > > + video-stream.c \ > > + stream-channel.c \ > > + red-stream-device.c \ > > + sw-canvas.c \ > > + tree.c \ > > + utils.c \ > > + zlib-encoder.c \ > > + $(HAVE_LZ4_H:%= \ > > + lz4-encoder.c) \ > > + $(HAVE_SMARTCARD:%= \ > > + smartcard.c \ > > + smartcard-channel-client.c) \ > > + $(HAVE_GSTREAMER_1_0:%= \ > > + gstreamer-encoder.c) \ > > + > > +DEFINES= HAVE_CONFIG_H \ > > + SPICE_SERVER_INTERNAL \ > > + $(DEFINES_$(OS_NAME)) \ > > + $(EXTRA_CHECKS_$(TARGET)) \ > > + VERSION=$(SPICE_SERVER_VERSION) > > + > > +DEFINES_macosx= MSG_NOSIGNAL=0 > > + > > +EXTRA_CHECKS_debug= ENABLE_EXTRA_CHECKS=1 > > +EXTRA_CHECKS_opt= ENABLE_EXTRA_CHECKS=0 > > +EXTRA_CHECKS_release= ENABLE_EXTRA_CHECKS=0 > > + > > +INCLUDES= . \ > > + $(SPICE_PROTOCOL) \ > > + $(SPICE_COMMON) > > + > > +LIBRARIES= $(SPICE_COMMON)spice-common-server.dll > > + > > +PREFIX_HDR= $(PREFIX)include/spice-server/ > > +HEADERS= spice-audio.h \ > > + spice-char.h \ > > + spice-core.h \ > > + spice-experimental.h \ > > + spice-input.h \ > > + spice-migration.h \ > > + spice-qxl.h \ > > + spice-server.h \ > > + spice-version.h \ > > + spice-replay.h \ > > + spice.h > > + > > +TO_CLEAN= $(GENERATED) > > + > > +include $(MIQ)rules.mk > > +$(MIQ)rules.mk: > > + cd $(TOP) && make $(TARGET) > > + > > +.prebuild: $(GENERATED) > > + > > +spice-server-enums.c: spice-server.h spice-server-enums.c.tmpl > > + $(PRINT_GENERATE) glib-mkenums --template spice-server-enums.c.tmpl $< > $@ > > + > > +spice-server-enums.h: spice-server.h spice-server-enums.h.tmpl > > + $(PRINT_GENERATE) glib-mkenums --template spice-server-enums.h.tmpl $< > $@ > > + > > +spice-version.h: spice-version.h.in > > + $(PRINT_GENERATE) $(GEN_$@) > > +GEN_spice-version.h= \ > > + sed < $< > $@ \ > > + -e 's|@SPICE_SERVER_VERSION@|$(SPICE_SERVER_VERSION)|g' > > + > > +$(GENERATED): $(MIQ_MAKEDEPS) > > diff --git a/server/config/check_lz4_compress_fast_continue.c b/server/config/check_lz4_compress_fast_continue.c > > new file mode 100644 > > index 00000000..91937729 > > --- /dev/null > > +++ b/server/config/check_lz4_compress_fast_continue.c > > @@ -0,1 +1,16 @@ > > +#include <lz4.h> > > + > > +int main() > > +{ > > + if (0) { > > + LZ4_stream_t *stream = NULL; > > + const char *in_buf = NULL; > > + char *compressed_buf = NULL; > > + int in_size = 0; > > + int bound_size = 0; > > + LZ4_compress_fast_continue(stream, > > + in_buf, compressed_buf, > > + in_size, bound_size, 1); > > + } > > + return 0; > > +} > > -- > > 2.13.5 (Apple Git-94) > > _______________________________________________ > > Spice-devel mailing list > > Spice-devel@xxxxxxxxxxxxxxxxxxxxx > > https://lists.freedesktop.org/mailman/listinfo/spice-devel > _______________________________________________ > Spice-devel mailing list > Spice-devel@xxxxxxxxxxxxxxxxxxxxx > https://lists.freedesktop.org/mailman/listinfo/spice-devel -- Marc-André Lureau _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/spice-devel