diff options
Diffstat (limited to 'configure.ac')
-rw-r--r-- | configure.ac | 457 |
1 files changed, 0 insertions, 457 deletions
diff --git a/configure.ac b/configure.ac deleted file mode 100644 index b5f8697a..00000000 --- a/configure.ac +++ /dev/null @@ -1,457 +0,0 @@ -dnl Licensed under the Apache License, Version 2.0 (the "License"); you may not -dnl use this file except in compliance with the License. dnl You may obtain a -dnl copy of the License at -dnl -dnl http://www.apache.org/licenses/LICENSE-2.0 -dnl -dnl Unless required by applicable law or agreed to in writing, software -dnl distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -dnl WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -dnl License for the specific language governing permissions and limitations -dnl under the License. - -AC_INIT([LOCAL_PACKAGE_NAME], [LOCAL_VERSION], [], [LOCAL_PACKAGE_TARNAME]) - -AC_PREREQ([2.59]) - -AC_CONFIG_SRCDIR([CHANGES]) -AC_CONFIG_AUX_DIR([build-aux]) -AC_CONFIG_MACRO_DIR([m4]) - -AM_CONFIG_HEADER([config.h]) - -AM_INIT_AUTOMAKE([1.6.3 foreign]) - -AC_GNU_SOURCE -AC_ENABLE_SHARED -AC_DISABLE_STATIC - -AC_PROG_CC -AC_PROG_LIBTOOL -AC_PROG_LN_S - -AC_MSG_CHECKING([for pthread_create in -lpthread]) - -original_LIBS="$LIBS" -LIBS="-lpthread $original_LIBS" - -AC_TRY_LINK([#include<pthread.h>], - [pthread_create((void *)0, (void *)0, (void *)0, (void *)0)], - [pthread=yes], [pthread=no]) - -if test x${pthread} = xyes; then - AC_MSG_RESULT([yes]) -else - LIBS="$original_LIBS" - AC_MSG_RESULT([no]) -fi - -AC_ARG_WITH([erlang], [AC_HELP_STRING([--with-erlang=PATH], - [set PATH to the Erlang include directory])], [ - ERLANG_FLAGS="-I$withval" -], [ - ERLANG_FLAGS="-I${libdir}/erlang/usr/include" - ERLANG_FLAGS="$ERLANG_FLAGS -I/usr/lib/erlang/usr/include" - ERLANG_FLAGS="$ERLANG_FLAGS -I/usr/local/lib/erlang/usr/include" - ERLANG_FLAGS="$ERLANG_FLAGS -I/opt/local/lib/erlang/usr/include" -]) - -AC_ARG_WITH([js-include], [AC_HELP_STRING([--with-js-include=PATH], - [set PATH to the SpiderMonkey include directory])], [ - JS_INCLUDE="$withval" - JS_FLAGS="-I$JS_INCLUDE" -], [ - JS_FLAGS="-I/usr/include" - JS_FLAGS="$JS_FLAGS -I/usr/include/js" - JS_FLAGS="$JS_FLAGS -I/usr/include/mozjs" - JS_FLAGS="$JS_FLAGS -I/usr/local/include" - JS_FLAGS="$JS_FLAGS -I/opt/local/include" - JS_FLAGS="$JS_FLAGS -I/usr/local/include/js" - JS_FLAGS="$JS_FLAGS -I/opt/local/include/js" -]) - -AC_ARG_WITH([js-lib], [AC_HELP_STRING([--with-js-lib=PATH], - [set PATH to the SpiderMonkey library directory])], - [ - JS_LIB_DIR=$withval - JS_LIB_FLAGS="-L$withval" -], [ - JS_LIB_DIR= -]) -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]) - -LIB_FLAGS="$JS_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_FLAGS -DXP_WIN $FLAGS" - CPPFLAGS="$FLAGS $CPPFLAGS" - LDFLAGS="$FLAGS $LDFLAGS" - 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_FLAGS -DXP_UNIX $FLAGS" - CPPFLAGS="$FLAGS $CPPFLAGS" - # manually linking libm is requred for FreeBSD 7.0 - LDFLAGS="$FLAGS -lm $LDFLAGS" - ;; -esac - -AM_CONDITIONAL([WINDOWS], [test x$IS_WINDOWS = xTRUE]) - -AC_CHECK_LIB([mozjs185], [JS_NewContext], [JS_LIB_BASE=mozjs185], [ - AC_CHECK_LIB([mozjs185-1.0], [JS_NewContext], [JS_LIB_BASE=mozjs185-1.0], [ - 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], [ - AC_CHECK_LIB([js32], [JS_NewContext], [JS_LIB_BASE=js32], [ - AC_MSG_ERROR([Could not find the js library. - -Is the Mozilla SpiderMonkey library installed?])])])])])])]) - -AC_SUBST(JS_LIB_BASE) - -if test x${IS_WINDOWS} = xTRUE; then - if test -f "$JS_LIB_DIR/$JS_LIB_BASE.dll"; then - # seamonkey 1.7- build layout on Windows - JS_LIB_BINARY="$JS_LIB_DIR/$JS_LIB_BASE.dll" - else - # seamonkey 1.8+ build layout on Windows - if test -f "$JS_LIB_DIR/../bin/$JS_LIB_BASE.dll"; then - JS_LIB_BINARY="$JS_LIB_DIR/../bin/$JS_LIB_BASE.dll" - else - AC_MSG_ERROR([Could not find $JS_LIB_BASE.dll.]) - fi - fi - AC_SUBST(JS_LIB_BINARY) - - # On windows we need to know the path to the openssl binaries. - AC_ARG_WITH([openssl-bin-dir], [AC_HELP_STRING([--with-openssl-bin-dir=PATH], - [path to the open ssl binaries for distribution on Windows])], [ - openssl_bin_dir=`cygpath -m "$withval"` - AC_SUBST(openssl_bin_dir) - ], []) - - # Windows uses Inno setup - look for its compiler. - AC_PATH_PROG([INNO_COMPILER_EXECUTABLE], [iscc]) - if test x${INNO_COMPILER_EXECUTABLE} = x; then - AC_MSG_WARN([You will be unable to build the Windows installer.]) - fi - - # We need the msvc redistributables for this platform too - # (in theory we could just install the assembly locally - but - # there are at least 4 directories with binaries, meaning 4 copies; - # so using the redist .exe means it ends up installed globally...) - AC_ARG_WITH([msvc-redist-dir], [AC_HELP_STRING([--with-msvc-redist-dir=PATH], - [path to the msvc redistributables for the Windows platform])], [ - msvc_redist_dir=`cygpath -m "$withval"` - msvc_redist_name="vcredist_x86.exe" - AC_SUBST(msvc_redist_dir) - AC_SUBST(msvc_redist_name) - ], []) - if test ! -f ${msvc_redist_dir}/${msvc_redist_name}; then - AC_MSG_WARN([The MSVC redistributable seems to be missing; expect the installer to fail.]) - fi -fi - -JSLIB=-l$JS_LIB_BASE - -AC_CHECK_HEADER([jsapi.h], [], [ - AC_CHECK_HEADER([js/jsapi.h], - [ - CPPFLAGS="$CPPFLAGS -I$JS_INCLUDE/js" - ], - [ - AC_MSG_ERROR([Could not find the jsapi header. - -Are the Mozilla SpiderMonkey headers installed?]) - ])]) - -AC_SUBST(JSLIB) - -AC_LANG_PUSH(C) - -AC_CHECK_LIB([$JS_LIB_BASE], [JS_NewCompartmentAndGlobalObject], - AC_DEFINE([SM185], [1], - [Use SpiderMonkey 1.8.5])) - -AC_CHECK_LIB([$JS_LIB_BASE], [JS_ThrowStopIteration], - AC_DEFINE([SM180], [1], - [Use SpiderMonkey 1.8.0])) - -AC_CHECK_LIB([$JS_LIB_BASE], [JS_GetStringCharsAndLength], - AC_DEFINE([HAVE_JS_GET_STRING_CHARS_AND_LENGTH], [1], - [Use newer JS_GetCharsAndLength function.])) - -AC_LANG_POP(C) - -AC_ARG_WITH([win32-icu-binaries], [AC_HELP_STRING([--with-win32-icu-binaries=PATH], - [set PATH to the Win32 native ICU binaries directory])], [ - ICU_CONFIG="" # supposed to be a command to query options... - ICU_LOCAL_CFLAGS="-I$withval/include" - ICU_LOCAL_LDFLAGS="-L$withval/lib" - ICU_LOCAL_BIN=$withval/bin -], [ - AC_CHECK_ICU([3.4.1]) - ICU_LOCAL_CFLAGS=`$ICU_CONFIG --cppflags-searchpath` - ICU_LOCAL_LDFLAGS=`$ICU_CONFIG --ldflags-searchpath` - ICU_LOCAL_BIN= -]) - -AC_SUBST(ICU_CONFIG) -AC_SUBST(ICU_LOCAL_CFLAGS) -AC_SUBST(ICU_LOCAL_LDFLAGS) -AC_SUBST(ICU_LOCAL_BIN) - -AC_ARG_WITH([win32-curl], [AC_HELP_STRING([--with-win32-curl=PATH], - [set PATH to the Win32 native curl directory])], [ - # default build on windows is a static lib, and that's what we want too - CURL_CFLAGS="-I$withval/include -DCURL_STATICLIB" - CURL_LIBS="$withval/lib/libcurl" - CURL_LDFLAGS="-l$CURL_LIBS -lWs2_32 -lkernel32 -luser32 -ladvapi32 -lWldap32" -], [ - AC_CHECK_CURL([7.18.0]) - CURL_LDFLAGS=-lcurl -]) - -AC_SUBST(CURL_CFLAGS) -AC_SUBST(CURL_LIBS) -AC_SUBST(CURL_LDFLAGS) - -case "$(uname -s)" in - Linux) - LIBS="$LIBS -lcrypt" - CPPFLAGS="-D_XOPEN_SOURCE $CPPFLAGS" - ;; - FreeBSD) - LIBS="$LIBS -lm -lcrypt" - ;; - OpenBSD) - LIBS="$LIBS -lm -lcrypto" - ;; -esac - -AC_PATH_PROG([ERL], [erl]) - -if test x${ERL} = x; then - AC_MSG_ERROR([Could not find the `erl' executable. Is Erlang installed?]) -fi - -erlang_version_error="The installed Erlang version is less than erts-5.7.3 (R13B02)." - -version="`${ERL} -version 2>&1 | ${SED} "s/[[^0-9]]/ /g"`" - -if test `echo $version | ${AWK} "{print \\$1}"` -lt 5; then - AC_MSG_ERROR([$erlang_version_error]) -fi - -if test `echo $version | ${AWK} "{print \\$2}"` -lt 7; then - AC_MSG_ERROR([$erlang_version_error]) -fi - -if test `echo $version | ${AWK} "{print \\$2}"` -eq 7; then - if test `echo $version | ${AWK} "{print \\$3}"` -lt 3; then - AC_MSG_ERROR([$erlang_version_error]) - fi -fi - -has_crypto=`${ERL} -eval "case application:load(crypto) of ok -> ok; _ -> exit(no_crypto) end." -noshell -s init stop` - -if test -n "$has_crypto"; then - AC_MSG_ERROR([Could not find the Erlang crypto library. Has Erlang been compiled with OpenSSL support?]) -fi - -AC_PATH_PROG([ERLC], [erlc]) - -if test x${ERLC} = x; then - AC_MSG_ERROR([Could not find the `erlc' executable. Is Erlang installed?]) -fi - -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.])]) - -AC_PATH_PROG([HELP2MAN_EXECUTABLE], [help2man]) -if test x${HELP2MAN_EXECUTABLE} = x; then - AC_MSG_WARN([You will be unable to regenerate any man pages.]) -fi - -use_init=yes -use_launchd=yes - -AC_ARG_ENABLE([init], [AC_HELP_STRING([--disable-init], - [don't install init script where applicable])], [ - use_init=$enableval -], []) - -AC_ARG_ENABLE([launchd], [AC_HELP_STRING([--disable-launchd], - [don't install launchd configuration where applicable])], [ - use_launchd=$enableval -], []) - -init_enabled=false -launchd_enabled=false - -if test "$use_init" = "yes"; then - AC_MSG_CHECKING(location of init directory) - if test -d /etc/rc.d; then - init_enabled=true - AC_SUBST([initdir], ['${sysconfdir}/rc.d']) - AC_MSG_RESULT(${initdir}) - else - if test -d /etc/init.d; then - init_enabled=true - AC_SUBST([initdir], ['${sysconfdir}/init.d']) - AC_MSG_RESULT(${initdir}) - else - AC_MSG_RESULT(not found) - fi - fi -fi - -if test "$use_launchd" = "yes"; then - AC_MSG_CHECKING(location of launchd directory) - if test -d /Library/LaunchDaemons; then - init_enabled=false - launchd_enabled=true - AC_SUBST([launchddir], ['${prefix}/Library/LaunchDaemons']) - AC_MSG_RESULT(${launchddir}) - else - AC_MSG_RESULT(not found) - fi -fi - -AC_ARG_VAR([ERL], [path to the `erl' executable]) -AC_ARG_VAR([ERLC], [path to the `erlc' executable]) -AC_ARG_VAR([HELP2MAN_EXECUTABLE], [path to the `help2man' program]) - -if test -n "$HELP2MAN_EXECUTABLE"; then - help2man_enabled=true -else - if test -f "$srcdir/bin/couchdb.1" -a -f "$srcdir/bin/couchjs.1"; then - help2man_enabled=true - else - help2man_enabled=false - fi -fi - -AM_CONDITIONAL([INIT], [test x${init_enabled} = xtrue]) -AM_CONDITIONAL([LAUNCHD], [test x${launchd_enabled} = xtrue]) -AM_CONDITIONAL([HELP2MAN], [test x${help2man_enabled} = xtrue]) - -AC_SUBST([package_author_name], ["LOCAL_PACKAGE_AUTHOR_NAME"]) -AC_SUBST([package_author_address], ["LOCAL_PACKAGE_AUTHOR_ADDRESS"]) -AC_SUBST([package_identifier], ["LOCAL_PACKAGE_IDENTIFIER"]) -AC_SUBST([package_tarname], ["LOCAL_PACKAGE_TARNAME"]) -AC_SUBST([package_name], ["LOCAL_PACKAGE_NAME"]) - -AC_SUBST([version], ["LOCAL_VERSION"]) -AC_SUBST([version_major], ["LOCAL_VERSION_MAJOR"]) -AC_SUBST([version_minor], ["LOCAL_VERSION_MINOR"]) -AC_SUBST([version_revision], ["LOCAL_VERSION_REVISION"]) -AC_SUBST([version_stage], ["LOCAL_VERSION_STAGE"]) -AC_SUBST([version_release], ["LOCAL_VERSION_RELEASE"]) - -AC_SUBST([bug_uri], ["LOCAL_BUG_URI"]) - -AC_SUBST([localconfdir], [${sysconfdir}/${package_identifier}]) -AC_SUBST([localdatadir], [${datadir}/${package_identifier}]) -AC_SUBST([localdocdir], [${datadir}/doc/${package_identifier}]) -AC_SUBST([locallibdir], [${libdir}/${package_identifier}]) -AC_SUBST([localstatelibdir], [${localstatedir}/lib/${package_identifier}]) -AC_SUBST([localstatelogdir], [${localstatedir}/log/${package_identifier}]) -AC_SUBST([localstaterundir], [${localstatedir}/run/${package_identifier}]) - -# On Windows we install directly into our erlang distribution. -if test x${IS_WINDOWS} = xTRUE; then - AC_SUBST([locallibbindir], [${prefix}/bin]) - AC_SUBST([localerlanglibdir], [${libdir}]) -else - AC_SUBST([locallibbindir], [${locallibdir}/bin]) - AC_SUBST([localerlanglibdir], [${locallibdir}/erlang/lib]) -fi - -# fix for older autotools that don't define "abs_top_YYY" by default -AC_SUBST(abs_top_srcdir) -AC_SUBST(abs_top_builddir) - -AC_REVISION([LOCAL_VERSION]) - -AC_CONFIG_FILES([Makefile]) -AC_CONFIG_FILES([bin/couchjs.tpl]) -AC_CONFIG_FILES([bin/couchdb.tpl]) -AC_CONFIG_FILES([bin/couchdb.bat.tpl]) -AC_CONFIG_FILES([bin/Makefile]) -AC_CONFIG_FILES([etc/couchdb/Makefile]) -AC_CONFIG_FILES([etc/couchdb/default.ini.tpl]) -AC_CONFIG_FILES([etc/default/Makefile]) -AC_CONFIG_FILES([etc/init/couchdb.tpl]) -AC_CONFIG_FILES([etc/init/Makefile]) -AC_CONFIG_FILES([etc/launchd/org.apache.couchdb.plist.tpl]) -AC_CONFIG_FILES([etc/launchd/Makefile]) -AC_CONFIG_FILES([etc/logrotate.d/couchdb.tpl]) -AC_CONFIG_FILES([etc/logrotate.d/Makefile]) -AC_CONFIG_FILES([etc/windows/Makefile]) -AC_CONFIG_FILES([etc/Makefile]) -AC_CONFIG_FILES([share/Makefile]) -AC_CONFIG_FILES([src/Makefile]) -AC_CONFIG_FILES([src/couchdb/couch.app.tpl]) -AC_CONFIG_FILES([src/couchdb/Makefile]) -AC_CONFIG_FILES([src/couchdb/priv/Makefile]) -AC_CONFIG_FILES([src/erlang-oauth/Makefile]) -AC_CONFIG_FILES([src/etap/Makefile]) -AC_CONFIG_FILES([src/ibrowse/Makefile]) -AC_CONFIG_FILES([src/mochiweb/Makefile]) -AC_CONFIG_FILES([test/Makefile]) -AC_CONFIG_FILES([test/bench/Makefile]) -AC_CONFIG_FILES([test/etap/Makefile]) -AC_CONFIG_FILES([test/etap/test_util.erl]) -AC_CONFIG_FILES([test/javascript/Makefile]) -AC_CONFIG_FILES([test/view_server/Makefile]) -AC_CONFIG_FILES([utils/Makefile]) -AC_CONFIG_FILES([var/Makefile]) - -AC_OUTPUT - -# Windows Erlang build tools wrap Microsoft's linker and compiler just enough -# to be able to build Erlang/OTP successfully, but not enough for full -# compatibility with GNU AutoTools. The MS VC compiler and linker are -# hidden from autotools in Erlang's cc.sh and ld.sh wrappers. GNU autoconf -# identifies this dastardly mix as a unix variant, and libtool kindly -# passes incorrect flags and names through to the MS linker. The simplest fix -# is to modify libtool via sed to remove those options. -# As this is only done once at first configure, and subsequent config or source -# changes may trigger a silent reversion to the non-functioning original. -# Changes are; -# 1. replace LIB$name with $name in libname_spec (e.g. libicu -> icu) to ensure -# correct windows versions of .lib and .dlls are found or generated. -# 2. remove incompatible \w-link\w from archive_cmds -# 3. remove GNU-style directives to be passed through to the linker -# 4. swap GNU-style shared library flags with MS -dll variant -# This obscene hackery is tracked under COUCHDB-440 and COUCHDB-1197. - -if test x${IS_WINDOWS} = xTRUE; then - mv libtool libtool.dist - /bin/sed -E -e 's,^libname_spec="lib,libname_spec=",' \ - -e 's,( -link ), ,' \ - -e 's,-Xlinker --out-implib -Xlinker \\\$lib,,' \ - -e 's,(-shared -nostdlib), -dll ,' \ - < libtool.dist > libtool - # probably would chmod +x if we weren't on windows... -fi - -echo -echo "You have configured Apache CouchDB, time to relax." -echo -echo "Run \`make && sudo make install' to install." |