Skip to content
Snippets Groups Projects
  1. Dec 03, 2012
  2. Dec 02, 2012
    • Andrew Dunstan's avatar
      Add mode where contrib installcheck runs each module in a separately named database. · e2b3c21b
      Andrew Dunstan authored
      Normally each module is tested in aq database named contrib_regression,
      which is dropped and recreated at the beginhning of each pg_regress run.
      This mode, enabled by adding USE_MODULE_DB=1 to the make command line,
      runs most modules in a database with the module name embedded in it.
      
      This will make testing pg_upgrade on clusters with the contrib modules
      a lot easier.
      
      Still to be done: adapt to the MSVC build system.
      
      Backpatch to 9.0, which is the earliest version it is reasonably possible
      to test upgrading from.
      e2b3c21b
  3. Nov 01, 2012
  4. Oct 28, 2012
    • Peter Eisentraut's avatar
      Preserve intermediate .c files in coverage mode · 4af3dda1
      Peter Eisentraut authored
      The introduction of the .y -> .c pattern rule causes some .c files such
      as bootparse.c to be considered intermediate files in the .y -> .c -> .o
      rule chain, which make would automatically delete.  But in coverage
      mode, the processing tools such as genhtml need those files, so mark
      them as "precious" so that make preserves them.
      4af3dda1
  5. Oct 11, 2012
    • Peter Eisentraut's avatar
      Refactor flex and bison make rules · 8521d131
      Peter Eisentraut authored
      Numerous flex and bison make rules have appeared in the source tree
      over time, and they are all virtually identical, so we can replace
      them by pattern rules with some variables for customization.
      
      Users of pgxs will also be able to benefit from this.
      8521d131
  6. Oct 08, 2012
    • Tom Lane's avatar
      Autoconfiscate selection of 64-bit int type for 64-bit large object API. · 95d035e6
      Tom Lane authored
      Get rid of the fundamentally indefensible assumption that "long long int"
      exists and is exactly 64 bits wide on every platform Postgres runs on.
      Instead let the configure script select the type to use for "pg_int64".
      
      This is a bit of a pain in the rear since we do not want to pollute client
      namespace with all the random symbols that pg_config.h defines; instead
      we have to create a separate generated header file, "pg_config_ext.h".
      But now that the infrastructure is there, we might have the ability to
      add some other stuff that's long been wanting in this area.
      95d035e6
  7. Aug 30, 2012
  8. Jun 29, 2012
  9. Jun 28, 2012
    • Peter Eisentraut's avatar
      Further fix install program detection · dcd5af6c
      Peter Eisentraut authored
      The $(or) make function was introduced in GNU make 3.81, so the
      previous coding didn't work in 3.80.  Write it differently, and
      improve the variable naming to make more sense in the new coding.
      dcd5af6c
  10. Jun 27, 2012
  11. May 07, 2012
    • Peter Eisentraut's avatar
      Fix pg_config.h make rule · d7b2cd9d
      Peter Eisentraut authored
      According to the Autoconf documentation, there should be a make rule
      
      pg_config.h: stamp-h
      
      so that with the right setup around this, a change in pg_config.h.in
      will trigger a rebuild of everything that depends on pg_config.h.  But
      this doesn't always work, sometimes you need to run make twice to get
      everything up to date after a change of pg_config.h.in.
      
      The fix is to write the rule as
      
      pg_config.h: stamp-h ;
      
      instead (with an empty command instead of no command).  This is what
      Automake-generated makefiles effectively do, so it seems safe to be on
      this side.
      
      It's not actually clear why this is (apparently) more correct.  It's
      been posted to
      <http://lists.gnu.org/archive/html/help-make/2012-04/msg00058.html>
      without response so far.
      d7b2cd9d
  12. Apr 24, 2012
  13. Feb 02, 2012
    • Peter Eisentraut's avatar
      ecpg: Improve test building · 69e9768e
      Peter Eisentraut authored
      Further improve on commit c75e1436.
      Instead of building both .o files and binaries in the same make rule,
      just rely on the normal .c -> .o rule.  This will ensure that
      dependency tracking is used when enabled.  To do this, disable the
      implicit direct .c -> binary rule globally, which will also prevent
      the original problem (*.dSYM junk) from reappearing elsewhere.
      69e9768e
  14. Jul 03, 2011
    • Tom Lane's avatar
      Make distprep and *clean build targets recurse into all subdirectories. · acb9198b
      Tom Lane authored
      Certain subdirectories do not get built if corresponding options are not
      selected at configure time.  However, "make distprep" should visit such
      directories anyway, so that constructing derived files to be included in
      the tarball happens without requiring all configure options to be given
      in the tarball build script.  Likewise, it's better if cleanup actions
      unconditionally visit all directories (for example, this ensures proper
      cleanup if someone has done a manual make in such a subdirectory).
      
      To handle this, set up a convention that subdirectories that are
      conditionally included in SUBDIRS should be added to ALWAYS_SUBDIRS
      instead when they are excluded.
      
      Back-patch to 9.1, so that plpython's spiexceptions.h will get provided
      in 9.1 tarballs.  There don't appear to be any instances where distprep
      actions got missed in previous releases, and anyway this fix requires
      gmake 3.80 so we don't want to apply it before 9.1.
      acb9198b
  15. Jun 16, 2011
  16. Jun 14, 2011
  17. Apr 15, 2011
  18. Mar 28, 2011
    • Peter Eisentraut's avatar
      Add maintainer-check target · 6c0dfc03
      Peter Eisentraut authored
      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.
      6c0dfc03
  19. Feb 15, 2011
  20. Jan 24, 2011
  21. Dec 26, 2010
  22. Nov 23, 2010
  23. Nov 15, 2010
  24. Nov 14, 2010
    • Tom Lane's avatar
      Work around make 3.80 bug with long expansions of $(eval). · 1bd20121
      Tom Lane authored
      3.80 breaks if the expansion of $(eval) is long enough to require expansion
      of its internal variable_buffer.  For the purposes of $(recurse) that means
      it'll work so long as no single evaluation of _create_recursive_target
      produces more than 195 bytes.  We can manage that by looping over
      subdirectories outside the call instead of complicating the generated rule.
      This coding is simpler and more readable anyway.
      
      Or at least, this works for me.  We'll see if the buildfarm likes it.
      1bd20121
  25. Nov 12, 2010
    • Peter Eisentraut's avatar
      Improved parallel make support · 19e231bb
      Peter Eisentraut authored
      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.
      19e231bb
  26. Sep 20, 2010
  27. Aug 24, 2010
    • Peter Eisentraut's avatar
      When in automatic dependency mode, never delete any intermediate · 5c788e7c
      Peter Eisentraut authored
      files automatically.  Otherwise, the following could happen: When
      starting from a clean source tree, the first build would delete the
      intermediate file, but also create the dependency file, which
      mentions the intermediate file, thus making it non-intermediate.
      The second build will then need to rebuild the now non-intermediate
      missing file.  So the second build will do work even though nothing
      had changed.  One place where this happens is the .c -> .o -> .so
      chain for some contrib modules.
      5c788e7c
  28. Jul 07, 2010
    • Tom Lane's avatar
      Accept slightly grotty coding in Makefile.global in order to keep the -L · 458474d9
      Tom Lane authored
      flag for src/port/ in front of any -L flags placed in LDFLAGS by configure.
      This undoes an L-flag-ordering change that I had thought would be safe,
      but seems to be making at least one buildfarm member fail --- the only
      theory for orca's failure that I can think of is that it's got an old
      copy of libpgport.a in /usr/lib.  Also allow for LDFLAGS_SL to be set by
      contrib makefiles before they invoke Makefile.global.
      458474d9
  29. Jul 05, 2010
    • Tom Lane's avatar
      Split the LDFLAGS make variable into two parts: LDFLAGS is now used for · 291a9577
      Tom Lane authored
      linking both executables and shared libraries, and we add on LDFLAGS_EX when
      linking executables or LDFLAGS_SL when linking shared libraries.  This
      provides a significantly cleaner way of dealing with link-time switches than
      the former behavior.  Also, make sure that the various platform-specific
      %.so: %.o rules incorporate LDFLAGS and LDFLAGS_SL; most of them missed that
      before.  (I did not add these variables for the platforms that invoke $(LD)
      directly, however.  It's not clear if we can do that safely, since for the
      most part we assume these variables use CC command-line syntax.)
      
      Per gripe from Aaron Swenson and subsequent investigation.
      291a9577
  30. May 13, 2010
  31. Mar 24, 2010
  32. Dec 15, 2009
    • Peter Eisentraut's avatar
      Python 3 support in PL/Python · dd4cd55c
      Peter Eisentraut authored
      Behaves more or less unchanged compared to Python 2, but the new language
      variant is called plpython3u.  Documentation describing the naming scheme
      is included.
      dd4cd55c
  33. Nov 03, 2009
  34. Aug 27, 2009
    • Peter Eisentraut's avatar
      Update of install-sh, mkinstalldirs, and associated configury · 9d182ef0
      Peter Eisentraut authored
      Update install-sh to that from Autoconf 2.63, plus our Darwin-specific
      changes (which I simplified a bit).  install-sh is now able to install
      multiple files in one run, so we could simplify our makefiles sometime.
      
      install-sh also now has a -d option to create directories, so we don't need
      mkinstalldirs anymore.
      
      Use AC_PROG_MKDIR_P in configure.in, so we can use mkdir -p when available
      instead of install-sh -d.  For consistency with the rest of the world,
      the corresponding make variable has been renamed from $(mkinstalldirs) to
      $(MKDIR_P).
      9d182ef0
  35. Aug 10, 2009
    • Peter Eisentraut's avatar
      Ship documentation without intermediate tarballs · ed920882
      Peter Eisentraut authored
      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.
      ed920882
  36. Aug 07, 2009
    • Peter Eisentraut's avatar
      Expand test coverage support to entire tree · 7798147a
      Peter Eisentraut authored
      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.
      7798147a
  37. Aug 05, 2009
    • Peter Eisentraut's avatar
      Use DocBook XSL stylesheets for man page building · c29d7f02
      Peter Eisentraut authored
      This switches the man page building process to use the DocBook XSL stylesheet
      toolchain.  The previous targets for Docbook2X are removed. configure has been
      updated to look for the new tools.  The Documentation appendix contains the
      new build instructions.  There are also a few isolated tweaks in the
      documentation to improve places that came out strangely in the man pages.
      c29d7f02
  38. Jun 23, 2009
    • Tom Lane's avatar
      Fix the makefiles to fail cleanly if Perl is needed but not present. This · 8d355d7b
      Tom Lane authored
      used to work as intended, but got broken some time ago (a quoted empty string
      is not an empty string), and got broken some more by the changes to generate
      ecpg's preproc.y automatically.  Given all the unprotected uses of $(PERL)
      elsewhere, it seems best to make use of the $(missing) script rather than
      trying to ensure each such use is protected individually.  Also fix various
      bits of documentation that omitted to mention Perl as a requirement for
      building from a CVS pull.  Per a complaint from Robert Haas.
      8d355d7b
  39. Feb 19, 2009
Loading