From 4d2e8355cbac08988dd97322ae7f7d552085ad3e Mon Sep 17 00:00:00 2001 From: Eric Blake Date: Tue, 6 Mar 2012 13:49:53 -0700 Subject: [PATCH] rpc: generalize solution for VPATH builds Commit 5d4b0c4c80 tried to fix certain classes of VPATH builds, but was too limited. In particular, Guannan Ren reported: > For example: The libvirt source code resides in /home/testuser, > I make dist in /tmp/buildvpath, the XDR routine .c file will > include full path of the header file like: > > #include "/home/testuser/src/rpc/virnetprotocol.h" > #include "internal.h" > #include > > If we distribute the tarball to another machine to compile, > it will report error as follows: > > rpc/virnetprotocol.c:7:59: fatal error: > /home/testuser/src/rpc/virnetprotocol.h: No such file or directory * src/rpc/genprotocol.pl: Fix more include lines. --- src/rpc/genprotocol.pl | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/rpc/genprotocol.pl b/src/rpc/genprotocol.pl index 48383255d9..f8e68f5f6b 100755 --- a/src/rpc/genprotocol.pl +++ b/src/rpc/genprotocol.pl @@ -8,7 +8,7 @@ # actually fixes for 64 bit, so this file is necessary. Arguably # so is the type-punning fix. # -# Copyright (C) 2007, 2011 Red Hat, Inc. +# Copyright (C) 2007, 2011-2012 Red Hat, Inc. # # See COPYING for the license of this software. # @@ -53,13 +53,15 @@ while () { s/\t/ /g; + # Fix VPATH builds + s,#include ".*/([^/]+)protocol\.h",#include "${1}protocol.h",; + # Portability for Solaris RPC s/u_quad_t/uint64_t/g; s/quad_t/int64_t/g; s/xdr_u_quad_t/xdr_uint64_t/g; s/xdr_quad_t/xdr_int64_t/g; s/(?