blob: e2bdcc4d7bdea16870c5cc4ca9bb7e2b630a9b7c [file] [log] [blame]
#!/bin/sh
##
## configure -- mod_perl stand-alone configuration script
## Written by Ralf S. Engelschall <rse@apache.org>
##
## This script is executed manually (usually by the end user
## or mod_perl's Makefile.PL) while building mod_perl
## off-source via APXS.
##
DIFS='
'
# configuration
my_prefix=" +"
my_buildtype="DSO"
my_config="./mod_perl.config"
my_config_sh="./mod_perl.config.sh"
my_config_override="$*"
my_makefileconf="Makefile"
my_makefiletmpl="Makefile.tmpl"
my_sourcedir="../src/modules/perl"
my_sourcefiles="`./find_source`"
my_typemapdir="../Apache"
# find APXS
my_apxs=""
OIFS=$IFS IFS=':'
for my_dir in $PATH; do
if test -f "$my_dir/apxs"; then
if test -x "$my_dir/apxs"; then
my_apxs="$my_dir/apxs"
break 2
fi
fi
done
IFS="$OIFS"
my_apxs="`echo $my_apxs | sed -e 's://:/:'`"
#
# parse argument line
#
prev=''
OIFS="$IFS" IFS="$DIFS"
for option
do
if [ ".$prev" != . ]; then
eval "$prev=\$option"
prev=""
continue
fi
case "$option" in
-*=*) optarg=`echo "$option" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
*) optarg='' ;;
esac
case "$option" in
--with-apxs=*) my_apxs="$optarg" ;;
--with-perl=*) my_config_override="$my_config_override, PERL=$optarg" ;;
* ) echo "$0:Error: invalid option '$option'" 1>&2; exit 1 ;;
esac
done
IFS="$OIFS"
if [ ".$prev" != . ]; then
echo "$0:Error: missing argument to --`echo $prev | sed 's/_/-/g'`" 1>&2
exit 1
fi
# APXS information
if [ ".$my_apxs" = . ]; then
echo "$0:Error: no 'apxs' program found, please provide it's path via --with-apxs" 1>&2
exit 1
fi
my_apxs_sourcedir="`$my_apxs -q PREFIX`"
my_apxs_cflags="`$my_apxs -q CFLAGS | sed -e 's,\",\\\\",g'`"
my_apxs_includes="-I`$my_apxs -q INCLUDEDIR`"
my_apxs_libexec="`$my_apxs -q LIBEXECDIR`"
# friendly header
echo "Configuring mod_perl for building via APXS" 2>&1
# fetch the source files
echo "$my_prefix Creating a local mod_perl source tree"
for my_file in $my_sourcefiles; do
cp -f $my_sourcedir/$my_file .
done
cp -f $my_typemapdir/typemap .
# begin generation of Makefile
echo "##" >$my_makefileconf
echo "## Makefile -- mod_perl stand-alone build environment Makefile" >>$my_makefileconf
echo "##" >>$my_makefileconf
echo "" >>$my_makefileconf
echo "# provide some stuff Apache usually provides" >>$my_makefileconf
echo "CFLAGS=-DMOD_PERL $my_apxs_cflags" >>$my_makefileconf
echo "INCLUDES=$my_apxs_includes" >>$my_makefileconf
echo "RANLIB=ranlib" >>$my_makefileconf
echo "LIBEXT=so" >>$my_makefileconf
echo "APACHEEXT=$my_apxs_sourcedir/src" >>$my_makefileconf
echo "APACHELIBEXEC=$my_apxs_libexec" >>$my_makefileconf
echo "BASEEXT=mod_perl" >>$my_makefileconf
echo "APXS=$my_apxs" >>$my_makefileconf
echo "# own special stuff" >>$my_makefileconf
echo "ADD_DISTCLEAN_FILES=$my_sourcefiles typemap" >>$my_makefileconf
# transform mod_perl config into Makefile parameters
echo "$my_prefix Setting up mod_perl build environment (Makefile)"
$my_config_sh --config-file=$my_config \
--config-override="$my_config_override" \
--build-type=$my_buildtype \
--display-prefix="$my_prefix" >>$my_makefileconf
# finish generation of Makefile
cat $my_makefiletmpl >>$my_makefileconf
# friendly footer
echo "Now please type 'make' to build libperl.so" 2>&1