Skip to content

Conversation

petk
Copy link
Member

@petk petk commented Jul 18, 2019

Hello, first step when creating configure script is currently using make. This is helpful when developing build system to only rebuild configure and php_config.h.in files when one of the *.m4 file changes.

Realistically, it is not needed that much considering the time of several seconds to fully rebuild the configure script.

To better understand this:

time ./buildconf (with make) -> 4sec
time ./buildconf (without make) -> 3sec

Approach shown in #4355 decreases time for another second approximately.

When downloading PHP release tarball configure and php_config.h.in are already included and scripts without using --force exits before reaching the files generation steps. The configure steps takes 10s up to a minute depending on options, so performance improvements and simplifications here are more or less only for core devs...

Thanks.

Redaction

  • times are the same with or without using make here
  • difference when using make is noticeable when one of the *.m4 or configure.ac files changes. Make regenerates only files where their prerequisites timestamps are changed. And still this is in my opinion not
    that drastically practical anyhow because build system developers mostly regenerate all files all the time...

@petk petk force-pushed the patch-remove-make-from-buildconf branch from e268842 to b5624e9 Compare July 19, 2019 19:50
First step when creating the `configure` script is currently using
make. This is helpful when developing buildsystem to only rebuild
`configure` and `main/php_config.h.in` files when one of the *.m4
or configure.ac file changes and saves the developer time a little.

Realistically however, it is not needed that much considering the
times of several seconds to fully rebuild the configure script and
configuration header. The next step when running the `configure`
script is much more time consuming so performance on buildconf
level is a bit questionable and won't be noticed on today's
systems.

Additionally:
- buildconf now removes cache and all targets and uses -f option on
  the first step i.e. autoconf. The autoheader does not need the -f
  option in this case.
@petk petk force-pushed the patch-remove-make-from-buildconf branch from b5624e9 to f733d23 Compare July 21, 2019 01:04
@petk
Copy link
Member Author

petk commented Jul 21, 2019

So this now:

  • removes build.mk
  • buildconf script removes all files - caches, targets, and aclocal.m4 and the --force option is used to regenerate the configure files in PHP releases only.
  • autoheader does not use the -f option which reduces generation time for about a second...

@php-pulls php-pulls closed this in ef165b4 Jul 21, 2019
@petk petk deleted the patch-remove-make-from-buildconf branch July 21, 2019 09:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants