#!/bin/sh ## ## configure -- mod_perl stand-alone configuration script ## Written by Ralf S. Engelschall ## ## 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" my_soext="" my_os=`uname` case $my_os in CYGWIN*) my_soext="dll" ;; *) my_soext="so" ;; esac # 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="`./apxs_cflags $my_apxs`" 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 "AP_CFLAGS=-DMOD_PERL $my_apxs_cflags" >>$my_makefileconf echo "INCLUDES=$my_apxs_includes" >>$my_makefileconf echo "RANLIB=ranlib" >>$my_makefileconf echo "LIBEXT=$my_soext" >>$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