Re: [PATCH] build: Fix build with old automake

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 03/14/2014 12:55 PM, Jiri Denemark wrote:
> On Fri, Mar 14, 2014 at 07:54:58 -0600, Eric Blake wrote:
>> On 03/14/2014 04:43 AM, Jiri Denemark wrote:
>>> Ancient automake (such as from RHEL5) does not provide abs_srcdir and
>>> abs_builddir variables which are used by a recent commit of mine
>>> (e562e82).
>>>
>>> Signed-off-by: Jiri Denemark <jdenemar@xxxxxxxxxx>
>>> ---

>>> +# old automake does not provide abs_{src,build}dir variables
>>> +abs_builddir = $(shell pwd)
>>> +abs_srcdir = $(shell cd $(srcdir) && pwd)

Hmm, just noticed another thing - with NEWER automake, we are now less
efficient (calling out to $(shell) overwrites the value that is already
provided for free without a subprocess by newer automake).  Does it work
if you use:

abs_builddir ?= $(shell pwd)

>>
>> Luckily we require GNU make, so this works.  It would be nice, however,
>> if src/Makefile.am and tests/Makefile.am shared the same formulas; right
>> now, tests/Makefile.am uses the more portable (but slower):
>>
>> AM_CFLAGS = ...
>>         -Dabs_builddir="\"`pwd`\"" \
>>         -Dabs_srcdir="\"`cd '$(srcdir)'; pwd`\"" \
> 
> Which is unusable in this case, because we don't need to pass the
> variables to the compiler. It's make itself that needs to consume the
> variables:
> 
> $(abs_builddir)/cpu/cpu_map.xml:
> 	$(AM_V_GEN)ln -s $(abs_srcdir)/cpu/cpu_map.xml $@

The $(abs_srcdir) could be inlined with ``, but you are right that the
use of $(abs_builddir) has to be expanded up front for make to track the
right file in its dependency.  So ACK to this patch if the switch to ?=
instead of = works.

It still might be nice to update tests/Makefile.am in a followup to use
$(shell) instead of `` (since $(shell) is more efficient), but that's
not for this patch.

-- 
Eric Blake   eblake redhat com    +1-919-301-3266
Libvirt virtualization library http://libvirt.org

Attachment: signature.asc
Description: OpenPGP digital signature

--
libvir-list mailing list
libvir-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/libvir-list

[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]