You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@couchdb.apache.org by ra...@apache.org on 2011/06/08 10:44:10 UTC

svn commit: r1133286 - in /couchdb/trunk: configure.ac src/couchdb/priv/Makefile.am

Author: randall
Date: Wed Jun  8 08:44:10 2011
New Revision: 1133286

URL: http://svn.apache.org/viewvc?rev=1133286&view=rev
Log:
prevent excessive linking of mozjs - COUCHDB-1033

Modified:
    couchdb/trunk/configure.ac
    couchdb/trunk/src/couchdb/priv/Makefile.am

Modified: couchdb/trunk/configure.ac
URL: http://svn.apache.org/viewvc/couchdb/trunk/configure.ac?rev=1133286&r1=1133285&r2=1133286&view=diff
==============================================================================
--- couchdb/trunk/configure.ac (original)
+++ couchdb/trunk/configure.ac Wed Jun  8 08:44:10 2011
@@ -119,6 +119,7 @@ AC_ARG_WITH([erlang], [AC_HELP_STRING([-
     ERLANG_FLAGS="$ERLANG_FLAGS -I/usr/local/lib/erlang/usr/include"
     ERLANG_FLAGS="$ERLANG_FLAGS -I/opt/local/lib/erlang/usr/include"
 ])
+AC_SUBST(ERLANG_FLAGS)
 
 PKG_CHECK_MODULES([JS], [mozilla-js >= 1.7], [
     JS_LIB_DIR="$(${PKG_CONFIG} --variable=sdkdir mozilla-js)/lib"
@@ -145,36 +146,36 @@ AC_ARG_WITH([js-lib], [AC_HELP_STRING([-
     JS_LIB_DIR=$withval
     JS_LIBS="-L$withval"
 ], [])
-AC_SUBST(JS_LIB_DIR)
 
 AC_ARG_VAR([ERLC_FLAGS], [general flags to prepend to ERLC_FLAGS])
 AC_ARG_VAR([FLAGS], [general flags to prepend to LDFLAGS and CPPFLAGS])
+CPPFLAGS="$FLAGS $CPPFLAGS"
+LDFLAGS="$FLAGS $LDFLAGS"
 
-LIB_FLAGS="$JS_LIBS -L/usr/local/lib -L/opt/local/lib"
+# The erlang cc.sh/ld.sh scripts will convert a -O option
+# into the same optimization flags erlang itself uses.
+CFLAGS="-O2 $CFLAGS"
+
+LIB_FLAGS="-L/usr/local/lib -L/opt/local/lib"
 LIBS="$LIB_FLAGS $LIBS"
 
 case "$(uname -s)" in
   CYGWIN*)
-    FLAGS="$LIB_FLAGS $ERLANG_FLAGS $JS_CFLAGS -DXP_WIN $FLAGS"
-    CPPFLAGS="$FLAGS $CPPFLAGS"
-    LDFLAGS="$FLAGS $LDFLAGS"
+    JS_CFLAGS="-DXP_WIN $JS_CFLAGS"
     IS_WINDOWS="TRUE"
-    # The erlang cc.sh/ld.sh scripts will convert a -O option
-    # into the same optimization flags erlang itself uses.
-    CFLAGS="-O2"
-    LTCFLAGS="$CFLAGS"
     ;;
   *)
     # XP_UNIX required for jsapi.h and has been tested to work on Linux and Darwin.
-    FLAGS="$LIB_FLAGS $ERLANG_FLAGS $JS_CFLAGS -DXP_UNIX $FLAGS"
-    CPPFLAGS="$FLAGS $CPPFLAGS"
+    JS_CLAGS="-DXP_UNIX $JS_CFLAGS"
     # manually linking libm is requred for FreeBSD 7.0
-    LDFLAGS="$FLAGS -lm $LDFLAGS"
+    LDFLAGS="-lm $LDFLAGS"
     ;;
 esac
 
 AM_CONDITIONAL([WINDOWS], [test x$IS_WINDOWS = xTRUE])
 
+OLD_LIBS="$LIBS"
+LIBS="$JS_LIBS $LIBS"
 AC_CHECK_LIB([mozjs], [JS_NewContext], [JS_LIB_BASE=mozjs], [
     AC_CHECK_LIB([js], [JS_NewContext], [JS_LIB_BASE=js], [
         AC_CHECK_LIB([js3250], [JS_NewContext], [JS_LIB_BASE=js3250], [
@@ -182,6 +183,7 @@ AC_CHECK_LIB([mozjs], [JS_NewContext], [
                 AC_MSG_ERROR([Could not find the js library.
 
 Is the Mozilla SpiderMonkey library installed?])])])])])
+LIBS="$OLD_LIBS"
 
 
 if test x${IS_WINDOWS} = xTRUE; then
@@ -230,6 +232,8 @@ fi
 JS_LIBS="-l$JS_LIB_BASE $JS_LIBS"
 AC_SUBST(JS_LIBS)
 
+OLD_CPPFLAGS="$CPPFLAGS"
+CPPFLAGS="$JS_CFLAGS $CPPFLAGS"
 AC_CHECK_HEADER([jsapi.h], [], [
     AC_CHECK_HEADER([js/jsapi.h],
         [
@@ -240,10 +244,11 @@ AC_CHECK_HEADER([jsapi.h], [], [
 
 Are the Mozilla SpiderMonkey headers installed?])
         ])])
+CPPFLAGS="$OLD_CPPFLAGS"
 
 AC_LANG_PUSH(C)
-OLD_CFLAGS="$CFLAGS"
-CFLAGS="-Werror-implicit-function-declaration"
+OLDCFLAGS="$CFLAGS"
+CFLAGS="-Werror-implicit-function-declaration $CFLAGS"
 AC_COMPILE_IFELSE(
     [AC_LANG_PROGRAM(
         [[#include <jsapi.h>]],
@@ -343,11 +348,14 @@ if test x${ERLC} = x; then
     AC_MSG_ERROR([Could not find the `erlc' executable. Is Erlang installed?])
 fi
 
+OLD_CPPFLAGS="$CPPFLAGS"
+CPPFLAGS="$ERLANG_FLAGS $CPPFLAGS"
 AC_CHECK_HEADER([erl_driver.h], [], [
     AC_MSG_ERROR([Could not find the `erl_driver.h' header.
 
 Are the Erlang headers installed? Use the `--with-erlang' option to specify the
 path to the Erlang include directory.])])
+CPPFLAGS="$OLD_CPPFLAGS"
 
 AC_PATH_PROG([HELP2MAN_EXECUTABLE], [help2man])
 if test x${HELP2MAN_EXECUTABLE} = x; then

Modified: couchdb/trunk/src/couchdb/priv/Makefile.am
URL: http://svn.apache.org/viewvc/couchdb/trunk/src/couchdb/priv/Makefile.am?rev=1133286&r1=1133285&r2=1133286&view=diff
==============================================================================
--- couchdb/trunk/src/couchdb/priv/Makefile.am (original)
+++ couchdb/trunk/src/couchdb/priv/Makefile.am Wed Jun  8 08:44:10 2011
@@ -29,8 +29,8 @@ endif
 
 couchprivlib_LTLIBRARIES = couch_icu_driver.la
 couch_icu_driver_la_SOURCES = icu_driver/couch_icu_driver.c
-couch_icu_driver_la_LDFLAGS = -module -avoid-version $(ICU_LOCAL_FLAGS)
-couch_icu_driver_la_CFLAGS = $(ICU_LOCAL_FLAGS)
+couch_icu_driver_la_LDFLAGS = -module -avoid-version
+couch_icu_driver_la_CFLAGS = $(ICU_LOCAL_FLAGS) $(ERLANG_FLAGS)
 couch_icu_driver_la_LIBADD = $(ICU_LOCAL_LIBS)
 
 if WINDOWS
@@ -46,7 +46,7 @@ COUCHJS_SRCS = \
 
 locallibbin_PROGRAMS = couchjs
 couchjs_SOURCES = $(COUCHJS_SRCS)
-couchjs_CFLAGS = -D_BSD_SOURCE $(CURL_CFLAGS)
+couchjs_CFLAGS = -D_BSD_SOURCE $(CURL_CFLAGS) $(JS_CFLAGS)
 couchjs_LDADD = $(CURL_LIBS) $(JS_LIBS)
 
 couchpriv_DATA = stat_descriptions.cfg