From 193c54c0da71a5feb8fccfefb4de07526ef191c6 Mon Sep 17 00:00:00 2001 From: Alexander Larsson Date: Fri, 29 Jan 2010 16:33:18 +0100 Subject: [PATCH] Add autoconf and pkg-config setup --- AUTHORS | 0 ChangeLog | 0 INSTALL | 1 + Makefile.am | 7 ++ NEWS | 0 README | 0 autogen.sh | 164 +++++++++++++++++++++++++++++++++++++++++++ configure.ac | 19 +++++ spice-protocol.pc.in | 9 +++ spice/Makefile.am | 18 +++++ 10 files changed, 218 insertions(+) create mode 100644 AUTHORS create mode 100644 ChangeLog create mode 120000 INSTALL create mode 100644 Makefile.am create mode 100644 NEWS create mode 100644 README create mode 100755 autogen.sh create mode 100644 configure.ac create mode 100644 spice-protocol.pc.in create mode 100644 spice/Makefile.am diff --git a/AUTHORS b/AUTHORS new file mode 100644 index 0000000..e69de29 diff --git a/ChangeLog b/ChangeLog new file mode 100644 index 0000000..e69de29 diff --git a/INSTALL b/INSTALL new file mode 120000 index 0000000..cbd1c80 --- /dev/null +++ b/INSTALL @@ -0,0 +1 @@ +/usr/share/automake-1.11/INSTALL \ No newline at end of file diff --git a/Makefile.am b/Makefile.am new file mode 100644 index 0000000..284ff9b --- /dev/null +++ b/Makefile.am @@ -0,0 +1,7 @@ +SUBDIRS = spice + +pkgconfigdir = $(libdir)/pkgconfig +pkgconfig_DATA = spice-protocol.pc + +DISTCLEANFILES = \ + spice-protocol.pc diff --git a/NEWS b/NEWS new file mode 100644 index 0000000..e69de29 diff --git a/README b/README new file mode 100644 index 0000000..e69de29 diff --git a/autogen.sh b/autogen.sh new file mode 100755 index 0000000..950c2f4 --- /dev/null +++ b/autogen.sh @@ -0,0 +1,164 @@ +#! /bin/sh + +srcdir=`dirname $0` +test -z "$srcdir" && srcdir=. + +ORIGDIR=`pwd` +cd $srcdir + +# FIXME: can replace this entire script with +# the following line if we can require autoconf 2.60: +# autoreconf -v --force --install || exit 1 + +PACKAGE=spice-protocol + +ACLOCAL_FLAGS="" +AUTOHEADER=${AUTOHEADER-autoheader} +AUTOMAKE_FLAGS="--add-missing --gnu" +AUTOCONF=${AUTOCONF-autoconf} + +# automake 1.8 requires autoconf 2.58 +# automake 1.7 requires autoconf 2.54 +automake_min_vers=1.7 +aclocal_min_vers=$automake_min_vers +autoconf_min_vers=2.54 + +# The awk-based string->number conversion we use needs a C locale to work +# as expected. Setting LC_ALL overrides whether the user set LC_ALL, +# LC_NUMERIC, or LANG. +LC_ALL=C + +ARGV0=$0 + +# Allow invocation from a separate build directory; in that case, we change +# to the source directory to run the auto*, then change back before running configure +srcdir=`dirname $ARGV0` +test -z "$srcdir" && srcdir=. + +ORIGDIR=`pwd` + +# Not all echo versions allow -n, so we check what is possible. This test is +# based on the one in autoconf. +case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in + *c*,-n*) ECHO_N= ;; + *c*,* ) ECHO_N=-n ;; + *) ECHO_N= ;; +esac + + +# some terminal codes ... +boldface="`tput bold 2>/dev/null || true`" +normal="`tput sgr0 2>/dev/null || true`" +printbold() { + echo $ECHO_N "$boldface" + echo "$@" + echo $ECHO_N "$normal" +} +printerr() { + echo "$@" >&2 +} + + +# Usage: +# compare_versions MIN_VERSION ACTUAL_VERSION +# returns true if ACTUAL_VERSION >= MIN_VERSION +compare_versions() { + ch_min_version=$1 + ch_actual_version=$2 + ch_status=0 + IFS="${IFS= }"; ch_save_IFS="$IFS"; IFS="." + set $ch_actual_version + for ch_min in $ch_min_version; do + ch_cur=`echo $1 | sed 's/[^0-9].*$//'`; shift # remove letter suffixes + if [ -z "$ch_min" ]; then break; fi + if [ -z "$ch_cur" ]; then ch_status=1; break; fi + if [ $ch_cur -gt $ch_min ]; then break; fi + if [ $ch_cur -lt $ch_min ]; then ch_status=1; break; fi + done + IFS="$ch_save_IFS" + return $ch_status +} + +# Usage: +# version_check PACKAGE VARIABLE CHECKPROGS MIN_VERSION SOURCE +# checks to see if the package is available +version_check() { + vc_package=$1 + vc_variable=$2 + vc_checkprogs=$3 + vc_min_version=$4 + vc_source=$5 + vc_status=1 + + vc_checkprog=`eval echo "\\$$vc_variable"` + if [ -n "$vc_checkprog" ]; then + printbold "using $vc_checkprog for $vc_package" + return 0 + fi + + printbold "checking for $vc_package >= $vc_min_version..." + for vc_checkprog in $vc_checkprogs; do + echo $ECHO_N " testing $vc_checkprog... " + if $vc_checkprog --version < /dev/null > /dev/null 2>&1; then + vc_actual_version=`$vc_checkprog --version | head -n 1 | \ + sed 's/^.*[ ]\([0-9.]*[a-z]*\).*$/\1/'` + if compare_versions $vc_min_version $vc_actual_version; then + echo "found $vc_actual_version" + # set variable + eval "$vc_variable=$vc_checkprog" + vc_status=0 + break + else + echo "too old (found version $vc_actual_version)" + fi + else + echo "not found." + fi + done + if [ "$vc_status" != 0 ]; then + printerr "***Error***: You must have $vc_package >= $vc_min_version installed" + printerr " to build $PROJECT. Download the appropriate package for" + printerr " from your distribution or get the source tarball at" + printerr " $vc_source" + printerr + fi + return $vc_status +} + +version_check autoconf AUTOCONF $AUTOCONF $autoconf_min_vers \ + "http://ftp.gnu.org/pub/gnu/autoconf/autoconf-${autoconf_min_vers}.tar.gz" || DIE=1 +version_check automake AUTOMAKE "$AUTOMAKE automake automake-1.10 automake-1.9 automake-1.8 automake-1.7" $automake_min_vers \ + "http://ftp.gnu.org/pub/gnu/automake/automake-${automake_min_vers}.tar.gz" || DIE=1 +ACLOCAL=`echo $AUTOMAKE | sed s/automake/aclocal/` + +if test -n "$DIE"; then + exit 1 +fi + + +if test -z "$*"; then + echo "$ARGV0: Note: \`./configure' will be run with no arguments." + echo " If you wish to pass any to it, please specify them on the" + echo " \`$0' command line." + echo +fi + +do_cmd() { + echo "$ARGV0: running \`$@'" + $@ +} + +# Run for top level directory + +printbold "Setting up $PACKAGE toplevel" +cd $srcdir +do_cmd $ACLOCAL $ACLOCAL_FLAGS +do_cmd $AUTOHEADER +do_cmd $AUTOMAKE $AUTOMAKE_FLAGS +do_cmd $AUTOCONF + +cd $ORIGDIR || exit $? +rm -f config.cache + +do_cmd $srcdir/configure --enable-maintainer-mode ${1+"$@"} || exit 1 + diff --git a/configure.ac b/configure.ac new file mode 100644 index 0000000..90cb583 --- /dev/null +++ b/configure.ac @@ -0,0 +1,19 @@ +AC_PREREQ([2.57]) + +m4_define([SPICE_MAJOR], 0) +m4_define([SPICE_MINOR], 5) +m4_define([SPICE_MICRO], 1) + +AC_INIT(spice-protocol, [SPICE_MAJOR.SPICE_MINOR.SPICE_MICRO], [], spice-protocol) + +AC_CONFIG_MACRO_DIR([m4]) +AM_CONFIG_HEADER([config.h]) + +AM_INIT_AUTOMAKE([dist-bzip2]) +AM_MAINTAINER_MODE + +AC_OUTPUT([ +Makefile +spice-protocol.pc +spice/Makefile +]) diff --git a/spice-protocol.pc.in b/spice-protocol.pc.in new file mode 100644 index 0000000..c7e76cd --- /dev/null +++ b/spice-protocol.pc.in @@ -0,0 +1,9 @@ +prefix=@prefix@ +includedir=@includedir@ + +Name: spice-protocol +Description: SPICE protocol headers +Version: @VERSION@ + +Libs: +Cflags: -I${includedir}/spice-1 diff --git a/spice/Makefile.am b/spice/Makefile.am new file mode 100644 index 0000000..5867653 --- /dev/null +++ b/spice/Makefile.am @@ -0,0 +1,18 @@ +NULL = + +spice_protocol_includedir=$(includedir)/spice-1/spice + +spice_protocol_include_HEADERS= \ + barrier.h \ + draw.h \ + end-packed.h \ + error_codes.h \ + ipc_ring.h \ + protocol.h \ + qxl_dev.h \ + start-packed.h \ + stats.h \ + types.h \ + vd_agent.h \ + vdi_dev.h \ + $(NULL)