randy 98/12/09 12:51:41
Modified: . configure Log: Modify recent --with-layout option to set these variables first from the config.layout file (or specified file) and allow the any other configuration arguments to override portions of that layout. ie. --prefix etc. Revision Changes Path 1.58 +69 -44 apache-1.3/configure Index: configure =================================================================== RCS file: /home/cvs/apache-1.3/configure,v retrieving revision 1.57 retrieving revision 1.58 diff -u -r1.57 -r1.58 --- configure 1998/12/06 15:40:51 1.57 +++ configure 1998/12/09 20:51:39 1.58 @@ -263,10 +263,8 @@ IFS="$OIFS" ## -## parse argument line options +## preprocess path layout definititions so that these can be overriden ## - -addconf_created=0 apc_prev="" OIFS1="$IFS" IFS="$DIFS" for apc_option @@ -283,6 +281,74 @@ *) apc_optarg= ;; esac + case "$apc_option" in + --with-layout=*|--compat) + if [ ".$apc_option" = ".--compat" ]; then + apc_optarg="Apache" + fi + case $apc_optarg in + *:* ) + file=`echo $apc_optarg | sed -e 's/:.*//'` + name=`echo $apc_optarg | sed -e 's/.*://'` + ;; + * ) + name=$apc_optarg + file=$configlayout + ;; + esac + if [ ! -f "$file" ]; then + echo "configure:Error: Path layout definition file $file not found" 1>&2 + exit 1 + fi + sed -e "1,/[ ]*<[Ll]ayout[ ]*$name[ ]*>[ ]*/d" \ + -e '/[ ]*<\/Layout>[ ]*/,$d' \ + -e "s/^[ ]*//g" \ + -e "s/:[ ]*/=\'/g" \ + -e "s/[ ]*$/'/g" \ + $file >$pldconf + . $pldconf + rm -f $pldconf 2>/dev/null + if [ ".$prefix" = .UNSET ]; then + echo "configure:Error: Path layout definition not found or incorrect" 1>&2 + exit 1 + fi + if [ ".$quiet" = .no ]; then + echo " + using installation path layout: $name ($file)" + fi + with_layout=1 + ;; + *) + args="$apc_option $args" + ;; + esac +done + +if [ ".$with_layout" = .0 ]; then + echo "configure:Error: Please select an installation path layout with" + echo " the --with-layout=[FILE:]ID option. Use 'Apache' or" + echo " 'GNU' for ID to select the two predefined layouts." + exit 1 +fi + +## +## parse argument line options +## +addconf_created=0 +apc_prev="" +OIFS1="$IFS" IFS="$DIFS" +for apc_option in $args +do + # if previous option needs an argument, assign it. + if [ ".$apc_prev" != . ]; then + eval "$apc_prev=\$apc_option" + apc_prev="" + continue + fi + # split out arguments + case "$apc_option" in + -*=*) apc_optarg=`echo "$apc_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;; + *) apc_optarg= ;; + esac # accept only the most important GNU Autoconf-style options case "$apc_option" in --quiet | --silent) @@ -415,41 +481,6 @@ echo " --compat backward compat only: use --with-layout=Apache" exit 0 ;; - --with-layout=*|--compat) - if [ ".$apc_option" = ".--compat" ]; then - apc_optarg="Apache" - fi - case $apc_optarg in - *:* ) - file=`echo $apc_optarg | sed -e 's/:.*//'` - name=`echo $apc_optarg | sed -e 's/.*://'` - ;; - * ) - name=$apc_optarg - file=$configlayout - ;; - esac - if [ ! -f "$file" ]; then - echo "configure:Error: Path layout definition file $file not found" 1>&2 - exit 1 - fi - sed -e "1,/[ ]*<[Ll]ayout[ ]*$name[ ]*>[ ]*/d" \ - -e '/[ ]*<\/Layout>[ ]*/,$d' \ - -e "s/^[ ]*//g" \ - -e "s/:[ ]*/=\'/g" \ - -e "s/[ ]*$/'/g" \ - $file >$pldconf - . $pldconf - rm -f $pldconf 2>/dev/null - if [ ".$prefix" = .UNSET ]; then - echo "configure:Error: Path layout definition not found or incorrect" 1>&2 - exit 1 - fi - if [ ".$quiet" = .no ]; then - echo " + using installation path layout: $name ($file)" - fi - with_layout=1 - ;; --show-layout|--layout) show_layout=1 ;; @@ -837,12 +868,6 @@ echo " and htdocs/manual/suexec.html documents first." exit 1 fi -fi -if [ ".$with_layout" = .0 ]; then - echo "configure:Error: Please select an installation path layout with" - echo " the --with-layout=[FILE:]ID option. Use 'Apache' or" - echo " 'GNU' for ID to select the two predefined layouts." - exit 1 fi ##