You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by rj...@apache.org on 2008/09/19 14:42:27 UTC

svn commit: r697070 - in /tomcat/connectors/trunk/jk/native: configure.in scripts/build/jk_common.m4

Author: rjung
Date: Fri Sep 19 05:42:26 2008
New Revision: 697070

URL: http://svn.apache.org/viewvc?rev=697070&view=rev
Log:
Remove sed regular expression juggling in configure
used for optionally prefixing LDFLAGS by "-Wl,".

Instead use a shell loop and "case" pattern matching
defined in a reusable way as a new JK m4 macro.

Modified:
    tomcat/connectors/trunk/jk/native/configure.in
    tomcat/connectors/trunk/jk/native/scripts/build/jk_common.m4

Modified: tomcat/connectors/trunk/jk/native/configure.in
URL: http://svn.apache.org/viewvc/tomcat/connectors/trunk/jk/native/configure.in?rev=697070&r1=697069&r2=697070&view=diff
==============================================================================
--- tomcat/connectors/trunk/jk/native/configure.in (original)
+++ tomcat/connectors/trunk/jk/native/configure.in Fri Sep 19 05:42:26 2008
@@ -106,15 +106,7 @@
                 APXSCC="`$APXS -q CC`"
                 APXSCFLAGS="`$APXS -q CFLAGS` -DJK_PREFORK"
                 APXSCPPFLAGS=""
-                dnl sed magic needed to prepend each token with "-Wl," s.t. libtool
-                dnl detects those arguments correctly as ld flags.
-                dnl Prevent double Wl by first stripping it.
-                dnl Allow space and tab as separators.
-                dnl Double square brackets needed, because single ones will be removed by autoconf.
-                APXSLDFLAGS="`$APXS -q LDFLAGS_SHLIB | \
-                    $SED -e 's/\([[ 	]]\{1,\}\)-Wl,/\1/g' \
-                         -e 's/^-Wl,//g' \
-                         -e 's/\([[^ 	]]\{1,\}\)/-Wl,\1/g'`"
+                APXSLDFLAGS="`$APXS -q LDFLAGS_SHLIB`"
             else
                 WEBSERVER="apache-2.0"
                 APRINCLUDEDIR=""
@@ -126,15 +118,7 @@
                 APXSCC="`$APXS -q CC`"
                 APXSCFLAGS="`${APXS} -q CFLAGS` `${APXS} -q EXTRA_CFLAGS` -DHAVE_APR ${APRINCLUDEDIR}"
                 APXSCPPFLAGS="`${APXS} -q EXTRA_CPPFLAGS`"
-                dnl sed magic needed to prepend each token with "-Wl," s.t. libtool
-                dnl detects those arguments correctly as ld flags.
-                dnl Prevent double Wl by first stripping it.
-                dnl Allow space and tab as separators.
-                dnl Double square brackets needed, because single ones will be removed by autoconf.
-                APXSLDFLAGS="`$APXS -q LDFLAGS | \
-                    $SED -e 's/\([[ 	]]\{1,\}\)-Wl,/\1/g' \
-                         -e 's/^-Wl,//g' \
-                         -e 's/\([[^ 	]]\{1,\}\)/-Wl,\1/g'`"
+                APXSLDFLAGS="`$APXS -q LDFLAGS`"
                 APACHE_CONFIG_VARS="`${APXS} -q exp_installbuilddir`/config_vars.mk"
                 LIBTOOL=`$APXS -q LIBTOOL`
             fi
@@ -538,25 +522,21 @@
 AC_SUBST(CFLAGS)
 
 dnl the APXSCFLAGS is given by apxs to the C compiler
-dnl the APXSLDFLAGS is normally empty but APXSCFLAGS is not.
 if ${TEST} -n "${CFLAGS}" ; then
     APXSCFLAGS="${APXSCFLAGS} ${CFLAGS}"
 fi
+AC_SUBST(APXSCFLAGS)
+AC_SUBST(APXSCPPFLAGS)
+
 dnl the APXSLDFLAGS is given to the linker (for APRVARS).
 if ${TEST} -n "${LDFLAGS}" ; then
-    dnl sed magic needed to prepend each token with "-Wl," s.t. libtool
-    dnl detects those arguments correctly as ld flags.
-    dnl Prevent double Wl by first stripping it.
-    dnl Allow space and tab as separators.
-    dnl Double square brackets needed, because single ones will be removed by autoconf.
-    TMPLDFLAGS="`${ECHO} ${LDFLAGS} | \
-        $SED -e 's/\([[ 	]]\{1,\}\)-Wl,/\1/g' \
-             -e 's/^-Wl,//g' \
-             -e 's/\([[^ 	]]\{1,\}\)/-Wl,\1/g'`"
-    APXSLDFLAGS="${APXSLDFLAGS} ${TMPLDFLAGS}"
+    APXSLDFLAGS="${APXSLDFLAGS} ${LDFLAGS}"
 fi
-AC_SUBST(APXSCFLAGS)
-AC_SUBST(APXSCPPFLAGS)
+
+dnl Prefix all LDFLAGS with "-Wl,",
+dnl because we pass them to libtool
+JK_PREFIX_IF_MISSING(APXSLDFLAGS, [-Wl,])
+
 AC_SUBST(APXSLDFLAGS)
 
 if ${TEST} -n "${JK_JNI_WORKER}" ; then

Modified: tomcat/connectors/trunk/jk/native/scripts/build/jk_common.m4
URL: http://svn.apache.org/viewvc/tomcat/connectors/trunk/jk/native/scripts/build/jk_common.m4?rev=697070&r1=697069&r2=697070&view=diff
==============================================================================
--- tomcat/connectors/trunk/jk/native/scripts/build/jk_common.m4 (original)
+++ tomcat/connectors/trunk/jk/native/scripts/build/jk_common.m4 Fri Sep 19 05:42:26 2008
@@ -50,5 +50,28 @@
 undefine([AC_CV_NAME])dnl
 ])
 
-
-
+dnl
+dnl JK_PREFIX_IF_MISSING(variable, prefix)
+dnl
+dnl Prefix all tokens in a variable with "prefix" unless
+dnl it is already there.
+dnl
+AC_DEFUN([JK_PREFIX_IF_MISSING], [
+  jk_new_val=""
+  jk_val_changed=0
+  for i in $$1; do
+    case $i in
+      $2*)
+        jk_new_val="$jk_new_val $i"
+        ;;
+      *)
+        jk_new_val="$jk_new_val $2$i"
+        jk_val_changed=1
+        ;;
+    esac
+  done
+  if test $jk_val_changed = "1"; then
+    AC_MSG_NOTICE(tokens in $1 have been prefixed with '[$2]')
+    $1=$jk_new_val
+  fi
+]) dnl



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org