Add a Docker container for regenerating wx configure

This allows doing it on any system with Docker instead of having to do
it only under Debian stable that was traditionally used for this.

Closes #22889.
This commit is contained in:
Vadim Zeitlin 2022-10-18 22:09:49 +02:00
parent ee67242b5f
commit ca4e70df74
3 changed files with 58 additions and 0 deletions

View file

@ -0,0 +1,10 @@
FROM alpine:3.13
RUN apk add autoconf
# wxWidgets sources must be mounted here.
VOLUME /wx
WORKDIR /wx
CMD ["autoconf", "-B", "build/autoconf_prepend-include"]

View file

@ -0,0 +1,44 @@
# Docker container for running autoconf
## Rationale
We store generated `configure` in Git to make it simpler for people to build
wxWidgets without having to run autoconf themselves first, but this means that
generating it on another system often results in insignificant changes just due
to a different version of autoconf being used. By using this container, we can
use the same version everywhere.
To use it, first build the container, then run it, see below.
## Build
Just run
```shell
$ docker build -t autoconf-for-wx build/tools/autoconf
```
This should (quickly) finish with
```
Successfully tagged autoconf-for-wx:latest
```
## Run
Use the following command to update `configure` from `configure.in`:
```shell
$ docker run -v `pwd`:/wx --rm autoconf-for-wx
```
It should be run from the top-level wx directory.
## Updating autoconf version
When we decide to switch to a newer autoconf version, we should update the
`Dockerfile` here to use a later version of Alpine Linux: the currently used
version is specifically chosen because it has the package with the latest
version of autoconf 2.69.

View file

@ -166,6 +166,10 @@ and from the root directory run
autoconf -B build/autoconf_prepend-include
or, if you're not using Debian Stable version of autoconf, see the instructions
in `build/tools/autoconf/README.md` for regenerating configure on a different
system.
* Restore the description of the Git notes use and create a skeleton section
for the next release in `docs/changes.txt`.