Skip to content
Permalink
Browse files

Add configure script for improved multi-platform support.

Use autoconf to provide a basic configure script. WITH_BACKTRACE is yet to be migrated to configure and the unit tests still use a custom Makefile.

Each C file must include "build.auto.conf" before all other includes and defines.  This is enforced by test.pl for includes, but it won't detect incorrect define ordering.

Update packages to call configure and use standard flags to pass options.
  • Loading branch information...
dwsteele committed Apr 26, 2019
1 parent 3505559 commit 027c2638719dffa9ba99250085c403e89a2a8a9a
Showing with 5,354 additions and 596 deletions.
  1. +1 −1 .travis.yml
  2. +4 −0 doc/xml/release.xml
  3. +4 −0 doc/xml/user-guide.xml
  4. +2 −0 libc/LibC.xs
  5. +7 −1 src/.gitignore
  6. +0 −534 src/Makefile
  7. +518 −0 src/Makefile.in
  8. +8 −0 src/build.auto.h.in
  9. +2 −0 src/command/archive/common.c
  10. +2 −0 src/command/archive/get/file.c
  11. +2 −0 src/command/archive/get/get.c
  12. +2 −0 src/command/archive/get/protocol.c
  13. +2 −0 src/command/archive/push/file.c
  14. +2 −0 src/command/archive/push/protocol.c
  15. +2 −0 src/command/archive/push/push.c
  16. +2 −0 src/command/backup/common.c
  17. +2 −0 src/command/command.c
  18. +2 −0 src/command/control/control.c
  19. +2 −0 src/command/help/help.c
  20. +2 −0 src/command/info/info.c
  21. +2 −0 src/command/local/local.c
  22. +2 −0 src/command/remote/remote.c
  23. +2 −0 src/common/compress/gzip/common.c
  24. +2 −0 src/common/compress/gzip/compress.c
  25. +2 −0 src/common/compress/gzip/decompress.c
  26. +2 −0 src/common/crypto/cipherBlock.c
  27. +2 −0 src/common/crypto/common.c
  28. +2 −0 src/common/crypto/hash.c
  29. +2 −0 src/common/debug.c
  30. +2 −0 src/common/encode.c
  31. +2 −0 src/common/encode/base64.c
  32. +2 −0 src/common/error.c
  33. +2 −0 src/common/exec.c
  34. +6 −4 src/common/exit.c
  35. +2 −0 src/common/fork.c
  36. +2 −0 src/common/ini.c
  37. +2 −0 src/common/io/bufferRead.c
  38. +2 −0 src/common/io/bufferWrite.c
  39. +2 −0 src/common/io/filter/buffer.c
  40. +2 −0 src/common/io/filter/filter.c
  41. +2 −0 src/common/io/filter/group.c
  42. +2 −0 src/common/io/filter/size.c
  43. +2 −0 src/common/io/handleRead.c
  44. +2 −0 src/common/io/handleWrite.c
  45. +2 −0 src/common/io/http/client.c
  46. +2 −0 src/common/io/http/common.c
  47. +2 −0 src/common/io/http/header.c
  48. +2 −0 src/common/io/http/query.c
  49. +2 −0 src/common/io/io.c
  50. +2 −0 src/common/io/read.c
  51. +2 −0 src/common/io/tls/client.c
  52. +2 −0 src/common/io/write.c
  53. +2 −0 src/common/lock.c
  54. +2 −0 src/common/log.c
  55. +2 −0 src/common/memContext.c
  56. +2 −0 src/common/regExp.c
  57. +2 −0 src/common/stackTrace.c
  58. +2 −0 src/common/time.c
  59. +2 −0 src/common/type/buffer.c
  60. +2 −0 src/common/type/convert.c
  61. +2 −0 src/common/type/json.c
  62. +2 −0 src/common/type/keyValue.c
  63. +2 −0 src/common/type/list.c
  64. +2 −0 src/common/type/string.c
  65. +2 −0 src/common/type/stringList.c
  66. +2 −0 src/common/type/variant.c
  67. +2 −0 src/common/type/variantList.c
  68. +2 −0 src/common/type/xml.c
  69. +2 −0 src/common/wait.c
  70. +2 −0 src/config/config.c
  71. +2 −0 src/config/define.c
  72. +2 −0 src/config/exec.c
  73. +2 −0 src/config/load.c
  74. +2 −0 src/config/parse.c
  75. +2 −0 src/config/protocol.c
  76. +4,335 −0 src/configure
  77. +56 −0 src/configure.ac
  78. +2 −0 src/info/info.c
  79. +2 −0 src/info/infoArchive.c
  80. +2 −0 src/info/infoBackup.c
  81. +2 −0 src/info/infoManifest.c
  82. +2 −0 src/info/infoPg.c
  83. +2 −0 src/main.c
  84. +2 −0 src/perl/config.c
  85. +2 −0 src/perl/exec.c
  86. +2 −0 src/perl/libc.auto.c
  87. +2 −0 src/postgres/interface.c
  88. +2 −0 src/postgres/interface/v083.c
  89. +2 −0 src/postgres/interface/v084.c
  90. +2 −0 src/postgres/interface/v090.c
  91. +2 −0 src/postgres/interface/v091.c
  92. +2 −0 src/postgres/interface/v092.c
  93. +2 −0 src/postgres/interface/v093.c
  94. +2 −0 src/postgres/interface/v094.c
  95. +2 −0 src/postgres/interface/v095.c
  96. +2 −0 src/postgres/interface/v096.c
  97. +2 −0 src/postgres/interface/v100.c
  98. +2 −0 src/postgres/interface/v110.c
  99. +2 −0 src/postgres/pageChecksum.c
  100. +2 −0 src/protocol/client.c
  101. +2 −0 src/protocol/command.c
  102. +2 −0 src/protocol/helper.c
  103. +2 −0 src/protocol/parallel.c
  104. +2 −0 src/protocol/parallelJob.c
  105. +2 −0 src/protocol/server.c
  106. +2 −0 src/storage/driver/cifs/storage.c
  107. +2 −0 src/storage/driver/posix/common.c
  108. +2 −0 src/storage/driver/posix/fileRead.c
  109. +2 −0 src/storage/driver/posix/fileWrite.c
  110. +2 −0 src/storage/driver/posix/storage.c
  111. +2 −0 src/storage/driver/remote/fileRead.c
  112. +2 −0 src/storage/driver/remote/fileWrite.c
  113. +2 −0 src/storage/driver/remote/protocol.c
  114. +2 −0 src/storage/driver/remote/storage.c
  115. +2 −0 src/storage/driver/s3/fileRead.c
  116. +2 −0 src/storage/driver/s3/fileWrite.c
  117. +2 −0 src/storage/driver/s3/storage.c
  118. +2 −0 src/storage/fileRead.c
  119. +2 −0 src/storage/fileWrite.c
  120. +2 −0 src/storage/helper.c
  121. +2 −0 src/storage/storage.c
  122. +6 −6 test/.gitignore
  123. +48 −23 test/lib/pgBackRestTest/Common/BuildTest.pm
  124. +1 −1 test/lib/pgBackRestTest/Common/CiTest.pm
  125. +14 −5 test/lib/pgBackRestTest/Common/JobTest.pm
  126. +16 −0 test/patch/debian-package.patch
  127. +10 −0 test/patch/rhel-package.patch
  128. +98 −21 test/test.pl
@@ -19,7 +19,7 @@ env:
- PGB_CI="doc"

before_install:
- sudo apt-get -qq update && sudo apt-get install libxml-checker-perl libdbd-pg-perl libperl-critic-perl libtemplate-perl libpod-coverage-perl libtest-differences-perl libhtml-parser-perl lintian debhelper txt2man devscripts libjson-perl libio-socket-ssl-perl libxml-libxml-perl libyaml-libyaml-perl python-pip lcov libjson-maybexs-perl
- sudo apt-get -qq update && sudo apt-get install libxml-checker-perl libdbd-pg-perl libperl-critic-perl libtemplate-perl libpod-coverage-perl libtest-differences-perl libhtml-parser-perl lintian debhelper txt2man devscripts libjson-perl libio-socket-ssl-perl libxml-libxml-perl libyaml-libyaml-perl python-pip lcov libjson-maybexs-perl libperl-dev
- |
# Install & Configure AWS CLI
pip install --upgrade --user awscli
@@ -18,6 +18,10 @@
<release-item>
<p>Improve performance of non-blocking reads by using maximum buffer size.</p>
</release-item>

<release-item>
<p>Add <file>configure</file> script for improved multi-platform support.</p>
</release-item>
</release-improvement-list>

<release-development-list>
@@ -696,6 +696,10 @@
<execute-list host="{[host-build]}">
<title>Build <backrest/> package</title>

<execute user="root" user-force="y">
<exe-cmd>(cd /root/pgbackrest-release-{[version]}/src &amp;&amp; ./configure)</exe-cmd>
</execute>

<execute user="root">
<exe-cmd>make -s -C /root/pgbackrest-release-{[version]}/src</exe-cmd>
</execute>
@@ -9,6 +9,8 @@ The following C types are mapped by the current typemap:
'ssize_t', 'time_t', 'unsigned', 'unsigned char', 'unsigned char *', 'unsigned int', 'unsigned long', 'unsigned long *',
'unsigned short', 'void *', 'wchar_t', 'wchar_t *'
***********************************************************************************************************************************/
#include "build.auto.h"

#define PERL_NO_GET_CONTEXT

/***********************************************************************************************************************************
@@ -1,2 +1,8 @@
pgbackrest
/pgbackrest
*.o
/autom4te.cache
/config.log
/config.status
/config.h
/build.auto.h
/Makefile

This file was deleted.

Oops, something went wrong.

Large diffs are not rendered by default.

Oops, something went wrong.
@@ -0,0 +1,8 @@
/***********************************************************************************************************************************
Build Flags Generated by Configure
***********************************************************************************************************************************/
// Are test code and asserts disabled?
#undef NDEBUG

// Is libperl present?
#undef HAVE_LIBPERL
@@ -1,6 +1,8 @@
/***********************************************************************************************************************************
Archive Common
***********************************************************************************************************************************/
#include "build.auto.h"

#include <stdint.h>
#include <stdlib.h>
#include <string.h>
@@ -1,6 +1,8 @@
/***********************************************************************************************************************************
Archive Get File
***********************************************************************************************************************************/
#include "build.auto.h"

#include "command/archive/get/file.h"
#include "command/archive/common.h"
#include "command/control/control.h"
@@ -1,6 +1,8 @@
/***********************************************************************************************************************************
Archive Get Command
***********************************************************************************************************************************/
#include "build.auto.h"

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
@@ -1,6 +1,8 @@
/***********************************************************************************************************************************
Archive Get Protocol Handler
***********************************************************************************************************************************/
#include "build.auto.h"

#include "command/archive/get/file.h"
#include "command/archive/get/protocol.h"
#include "common/debug.h"
@@ -1,6 +1,8 @@
/***********************************************************************************************************************************
Archive Push File
***********************************************************************************************************************************/
#include "build.auto.h"

#include "command/archive/push/file.h"
#include "command/archive/common.h"
#include "command/control/control.h"
@@ -1,6 +1,8 @@
/***********************************************************************************************************************************
Archive Push Protocol Handler
***********************************************************************************************************************************/
#include "build.auto.h"

#include "command/archive/push/file.h"
#include "command/archive/push/protocol.h"
#include "common/debug.h"
@@ -1,6 +1,8 @@
/***********************************************************************************************************************************
Archive Push Command
***********************************************************************************************************************************/
#include "build.auto.h"

#include <string.h>
#include <unistd.h>

@@ -1,6 +1,8 @@
/***********************************************************************************************************************************
Common Functions and Definitions for Backup and Expire Commands
***********************************************************************************************************************************/
#include "build.auto.h"

#include "command/backup/common.h"
#include "common/debug.h"
#include "common/log.h"
@@ -1,6 +1,8 @@
/***********************************************************************************************************************************
Common Command Routines
***********************************************************************************************************************************/
#include "build.auto.h"

#include <inttypes.h>
#include <string.h>

@@ -1,6 +1,8 @@
/***********************************************************************************************************************************
Command Control
***********************************************************************************************************************************/
#include "build.auto.h"

#include "command/control/control.h"
#include "common/debug.h"
#include "config/config.h"
@@ -1,6 +1,8 @@
/***********************************************************************************************************************************
Help Command
***********************************************************************************************************************************/
#include "build.auto.h"

#include <string.h>
#include <sys/types.h>
#include <unistd.h>
@@ -1,6 +1,8 @@
/***********************************************************************************************************************************
Info Command
***********************************************************************************************************************************/
#include "build.auto.h"

#include <string.h>
#include <sys/types.h>
#include <time.h>
@@ -1,6 +1,8 @@
/***********************************************************************************************************************************
Local Command
***********************************************************************************************************************************/
#include "build.auto.h"

#include "command/archive/get/protocol.h"
#include "command/archive/push/protocol.h"
#include "common/debug.h"
@@ -1,6 +1,8 @@
/***********************************************************************************************************************************
Remote Command
***********************************************************************************************************************************/
#include "build.auto.h"

#include <string.h>

#include "common/debug.h"
@@ -1,6 +1,8 @@
/***********************************************************************************************************************************
Gzip Common
***********************************************************************************************************************************/
#include "build.auto.h"

#include <zlib.h>

#include "common/compress/gzip/common.h"
@@ -1,6 +1,8 @@
/***********************************************************************************************************************************
Gzip Compress
***********************************************************************************************************************************/
#include "build.auto.h"

#include <stdio.h>
#include <zlib.h>

@@ -1,6 +1,8 @@
/***********************************************************************************************************************************
Gzip Decompress
***********************************************************************************************************************************/
#include "build.auto.h"

#include <stdio.h>
#include <zlib.h>

@@ -1,6 +1,8 @@
/***********************************************************************************************************************************
Block Cipher
***********************************************************************************************************************************/
#include "build.auto.h"

#include <string.h>

#include <openssl/evp.h>
@@ -1,6 +1,8 @@
/***********************************************************************************************************************************
Crypto Common
***********************************************************************************************************************************/
#include "build.auto.h"

#include <openssl/conf.h>
#include <openssl/err.h>
#include <openssl/evp.h>
@@ -1,6 +1,8 @@
/***********************************************************************************************************************************
Cryptographic Hash
***********************************************************************************************************************************/
#include "build.auto.h"

#include <string.h>

#include <openssl/evp.h>
@@ -1,6 +1,8 @@
/***********************************************************************************************************************************
Debug Routines
***********************************************************************************************************************************/
#include "build.auto.h"

#include <stdio.h>

#include "common/debug.h"
@@ -1,6 +1,8 @@
/***********************************************************************************************************************************
Binary to String Encode/Decode
***********************************************************************************************************************************/
#include "build.auto.h"

#include <stdbool.h>
#include <string.h>

@@ -1,6 +1,8 @@
/***********************************************************************************************************************************
Base64 Binary to String Encode/Decode
***********************************************************************************************************************************/
#include "build.auto.h"

#include <string.h>

#include "common/encode/base64.h"
@@ -1,6 +1,8 @@
/***********************************************************************************************************************************
Error Handler
***********************************************************************************************************************************/
#include "build.auto.h"

#include <stdarg.h>
#include <stdio.h>
#include <stdlib.h>
@@ -1,6 +1,8 @@
/***********************************************************************************************************************************
Execute Process
***********************************************************************************************************************************/
#include "build.auto.h"

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
@@ -1,6 +1,8 @@
/***********************************************************************************************************************************
Exit Routines
***********************************************************************************************************************************/
#include "build.auto.h"

#include <stdlib.h>
#include <string.h>

@@ -13,7 +15,7 @@ Exit Routines
#include "config/config.h"
#include "protocol/helper.h"

#ifdef WITH_PERL
#ifdef HAVE_LIBPERL
#include "perl/exec.h"
#endif

@@ -105,7 +107,7 @@ exitSafe(int result, bool error, SignalType signalType)
if (error)
{
// Don't log the error if it has already been logged by Perl
#ifdef WITH_PERL
#ifdef HAVE_LIBPERL
if (strcmp(errorMessage(), PERL_EMBED_ERROR) != 0)
{
#endif
@@ -127,7 +129,7 @@ exitSafe(int result, bool error, SignalType signalType)
errorStackTrace());
}
}
#ifdef WITH_PERL
#ifdef HAVE_LIBPERL
}
#endif

@@ -142,7 +144,7 @@ exitSafe(int result, bool error, SignalType signalType)
TRY_END();

// Free Perl but ignore errors
#ifdef WITH_PERL
#ifdef HAVE_LIBPERL
TRY_BEGIN()
{
perlFree(result);
@@ -1,6 +1,8 @@
/***********************************************************************************************************************************
Fork Handler
***********************************************************************************************************************************/
#include "build.auto.h"

#include <unistd.h>

#include "common/debug.h"
@@ -1,6 +1,8 @@
/***********************************************************************************************************************************
Ini Handler
***********************************************************************************************************************************/
#include "build.auto.h"

#include <stdarg.h>
#include <stdlib.h>
#include <string.h>
@@ -1,6 +1,8 @@
/***********************************************************************************************************************************
Buffer IO Read
***********************************************************************************************************************************/
#include "build.auto.h"

#include "common/debug.h"
#include "common/io/bufferRead.h"
#include "common/io/read.intern.h"
@@ -1,6 +1,8 @@
/***********************************************************************************************************************************
Buffer IO Write
***********************************************************************************************************************************/
#include "build.auto.h"

#include "common/debug.h"
#include "common/io/bufferWrite.h"
#include "common/io/write.intern.h"
@@ -1,6 +1,8 @@
/***********************************************************************************************************************************
IO Buffer Filter
***********************************************************************************************************************************/
#include "build.auto.h"

#include <stdio.h>

#include "common/debug.h"
@@ -1,6 +1,8 @@
/***********************************************************************************************************************************
IO Filter Interface
***********************************************************************************************************************************/
#include "build.auto.h"

#include "common/debug.h"
#include "common/io/filter/filter.intern.h"
#include "common/log.h"
@@ -1,6 +1,8 @@
/***********************************************************************************************************************************
IO Filter Group
***********************************************************************************************************************************/
#include "build.auto.h"

#include <stdio.h>

#include "common/debug.h"
Oops, something went wrong.

0 comments on commit 027c263

Please sign in to comment.
You can’t perform that action at this time.