mirror of
https://github.com/VCMP-SqMod/SqMod.git
synced 2025-07-29 20:21:48 +02:00
.github
bin
module
vendor
CPR
CivetWeb
ConcurrentQueue
DPP
Fmt
MaxmindDB
POCO
ActiveRecord
ApacheConnector
CppParser
CppUnit
Crypto
Data
Encodings
Foundation
JSON
JWT
MongoDB
Net
NetSSL_OpenSSL
NetSSL_Win
PDF
PageCompiler
PocoDoc
ProGen
Redis
SevenZip
Util
XML
Zip
build
ci
cmake
contrib
doc
packaging
patches
release
.gitattributes
.gitignore
.gitmodules
CHANGELOG
CMakeLists.txt
CODE_OF_CONDUCT.md
CONTRIBUTING.md
CONTRIBUTORS
LICENSE
Makefile
NEWS
README
README.md
VERSION
build_cmake.cmd
build_cmake.sh
build_vs140.cmd
build_vs150.cmd
build_vs160.cmd
buildwin.cmd
buildwin.ps1
components
configure
cppignore.lnx
cppignore.win
env.bat
env.sh
libversion
PUGIXML
SAJSON
SimpleIni
Squirrel
TinyDir
ZMQ
xxHash
CMakeLists.txt
.gitignore
.gitmodules
CMakeLists.txt
LICENSE
README.md
383 lines
8.8 KiB
Bash
383 lines
8.8 KiB
Bash
#! /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.
|
|
|
|
--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.
|
|
|
|
--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)}'`" ;;
|
|
|
|
--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" ;;
|
|
|
|
--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 "$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 "$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"
|