On Mon, Jun 15, 2026 at 3:29 PM Chao Li <[email protected]> wrote:

> Hi,
>
> I ran into some trouble while working on patch [1], where I changed
> print.c and needed to rebuild psql. However, make silently didn't rebuild
> psql after the print.c change. I wasn’t aware of that at first, and it
> confused me and wasted quite a bit of time before I figured out what was
> happening.
>
> I tried a Meson build. Ninja automatically rebuilds 33 client tools after
> print.c changes, so I changed make to automatically rebuild client tools in
> the same way as Meson.
>
> But then I found that there are actually 27 client tools that depend on
> libpgfeutils.a. There are 6 client tools that don’t really require
> libpgfeutils.a, but Meson still links the library to them. They are:
>
> * pg_archivecleanup
> * pg_config
> * pg_controldata
> * pg_ctl
> * pg_test_fsync
> * pg_test_timing
>
> I want this patch to focus on make, and I am not as familiar with Meson as
> I am with make, so I didn’t touch the Meson part.
>
> With this patch, when something like print.c in libpgfeutils.a is changed,
> all dependent client tools are automatically rebuilt.
>
> See the attached patch for details. BTW, besides the client tools,
> test_escape also depends on libpgfeutils.a, so I included it in the patch
> as well.
>
> [1]
> https://www.postgresql.org/message-id/A44110E7-6A03-4C67-95AD-527192A6C768%40gmail.com
>
> Best regards,
> --
> Chao Li (Evan)
> HighGo Software Co., Ltd.
> https://www.highgo.com/
>
>
Thanks for the patch. I even ran into the same trouble and got frustrated,
and ended up I switched to meson build. So I'd give a big +1 to fix the
problem for make users.

I tried the patch, and it works properly. But I see meson automatically
rebuilds some more tools than src/bin/ tools, such as
contrib/oid2name/oid2name, src/tools/pg_bsd_indent/pg_bsd_indent, etc., do
you plan to handle them also?

Regards,
Yingying Chen

Reply via email to