mirror of
https://github.com/pocoproject/poco.git
synced 2024-12-12 10:13:51 +01:00
d294391c94
* fix(PollSet): #3248 #3249 * bump version to 1.11.0 * updated changelog| * #3299: NetSSL: Allow per-Context InvalidCertificateHandler * #3022: Process::isRunning(PID pid) causes handle leak on Windows * #3022: fix for WinCE * upgrade bundled pdjson to latest master * update build configs - add support for Apple Silicon * #2906, #2904: Support environments without hardware floating point * #3130: fix error handling: report original error before close() * #3107: remove unused variable * #3219: SMTPClientSession: invalid SMTP command if empty recipients list in MailMessage * Poco::trim*() code cleanup - use ptrdiff_t instead of int; additional test cases * #3182 Poco::Process:launch on MacOS BigSur: limit maximum number of file descriptors to close before exec() to 100000 * #3278: Fixing no hardware floating point support - Part II * #3090: Do not initialize value with undefined behavior * #3163: Correct Var::parse null value * #3196: std::forward for Poco::Optional ctor with rvalue * #3068: Documented ENABLE_JWT option * #3041: PostgreSQL and TEXT column type * #3099: Fixed Postgres extraction into Dynamic::Var * #3138: Add support of arch riscv32 * #2825: riscv: Enable double operations when using double float abi * #3166: Fix PostgresSQL BLOB extractor * #3237: An error in the documentation for Poco/JSON/Parser.h * #3193: ServerApplication::registerService() unquoted path security vulnerability * #3266: Order of Util::Application::uninitialize() is not in reverse as documented * #3215: XML parser returns item from different element in a array * #3282: Update constant in setContentType documentation * #3089: HTTPSessionFactory does not support HTTPClientSession::ProxyConfig * #2418: SecureServerSocket doesn't work with IpV6 * fix warnings * #3019: ObjectPool wait on borrow condition fix * #3224: Remove SSL23 support from Poco/Crypto * #3191: Fixing a bug in the NetSSL_Win module (Host name verification failed error) * disallow SSLv3 * #3269: Poco::Net::Context initialization with empty certificateFile * #3307: Poco::Crypto::X509Certificate: obtain certificate fingerprint * #3260: Memory leak in EVPPKey::loadKey used with files & wrong password * #3157: fix(openssl): add missing dependency to OpenSSL components * #3066: CMake warning about MYSQL casing * #3135: Poco::Data::SQLite::Utility::fileToMemory unsuccessful if journal exists * #3217: CMake: warning message with -DPOCO_STATIC confusing * #3274: Fix localtime_r for VxWorks 6.9 and later * #2746, #3169: Fix race condition on TCPServerDispatcher stop * #3092: add more detailed error description when LoadLibrary fails| * #3074: Fix sessions may not return back to the pool * #3309: optimize parsing from stream (no copying of entire JSON to memory); limit maximum depth to avoid stack overflow with malicious documents (fuzzing - #3285); code cleanup * JSON Parser performance improvements * #3310: Upgrade bundled SQLite to 3.35.5 * fix UB/bad cast in TCPServerTest.cpp * add comment regarding potential UB in AnyTest::testCastToReference() * support sanitizers in build configs * bump version * fix 'catching polymorphic type by value' warnings * fix 'catching polymorphic type by value' warnings * fix 'catching polymorphic type by value' warnings * remove failing Android build; add sanitizer builds * update postgres version * fix warning * fix warning * add GitHub workflow * fix ci.yml * fix ci.yml * additional ci builds * fix ci.yml for macos and windows * fix(double-conversion): Upgrade bundled double-conversion #3313 * ci fixes * #3314: NetSSL_OpenSSL: any.pem certificate error: ca md too weak * testReuseSession: remove bad checks for session reuse * investigate failing test * investigate failing test * investigate failing test * investigate failing test * ci * remove travis and appveyor * ci, readme * ci fixes * fix ci * fix ci * fix ci * fix memory leak when ignoring test error/failure * fix ci * don't define UNREACHABLE as poco_bugcheck as it triggers 'control reaches end of non-void function' warning * add Linux cross build, build Data libs on macos * fix ci * add MySQL include/lib search paths for Homebrew * ci fixes * ci fixes * ci fixes * ci fixes * fix indluce paths for brew mysql * #3317: Data::MySQL MySQL headers and library search paths * fix ARM-Linux build config * fix MySQL.make * update FindMySQL.cmake * fix(SocketReactor): fix dataCollection test * chore: remove troubleshooting help leftovers * #3302: MSVC: Poco hides warnings (C4996) for the C++14 attribute [[deprecated]] * fix potential crash in testAsyncNotify: don't delete event object while async notification is still in progress * fix(PollSetTest): change connect to blocking * added ActiveRecord library and compiler * added dependencies file * update copyright dates * ActiveRecord: project files and fixes for MSVC * ci: enable ActiveRecord on Windows * fix(PollSetTest): remove poll timing check (fails on msvc ci) * fix ActiveRecord CMake build and configuration * feat(build): add gen directory (for generated sources) and macchina lib link dirs (if needed) * #3318: Data: Support Poco::UUID for data binding * ODBC tests for UUID, updated ActiveRecord projects * ActiveRecord user guide * update ActiveRecord documentation * documentation fixes * #3321: manually merge ODBC text encoding support * CppParser: merge changes from internal repository * updated Makefile * AbstractObserver::accepts() - add optional name parameter * fix SharedPtr::makeSharedArray() [merge from devel] * remove blank line * #2895, #2935: support OCSP stapling * style * clang support (merge from devel) * #3322: remove useless struct * link libmariadb instead of libmysql if headers indicate MariaDB * fix nullptr passed to memcmp/memcpy reported by ubsan * fix nullptr passed to memcmp/memcpy reported by ubsan * fix PageCompiler cross-compile; fix Content-Security-Policy header * remove Data release notes page * style, remove unused var * update docs * improve BLOB handling, clean-up code * fix(ICMPv4Packet): [asan] Undefined behavior in ICMPv4PacketImpl.cpp #3326 * fix(NumericString): Bug in NumericString with decSep != '.' #3159 * fix(HostEntry): DNS HostEntry returns multiple entries #3303 * fix(PollSet): #3248 #3249 * fix(NetworkInterface): Unterminated string possible in NetworkInterfaceImpl::setPhyParams() #3301 * style/whitespace * fix warnings * add version resources to executables * style * whitespace * update changelog * cpproj: also copy testsuite/include if it's there * branch off 1.11.1 * #3335: XML error when build 1.11.0 * #3353: add POCO_NO_FORK_EXEC CMake option * #3381: DNS::hostByAddress not thread-safe * #3400: fix std::localtime not thread safe * #3221: Crash reported on Windows in X509Certificate verification * #3344: [bug] MacOS bundle destination path is not set * #3360: Add POCO_PGSQL_{INCLUDE,LIB} variables * #3363: Fixed compilation error with MongoDB::Connection and Util::Application * #3377: Correct Poco::Path::configHome() and dataHome() documentation for Windows * #2823: error: implicit conversion from 'int' to 'float' changes value from 2147483647 to 2147483648 * #3425: Fixed suspend/resumeEvents pair in DirectoryWatcher * #2966: SocketReactor loads one core of CPU up to 100% * #3330: Poco::Data::ODBC::ODBCStatementImpl causes crash * use OpenSSL 1.1.1 on macOS * add missing include search path * upgrade bundled PCRE to 8.45 * upgrade bundled SQLite to 3.36.0 * updated changelog * fix brew OpenSSL version * branch off poco-1.11.2 * #3506: Upgrade bundled expat to 2.4.4 * manually merge #3448, part 1 (Crypto) * manually merge #3448, part 1 (NetSSL) * #3515: NetSSL_OpenSSL Testsuite: testInterop() and testProxy() fail due to changed certificate * #3448: fix version check * #3465: NetSSL_Win: bad error handling when decodeMessage() fails * #3458: encryptString() crash on redhat/centos 8 with FIPS enabled using md5 default digest * #3505: JSON::PrintHandler.value(bool) prints incorrect value * #3527: Upgrade bundled expat to 2.4.5 * #3470: bug in JSON ParseHandler.cpp (RFC 7159 should be valid) * #3507: Reference counting for bound configuration in Util::Option is broken * #3518: Expat version check in #defines incorrect * #3338: NamedMutex does not work on Linux distributions where fs.protected_regular=1 * CI: don't build PageCompiler in ARM cross build * detect ARM64 on Windows * updated README.md * ProGen: support generation of VS 2022 project files * ci: add windows 2022 * fix library name * remove unused CppUnit headers * added VS2022 project files * #3530: Upgrade bundled expat to 2.4.6 * #3538: Upgrade bundled expat to 2.4.7 * Add back NIOS2 double conversion detection to fix compile errors The commit558324f672
removed the nios2 support, which was originally added ine7b91e8125
This commit add it back. Signed-off-by: Julien Olivain <ju.o@free.fr> * #3466: DefinePlatformSpecific.cmake: handle RelWithDebInfo and MinSizeRel configurations * #3524: remove XML and Util dependencies in Zip/SevenZip * #3483: Adds Windows 11 and Server 2022 to Environment::osDisplayName() * #3495: Array::operator[] should not throw * #3268: Poco redis command set have a bug when you want to set nx ex or expireTime * #3509: fix dst and utcOffset handling for Dublin time zone * #2882: another attempt at fixing it that should also work on other platforms * remove unused method in Timezone_WIN32.cpp * use tm_gmtoff on Linux * Basic support for OpenSSL 3.0.0 (#3448) * updated README.md * Create close-inactive-issues.yml * check return codes of EVP_CIPHER_CTX_new and EVP_CipherInit Especially with OpenSSL 3, it is possible that EVP_CipherInit may fail even when passed a non-null cipher[1]. Without the checking, it will finally get to a segfault. [1] https://github.com/openssl/openssl/issues/16864 * Automatically load default and legacy providers with OpenSSL 3 Without the legacy provider [1], some ciphers are not available. For example, the 'des-ecb' one used by test sutie is missed and the test will fail. [1] OSSL_PROVIDER-LEGACY(7ossl) * Make p12 ca order the same as pem OpenSSL < 3 returns p12 ca order in reversed order. This is fixed in OpenSSL 3. We work around it with old OpenSSL. See: https://github.com/openssl/openssl/issues/16421 https://github.com/openssl/openssl/pull/12641f5eb85eb0f
* Implement SSL abort handling on OpenSSL 3 On an unexpected EOF, versions before OpenSSL 3.0 returned SSL_ERROR_SYSCALL, nothing was added to the error stack, and errno was 0. Since OpenSSL 3.0 the returned error is SSL_ERROR_SSL with a meaningful error on the error stack.[1] [1] SSL_GET_ERROR(3ossl) Co-authored-by: Günter Obiltschnig <guenter.obiltschnig@appinf.com> Co-authored-by: Robin Lee <cheeselee@fedoraproject.org> Co-authored-by: Aleksandar Fabijanic <aleks-f@users.noreply.github.com> * fix(Socket): shutdown fixes from pull #3448 * #3500: Sandbox all iFrames in PocoDoc * #3549; replace assert with assertTrue * #3553: Upgrade bundled zlib to 1.2.12 * #3525: Bad management of file in case of OpenSSLException in X509Certificate::readPEM and X509Certificate::writePEM * disable OpenSSL deprecation warnings * chore: cleanup * fix(X509Certificate): add missing string format * #3559: Poco::Data::PostgreSQL - DateTime extraction truncates fractional seconds * feat(EVP): 3.0 support - add EVPCipher - additional EVPPKey constructors - tests - fix and improve openssl-related exceptions Transition towards 3.0 support; deprecating direct EC and RSA interface portions. * fix(openssl): pre 3.0 compile * feat(Envelope): Add envelope to crypto #3561 * fix(Envelope): mac/clang compile * fix(Any): #3297 #3514 * #3562: fixed OpenSSL setup/shutdown * fix exception text * #3563: Remove support for OpenSSL < 1.0 * ci jobs for OpenSSL 1.1 and 3 * updated CHANGELOG * updated .vscode * Refactor/any soo (#3564) * refactor(Any): SOO - encapsulate data holders - add missing gets and ops - eliminate g++ warnings with enable_if's - default enable SOO * refactor(Placeholder): encapsulate SOO memory management and fix leaks; cf. #3297 #3514 * fix(Placeholder): asan errors and add tests cf. #3297 #3514 * fix(SSLManager): Race condition in SSLManager #3558 * remove unused include * updated copyright date * PocoDoc: fix iframe sandboxing * fix(SHA2Engine): cannot use HMACEngine with SHA2Engine #3421 * refactor(Placeholder): ifdef POCO_NO_SOO only in Placeholder and remove it anywhere else (#3566) * refactor(Placeholder): more SOO consolidation and optimization * fix(FPEnvironment): Visual Studio Warning C4244 #3543 * fix(Extractor): move extraction decoding to AbstractExtractor #3396 * Netssl/openssl3 (#3575) * feat(Context): DH init openssl3 port (1/2 hardcoded params) * create poco-1.11.3 branch, bump version * update copyright date * #3567: check legacy provider existence for legacy exception #3567 * fix(Placeholder): comparison for zero value * feat(Context): DH init openssl3 port (2/2 params from file) * test(HTTPSClientSession): try/catch to understand CI failure * chore(cmake): copy the DH parameters file * fix(OpenSSLInitializer): unload provider on uninitialize * chore(HTTPSClientSessionTest): remove try/catch * fix(OpenSSLInitializer): fix provider unloading * feat(CppUnit): make tests exceptions more descriptive * chore(CppUnit): a more descriptive name for callback Co-authored-by: Günter Obiltschnig <guenter.obiltschnig@appinf.com> * fix(Foundation): update VS 2019 platform version * chore(Data): update VS project files (add Transcoder #3396) * fix(Data): Poco::Data::ODBC-dbEncoding property not used for insert/update #3396 * fix(Data): add transcoder to Makefile #3396 * fix(JWT): remove duplicate test functions after merge Co-authored-by: Günter Obiltschnig <guenter.obiltschnig@appinf.com> Co-authored-by: Julien Olivain <ju.o@free.fr> Co-authored-by: Robin Lee <robinlee.sysu@gmail.com> Co-authored-by: Robin Lee <cheeselee@fedoraproject.org>
420 lines
9.8 KiB
Bash
Executable File
420 lines
9.8 KiB
Bash
Executable File
#! /bin/sh
|
|
#
|
|
# configure
|
|
#
|
|
# Configuration script for POCO.
|
|
#
|
|
# Invoke configure --help for help.
|
|
#
|
|
|
|
showhelp()
|
|
{
|
|
cat << ENDHELP
|
|
usage: configure {options}
|
|
Configure the POCO C++ Libraries.
|
|
|
|
Options:
|
|
--help
|
|
Display this help screen.
|
|
|
|
--config=<config_name>
|
|
Use the given build configuration.
|
|
Available configurations are:
|
|
|
|
`ls -C $base/build/config/`
|
|
|
|
--prefix=<install_prefix>
|
|
Use the given install directory for make install.
|
|
Default is /usr/local.
|
|
|
|
--no-prefix
|
|
Do not use /usr/local as default install directory and do not
|
|
define POCO_PREFIX.
|
|
|
|
--stdcxx-base=<apache_stdcxx_install_prefix>
|
|
If (and only if) the $base/build/config selected with --config
|
|
uses the Apache stdcxx library, then apache_stdcxx_install_prefix
|
|
specifies the base directory where stdcxx is installed.
|
|
|
|
--no-tests
|
|
Do not build testsuites.
|
|
|
|
--no-samples
|
|
Do not build samples.
|
|
|
|
--minimal
|
|
Build only Foundation, XML, JSON, Util and Net.
|
|
|
|
--typical (default)
|
|
Build only Foundation, XML, JSON, Util, Net, Crypto, NetSSL, Data/SQLite and Zip.
|
|
|
|
--everything
|
|
Build everything.
|
|
|
|
--no-wstring
|
|
Compile with -DPOCO_NO_WSTRING.
|
|
Useful if your C++ compiler does not support std::wstring
|
|
(such as uClibc-based systems).
|
|
|
|
--no-fpenvironment
|
|
Compile with -DPOCO_NO_FPENVIRONMENT.
|
|
Useful if your C++ compiler has incomplete floating-point support
|
|
(such as uClibc-based systems).
|
|
|
|
--no-sharedmemory
|
|
Compile with -DPOCO_NO_SHAREDMEMORY.
|
|
For systems that don't support shared memory API's,
|
|
like uClibc-based Linux systems.
|
|
|
|
--no-sharedlibs
|
|
Compile with -DPOCO_NO_SHAREDLIBS.
|
|
For systems that don't support shared library loading.
|
|
|
|
--no-ipv6
|
|
Compile with -DPOCO_NET_NO_IPv6.
|
|
For systems that don't support IPv6.
|
|
|
|
--no-soo
|
|
Compile with -DPOCO_NO_SOO.
|
|
Disables small object optimization.
|
|
|
|
--sqlite-fts=<path>
|
|
Compile with -DPOCO_DATA_SQLITE_FTS.
|
|
Compile SQLite with Full Text Search support.
|
|
|
|
--sqlite-thread-safe=<value>
|
|
Compile with -DSQLITE_THREADSAFE=<value>.
|
|
Valid values are:
|
|
- 0 single-thread, no thread safety
|
|
- 1 serial access, highest thread safety
|
|
- 2 multi-threaded, without session sharing support
|
|
|
|
|
|
--omit=<component>{,<component>}
|
|
Do not build the specified component(s).
|
|
Example: --omit=Data/MySQL,Data/ODBC,Zip
|
|
|
|
--include-path=<path>
|
|
Add search path for header files.
|
|
|
|
--library-path=<path>
|
|
Add search path for library files.
|
|
|
|
--odbc-lib=<path>
|
|
Specify the directory where ODBC library is located.
|
|
|
|
--odbc-include=<path>
|
|
Specify the directory where ODBC header files are located.
|
|
|
|
--mysql-lib=<path>
|
|
Specify the directory where MySQL library is located.
|
|
|
|
--mysql-include=<path>
|
|
Specify the directory where MySQL header files are located.
|
|
|
|
--pgsql-lib=<path>
|
|
Specify the directory where PostgreSQL library is located.
|
|
|
|
--pgsql-include=<path>
|
|
Specify the directory where PostgreSQL header files are located.
|
|
|
|
--cflags=<flags>
|
|
Pass additional flags to compiler.
|
|
Example: --cflags=-wall
|
|
|
|
--poquito
|
|
Omit a few features for smaller codesize when linking
|
|
statically for embedded targets.
|
|
|
|
--unbundled
|
|
Use system-provided zlib, pcre, expat and sqlite instead of
|
|
bundled ones.
|
|
|
|
--static
|
|
Build static libraries. Overrides default mode, which
|
|
depends upon target. Can be specified together
|
|
with --shared to build both.
|
|
|
|
--shared
|
|
Build shared libraries. Overrides default mode, which
|
|
depends upon target. Can be specified together
|
|
with --static to build both.
|
|
|
|
ENDHELP
|
|
}
|
|
|
|
# save cwd
|
|
build=`pwd`
|
|
# get directory where we are located
|
|
cd `dirname $0`
|
|
base=`pwd`
|
|
cd $build
|
|
|
|
tests=1
|
|
samples=1
|
|
noprefix=0
|
|
flags=""
|
|
includepath=""
|
|
librarypath=""
|
|
odbclib=""
|
|
odbcinclude=""
|
|
unbundled=""
|
|
static=""
|
|
shared=""
|
|
omitMinimal="Crypto NetSSL_OpenSSL Zip Data Data/SQLite Data/ODBC Data/MySQL MongoDB PDF CppParser PageCompiler"
|
|
omitTypical="Data/ODBC Data/MySQL MongoDB PDF CppParser"
|
|
omit=$omitTypical
|
|
# parse arguments
|
|
while [ $# -ge 1 ]; do
|
|
case "$1" in
|
|
--config=*)
|
|
config="`echo ${1} | awk '{print substr($0,10)}'`" ;;
|
|
|
|
--prefix=*)
|
|
prefix="`echo ${1} | awk '{print substr($0,10)}'`" ;;
|
|
|
|
--no-prefix)
|
|
noprefix=1 ;;
|
|
|
|
--stdcxx-base=*)
|
|
stdcxx_base="`echo ${1} | awk '{print substr($0,15)}'`" ;;
|
|
|
|
--omit=*)
|
|
omit="`echo ${1} | awk '{print substr($0,8)}' | tr ',;' ' '`" ;;
|
|
|
|
--include-path=*)
|
|
includepath="`echo ${1} | awk '{print substr($0,16)}' | tr ',;' ' '`" ;;
|
|
|
|
--library-path=*)
|
|
librarypath="`echo ${1} | awk '{print substr($0,16)}' | tr ',;' ' '`" ;;
|
|
|
|
--odbc-lib=*)
|
|
odbclib="`echo ${1} | awk '{print substr($0,12)}'`" ;;
|
|
|
|
--odbc-include=*)
|
|
odbcinclude="`echo ${1} | awk '{print substr($0,16)}'`" ;;
|
|
|
|
--mysql-lib=*)
|
|
mysqllib="`echo ${1} | awk '{print substr($0,13)}'`" ;;
|
|
|
|
--mysql-include=*)
|
|
mysqlinclude="`echo ${1} | awk '{print substr($0,17)}'`" ;;
|
|
|
|
--pgsql-lib=*)
|
|
pgsqllib="`echo ${1} | awk '{print substr($0,13)}'`" ;;
|
|
|
|
--pgsql-include=*)
|
|
pgsqlinclude="`echo ${1} | awk '{print substr($0,17)}'`" ;;
|
|
|
|
--cflags=*)
|
|
flags="$flags `echo ${1} | awk '{print substr($0,10)}'`" ;;
|
|
|
|
--no-samples)
|
|
samples="" ;;
|
|
|
|
--no-tests)
|
|
tests="" ;;
|
|
|
|
--no-wstring)
|
|
flags="$flags -DPOCO_NO_WSTRING" ;;
|
|
|
|
--no-fpenvironment)
|
|
flags="$flags -DPOCO_NO_FPENVIRONMENT" ;;
|
|
|
|
--no-sharedmemory)
|
|
flags="$flags -DPOCO_NO_SHAREDMEMORY" ;;
|
|
|
|
--no-sharedlibs)
|
|
flags="$flags -DPOCO_NO_SHAREDLIBS" ;;
|
|
|
|
--no-ipv6)
|
|
flags="$flags -DPOCO_NET_NO_IPv6" ;;
|
|
|
|
--no-soo)
|
|
flags="$flags -DPOCO_NO_SOO" ;;
|
|
|
|
--sqlite-thread-safe=*)
|
|
flags="$flags -DSQLITE_THREADSAFE=`echo ${1} | awk '{print substr($0,22)}'`" ;;
|
|
|
|
--sqlite-fts)
|
|
flags="$flags -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_FTS3_PARENTHESIS" ;;
|
|
|
|
--poquito)
|
|
flags="$flags -DPOCO_NO_FILECHANNEL -DPOCO_NO_SPLITTERCHANNEL -DPOCO_NO_SYSLOGCHANNEL -DPOCO_UTIL_NO_INIFILECONFIGURATION -DPOCO_UTIL_NO_JSONCONFIGURATION -DPOCO_UTIL_NO_XMLCONFIGURATION" ;;
|
|
|
|
--unbundled)
|
|
flags="$flags -DPOCO_UNBUNDLED"
|
|
unbundled=1
|
|
;;
|
|
|
|
--minimal)
|
|
omit=$omitMinimal ;;
|
|
|
|
--typical)
|
|
omit=$omitTypical ;;
|
|
|
|
--everything)
|
|
omit="" ;;
|
|
|
|
--static)
|
|
static=1 ;;
|
|
|
|
--shared)
|
|
shared=1 ;;
|
|
|
|
--help)
|
|
showhelp
|
|
exit 0
|
|
;;
|
|
|
|
*)
|
|
showhelp
|
|
exit 1
|
|
;;
|
|
esac
|
|
|
|
shift
|
|
done
|
|
# autodetect build environment
|
|
# ...special cases for CYGWIN or MinGW
|
|
if [ "$config" = "" ] ; then
|
|
config=`uname`
|
|
case "$config" in
|
|
CYGWIN*)
|
|
config=CYGWIN ;;
|
|
MINGW*)
|
|
config=MinGW ;;
|
|
esac
|
|
fi
|
|
|
|
if [ ! -f "$base/build/config/$config" ] ; then
|
|
echo "Unknown configuration: $config"
|
|
echo "Please use the --config option to specify another build configuration"
|
|
echo "The following configurations are available:"
|
|
ls $base/build/config
|
|
exit 1
|
|
fi
|
|
|
|
if [ -z "$prefix" ] ; then
|
|
if [ $noprefix -eq 0 ] ; then
|
|
prefix=/usr/local
|
|
fi
|
|
fi
|
|
|
|
# check for patches
|
|
if [ -d $base/patches/$config ] ; then
|
|
echo "NOTE: There are patches for your configuration available. Please apply them before compiling."
|
|
fi
|
|
|
|
# copy Makefile to build dir
|
|
if [ "$base" != "$build" ] ; then
|
|
cp $base/Makefile $build
|
|
fi
|
|
|
|
if [ -n "$static" -a -n "$shared" ] ; then
|
|
linkmode=BOTH
|
|
elif [ -n "$static" ] ; then
|
|
linkmode=STATIC
|
|
elif [ -n "$shared" ] ; then
|
|
linkmode=SHARED
|
|
else
|
|
linkmode=""
|
|
fi
|
|
|
|
# create config.make
|
|
echo '# config.make generated by configure script' >$build/config.make
|
|
echo "POCO_CONFIG = $config" >>$build/config.make
|
|
echo "POCO_BASE = $base" >>$build/config.make
|
|
echo "POCO_BUILD = $build" >>$build/config.make
|
|
echo "POCO_FLAGS = $flags" >>$build/config.make
|
|
if [ -n "$prefix" ] ; then
|
|
echo "POCO_PREFIX = $prefix" >>$build/config.make
|
|
fi
|
|
echo "OMIT = $omit" >>$build/config.make
|
|
if [ -n "$stdcxx_base" ] ; then
|
|
echo "STDCXX_BASE = $stdcxx_base" >>$build/config.make
|
|
fi
|
|
if [ -n "$includepath" ] ; then
|
|
echo "POCO_ADD_INCLUDE = $includepath" >>$build/config.make
|
|
fi
|
|
if [ -n "$librarypath" ] ; then
|
|
echo "POCO_ADD_LIBRARY = $librarypath" >>$build/config.make
|
|
fi
|
|
if [ -n "$odbclib" ] ; then
|
|
echo "POCO_ODBC_LIB = $odbclib" >>$build/config.make
|
|
fi
|
|
if [ -n "$odbcinclude" ] ; then
|
|
echo "POCO_ODBC_INCLUDE = $odbcinclude" >>$build/config.make
|
|
fi
|
|
if [ -n "$mysqllib" ] ; then
|
|
echo "POCO_MYSQL_LIB = $mysqllib" >>$build/config.make
|
|
fi
|
|
if [ -n "$mysqlinclude" ] ; then
|
|
echo "POCO_MYSQL_INCLUDE = $mysqlinclude" >>$build/config.make
|
|
fi
|
|
if [ -n "$pgsqllib" ] ; then
|
|
echo "POCO_PGSQL_LIB = $pgsqllib" >>$build/config.make
|
|
fi
|
|
if [ -n "$pgsqlinclude" ] ; then
|
|
echo "POCO_PGSQL_INCLUDE = $pgsqlinclude" >>$build/config.make
|
|
fi
|
|
if [ -n "$unbundled" ] ; then
|
|
echo "POCO_UNBUNDLED = 1" >>$build/config.make
|
|
fi
|
|
if [ -n "$linkmode" ] ; then
|
|
echo "LINKMODE = $linkmode" >>$build/config.make
|
|
fi
|
|
|
|
cat <<__EOF__ >>$build/config.make
|
|
export POCO_CONFIG
|
|
export POCO_BASE
|
|
export POCO_BUILD
|
|
export POCO_FLAGS
|
|
__EOF__
|
|
|
|
if [ -n "$prefix" ] ; then
|
|
echo "export POCO_PREFIX" >>$build/config.make
|
|
fi
|
|
if [ -n "$stdcxx_base" ] ; then
|
|
echo "export STDCXX_BASE" >>$build/config.make
|
|
fi
|
|
if [ -n "$includepath" ] ; then
|
|
echo "export POCO_ADD_INCLUDE" >>$build/config.make
|
|
fi
|
|
if [ -n "$librarypath" ] ; then
|
|
echo "export POCO_ADD_LIBRARY" >>$build/config.make
|
|
fi
|
|
if [ -n "$odbclib" ] ; then
|
|
echo "export POCO_ODBC_LIB" >>$build/config.make
|
|
fi
|
|
if [ -n "$odbcinclude" ] ; then
|
|
echo "export POCO_ODBC_INCLUDE" >>$build/config.make
|
|
fi
|
|
if [ -n "$mysqllib" ] ; then
|
|
echo "export POCO_MYSQL_LIB" >>$build/config.make
|
|
fi
|
|
if [ -n "$mysqlinclude" ] ; then
|
|
echo "export POCO_MYSQL_INCLUDE" >>$build/config.make
|
|
fi
|
|
if [ -n "$pgsqllib" ] ; then
|
|
echo "export POCO_PGSQL_LIB" >>$build/config.make
|
|
fi
|
|
if [ -n "$pgsqlinclude" ] ; then
|
|
echo "export POCO_PGSQL_INCLUDE" >>$build/config.make
|
|
fi
|
|
if [ -n "$unbundled" ] ; then
|
|
echo "export POCO_UNBUNDLED" >>$build/config.make
|
|
fi
|
|
if [ -n "$linkmode" ] ; then
|
|
echo "export LINKMODE" >>$build/config.make
|
|
fi
|
|
|
|
# create config.build
|
|
echo '# config.build generated by configure script' >$build/config.build
|
|
cat <<__EOF__ >>$build/config.build
|
|
TESTS = $tests
|
|
SAMPLES = $samples
|
|
__EOF__
|
|
|
|
echo "Configured for $config"
|