summaryrefslogtreecommitdiff
path: root/src/interfaces/Makefile
AgeCommit message (Collapse)Author
2025-05-01oauth: Move the builtin flow into a separate moduleJacob Champion
The additional packaging footprint of the OAuth Curl dependency, as well as the existence of libcurl in the address space even if OAuth isn't ever used by a client, has raised some concerns. Split off this dependency into a separate loadable module called libpq-oauth. When configured using --with-libcurl, libpq.so searches for this new module via dlopen(). End users may choose not to install the libpq-oauth module, in which case the default flow is disabled. For static applications using libpq.a, the libpq-oauth staticlib is a mandatory link-time dependency for --with-libcurl builds. libpq.pc has been updated accordingly. The default flow relies on some libpq internals. Some of these can be safely duplicated (such as the SIGPIPE handlers), but others need to be shared between libpq and libpq-oauth for thread-safety. To avoid exporting these internals to all libpq clients forever, these dependencies are instead injected from the libpq side via an initialization function. This also lets libpq communicate the offsets of PGconn struct members to libpq-oauth, so that we can function without crashing if the module on the search path came from a different build of Postgres. (A minor-version upgrade could swap the libpq-oauth module out from under a long-running libpq client before it does its first load of the OAuth flow.) This ABI is considered "private". The module has no SONAME or version symlinks, and it's named libpq-oauth-<major>.so to avoid mixing and matching across Postgres versions. (Future improvements may promote this "OAuth flow plugin" to a first-class concept, at which point we would need a public API to replace this anyway.) Additionally, NLS support for error messages in b3f0be788a was incomplete, because the new error macros weren't being scanned by xgettext. Fix that now. Per request from Tom Lane and Bruce Momjian. Based on an initial patch by Daniel Gustafsson, who also contributed docs changes. The "bare" dlopen() concept came from Thomas Munro. Many people reviewed the design and implementation; thank you! Co-authored-by: Daniel Gustafsson <daniel@yesql.se> Reviewed-by: Andres Freund <andres@anarazel.de> Reviewed-by: Christoph Berg <myon@debian.org> Reviewed-by: Daniel Gustafsson <daniel@yesql.se> Reviewed-by: Jelte Fennema-Nio <postgres@jeltef.nl> Reviewed-by: Peter Eisentraut <peter@eisentraut.org> Reviewed-by: Wolfgang Walther <walther@technowledgy.de> Discussion: https://postgr.es/m/641687.1742360249%40sss.pgh.pa.us
2011-03-08Fix parallel make when running make install before make allPeter Eisentraut
In addition to the all-foo-recurse: all-bar-recurse dependencies that constraint the order of the rule execution, we need install-foo-recurse: install-bar-recurse dependencies in case one runs make install without a make all first, as some people apparently do.
2010-11-17Additional fixes for parallel makePeter Eisentraut
Add some additional dependencies to constrain the build order to prevent parallel make from failing. In the case of src/Makefile, this is likely to be too complicated to be worth maintaining, so just add .NOTPARALLEL to get the old for-loop-like behavior. More fine-tuning might be necessary for some platforms or configurations.
2010-11-12Improved parallel make supportPeter Eisentraut
Replace for loops in makefiles with proper dependencies. Parallel make can now span across directories. Also, make -k and make -q work properly. GNU make 3.80 or newer is now required.
2010-09-20Remove cvs keywords from all files.Magnus Hagander
2009-08-07Expand test coverage support to entire treePeter Eisentraut
Test coverage support now covers the entire source tree, including contrib, instead of just src/backend. In a related but independent development, the commands make coverage and make coverage-html can be run in any directory. This turned out to be much easier than feared. Besides a few ad hoc fixes to pass the make target down the tree, change all affected makefiles to list their directories in the SUBDIRS variable, changed from variants like DIRS and WANTED_DIRS. MSVC build fix was attempted as well.
2008-03-18Catch all errors in for and while loops in makefiles. Don't ignore anyPeter Eisentraut
errors in any commands, including in various clean targets that have so far been handled inconsistently. make -i is available to ignore all errors in a consistent and official way.
2007-02-09Replace useless uses of := by = in makefiles.Peter Eisentraut
2007-01-20Remove remains of old depend target.Peter Eisentraut
2004-04-20Remove all of the libpgtcl and pgtclsh files, including all references toPostgreSQL Daemon
them within the various makefiles with_tcl is still required for the src/pl/tcl language
2004-01-19Remove JDBC from the build system and documentation, too.Tom Lane
2003-11-29$Header: -> $PostgreSQL Changes ...PostgreSQL Daemon
2003-08-01clean python out of MakefileMarc G. Fournier
2002-08-30perl5 interface moved to gborgMarc G. Fournier
2002-08-30libpgeasy moved to gborg ...Marc G. Fournier
2002-08-22Remove all traces of the ODBC driver, which is now on GBorg as the psqlodbcMarc G. Fournier
project ...
2002-08-22Okay, libpq++ is moved to GBorg, and all traces of it have been removedMarc G. Fournier
from the core repository ... I haven't *moved* the libpq++ files out of the tree, mainly as we want to keep them in place for past branches ... Peter, I think I've covered all the files I need, and re-ran autoconf to make sure the configure file is in place properly ...
2001-03-09Recursive distclean shouldn't depend on recursive clean. SubdirectoriesPeter Eisentraut
handle this.
2001-03-05Ok, I've split todays commit into three, the first two already done had somePeter Mount
bits in JDBC & the first set of tools into contrib. This is the third, and deals with enabling JDBC to be compiled with the main source. What it does is add a new option to configure: --with-java This option tells configure to look for ant (our build tool of choice) and if found, it then compiles both the JDBC driver and the new tools as part of the normal make. Also, when the postgresql install is done, all the .jar files are also installed into the ${PGLIB}/java directory (thought best to keep then separate) Now I had some conflicts when this applied so could someone please double check that everything is ok? Peter
2000-09-25Revise Tcl/Tk configuration. Make missing Tcl after --with-tcl an error,Peter Eisentraut
add --without-tk option to disable Tk. We don't need the AC_PATH_XTRA test because tkConfig.sh already contains all the information about how to compile and link with X. Also make sure that libpq is up to date for libpgtcl. Remove executable bits from pgaccess.sh, but add it to pgaccess.
2000-08-31Fix relative path references so that make knowns which dependencies referPeter Eisentraut
to one another. Sort out builddir vs srcdir variable namings. Remove some now obsoleted make variables.
2000-07-19Add distprep target to take some of the job of the release_prep script.Peter Eisentraut
The latter updated accordingly. Also add `dist' and `distcheck' targets to play with, but caveat packager. Updated backend/bootstrap and backend/parser makefile to make them marginally builddir aware and fix the usual set of things. Add rule to automatically remake config.h dependent on config.h.in and config.status. (Adopted from Autoconf manual and about every other package.) On a good day we should now have a complete and accurate set of dependencies throughout everything.
2000-06-28Makefile cleanup for interface tree. Now essentially with all thePeter Eisentraut
standard targets and behaviour. Replaced Makefile.in's with Makefile's and declared the respective variables in Makefile.global. maintainer-clean target now available at top level, although it does not work in the backend tree yet. Cleanup pass over Makefile.shlib, renamed some targets and variables. The shared library symlink tests are now done by make, not the shell. ecpg: Remove one warning in sloppy flex output. PL/Perl and Perl interface: the MakeMaker documentation is confusing, the realclean target *does* "delete derived files", but it also uninstalls them. Don't use that. The submake targets in the various bin directories that update libpq should `make all', not `make libpq.a'. That is a) unportable, and b) doesn't build the shared library.
2000-06-10Moved the intricacies of the perl interface build into its own makefilePeter Eisentraut
that now functions as a wrapper around the MakeMaker stuff. It might even behave sensically when we have separate build dirs. Same for plperl, which of course still doesn't work very well. Made sure that plperl respects the choice of --libdir. Added --with-python to automatically build and install the Python interface. Works similarly to the Perl5 stuff. Moved the burden of the distclean targets lower down into the source tree. Eventually, each make file should have its own. Added automatic remaking of makefiles and configure. Currently only for the top-level because of a bug(?) in Autoconf. Use GNU `missing' to work around missing autoconf and aclocal. Start factoring out macros into their own config/*.m4 files to increase readability and organization.
2000-04-26Reinstalled revision 1.36 (looks Peter Mount installedJan Wieck
a new JDBC Makefile here by accident) Jan
2000-04-26third attemptPeter Mount
2000-04-23Our test to see if we had permission to install into Perl5 install areaTom Lane
always failed if Perl makefile's INSTALLSITELIB variable was specified in terms of another variable. Fix by adding an echo-installdir target to the Perl makefile, which the upper-level Makefile can invoke.
2000-04-20Allow libpq++ compile failure to stop entire compile.Bruce Momjian
2000-04-11Allow libpq++ compile to failBruce Momjian
2000-04-06Add POLLUTE to interfaces/MakefileBruce Momjian
2000-03-25Add POLLUTE=1 to perl Makefile.PL creations.Bruce Momjian
1999-12-16I have done the QNX4 port with the current source tree. The number ofBruce Momjian
backend/Makefiles to be patched could significantly be reduced since they have been adopted to the QNX4 needs. Andreas Kardos
1999-10-11Update again.Bruce Momjian
1999-10-11Update pgeasy.Bruce Momjian
1999-10-11Add pginterface into main tree, called pgeasy.Bruce Momjian
1999-10-08Cleanup -is flag to -l for SSL. Another PERL variable name fix. CleanBruce Momjian
up debugging options for postmaster and postgres programs. postmaster -d is no longer optional. Documentation updates.
1999-10-08Use $(PERL) variable for perl compile. Now in Makefile.global.Bruce Momjian
1999-09-03Fix for perl5 on BSD/OS breaks most other platforms, so back it out.Thomas G. Lockhart
istm that this would be a job for configure. Most modern OSes actually use perl5 by default ;)
1999-08-16Fix for perl5 on BSD/OS.Bruce Momjian
1999-05-21Change perl Makefile test.Bruce Momjian
1999-05-10Allow perl install as non-root, from Geoff KeatingBruce Momjian
1998-12-18Here are descriptions:Bruce Momjian
- the first patch is just to preven listing the perl warning in the make output unless it is actually emitted by the make. this may prevent new users from being confused by the warning in their output - the second patch (to 2 files) just enables building/installing pgaccess if TCL and TK are available. a Makefile is created to do this, but you may wish to change the heading information in it since I just copied another Makefile to use as a template. I hope these make it into 6.4.1. Cheers, Brook
1998-10-27Detect lack of permission to install into Perl module library,Tom Lane
and emit informative message instead of aborting the Postgres install.
1998-10-18Still another round of Perl-module installation tweaks.Tom Lane
This time, src/interfaces/perl5/Makefile.PL no longer needs to be autoconf'd.
1998-10-16interfaces/Makefile fix.Bruce Momjian
1998-10-16Perl fixes from Brook MilliganBruce Momjian
1998-10-07Add conditional compilation of the ODBC directory.Thomas G. Lockhart
Requires --with-odbc specified in the standalone configure.
1998-08-26Fix atttypmod alignment again, and re-enable ecpg.Bruce Momjian
1998-08-26Make attalign match type alignment.Bruce Momjian
1998-08-24Compile ecpg by default.Bruce Momjian