[libvirt] [PATCH] freebsd: Fix build problem due to picking up the wrong libvirt.h

Eric Blake eblake at redhat.com
Tue Jul 26 21:40:24 UTC 2011


On 07/26/2011 02:45 PM, Matthias Bolte wrote:
>>> +++ b/configure.ac
>>> @@ -2011,8 +2011,16 @@ dnl Enable building libvirtd?
>>>   AM_CONDITIONAL([WITH_LIBVIRTD],[test "x$with_libvirtd" = "xyes"])
>>>
>>>   dnl Check for gettext - don't go any newer than what RHEL 5 supports
>>> +dnl
>>> +dnl save and restore CPPFLAGS around gettext check as the internal iconv
>>> +dnl check might leave -I/usr/local/include in CPPFLAGS on FreeBSD resulting
>>> +dnl in the build picking up previously installed libvirt/libvirt.h instead
>>> +dnl of the correct one from the soucre tree
>>> +
>>> +save_CPPFLAGS="$CPPFLAGS"
>>>   AM_GNU_GETTEXT_VERSION([0.17])
>>>   AM_GNU_GETTEXT([external])
>>> +CPPFLAGS="$save_CPPFLAGS"
>>

>> But I'm still worried that we have to use -I/usr/local/include somewhere
>> in the command line, which means we would have to modify src/Makefile.am
>> (and friends) to have:
>>
>> INCLUDES= ... $(GETTEXT_CPPFLAGS)
>>
>> where GETTEXT_CPPFLAGS is substituted with the difference in
>> $save_CPPFLAGS and $CPPFLAGS prior to the point where we restore $CPPFLAGS.
>
> That's probably what we should do here.
>
> Now how to compute this difference? When we assume that save_CPPFLAGS
> and CPPFLAGS have a common prefix that we need to strip to get
> GETTEXT_CPPFLAGS then we could do it like this
>
>    echo $(CPPFLAGS) | cut -c 1-`expr length $(save_CPPFLAGS)` --complement -
>
> This is probably neither the best nor a robustest way to do this. Do
> you have a better idea?

Yep (although I haven't tested it thoroughly):

save_CPPFLAGS="$CPPFLAGS"
AM_GNU_GETTEXT_VERSION([0.17])
AM_GNU_GETTEXT([external])
GETTEXT_CPPFLAGS=
if test "x$save_CPPFLAGS" != "x$CPPFLAGS"; then
   set dummy $CPPFLAGS
   for var
   do
     case " $var " in
       " $save_CPPFLAGS ") ;;
       *) GETTEXT_CPPFLAGS="$GETTEXT_CPPFLAGS $var" ;;
     esac
   done
fi
CPPFLAGS="$save_CPPFLAGS"

-- 
Eric Blake   eblake at redhat.com    +1-801-349-2682
Libvirt virtualization library http://libvirt.org




More information about the libvir-list mailing list