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
