Commit Graph

41 Commits

Author SHA1 Message Date
Peter Eisentraut 721856ff24 Remove distprep
A PostgreSQL release tarball contains a number of prebuilt files, in
particular files produced by bison, flex, perl, and well as html and
man documentation.  We have done this consistent with established
practice at the time to not require these tools for building from a
tarball.  Some of these tools were hard to get, or get the right
version of, from time to time, and shipping the prebuilt output was a
convenience to users.

Now this has at least two problems:

One, we have to make the build system(s) work in two modes: Building
from a git checkout and building from a tarball.  This is pretty
complicated, but it works so far for autoconf/make.  It does not
currently work for meson; you can currently only build with meson from
a git checkout.  Making meson builds work from a tarball seems very
difficult or impossible.  One particular problem is that since meson
requires a separate build directory, we cannot make the build update
files like gram.h in the source tree.  So if you were to build from a
tarball and update gram.y, you will have a gram.h in the source tree
and one in the build tree, but the way things work is that the
compiler will always use the one in the source tree.  So you cannot,
for example, make any gram.y changes when building from a tarball.
This seems impossible to fix in a non-horrible way.

Second, there is increased interest nowadays in precisely tracking the
origin of software.  We can reasonably track contributions into the
git tree, and users can reasonably track the path from a tarball to
packages and downloads and installs.  But what happens between the git
tree and the tarball is obscure and in some cases non-reproducible.

The solution for both of these issues is to get rid of the step that
adds prebuilt files to the tarball.  The tarball now only contains
what is in the git tree (*).  Getting the additional build
dependencies is no longer a problem nowadays, and the complications to
keep these dual build modes working are significant.  And of course we
want to get the meson build system working universally.

This commit removes the make distprep target altogether.  The make
dist target continues to do its job, it just doesn't call distprep
anymore.

(*) - The tarball also contains the INSTALL file that is built at make
dist time, but not by distprep.  This is unchanged for now.

The make maintainer-clean target, whose job it is to remove the
prebuilt files in addition to what make distclean does, is now just an
alias to make distprep.  (In practice, it is probably obsolete given
that git clean is available.)

The following programs are now hard build requirements in configure
(they were already required by meson.build):

- bison
- flex
- perl

Reviewed-by: Michael Paquier <michael@paquier.xyz>
Reviewed-by: Andres Freund <andres@anarazel.de>
Discussion: https://www.postgresql.org/message-id/flat/e07408d9-e5f2-d9fd-5672-f53354e9305e@eisentraut.org
2023-11-06 15:18:04 +01:00
Peter Eisentraut 5dd41f3574 Remove maintainer-check target, fold into normal build
make maintainer-check was obscure and rarely called in practice, and
many breakages were missed.  Fold everything that make maintainer-check
used to do into the normal build.  Specifically:

- Call duplicate_oids when genbki.pl is called.

- Check for tabs in SGML files when the documentation is built.

- Run msgfmt with the -c option during the regular build.  Add an
  additional configure check to see whether we are using the GNU
  version.  (make maintainer-check probably used to fail with non-GNU
  msgfmt.)

Keep maintainer-check as around as phony target for the time being in
case anyone is calling it.  But it won't do anything anymore.
2013-10-10 20:11:56 -04:00
Peter Eisentraut 6c0dfc0356 Add maintainer-check target
This can do various source code checks that are not appropriate for
either the build or the regression tests.  Currently: duplicate_oids,
SGML syntax and tabs check, NLS syntax check.
2011-03-28 22:56:52 +03:00
Magnus Hagander 9f2e211386 Remove cvs keywords from all files. 2010-09-20 22:08:53 +02:00
Peter Eisentraut ed9208829a Ship documentation without intermediate tarballs
Documentation files in HTML and man formats are now prepared for
distribution using the distprep make target, like everything else.  They
are placed in doc/src/sgml/html and manX and installed from there by
make install, if present.  The business with the tarballs in the tarball
is gone.
2009-08-09 22:47:59 +00:00
Alvaro Herrera 6403c35ee6 Fix manpages related to SPI functions.
This patch adds declaration so that they end up in section 3, and adds
them to the Makefiles to install them.

Also, some synopses needed reflowing so that they look nice in 80-column
terminals.
2009-08-05 19:31:50 +00:00
Peter Eisentraut 6e82501083 Since doc/src/sgml already builds the HTML docs twice to resolve index
entries, we don't have to do two builds here as well.
2008-11-14 10:43:59 +00:00
Peter Eisentraut d129255077 Set SQL man pages to be section 7 by default, and only transform them to
another section if required by the platform (instead of the old way of
building them in section "l" and always transforming them to the
platform-specific section).

This speeds up the installation on common platforms, and it avoids some
funny business with the man page tools and build process.
2008-11-14 10:22:48 +00:00
Peter Eisentraut b9dbb63e48 Don't ship spi_* man pages. (We don't do that anyway, but now it's automatic.) 2006-12-02 01:25:50 +00:00
PostgreSQL Daemon 969685ad44 $Header: -> $PostgreSQL Changes ... 2003-11-29 19:52:15 +00:00
Peter Eisentraut 5e5c5cd31a Merge documentation into one book. (Build with "make html".) Replace
vague cross-references with real links.
2003-03-25 16:15:44 +00:00
Tom Lane 829cedc8cf Make install and clean targets behave more normally. 2002-11-30 00:22:39 +00:00
Peter Eisentraut b02c56f584 Clean documentation subtree during make clean. 2002-07-28 15:19:59 +00:00
Peter Eisentraut 6840aa3665 Fix comment 2001-11-25 22:17:27 +00:00
Bruce Momjian ee587da6db Improve wording. 2001-11-23 17:56:13 +00:00
Bruce Momjian 8b48010288 Document index entries are built first. 2001-11-23 17:15:30 +00:00
Bruce Momjian 85c2d1c4ca Change tar -T file to tar `cat file` for BSD tar. 2001-09-30 19:18:29 +00:00
Bruce Momjian e7bbf4bc1c Change tar -c -f to -cf for BSD tar. 2001-09-30 19:09:57 +00:00
Peter Eisentraut b600319c25 Fix *.gif expansion to be empty when no gif files are used. 2001-09-30 16:01:12 +00:00
Peter Eisentraut 4a4abd4232 Generate index.html as the root file name of the documentation set,
rather than making index.html a symlink to the autogenerated name.
Fixes fatal problems with tar programs that don't handle symlinks
very well (MacOS X).

(The names user.html, admin.html, etc. are still available as make
targets, but they aren't packaged anymore.)

Use the manifest file that the stylesheets generate as the file list
for packaging.  Put graphics in the right place while building, not
while packaging, so you can actually look at them after building.
2001-09-18 12:08:27 +00:00
Peter Eisentraut 27d2890b87 Unify the zip rules and variables. 2001-09-17 23:00:27 +00:00
Peter Eisentraut 184c4afcd6 Some formatting changes, add CSS stylesheet. Include indexes in
documentation tarball builds.
2001-09-14 20:37:55 +00:00
Peter Eisentraut b1a38a4380 Install the SQL command man pages into a section appropriate for each
system.  Some systems did not understand the 'l' section, and in general
it wasn't entirely appropriate.

On SCO OpenServer, the man pages won't be installed at all until someone
figures out their man system.
2001-08-29 19:14:40 +00:00
Bruce Momjian ec12e80019 > Kinda looks like Ian broke the compile-in-source-dir case while
> making the compile-in-separate-dir case work.  Tut tut.

Yes.  My apologies.  This patch is one way to fix things.

Ian
2001-03-27 16:34:14 +00:00
Peter Eisentraut b67e7bb1f7 Allow building documentation outside source tree.
from Ian Lance Taylor
2001-03-25 08:32:24 +00:00
Tom Lane ec22e3127d No more .htm files, so don't try to add them to the doc tarballs. 2001-02-17 16:47:57 +00:00
Peter Eisentraut b2e76d570b Revive Reference Manual, remove reference pages from User's Guide.
Make version.sgml the central place for updating version numbers in the
documentation.  Document titles now contain the version number of the
release they belong to.

filelist.sgml is the central (and only) place to declare system entities
(i.e., sgml files).  No longer a need to declare them in each document
header.

There is no longer any need to maintain duplicate chapter lists in
postgres.sgml and user/admin/etc.sgml, everything is build from the same
sources.  Some parameter entities allow for different text to be included
when the integrated or a single doc set is generated, which eliminates the
problems that had caused this to fail in the past.
2000-11-24 17:44:22 +00:00
Peter Eisentraut 23d7c6973f Split out Developer's from Programmer's guide. 2000-10-08 13:24:09 +00:00
Thomas G. Lockhart 2c2a9a0fab Define ZIP rather than GZIP.
Define ZIPSUFFIX to allow substitution of something other than gzip.
2000-09-12 03:47:36 +00:00
Peter Eisentraut d7f1e11026 GZIP vs ZIP variable naming messed up 2000-09-05 18:45:38 +00:00
Peter Eisentraut 424f0edcb8 Fix relative path references so that make knowns which dependencies refer
to one another. Sort out builddir vs srcdir variable namings. Remove some
now obsoleted make variables.
2000-08-31 16:12:35 +00:00
Peter Eisentraut 0d59dad770 Automatic dependency tracking
The .DEFAULT rule in backend/Makefile is harmful -- removed.
Replace `::' rules by `:'.
2000-07-16 14:50:44 +00:00
Thomas G. Lockhart d0a1919852 Use sgml/Makefile to generate man sections, so just "make man" there. 1999-08-08 15:10:21 +00:00
Thomas G. Lockhart d289011f8a Include gif omitted from integrated doc.
Thanks to Goran Uddeborg for spotting this.
1999-07-14 20:31:42 +00:00
Thomas G. Lockhart 192a66e3da Include rules for building a man tar file. 1999-07-06 17:13:50 +00:00
Thomas G. Lockhart 888760250a Fix build rules for the tutorial,
which was not built last time these things changed.
1999-01-07 06:19:17 +00:00
Thomas G. Lockhart 3af9d95f38 Try to get only html and gif files into tarballs.
Was picking up subdirectories and other garbage.
1998-10-31 09:35:19 +00:00
Thomas G. Lockhart 3be86c98c6 Allow building a source tarball.
Try to generalize the gzip/tar usage for more portability.
1998-05-09 22:32:03 +00:00
Thomas G. Lockhart e98562a511 Include complete Makefile.global if available,
rather than just Makefile.custom.
1998-04-05 17:07:32 +00:00
Thomas G. Lockhart ffa399eba4 Make this rely on a real Makefile in sgml/.
Implement installation and cleaning.
1998-03-01 20:47:20 +00:00
Thomas G. Lockhart c8cfb0cea8 SGML source for new documentation. 1998-03-01 08:16:16 +00:00