poco/configure

180 lines
3.9 KiB
Plaintext
Raw Normal View History

2006-10-23 18:43:52 +02:00
#! /bin/sh
#
# configure
#
2008-09-29 09:43:47 +02:00
# $Id: //poco/1.3/dist/configure#6 $
2006-10-23 18:43:52 +02:00
#
# Configuration script for POCO.
#
2008-09-29 09:43:47 +02:00
# Invoke configure --help for help.
2007-02-23 15:50:42 +01:00
#
2006-10-23 18:43:52 +02:00
2008-09-29 09:43:47 +02:00
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.
--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.
--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).
2008-09-29 09:43:47 +02:00
--omit=<component>{,<component>}
Do not build the specified component(s).
ENDHELP
}
2008-09-29 09:43:47 +02:00
2006-10-23 18:43:52 +02:00
# save cwd
build=`pwd`
# get directory where we are located
cd `dirname $0`
base=`pwd`
cd $build
2008-09-29 09:43:47 +02:00
if [ `uname` = "QNX" ] ; then
EXPR=expr
NOTFOUND=0
else
EXPR="expr --"
NOTFOUND=""
fi
2006-10-23 18:43:52 +02:00
tests="tests"
samples="samples"
2007-02-23 15:50:42 +01:00
flags=""
2008-09-29 09:43:47 +02:00
omit=""
2006-10-23 18:43:52 +02:00
# parse arguments
while [ "$1" != "" ] ; do
2008-09-29 09:43:47 +02:00
val=`$EXPR "$1" : '--config=\(.*\)'`
if [ "$val" != "$NOTFOUND" ] ; then
2006-10-23 18:43:52 +02:00
config=$val;
fi
2008-09-29 09:43:47 +02:00
val=`$EXPR "$1" : '--prefix=\(.*\)'`
if [ "$val" != "$NOTFOUND" ] ; then
2006-10-23 18:43:52 +02:00
prefix=$val
fi
2008-09-29 09:43:47 +02:00
val=`$EXPR $1 : '--stdcxx-base=\(.*\)'`
if [ "$val" != "$NOTFOUND" ] ; then
stdcxx_base=$val
fi
2008-09-29 09:43:47 +02:00
val=`$EXPR "$1" : '--omit=\(.*\)'`
if [ "$val" != "$NOTFOUND" ] ; then
omit="$omit `echo $val | tr ',;' ' '`"
fi
2006-10-23 18:43:52 +02:00
if [ "$1" = "--no-samples" ] ; then
samples=""
fi
if [ "$1" = "--no-tests" ] ; then
tests=""
fi
2007-02-23 15:50:42 +01:00
if [ "$1" = "--no-wstring" ] ; then
flags="$flags -DPOCO_NO_WSTRING"
fi
if [ "$1" = "--no-fpenvironment" ] ; then
flags="$flags -DPOCO_NO_FPENVIRONMENT"
fi
if [ "$1" = "--help" ] ; then
showhelp
exit 0
fi
2008-09-29 09:43:47 +02:00
2006-10-23 18:43:52 +02:00
shift
done
# autodetect build environment
# ...special cases for CYGWIN or MinGW
2006-10-23 18:43:52 +02:00
if [ "$config" = "" ] ; then
config=`uname`
2008-09-29 09:43:47 +02:00
cyg=`$EXPR $config : '\(CYGWIN\).*'`
2006-10-23 18:43:52 +02:00
if [ "$cyg" = "CYGWIN" ] ; then
config=CYGWIN
else
2008-09-29 09:43:47 +02:00
ming=`$EXPR $config : '\(MINGW\).*'`
if [ "$ming" = "MINGW" ] ; then
config=MinGW
fi
fi
2006-10-23 18:43:52 +02:00
fi
if [ ! -f "$base/build/config/$config" ] ; then
2008-09-29 09:43:47 +02:00
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
2006-10-23 18:43:52 +02:00
fi
if [ "$prefix" = "" ] ; then
prefix=/usr/local
fi
# copy Makefile to build dir
if [ "$base" != "$build" ] ; then
cp $base/Makefile $build
fi
# create config.make
echo '# config.make generated by configure script' >$build/config.make
2007-02-23 15:50:42 +01:00
echo "POCO_CONFIG = $config" >>$build/config.make
echo "POCO_BASE = $base" >>$build/config.make
echo "POCO_BUILD = $build" >>$build/config.make
echo "POCO_PREFIX = $prefix" >>$build/config.make
echo "POCO_FLAGS = $flags" >>$build/config.make
2008-09-29 09:43:47 +02:00
echo "OMIT = $omit" >>$build/config.make
if [ "$stdcxx_base" != "" ] ; then
echo "STDCXX_BASE = $stdcxx_base" >>$build/config.make
fi
2006-10-23 18:43:52 +02:00
2007-02-23 15:50:42 +01:00
echo "export POCO_CONFIG" >>$build/config.make
echo "export POCO_BASE" >>$build/config.make
echo "export POCO_BUILD" >>$build/config.make
echo "export POCO_PREFIX" >>$build/config.make
echo "export POCO_FLAGS" >>$build/config.make
if [ "$stdcxx_base" != "" ] ; then
echo "export STDCXX_BASE" >>$build/config.make
fi
2006-10-23 18:43:52 +02:00
2007-02-23 15:50:42 +01:00
echo ".PHONY: poco" >>$build/config.make
echo "poco: libexecs $tests $samples" >>$build/config.make
2006-10-23 18:43:52 +02:00
echo "Configured for $config"