[Buildroot] [RFC] how to deal with a dependency on configure in a "Makefile"
Baruch Siach
baruch at tkos.co.il
Wed Mar 14 05:19:40 UTC 2018
Hi Charles,
On Tue, Mar 13, 2018 at 11:43:12PM +0000, Charles Hardin wrote:
> I went more by the build output show the make invocation of configure during
> "build" stage in the log.
>
> ./configure $$LOCAL_CONFIGURE_OPTIONS
>
> Unfortunately, this was a transient build on a VM and I didn't stat the
> files. In the meantime, we are going to try this for a bit and see if
> anything changes.
You can manually extract the xfsprogs tarball and stat the files directly.
> commit d25e2a8f163c8c77055c3c7c8e89d65ec09e0f8e (HEAD -> master)
> Author: Charles Hardin <charles.hardin at storagecraft.com>
> Date: Tue Mar 13 16:39:23 2018 -0700
>
> xfsprogs: force touch the order of the configuration files
>
>
> The Makefile can cause a rerun of the autoconf which could
> occur and use the host tools which is very annoying, so touch
> the files in the order expected so that the configure scripts
> hopefully run in the order intended and prevent any trips
> thru autoconf.
>
> Signed-off-by: Charles Hardin <charles.hardin at storagecraft.com>
>
> diff --git a/package/xfsprogs/xfsprogs.mk b/package/xfsprogs/xfsprogs.mk
> index aa5c37ed8d..39fa3821ff 100644
> --- a/package/xfsprogs/xfsprogs.mk
> +++ b/package/xfsprogs/xfsprogs.mk
> @@ -22,4 +22,13 @@ XFSPROGS_CONF_OPTS = \
>
> XFSPROGS_INSTALL_TARGET_OPTS = DIST_ROOT=$(TARGET_DIR) install
>
> +define XFSPROGS_AVOID_AUTORECONF_HOOK
> + find $(@D) -name aclocal.m4 -exec touch '{}' \;
> + find $(@D) -name config-h.in -exec touch '{}' \;
> + find $(@D) -name configure.ac -exec touch '{}' \;
I don't think want to update the configure.ac timestamp.
baruch
> + find $(@D) -name configure -exec touch '{}' \;
> + find $(@D) -name Makefile.in -exec touch '{}' \;
> +endef
> +XFSPROGS_PRE_CONFIGURE_HOOKS += XFSPROGS_AVOID_AUTORECONF_HOOK
> +
> $(eval $(autotools-package))
> ________________________________
> From: Baruch Siach <baruch at tkos.co.il>
> Sent: Tuesday, March 13, 2018 2:01:50 PM
> To: Charles Hardin
> Cc: buildroot at buildroot.org
> Subject: Re: [Buildroot] [RFC] how to deal with a dependency on configure in a "Makefile"
>
> Hi Charles,
>
> On Tue, Mar 13, 2018 at 07:27:30PM +0000, Charles Hardin wrote:
> > So, we hit this problem that took me a while to figure out - but, it seems
> > to be that
> > xfsprogs has this bit in the Makefile when it extracts:
> >
> > configure: configure.ac
> > $(LIBTOOLIZE_BIN) -c $(LIBTOOLIZE_INSTALL) -f
> > cp include/install-sh .
> > aclocal -I m4
> > autoconf
> >
> > include/builddefs: configure
> > ./configure $$LOCAL_CONFIGURE_OPTIONS
> >
> >
> > And the timestamps on the tar extraction end up in a race so that this gets invoked
> > during the “build” - so, I tried looking at other packages to deal with this and I can
> > just touch configure on a PRE_CONFIGURE hook to get it to bounce forward or
> > I could set AUTORECONF on xfsprogs. But, is there a preferred method to deal
> > with this?
>
> Which version of xfsprogs do you use?
>
> Here is what I get for the current master branch xfsprogs tarball
> (xfsprogs-4.15.1.tar.xz):
>
> $ stat -c '%n: %y' configure configure.ac
> configure: 2018-02-27 04:05:49.000000000 +0200
> configure.ac: 2018-02-27 04:04:50.000000000 +0200
>
> 'configure' is newer than 'configure.ac', so the 'configure' generation rule
> should not trigger.
>
> baruch
--
http://baruch.siach.name/blog/ ~. .~ Tk Open Systems
=}------------------------------------------------ooO--U--Ooo------------{=
- baruch at tkos.co.il - tel: +972.2.679.5364, http://www.tkos.co.il -
More information about the buildroot
mailing list