<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/php-git.git/scripts/phpize.in, branch php-7.4.0RC4</title>
<subtitle>git.php.net: repository/php-src.git
</subtitle>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/php-git.git/'/>
<entry>
<title>Refactor undefining PACKAGE_* symbols</title>
<updated>2019-07-11T00:00:51+00:00</updated>
<author>
<name>Peter Kokot</name>
<email>peterkokot@gmail.com</email>
</author>
<published>2019-07-11T00:00:51+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/php-git.git/commit/?id=a6daded1a4b7d715d9b1585fe9df269ca73e2bac'/>
<id>a6daded1a4b7d715d9b1585fe9df269ca73e2bac</id>
<content type='text'>
Instead of patching configuration headers template generated by
the given tools - autoheader, this moves patching these symbols to
the configure step before creating and invoking the config.status
and before the configuration header file is generated from the
patched template.

Closes GH-4374
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Instead of patching configuration headers template generated by
the given tools - autoheader, this moves patching these symbols to
the configure step before creating and invoking the config.status
and before the configuration header file is generated from the
patched template.

Closes GH-4374
</pre>
</div>
</content>
</entry>
<entry>
<title>Automatically remove aclocal.m4 if present</title>
<updated>2019-04-28T19:05:34+00:00</updated>
<author>
<name>Peter Kokot</name>
<email>peterkokot@gmail.com</email>
</author>
<published>2019-04-25T20:44:56+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/php-git.git/commit/?id=f9db357623434e8583a22553d26aeaa375b97e05'/>
<id>f9db357623434e8583a22553d26aeaa375b97e05</id>
<content type='text'>
Commit 4e7064d173d2b5b22e159fcf52d22b10213b67b8 removed the usage of
`aclocal.m4`. When using Git repositories, many times cleaning of the
generated files is not done prior to running phpize or buildconf. For
example:

  git clone git://github.com/php/php-src
  cd php-src
  git checkout PHP-7.3
  ./buildconf
  ./configure
  git checkout PHP-7.4
  ./buildconf # -&gt; warnings
  ./configure # -&gt; errors

To not accidentally include `aclocal.m4` file in the generated configure
this enhances build system experience a bit more by removing aclocal.m4
file prior to start building configure file using phpize or buildconf.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Commit 4e7064d173d2b5b22e159fcf52d22b10213b67b8 removed the usage of
`aclocal.m4`. When using Git repositories, many times cleaning of the
generated files is not done prior to running phpize or buildconf. For
example:

  git clone git://github.com/php/php-src
  cd php-src
  git checkout PHP-7.3
  ./buildconf
  ./configure
  git checkout PHP-7.4
  ./buildconf # -&gt; warnings
  ./configure # -&gt; errors

To not accidentally include `aclocal.m4` file in the generated configure
this enhances build system experience a bit more by removing aclocal.m4
file prior to start building configure file using phpize or buildconf.
</pre>
</div>
</content>
</entry>
<entry>
<title>Move acinclude.m4 to build/php.m4</title>
<updated>2019-04-23T18:28:45+00:00</updated>
<author>
<name>Peter Kokot</name>
<email>peterkokot@gmail.com</email>
</author>
<published>2019-03-12T23:25:07+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/php-git.git/commit/?id=4e7064d173d2b5b22e159fcf52d22b10213b67b8'/>
<id>4e7064d173d2b5b22e159fcf52d22b10213b67b8</id>
<content type='text'>
The acinclude.m4 file is in a usual Autotools build processed with
Automake's aclocal tool. Since PHP currently doesn't use Automake and
aclocal this file can be moved into the build directory. PHP build
system currently generates a combined aclocal.m4 file that Autoconf
can processes automatically.

However, a newer practice is writing all local macros in separate
dedicated files prefixed with package name, in PHP's case PHP_MACRO_NAME
and putting them in a common `m4` directory. PHP uses currently `build`
directory for this purpose.

Name `php.m4` probably most resembles such file for PHP's case.

PHP manually created the aclocal.m4 file from acinclude.m4 and
build/libtool.m4. Which is also not a particularly good practice [1], so
this patch also removes the generated alocal.m4 usage and uses
m4_include() calls manually in the configure.ac and phpize.m4 files
manually.

- sort order is not important but can be alphabetical
- list of *.m4 files prerequisites for configure script generation
  updated
- Moving m4_include() before AC_INIT also removes all comments starting
  with hash character (`#`) in the included files.

[1] https://autotools.io/autoconf/macros.html
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The acinclude.m4 file is in a usual Autotools build processed with
Automake's aclocal tool. Since PHP currently doesn't use Automake and
aclocal this file can be moved into the build directory. PHP build
system currently generates a combined aclocal.m4 file that Autoconf
can processes automatically.

However, a newer practice is writing all local macros in separate
dedicated files prefixed with package name, in PHP's case PHP_MACRO_NAME
and putting them in a common `m4` directory. PHP uses currently `build`
directory for this purpose.

Name `php.m4` probably most resembles such file for PHP's case.

PHP manually created the aclocal.m4 file from acinclude.m4 and
build/libtool.m4. Which is also not a particularly good practice [1], so
this patch also removes the generated alocal.m4 usage and uses
m4_include() calls manually in the configure.ac and phpize.m4 files
manually.

- sort order is not important but can be alphabetical
- list of *.m4 files prerequisites for configure script generation
  updated
- Moving m4_include() before AC_INIT also removes all comments starting
  with hash character (`#`) in the included files.

[1] https://autotools.io/autoconf/macros.html
</pre>
</div>
</content>
</entry>
<entry>
<title>Disable PACKAGE_* preprocessor symbols</title>
<updated>2019-04-13T05:00:17+00:00</updated>
<author>
<name>Peter Kokot</name>
<email>peterkokot@gmail.com</email>
</author>
<published>2019-04-09T23:04:02+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/php-git.git/commit/?id=69b20f51e15d535da77f830709a4f1b5a682c265'/>
<id>69b20f51e15d535da77f830709a4f1b5a682c265</id>
<content type='text'>
Autoconf defines PACKAGE_* symbols:
- PACKAGE_NAME
- PACKAGE_VERSION
- PACKAGE_TARNAME
- PACKAGE_STRING
- PACKAGE_BUGREPORT
- PACKAGE_URL

and appends them to the generated config.h.in files. With AC_INIT change
via afd52f9d9986d92dd0c63832a07ab1a16bf11d53 where package version, URL,
bug report location and similar meta data are defined, these
preprocessor macros are then non empty strings in the generated
configuration header file. When using phpize, PHP shares the config
files in extensions, warnings of redefined macros appear, such as:
- `warning: 'PACKAGE_NAME' macro redefined`

This patch now disables these non utilized symbols in the generated
config header files.

Better practice would be to include only API specific headers where
needed but this would require even more refactorings. Some extensions
such as pcre, pgsql, and pdo_pgsql solve this issue by undefining some
of these symbols before including the library configuration headers in
the code also. Because these symbols can be defined by any library which
uses Autotools.

Additionally, the unused PACKAGE_* symbols were cleaned for the bundled
libmbfl library and with this patch not needed undef code removed.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Autoconf defines PACKAGE_* symbols:
- PACKAGE_NAME
- PACKAGE_VERSION
- PACKAGE_TARNAME
- PACKAGE_STRING
- PACKAGE_BUGREPORT
- PACKAGE_URL

and appends them to the generated config.h.in files. With AC_INIT change
via afd52f9d9986d92dd0c63832a07ab1a16bf11d53 where package version, URL,
bug report location and similar meta data are defined, these
preprocessor macros are then non empty strings in the generated
configuration header file. When using phpize, PHP shares the config
files in extensions, warnings of redefined macros appear, such as:
- `warning: 'PACKAGE_NAME' macro redefined`

This patch now disables these non utilized symbols in the generated
config header files.

Better practice would be to include only API specific headers where
needed but this would require even more refactorings. Some extensions
such as pcre, pgsql, and pdo_pgsql solve this issue by undefining some
of these symbols before including the library configuration headers in
the code also. Because these symbols can be defined by any library which
uses Autotools.

Additionally, the unused PACKAGE_* symbols were cleaned for the bundled
libmbfl library and with this patch not needed undef code removed.
</pre>
</div>
</content>
</entry>
<entry>
<title>Move Makefile.global and Makefile.gcov to build directory</title>
<updated>2019-03-04T11:30:42+00:00</updated>
<author>
<name>Peter Kokot</name>
<email>peterkokot@gmail.com</email>
</author>
<published>2019-03-04T05:06:10+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/php-git.git/commit/?id=2957651c5c2a003e96318fc9217764b91266723a'/>
<id>2957651c5c2a003e96318fc9217764b91266723a</id>
<content type='text'>
These files can be stored in the build directory instead of bloating the
project root directory.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
These files can be stored in the build directory instead of bloating the
project root directory.
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove mkinstalldirs, install-sh and missing</title>
<updated>2019-03-04T11:10:50+00:00</updated>
<author>
<name>Peter Kokot</name>
<email>peterkokot@gmail.com</email>
</author>
<published>2019-03-04T04:25:04+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/php-git.git/commit/?id=1c32d751c7cb2abf26b1589f26c80558597e489b'/>
<id>1c32d751c7cb2abf26b1589f26c80558597e489b</id>
<content type='text'>
These scripts are part of Automake [1] and are in current *nix build
system not used anymore nor empty files need to be created.

[1] https://www.gnu.org/software/automake/manual/html_node/Auxiliary-Programs.html
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
These scripts are part of Automake [1] and are in current *nix build
system not used anymore nor empty files need to be created.

[1] https://www.gnu.org/software/automake/manual/html_node/Auxiliary-Programs.html
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove deprecated PHP_EXTENSION m4 macro</title>
<updated>2019-02-27T19:12:53+00:00</updated>
<author>
<name>Peter Kokot</name>
<email>peterkokot@gmail.com</email>
</author>
<published>2019-02-23T23:35:36+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/php-git.git/commit/?id=3aeb7b0e77c1411962f779fef6baa43cc41905c7'/>
<id>3aeb7b0e77c1411962f779fef6baa43cc41905c7</id>
<content type='text'>
The PHP_EXTENSION macro was used before the introduction of the updated
build system in the 9d9d39a0de3bec962c343051011f5a2ed7d7b242. The
extensions at that time possibly still used the Makefile.in and Automake
and the PHP_EXTENSION macro has been replaced with the PHP_NEW_EXTENSION
macro.

Today, the once deprecated macro can be removed in favor of only
PHP_NEW_EXTENSION macro.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The PHP_EXTENSION macro was used before the introduction of the updated
build system in the 9d9d39a0de3bec962c343051011f5a2ed7d7b242. The
extensions at that time possibly still used the Makefile.in and Automake
and the PHP_EXTENSION macro has been replaced with the PHP_NEW_EXTENSION
macro.

Today, the once deprecated macro can be removed in favor of only
PHP_NEW_EXTENSION macro.
</pre>
</div>
</content>
</entry>
<entry>
<title>Set AC_CONFIG_AUX_DIR to build directory</title>
<updated>2018-12-10T07:11:44+00:00</updated>
<author>
<name>Peter Kokot</name>
<email>peterkokot@gmail.com</email>
</author>
<published>2018-12-02T09:39:43+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/php-git.git/commit/?id=7e445ef3b1a197dccbc92f35cb66988b66671841'/>
<id>7e445ef3b1a197dccbc92f35cb66988b66671841</id>
<content type='text'>
The Autoconf macro AC_CONFIG_AUX_DIR can set the location of the
auxiliary build tools such as config.guess, config.sub, and bundled
libtool scripts and moves these bundled files from the root directory
to the build subdirectory.

Additionally some changes in this context or as a part of obsoletion:
- The LT_TARGETS variable in build/build2.mk file was once used as a part
  of the Automake step. It's not used anymore and has been refactored to
  separate makedist script directly.
- ltconfig is not used anymore since libtool 1.4+
  cf8d1563c27a70fdd24055c1e80218ec7b5962d6
- phpize file locations for the config.guess, config.sub, and ltmain.sh
  has been refactored accordingly.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The Autoconf macro AC_CONFIG_AUX_DIR can set the location of the
auxiliary build tools such as config.guess, config.sub, and bundled
libtool scripts and moves these bundled files from the root directory
to the build subdirectory.

Additionally some changes in this context or as a part of obsoletion:
- The LT_TARGETS variable in build/build2.mk file was once used as a part
  of the Automake step. It's not used anymore and has been refactored to
  separate makedist script directly.
- ltconfig is not used anymore since libtool 1.4+
  cf8d1563c27a70fdd24055c1e80218ec7b5962d6
- phpize file locations for the config.guess, config.sub, and ltmain.sh
  has been refactored accordingly.
</pre>
</div>
</content>
</entry>
<entry>
<title>ext/gd: Use pkg-config to detect the availability of freetype2</title>
<updated>2018-11-07T12:05:47+00:00</updated>
<author>
<name>Eli Schwartz</name>
<email>eschwartz93@gmail.com</email>
</author>
<published>2018-05-14T21:25:37+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/php-git.git/commit/?id=2d03197749696ac3f8effba6b7977b0d8729fef3'/>
<id>2d03197749696ac3f8effba6b7977b0d8729fef3</id>
<content type='text'>
The latest version of freetype2 does not install freetype-config by
default, but pkg-config support has been there for approximately 15
years. In order to reliably detect freetype2, pkg-config *must* be used.

See:
https://savannah.nongnu.org/bugs/?53093
https://bugs.php.net/bug.php?id=76324
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The latest version of freetype2 does not install freetype-config by
default, but pkg-config support has been there for approximately 15
years. In order to reliably detect freetype2, pkg-config *must* be used.

See:
https://savannah.nongnu.org/bugs/?53093
https://bugs.php.net/bug.php?id=76324
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove mkdep.awk</title>
<updated>2018-10-20T08:08:54+00:00</updated>
<author>
<name>Peter Kokot</name>
<email>peterkokot@gmail.com</email>
</author>
<published>2018-10-19T08:00:16+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/php-git.git/commit/?id=addcf2402d221d7c67fa01c170fde08e5fe312d6'/>
<id>addcf2402d221d7c67fa01c170fde08e5fe312d6</id>
<content type='text'>
The `mkdep.awk` file was part of the previous *nix build system and was
used to create a .deps file with a list of dependencies that could be
processed by Automake further on.

Newer build system was done via 9d9d39a0de3bec962c343051011f5a2ed7d7b242
and outdated files removed via 22815419f8c5da902971d3aa12f2cbfcc3b41aff
so the current file in the PHP source code is not used anymore.

Additionally, the *.slo files were processed by this file. The *.slo
files also used to be generated by older libtool so today, these don't
get generated anymore.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The `mkdep.awk` file was part of the previous *nix build system and was
used to create a .deps file with a list of dependencies that could be
processed by Automake further on.

Newer build system was done via 9d9d39a0de3bec962c343051011f5a2ed7d7b242
and outdated files removed via 22815419f8c5da902971d3aa12f2cbfcc3b41aff
so the current file in the PHP source code is not used anymore.

Additionally, the *.slo files were processed by this file. The *.slo
files also used to be generated by older libtool so today, these don't
get generated anymore.
</pre>
</div>
</content>
</entry>
</feed>
