Tweak generation of Gen_dummy_probes.pl

Use a static prolog file instead of generating the prolog from the
existing perl script. Also, support generation of the file in a vpath
build.

Discussion: https://postgr.es/m/700620.1620662868@sss.pgh.pa.us
This commit is contained in:
Andrew Dunstan 2021-05-11 20:02:02 -04:00
parent 0b85fa93e4
commit 0bf62931ca
No known key found for this signature in database
GPG Key ID: 99FA7FCB59FC3B81
3 changed files with 25 additions and 4 deletions

View File

@ -0,0 +1,19 @@
#! /usr/bin/perl -w
#-------------------------------------------------------------------------
#
# Gen_dummy_probes.pl
# Perl script that generates probes.h file when dtrace is not available
#
# Portions Copyright (c) 2008-2021, PostgreSQL Global Development Group
#
#
# IDENTIFICATION
# src/backend/utils/Gen_dummy_probes.pl
#
# This program was generated by running perl's s2p over Gen_dummy_probes.sed
#
#-------------------------------------------------------------------------
# turn off perlcritic for autogenerated code
## no critic

View File

@ -92,10 +92,10 @@ $(top_builddir)/src/include/utils/probes.h: probes.h
# Nothing depends on it, so it will never be called unless explicitly requested
# The last two lines of the recipe format the script according to our
# standard and put back some blank lines for improved readability.
Gen_dummy_probes.pl: Gen_dummy_probes.sed
perl -ni -e ' print; exit if /^\$$0/;' $@
s2p -f $< | sed -e 1,4d -e '/# #/d' -e '$$d' >> $@
perltidy --profile=../../tools/pgindent/perltidyrc $@
Gen_dummy_probes.pl: Gen_dummy_probes.sed Gen_dummy_probes.pl.prolog
cp $(srcdir)/Gen_dummy_probes.pl.prolog $@
s2p -f $< | sed -e 1,3d -e '/# #/ d' -e '$$d' >> $@
perltidy --profile=$(srcdir)/../../tools/pgindent/perltidyrc $@
perl -pi -e '!$$lb && ( /^\t+#/ || /^# prototypes/ ) && print qq{\n};'\
-e '$$lb = m/^\n/; ' $@

View File

@ -23,3 +23,5 @@ on Fedora it can be installed using `cpan App::s2p` or
The Makefile contains a recipe for regenerating Gen_dummy_probes.pl, so all
you need to do is once you have s2p installed is `make Gen_dummy_probes.pl`
Note that in a VPATH build this will generate the file in the vpath tree,
not the source tree.