2003-07-24 23:16:02 +00:00
|
|
|
dnl -*- autoconf -*-
|
|
|
|
|
|
|
|
dnl $Id$
|
|
|
|
|
2005-04-28 21:52:47 +00:00
|
|
|
dnl NOTE: on milkyway.ssl and jill.ssl , need autoconf/automake et al from quarls
|
2003-07-24 23:16:02 +00:00
|
|
|
dnl directory; the _autosetup script does this.
|
|
|
|
|
2005-04-28 21:52:47 +00:00
|
|
|
dnl not sure exactly what the minimum version is (but 2.13 wont work)
|
2005-05-06 00:29:13 +00:00
|
|
|
AC_PREREQ(2.57)
|
2003-07-24 23:16:02 +00:00
|
|
|
|
2004-12-04 07:19:09 +00:00
|
|
|
dnl Set the BOINC version here. You can also use the set-version script.
|
2005-08-31 00:55:55 +00:00
|
|
|
AC_INIT(BOINC, 5.3.1)
|
2004-12-04 07:19:09 +00:00
|
|
|
|
2005-03-08 06:12:02 +00:00
|
|
|
AC_ARG_ENABLE(debug,
|
2005-08-04 00:12:50 +00:00
|
|
|
AS_HELP_STRING([--enable-debug],
|
2005-03-08 05:54:15 +00:00
|
|
|
[enable tracing and debugging flags for all components]),
|
2005-03-08 06:12:02 +00:00
|
|
|
[enable_debug=yes],
|
|
|
|
[])
|
2005-03-08 05:54:15 +00:00
|
|
|
|
2004-12-04 07:19:09 +00:00
|
|
|
AC_ARG_ENABLE(server,
|
2005-08-04 00:12:50 +00:00
|
|
|
AS_HELP_STRING([--disable-server],
|
2004-12-04 07:19:09 +00:00
|
|
|
[disable building the scheduling server]),
|
|
|
|
[],
|
|
|
|
[enable_server=yes])
|
|
|
|
|
|
|
|
AC_ARG_ENABLE(client,
|
2005-08-04 00:12:50 +00:00
|
|
|
AS_HELP_STRING([--disable-client],
|
2004-12-04 07:19:09 +00:00
|
|
|
[disable building the client]),
|
|
|
|
[],
|
|
|
|
[enable_client=yes])
|
|
|
|
|
2005-07-11 10:46:19 +00:00
|
|
|
dnl ======================================================================
|
|
|
|
dnl some vodoo required for building portable client-binary (client, clientgui)
|
|
|
|
dnl ======================================================================
|
2005-08-04 00:12:50 +00:00
|
|
|
AC_ARG_ENABLE([client-release], AS_HELP_STRING([--enable-client-release],
|
2005-07-11 10:46:19 +00:00
|
|
|
[Try building a portable "release-candidate" (currently implemented for Linux and Solaris only): \
|
|
|
|
this links libstd++ statically. You will probably need gcc-3.0 for
|
|
|
|
this to produce a portable client-binary.
|
|
|
|
It is therefore recommended to use CC=gcc-3.0 and CXX=g++-3.0 for this.
|
|
|
|
(Default = no)]),
|
|
|
|
[enable_client_release=yes
|
|
|
|
disable_static_client=no],
|
|
|
|
[enable_client_release=no
|
|
|
|
disable_static_client=yes])
|
|
|
|
|
2004-12-04 07:19:09 +00:00
|
|
|
m4_divert_once([HELP_ENABLE],
|
2005-08-04 00:12:50 +00:00
|
|
|
AS_HELP_STRING([], [Default: --enable-server --enable-client:
|
2004-12-04 07:19:09 +00:00
|
|
|
builds both server and client]))
|
|
|
|
|
|
|
|
if test "${enable_server}" = yes ; then
|
|
|
|
if test "${enable_client}" = yes ; then
|
|
|
|
configured_to_build='server & client'
|
|
|
|
else
|
|
|
|
configured_to_build='server only'
|
|
|
|
fi
|
|
|
|
else
|
|
|
|
if test "${enable_client}" = yes ; then
|
|
|
|
configured_to_build='client only'
|
|
|
|
else
|
2005-03-08 05:54:15 +00:00
|
|
|
configured_to_build='libraries only'
|
2004-12-04 07:19:09 +00:00
|
|
|
fi
|
|
|
|
fi
|
2004-06-29 08:51:54 +00:00
|
|
|
|
2005-03-08 05:58:25 +00:00
|
|
|
if test "${enable_debug}" = yes ; then
|
2005-03-08 05:54:15 +00:00
|
|
|
build_state='Debug'
|
|
|
|
else
|
|
|
|
build_state='Release'
|
|
|
|
fi
|
|
|
|
|
|
|
|
echo "--- Configuring BOINC AC_PACKAGE_VERSION (${build_state}) ---"
|
2005-03-08 06:12:02 +00:00
|
|
|
echo "--- Build Components: (${configured_to_build}) ---"
|
2004-07-13 10:36:18 +00:00
|
|
|
|
2005-08-04 00:12:50 +00:00
|
|
|
AC_CANONICAL_TARGET
|
2003-07-24 23:16:02 +00:00
|
|
|
|
|
|
|
dnl generate .tar.gz, .tar.bz2, .zip
|
|
|
|
dnl AM_INIT_AUTOMAKE(dist-bzip2 dist-zip)
|
|
|
|
AM_INIT_AUTOMAKE(dist-zip)
|
|
|
|
|
|
|
|
AC_CONFIG_SRCDIR(lib/shmem.C)
|
|
|
|
|
|
|
|
AC_COPYRIGHT([
|
2005-01-20 23:22:22 +00:00
|
|
|
Berkeley Open Infrastructure for Network Computing
|
|
|
|
http://boinc.berkeley.edu
|
|
|
|
Copyright (C) 2005 University of California
|
|
|
|
|
|
|
|
This is free software; you can redistribute it and/or
|
|
|
|
modify it under the terms of the GNU Lesser General Public
|
|
|
|
License as published by the Free Software Foundation;
|
|
|
|
either version 2.1 of the License, or (at your option) any later version.
|
|
|
|
|
|
|
|
This software is distributed in the hope that it will be useful,
|
|
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
|
|
See the GNU Lesser General Public License for more details.
|
|
|
|
|
|
|
|
To view the GNU Lesser General Public License visit
|
|
|
|
http://www.gnu.org/copyleft/lesser.html
|
|
|
|
or write to the Free Software Foundation, Inc.,
|
|
|
|
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
2003-07-24 23:16:02 +00:00
|
|
|
])
|
|
|
|
|
|
|
|
AC_REVISION([$Revision$])
|
|
|
|
|
2004-12-04 07:19:09 +00:00
|
|
|
AC_DEFUN([KC_STRIP_LEADING_ZEROS],[m4_bregexp([$*],[^0*\(..*\)],\1)])
|
2003-07-24 23:16:02 +00:00
|
|
|
|
2004-12-04 07:19:09 +00:00
|
|
|
AC_DEFUN([BOINC_SET_VERSION],[dnl
|
|
|
|
AC_SUBST([BOINC_MAJOR_VERSION],KC_STRIP_LEADING_ZEROS([$1]))
|
|
|
|
AC_SUBST([BOINC_MINOR_VERSION],KC_STRIP_LEADING_ZEROS([$2]))
|
2005-08-31 00:18:36 +00:00
|
|
|
AC_SUBST([BOINC_RELEASE],KC_STRIP_LEADING_ZEROS([$3]))
|
2004-12-04 07:19:09 +00:00
|
|
|
AC_SUBST([BOINC_VERSION_STRING],AC_PACKAGE_VERSION)
|
|
|
|
])
|
2004-07-13 10:36:18 +00:00
|
|
|
|
2004-12-04 07:19:09 +00:00
|
|
|
BOINC_SET_VERSION(translit(AC_PACKAGE_VERSION, [.], [,]))
|
2004-07-13 10:36:18 +00:00
|
|
|
|
2004-12-07 17:47:23 +00:00
|
|
|
dnl Version information moved to version.h so removed from config.h
|
|
|
|
dnl AC_DEFINE_UNQUOTED([BOINC_VERSION_STRING], "$BOINC_VERSION_STRING", [String representation of BOINC version number])
|
|
|
|
dnl AC_DEFINE_UNQUOTED([BOINC_MAJOR_VERSION], $BOINC_MAJOR_VERSION, [Major part of BOINC version number])
|
|
|
|
dnl AC_DEFINE_UNQUOTED([BOINC_MINOR_VERSION], $BOINC_MINOR_VERSION, [Minor part of BOINC version number])
|
2005-08-31 00:18:36 +00:00
|
|
|
dnl AC_DEFINE_UNQUOTED([BOINC_RELEASE], $BOINC_RELEASE, [Release part of BOINC version number])
|
2004-12-07 17:47:23 +00:00
|
|
|
|
2005-04-28 21:52:47 +00:00
|
|
|
dnl Need to duplicate these AC_SUBST because some versions of autoconf wont
|
2004-12-07 17:47:23 +00:00
|
|
|
dnl find AC_SUBST in a macro unless subsequently used in a DEFINE or SUBST
|
2005-04-28 21:52:47 +00:00
|
|
|
dnl outside of a macro. Dont ask me why.
|
2004-12-07 17:47:23 +00:00
|
|
|
AC_SUBST([BOINC_VERSION_STRING])
|
|
|
|
AC_SUBST([BOINC_MAJOR_VERSION])
|
2004-12-17 18:18:45 +00:00
|
|
|
AC_SUBST([BOINC_MINOR_VERSION])
|
2004-12-07 17:47:23 +00:00
|
|
|
|
2004-12-04 07:19:09 +00:00
|
|
|
AC_SUBST([CLIENT_BIN_FILENAME],[boinc])
|
2005-08-04 23:35:37 +00:00
|
|
|
AC_SUBST([CLIENT_CMD_BIN_FILENAME],[boinccmd])
|
2004-12-04 07:19:09 +00:00
|
|
|
AC_SUBST([CLIENT_GUI_BIN_FILENAME],[boincmgr])
|
|
|
|
AC_SUBST([TOP_BUILD_DIR], [`pwd`])
|
|
|
|
AC_SUBST([TOP_SOURCE_DIR], [`(cd \`dirname "$0"\` && pwd)`])
|
2003-07-24 23:16:02 +00:00
|
|
|
|
2004-12-04 07:19:09 +00:00
|
|
|
AM_MAINTAINER_MODE
|
2003-07-24 23:16:02 +00:00
|
|
|
|
|
|
|
dnl Checks for programs.
|
|
|
|
AC_PROG_CC
|
|
|
|
AC_PROG_CXX
|
|
|
|
AC_PROG_CPP
|
|
|
|
AC_PROG_MAKE_SET
|
|
|
|
AC_PROG_RANLIB
|
2005-08-02 18:30:48 +00:00
|
|
|
SAH_LINKS
|
2004-12-04 07:19:09 +00:00
|
|
|
|
2005-04-28 21:52:47 +00:00
|
|
|
dnl enable objective-C
|
|
|
|
_AM_DEPENDENCIES([OBJC])
|
|
|
|
OBJC="$CC"
|
|
|
|
AC_SUBST(OBJC)
|
|
|
|
OBJCFLAGS="-ObjC"
|
|
|
|
AC_SUBST(OBJCFLAGS)
|
|
|
|
|
|
|
|
AC_LIBTOOL_DLOPEN
|
|
|
|
AC_LIBTOOL_WIN32_DLL
|
2005-05-06 00:29:13 +00:00
|
|
|
AC_PROG_LIBTOOL
|
2005-08-02 17:15:52 +00:00
|
|
|
AC_SUBST(PICFLAGS,${lt_prog_compiler_pic})
|
|
|
|
|
2005-04-28 21:52:47 +00:00
|
|
|
SAH_OPTION_BITNESS
|
|
|
|
|
2005-07-11 10:46:19 +00:00
|
|
|
dnl Some platform specific settings
|
2005-08-14 01:14:52 +00:00
|
|
|
myhost=$host
|
2005-07-11 10:46:19 +00:00
|
|
|
case $target in
|
|
|
|
*linux* | *sun* )
|
|
|
|
if ( test "${enable_client_release}" = yes ) && ( test "${enable_client}" != yes ); then
|
|
|
|
AC_MSG_WARN([--enable-client-release ignored.
|
|
|
|
--------------------------------------------------
|
|
|
|
The switch --enable-client-release is only useful for building the client and will be ignored
|
|
|
|
--------------------------------------------------])
|
|
|
|
fi
|
|
|
|
;;
|
2005-08-14 01:14:52 +00:00
|
|
|
|
|
|
|
powerpc-apple-darwin* )
|
|
|
|
myhost=powerpc-apple-darwin
|
|
|
|
;;
|
|
|
|
|
2005-07-11 10:46:19 +00:00
|
|
|
*) ## in the non-linux, non-solaris case, --enable-client-release is not allowed
|
|
|
|
if test "${enable_client_release}" = yes; then
|
|
|
|
AC_MSG_WARN([
|
|
|
|
----------------------------------------------------------------------
|
|
|
|
Sorry, the switch --enable-client-release is currently only implemented
|
|
|
|
for Linux and Solaris, and will have no effect.
|
|
|
|
----------------------------------------------------------------------])
|
|
|
|
fi
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
|
2005-08-14 01:14:52 +00:00
|
|
|
AC_DEFINE_UNQUOTED([HOSTTYPE], "$myhost", [Host for this compilation])
|
|
|
|
|
2005-02-09 19:39:04 +00:00
|
|
|
dnl Unfortunately on some 32 bit systems there is a problem with wx-widgets
|
|
|
|
dnl configuring itself for largefile support. On these systems largefile
|
|
|
|
dnl support breaks C++ compiles by defining away many of the C standard library
|
|
|
|
dnl routines that should reside in namespace std::. In order to get around
|
|
|
|
dnl problem first we have to check the largefile support macros. Later we will
|
|
|
|
dnl use the macro SAH_LARGEFILE_BREAKS_CXX to check for the breakage. If
|
|
|
|
dnl if breakage is found LARGEFILE_BREAKS_CXX is defined in config.h. This
|
|
|
|
dnl define is checked in std_fixes.h and the appropriate functions are defined
|
|
|
|
dnl in order to solve the problem.
|
|
|
|
AC_SYS_LARGEFILE
|
|
|
|
|
2005-04-28 21:52:47 +00:00
|
|
|
dnl Find the extensions used on shared and static libraries on this system
|
|
|
|
SAH_LIBEXT
|
|
|
|
SAH_DLLEXT
|
2005-02-09 19:39:04 +00:00
|
|
|
|
2005-03-14 21:07:58 +00:00
|
|
|
dnl enable debug mode on all components using standard debug flags
|
|
|
|
if test "${enable_debug}" = yes; then
|
|
|
|
CXXFLAGS="$CXXFLAGS -DDEBUG -D_DEBUG"
|
|
|
|
CFLAGS="$CFLAGS -DDEBUG -D_DEBUG"
|
|
|
|
|
|
|
|
AC_SUBST(CXXFLAGS)
|
|
|
|
AC_SUBST(CFLAGS)
|
|
|
|
fi
|
|
|
|
|
2004-12-04 07:19:09 +00:00
|
|
|
if test "${enable_server}" = yes; then
|
|
|
|
AC_CHECK_MYSQL
|
|
|
|
if test "${no_mysql}" = yes; then
|
|
|
|
AC_MSG_WARN([ mysql not found.
|
|
|
|
======================================================================
|
|
|
|
WARNING: trying to build BOINC-server, but MYSQL was not be found.
|
2005-04-28 21:52:47 +00:00
|
|
|
If you dont want to build the server you should use --disable-server.
|
2004-12-04 07:19:09 +00:00
|
|
|
|
|
|
|
I am continuing now as if --disable-server had been specified.
|
|
|
|
|
|
|
|
======================================================================
|
|
|
|
])
|
|
|
|
enable_server=no
|
|
|
|
fi
|
|
|
|
fi
|
2004-06-29 08:51:54 +00:00
|
|
|
|
2005-04-28 21:52:47 +00:00
|
|
|
|
|
|
|
|
2003-07-24 23:16:02 +00:00
|
|
|
dnl Checks for libraries.
|
2005-04-28 21:52:47 +00:00
|
|
|
|
|
|
|
dnl NOTE: Libraries subject to version changes, or those that might not be
|
|
|
|
dnl installed everywhere should be linked statically when building portable
|
|
|
|
dnl binaries. Put libraries that should be linked statically on every platform
|
|
|
|
dnl in the STATIC_LIB_LIST variable before calling SAH_CHECK_LIB. (Note: Only
|
|
|
|
dnl the '*' wildcard is supported).
|
|
|
|
STATIC_LIB_LIST="stdc++ gcc gcc_eh gtk* gdk* gmodule gthread glib wx* tiff jpeg
|
|
|
|
png Xi glut socket z"
|
|
|
|
|
|
|
|
dnl We'll store these libs in a separate variable BOINC_EXTRA_LIBS for later
|
|
|
|
dnl post-processing instead of the default-action, which would append
|
|
|
|
dnl them to LIBS (note, we also dont define HAVE_LIBXXX, because
|
|
|
|
dnl currently they arent used)
|
|
|
|
|
|
|
|
dnl Special rules for specific targets go here: It's easier to add static libs
|
|
|
|
dnl than subtract them. If you need to remove something from the list above,
|
|
|
|
dnl please add it to the lists below...
|
|
|
|
case ${target} in
|
|
|
|
*-linux*) STATIC_LIB_LIST="${STATIC_LIB_LIST} nsl"
|
|
|
|
;;
|
2005-08-02 18:30:48 +00:00
|
|
|
*-solaris*) STATIC_LIB_LIST="${STATIC_LIB_LIST} X* ssl crypto"
|
2005-04-28 21:52:47 +00:00
|
|
|
;;
|
|
|
|
esac
|
|
|
|
|
2005-08-05 20:43:50 +00:00
|
|
|
dnl m4/boinc_getsockopt.m4
|
|
|
|
BOINC_GETSOCKOPT_TYPE
|
|
|
|
|
2005-08-25 23:07:58 +00:00
|
|
|
dnl ---------- SSL (m4/check_ssl.m4)
|
2005-09-07 18:21:31 +00:00
|
|
|
CHECK_SSL
|
|
|
|
if test "${found_ssl}" = "yes"; then
|
|
|
|
BOINC_EXTRA_LIBS="${BOINC_EXTRA_LIBS} ${SSL_LIBS}"
|
|
|
|
fi
|
2005-08-25 23:07:58 +00:00
|
|
|
|
|
|
|
dnl ---------- libcurl (m4/libcurl.m4) ------------------------------
|
|
|
|
|
|
|
|
if test "${enable_client}" = yes; then
|
|
|
|
LIBCURL_CHECK_CONFIG([yes], [7.13.2], [haveCurl=yes], [haveCurl=no])
|
|
|
|
|
|
|
|
if test "${haveCurl}" != yes; then
|
|
|
|
AC_MSG_ERROR([
|
|
|
|
================================================================================
|
|
|
|
ERROR: could not find (recent enough) development-libs for libcurl.
|
|
|
|
|
|
|
|
This library is required to build the boinc-client.
|
|
|
|
(If you don't want to build the client, use --disable-client with configure.
|
|
|
|
|
|
|
|
If libcurl-dev is installed on your system, make sure that the script
|
|
|
|
'curl-config' is found in your PATH, and that
|
|
|
|
'curl-config --version' gives something recent enough (see above).
|
|
|
|
|
|
|
|
You can download libcurl from: http://curl.haxx.se/
|
|
|
|
|
|
|
|
================================================================================
|
|
|
|
])
|
|
|
|
else
|
2005-09-07 18:21:31 +00:00
|
|
|
## add libcurl et al. to the list of statically linked libs
|
|
|
|
STATIC_LIB_LIST="${STATIC_LIB_LIST} curl idn crypto ssl krb5 k5crypto gssapi_krb5 com_err resolv"
|
|
|
|
CPPFLAGS="${CPPFLAGS} ${LIBCURL_CPPFLAGS}"
|
|
|
|
CURL_LIB_PATHS=`echo $LIBCURL | sed 's/-l[[^ ]]*//g'`
|
|
|
|
LDFLAGS="$CURL_LIB_PATHS $LDFLAGS"
|
|
|
|
|
2005-08-25 23:07:58 +00:00
|
|
|
if test "${enable_debug}" = yes; then
|
|
|
|
echo "LIBCURL = ${LIBCURL}"
|
|
|
|
echo "LIBCURL_CPPFLAGS = ${LIBCURL_CPPFLAGS}"
|
2005-09-07 18:21:31 +00:00
|
|
|
echo "CURL_LIB_PATHS = ${CURL_LIB_PATHS}"
|
|
|
|
echo "LDFLAGS = ${LDFLAGS}"
|
2005-08-25 23:07:58 +00:00
|
|
|
fi
|
|
|
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
fi
|
2005-08-05 20:43:50 +00:00
|
|
|
|
2005-04-28 21:52:47 +00:00
|
|
|
dnl save the libs
|
|
|
|
SAVELIBS_AAF="${LIBS}"
|
|
|
|
SAH_CHECK_LIB([cygipc], [shmget],
|
|
|
|
[BOINC_EXTRA_LIBS="${BOINC_EXTRA_LIBS} ${sah_lib_last}"])
|
|
|
|
SAH_CHECK_LIB([aio], [aio_fork],
|
|
|
|
[BOINC_EXTRA_LIBS="${BOINC_EXTRA_LIBS} ${sah_lib_last}"])
|
|
|
|
SAH_CHECK_LIB([dl], [dlopen],
|
|
|
|
[BOINC_EXTRA_LIBS="${BOINC_EXTRA_LIBS} ${sah_lib_last}"])
|
|
|
|
SAH_CHECK_LIB([nsl], [gethostbyname],
|
|
|
|
[BOINC_EXTRA_LIBS="${BOINC_EXTRA_LIBS} ${sah_lib_last}"])
|
|
|
|
SAH_CHECK_LIB([socket], [bind],
|
|
|
|
[BOINC_EXTRA_LIBS="${BOINC_EXTRA_LIBS} ${sah_lib_last}"])
|
|
|
|
SAH_CHECK_LIB([z], [gzopen],
|
|
|
|
[BOINC_EXTRA_LIBS="${BOINC_EXTRA_LIBS} ${sah_lib_last}"])
|
2005-08-29 01:18:37 +00:00
|
|
|
|
2005-08-25 23:07:58 +00:00
|
|
|
SAH_CHECK_LIB([curl], [curl_easy_init],
|
2005-08-29 01:18:37 +00:00
|
|
|
[BOINC_EXTRA_LIBS="${BOINC_EXTRA_LIBS} ${LIBCURL}"],, [${LIBCURL}])
|
2005-08-25 23:07:58 +00:00
|
|
|
|
2005-04-28 21:52:47 +00:00
|
|
|
LIBS=${SAVELIBS_AAF}
|
2005-01-20 17:04:21 +00:00
|
|
|
|
2003-07-24 23:16:02 +00:00
|
|
|
dnl check for pthread
|
2003-08-13 21:35:26 +00:00
|
|
|
ACX_PTHREAD(AC_DEFINE(HAVE_PTHREAD,1, [Have pthread]))
|
2004-12-04 07:19:09 +00:00
|
|
|
CXXFLAGS="$CXXFLAGS $PTHREAD_CFLAGS"
|
|
|
|
CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
|
|
|
|
LIBS="$PTHREAD_LIBS $LIBS"
|
|
|
|
|
|
|
|
|
|
|
|
dnl ---------- decide wether to build the graphical boinc-api libs or not
|
|
|
|
dnl check for X11
|
|
|
|
AC_PATH_X
|
|
|
|
AC_PATH_XTRA
|
|
|
|
|
2003-07-24 23:16:02 +00:00
|
|
|
dnl check for GL library
|
2004-12-04 07:19:09 +00:00
|
|
|
AX_CHECK_GL
|
|
|
|
AX_CHECK_GLU
|
|
|
|
AX_CHECK_GLUT
|
2004-12-28 15:58:24 +00:00
|
|
|
if test "$no_gl" = yes -o "$no_glu" = yes -o "$no_glut" = yes; then
|
2004-12-04 07:19:09 +00:00
|
|
|
have_glut=no
|
|
|
|
AC_MSG_WARN([
|
|
|
|
================================================================================
|
2004-12-28 15:58:24 +00:00
|
|
|
WARNING: openGL/GLU/glut not found.
|
2004-12-04 07:19:09 +00:00
|
|
|
|
2004-12-28 15:58:24 +00:00
|
|
|
The GL, GLU and glut libraries are required in order to build the graphical parts
|
2004-12-04 07:19:09 +00:00
|
|
|
of the BOINC application API library.
|
|
|
|
|
|
|
|
==> only building non-graphical parts of the BOINC API Library for now.
|
|
|
|
|
2004-12-28 15:58:24 +00:00
|
|
|
NOTE: on MacOS X/Darwin you might consider running configure withe the option
|
|
|
|
'./configure --with-apple-opengl-framework'
|
|
|
|
in order to use the Mac-native openGL framework
|
|
|
|
|
2004-12-04 07:19:09 +00:00
|
|
|
================================================================================
|
|
|
|
])
|
2004-12-17 18:18:45 +00:00
|
|
|
else
|
2004-12-04 07:19:09 +00:00
|
|
|
have_glut=yes
|
2005-08-02 17:15:52 +00:00
|
|
|
echo "DEBUG: GLUT_CFLAGS = $GLUT_CFLAGS" >&5
|
|
|
|
echo "DEBUG: GLUT_LIBS = $GLUT_LIBS" >&5
|
2004-12-28 15:58:24 +00:00
|
|
|
|
|
|
|
AC_CHECK_HEADERS([gl.h glu.h glut.h glaux.h GL/gl.h GL/glu.h GL/glut.h GL/glaux.h OpenGL/gl.h OpenGL/glu.h OpenGL/glut.h OpenGL/glaux.h GLUT/glut.h MesaGL/gl.h MesaGL/glu.h MesaGL/glut.h MesaGL/glaux.h])
|
2004-12-04 07:19:09 +00:00
|
|
|
fi
|
|
|
|
|
|
|
|
AM_CONDITIONAL(BUILD_GRAPHICS_API, [ test "$have_glut" = yes ])
|
2004-12-28 15:58:24 +00:00
|
|
|
|
2004-12-04 07:19:09 +00:00
|
|
|
dnl --------------------------------------------------------------------------------
|
|
|
|
dnl put double-inclusion protection into config.h
|
|
|
|
AH_TOP([
|
|
|
|
/* double-inclusion protection for config.h */
|
|
|
|
#ifndef BOINC_CONFIG_H
|
|
|
|
#define BOINC_CONFIG_H
|
2004-12-07 17:47:23 +00:00
|
|
|
|
|
|
|
/* Version defines are now in version.h */
|
|
|
|
#include "version.h"
|
|
|
|
|
2004-12-04 07:19:09 +00:00
|
|
|
])
|
|
|
|
AH_BOTTOM([
|
2005-02-09 19:39:04 +00:00
|
|
|
/* include fixes for the most common problems */
|
|
|
|
#include "std_fixes.h"
|
|
|
|
|
2004-12-04 07:19:09 +00:00
|
|
|
/* end double-inclusion protection for config.h */
|
|
|
|
#endif /* #ifndef BOINC_CONFIG_H */
|
|
|
|
])
|
2005-01-20 17:04:21 +00:00
|
|
|
dnl ----------------------------------------------------------------------
|
2004-11-23 15:41:16 +00:00
|
|
|
|
2003-07-24 23:16:02 +00:00
|
|
|
dnl Checks for header files.
|
|
|
|
AC_HEADER_DIRENT
|
|
|
|
AC_HEADER_STDC
|
|
|
|
AC_HEADER_SYS_WAIT
|
|
|
|
AC_HEADER_TIME
|
2004-12-04 07:19:09 +00:00
|
|
|
AC_TYPE_SIGNAL
|
2005-05-04 18:49:02 +00:00
|
|
|
AC_CHECK_HEADERS(arpa/inet.h dirent.h fcntl.h malloc.h netdb.h netinet/in.h netinet/tcp.h signal.h strings.h sys/file.h sys/ipc.h sys/mount.h sys/param.h sys/resource.h sys/select.h sys/shm.h sys/socket.h sys/stat.h sys/statvfs.h sys/statfs.h sys/swap.h sys/sysctl.h sys/systeminfo.h sys/time.h sys/types.h sys/utsname.h sys/vmmeter.h sys/wait.h unistd.h utmp.h errno.h procfs.h ieeefp.h)
|
2004-12-04 07:19:09 +00:00
|
|
|
|
|
|
|
AC_LANG_PUSH(C++)
|
2005-02-09 19:39:04 +00:00
|
|
|
SAH_LARGEFILE_BREAKS_CXX
|
2004-12-04 07:19:09 +00:00
|
|
|
SAH_HEADER_STDCXX
|
|
|
|
SAH_CHECK_NAMESPACES
|
|
|
|
AH_TEMPLATE([HAVE_STD_MIN],[Define to 1 if min is in namespace std::])
|
|
|
|
AH_TEMPLATE([HAVE_STD_MAX],[Define to 1 if max is in namespace std::])
|
|
|
|
AH_TEMPLATE([HAVE_STD_LOCALE],[Define to 1 if locale is in namespace std::])
|
|
|
|
AH_TEMPLATE([HAVE_STD_TRANSFORM],[Define to 1 if transform is in namespace std:: ])
|
|
|
|
SAH_FUNCS_IN_NAMESPACE([['min(0,0)'] ['max(0,0)'] ['transform((char *)0,(char *) 0,(char *)0,(int(*)(int))malloc)'] ['locale("")']],std)
|
|
|
|
AC_LANG_POP
|
2005-04-28 21:52:47 +00:00
|
|
|
|
2003-07-24 23:16:02 +00:00
|
|
|
dnl Checks for library functions.
|
|
|
|
AC_PROG_GCC_TRADITIONAL
|
|
|
|
AC_FUNC_VPRINTF
|
2005-08-04 00:12:50 +00:00
|
|
|
AC_CHECK_FUNCS(lockf flock setpriority strlcpy strlcat sigaction getutent setutent)
|
2003-07-24 23:16:02 +00:00
|
|
|
|
|
|
|
dnl Checks for typedefs, structures, and compiler characteristics.
|
|
|
|
AC_C_CONST
|
|
|
|
AC_TYPE_SIZE_T
|
|
|
|
AC_STRUCT_TM
|
2003-08-13 21:35:26 +00:00
|
|
|
AC_STRUCT_TIMEZONE
|
2003-07-24 23:16:02 +00:00
|
|
|
|
2004-12-04 07:19:09 +00:00
|
|
|
dnl utmp file location
|
|
|
|
for f in /etc/utmp /var/adm/utmp /var/run/utmp; do
|
|
|
|
if test -f $f; then
|
|
|
|
utmp_file=$f
|
|
|
|
fi
|
|
|
|
done
|
|
|
|
if test -n "$utmp_file"; then
|
|
|
|
AC_DEFINE_UNQUOTED(UTMP_LOCATION, "$utmp_file", utmp file location)
|
2004-11-19 13:50:51 +00:00
|
|
|
fi
|
|
|
|
|
2004-12-04 07:19:09 +00:00
|
|
|
dnl Checks for device files
|
|
|
|
if test -e "/dev/mouse"; then
|
|
|
|
AC_DEFINE(HAVE__DEV_MOUSE, 1, [Define to 1 if /dev/mouse exists])
|
|
|
|
fi
|
|
|
|
if test -e "/dev/kbd"; then
|
|
|
|
AC_DEFINE(HAVE__DEV_KBD, 1, [Define to 1 if /dev/kbd exists])
|
|
|
|
fi
|
|
|
|
if test -e "/dev/tty1"; then
|
|
|
|
AC_DEFINE(HAVE__DEV_TTY1, 1, [Define to 1 if /dev/tty1 exists])
|
|
|
|
fi
|
|
|
|
|
|
|
|
dnl Check for /proc/self/psinfo (Solaris)
|
|
|
|
if test -e "/proc/self/psinfo"; then
|
|
|
|
AC_DEFINE(HAVE__PROC_SELF_PSINFO, 1, [Define to 1 if /proc/self/psinfo exists])
|
|
|
|
fi
|
|
|
|
|
|
|
|
dnl Check for /proc/self/stat (Linux)
|
|
|
|
if test -e "/proc/self/stat"; then
|
|
|
|
AC_DEFINE(HAVE__PROC_SELF_STAT, 1, [Define to 1 if /proc/self/stat exists])
|
|
|
|
fi
|
|
|
|
|
|
|
|
dnl Check for /proc/meminfo (Linux)
|
|
|
|
if test -e "/proc/meminfo"; then
|
|
|
|
AC_DEFINE(HAVE__PROC_MEMINFO, 1, [Define to 1 if /proc/meminfo exists])
|
|
|
|
fi
|
|
|
|
|
|
|
|
dnl ---------- wxWidgets --------------------------------------------------
|
|
|
|
|
|
|
|
AM_OPTIONS_WXCONFIG
|
|
|
|
|
|
|
|
dnl check for wxWidgets
|
2005-03-09 07:05:47 +00:00
|
|
|
|
2005-05-23 22:01:12 +00:00
|
|
|
if test "${enable_client_release}" = yes ; then
|
|
|
|
if test "${enable_debug}" = yes ; then
|
|
|
|
AM_PATH_WXCONFIG([2.6.0], [wxWin=1], [wxWin=0], --static=yes --unicode=no --debug=yes)
|
|
|
|
else
|
|
|
|
AM_PATH_WXCONFIG([2.6.0], [wxWin=1], [wxWin=0], --static=yes --unicode=no --debug=no)
|
|
|
|
fi
|
2005-03-09 07:05:47 +00:00
|
|
|
else
|
2005-05-23 22:01:12 +00:00
|
|
|
if test "${enable_debug}" = yes ; then
|
|
|
|
AM_PATH_WXCONFIG([2.6.0], [wxWin=1], [wxWin=0], --unicode=no --debug=yes)
|
|
|
|
else
|
|
|
|
AM_PATH_WXCONFIG([2.6.0], [wxWin=1], [wxWin=0], --unicode=no --debug=no)
|
|
|
|
fi
|
2005-03-09 07:05:47 +00:00
|
|
|
fi
|
|
|
|
|
2005-05-23 22:01:12 +00:00
|
|
|
|
2004-12-04 07:19:09 +00:00
|
|
|
if ( test "${enable_client}" = yes ) && ( test "$wxWin" != 1 ); then
|
|
|
|
AC_MSG_WARN([
|
|
|
|
================================================================================
|
|
|
|
WARNING: wxWidgets could not be found ==> building client without clientgui.
|
|
|
|
If you add wxWidgets to your system, then this configure script will also
|
|
|
|
configure your system to build the BOINC graphical client (clientgui).
|
|
|
|
|
|
|
|
If wxWidgets is installed on your system, please check that wx-config is
|
|
|
|
in the path, that the directory where wxWidgets libraries are installed
|
|
|
|
(returned by 'wx-config --libs' command) is in LD_LIBRARY_PATH (or equivalent),
|
2005-05-05 06:33:17 +00:00
|
|
|
and that wxWidgets version is 2.6.0 or above. Currently wxWidgets version
|
|
|
|
2.6.0 (gtk based) is known to work with boinc_gui under Linux. You can
|
2004-12-04 07:19:09 +00:00
|
|
|
use wx-config --version to find what version you have currently installed.
|
|
|
|
|
|
|
|
You can get wxWidgets by following the DOWNLOAD link at:
|
|
|
|
http://www.wxwindows.org/
|
|
|
|
================================================================================
|
|
|
|
])
|
|
|
|
fi
|
|
|
|
|
|
|
|
AM_CONDITIONAL(BUILD_CLIENTGUI, [ test "$wxWin" = 1 -a "${enable_client}" = yes ])
|
|
|
|
|
2005-01-19 15:54:04 +00:00
|
|
|
dnl --------------------------------------------------------------------------------
|
2004-12-04 07:19:09 +00:00
|
|
|
|
2005-04-28 21:52:47 +00:00
|
|
|
dnl Heres another way to set up host-specific stuff
|
2004-12-04 07:19:09 +00:00
|
|
|
AM_CONDITIONAL(OS_DARWIN, [echo $host_os | grep '^darwin' > /dev/null])
|
|
|
|
AM_CONDITIONAL(OS_LINUX, [echo $host_os | grep '^linux' > /dev/null])
|
|
|
|
dnl In case anyone wants to try building the windows code using mingw!
|
|
|
|
AM_CONDITIONAL(OS_WIN32_MINGW, [echo $host_os | grep '^mingw' > /dev/null])
|
|
|
|
|
|
|
|
dnl tell automake about whether to build client and/or server
|
|
|
|
AM_CONDITIONAL(ENABLE_SERVER, [test "${enable_server}" = yes])
|
|
|
|
AM_CONDITIONAL(ENABLE_CLIENT, [test "${enable_client}" = yes])
|
|
|
|
|
2005-01-20 10:21:26 +00:00
|
|
|
|
2005-07-11 10:46:19 +00:00
|
|
|
|
2005-01-20 17:04:21 +00:00
|
|
|
dnl ======================================================================
|
2005-07-11 10:46:19 +00:00
|
|
|
dnl some more vodoo required for building portable client-binary (client, clientgui)
|
2005-01-20 17:04:21 +00:00
|
|
|
dnl ======================================================================
|
2005-01-20 10:21:26 +00:00
|
|
|
|
2005-04-28 21:52:47 +00:00
|
|
|
CLIENTLIBS=
|
|
|
|
if ( test "${disable_static_client}" != yes ) && ( test "${enable_client}" = yes ); then
|
2005-01-20 10:21:26 +00:00
|
|
|
echo "----------"
|
2005-01-27 00:58:16 +00:00
|
|
|
echo "NOTE: Building portable client binaries"
|
2005-01-20 10:21:26 +00:00
|
|
|
echo "----------"
|
|
|
|
fi
|
2005-08-25 23:07:58 +00:00
|
|
|
SAH_CHECK_LIB([c],[atexit], [
|
|
|
|
AC_DEFINE([HAVE_LIBC],[1],[Define to 1 if you have the c library])
|
|
|
|
CLIENTLIBS="${CLIENTLIBS} ${sah_lib_last}"])
|
|
|
|
echo DEBUG: CLIENTLIBS=${CLIENTLIBS} >&5
|
|
|
|
SAH_CHECK_LIB([gcc],[sscanf], [
|
|
|
|
AC_DEFINE([HAVE_LIBGCC],[1],[Define to 1 if you have the gcc library])
|
2005-04-28 21:52:47 +00:00
|
|
|
CLIENTLIBS="${CLIENTLIBS} ${sah_lib_last}"])
|
2005-08-02 17:15:52 +00:00
|
|
|
echo DEBUG: CLIENTLIBS=${CLIENTLIBS} >&5
|
2005-04-28 21:52:47 +00:00
|
|
|
SAH_CHECK_LIB([gcc_eh],[_Unwind_Resume],[
|
|
|
|
AC_DEFINE([HAVE_LIBGCC_EH],[1],[Define to 1 if you have the gcc_eh library])
|
|
|
|
CLIENTLIBS="${CLIENTLIBS} ${sah_lib_last}"])
|
2005-08-02 17:15:52 +00:00
|
|
|
echo DEBUG: CLIENTLIBS=${CLIENTLIBS} >&5
|
2005-08-25 23:07:58 +00:00
|
|
|
SAH_CHECK_LIB([stdc++],[sscanf],[
|
|
|
|
AC_DEFINE([HAVE_LIBSTDC__],[1],[Define to 1 if you have the stdc++ library])
|
2005-04-28 21:52:47 +00:00
|
|
|
CLIENTLIBS="${CLIENTLIBS} ${sah_lib_last}"])
|
2005-08-02 17:15:52 +00:00
|
|
|
echo DEBUG: CLIENTLIBS=${CLIENTLIBS} >&5
|
2005-04-28 21:52:47 +00:00
|
|
|
SAH_CHECK_LIB([m],[sin], [
|
|
|
|
AC_DEFINE([HAVE_LIBM],[1],[Define to 1 if you have the math library])
|
|
|
|
CLIENTLIBS="${CLIENTLIBS} ${sah_lib_last}"])
|
2005-08-02 17:15:52 +00:00
|
|
|
echo DEBUG: CLIENTLIBS=${CLIENTLIBS} >&5
|
2005-04-28 21:52:47 +00:00
|
|
|
SAH_CHECK_LIB([pthread],[pthread_join],[
|
|
|
|
AC_DEFINE([HAVE_LIBPTHREAD],[1],[Define to 1 if you have the pthread library])
|
|
|
|
CLIENTLIBS="${CLIENTLIBS} ${sah_lib_last}"])
|
2005-08-02 17:15:52 +00:00
|
|
|
echo DEBUG: CLIENTLIBS=${CLIENTLIBS} >&5
|
2005-04-28 21:52:47 +00:00
|
|
|
SAH_CHECK_LDFLAG([-nodefaultlibs],[CLIENTLIBS="-nodefaultlibs ${CLIENTLIBS}"])
|
2005-08-02 17:15:52 +00:00
|
|
|
echo DEBUG: CLIENTLIBS=${CLIENTLIBS} >&5
|
2005-04-28 21:52:47 +00:00
|
|
|
|
2005-01-27 00:58:16 +00:00
|
|
|
AC_SUBST(CLIENTLIBS)
|
2005-01-20 10:21:26 +00:00
|
|
|
|
2005-01-20 17:04:21 +00:00
|
|
|
## --------------------
|
|
|
|
## some more tweaking to turn non-standard libs into statically linked ones
|
2005-03-08 05:54:15 +00:00
|
|
|
|
2005-03-08 06:20:48 +00:00
|
|
|
if test "${enable_debug}" = yes; then
|
2005-03-09 07:35:32 +00:00
|
|
|
CLIENTGUIFLAGS="${CLIENTGUIFLAGS} -D_DEBUG -DDEBUG"
|
2005-03-08 05:54:15 +00:00
|
|
|
fi
|
|
|
|
|
2005-01-20 17:04:21 +00:00
|
|
|
CLIENTGUILIBS=${WX_LIBS}
|
|
|
|
|
2005-04-28 21:52:47 +00:00
|
|
|
if test "${enable_client_release}" = "yes" ; then
|
|
|
|
SAH_STATICIZE_LDFLAGS([${WX_LIBS_STATIC}],[CLIENTGUILIBS])
|
|
|
|
SAH_STATICIZE_LDFLAGS([${GLUT_LIBS}],[GLUT_LIBS])
|
|
|
|
SAH_STATICIZE_LDFLAGS([${BOINC_EXTRA_LIBS}],[BOINC_EXTRA_LIBS])
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## NOTE: its *extremely* important to always compile with __NO_CTYPE
|
2005-01-20 18:10:47 +00:00
|
|
|
## defined, because this avoids GLIBC_2.3 symbols being pulled in via ctype.h-macros,
|
|
|
|
CPPFLAGS="$CPPFLAGS -D__NO_CTYPE"
|
2005-01-20 17:04:21 +00:00
|
|
|
fi
|
|
|
|
|
|
|
|
## prepend BOINC_EXTRA_LIBS (mangled or not) to LIBS for standard linking
|
|
|
|
LIBS="${BOINC_EXTRA_LIBS} $LIBS"
|
|
|
|
|
|
|
|
AC_SUBST(CLIENTGUIFLAGS)
|
|
|
|
AC_SUBST(CLIENTGUILIBS)
|
|
|
|
dnl ======================================================================
|
2005-01-20 10:21:26 +00:00
|
|
|
|
2004-12-04 07:19:09 +00:00
|
|
|
AC_CONFIG_FILES([
|
2004-12-07 17:47:23 +00:00
|
|
|
./version.h
|
2003-07-24 23:16:02 +00:00
|
|
|
api/Makefile
|
|
|
|
apps/Makefile
|
2004-12-04 07:19:09 +00:00
|
|
|
clientgui/Makefile
|
2004-11-23 12:54:33 +00:00
|
|
|
client/Makefile
|
2004-12-04 07:19:09 +00:00
|
|
|
client/win/boinc_path_config.py:py/Boinc/boinc_path_config.py.in
|
2003-07-24 23:16:02 +00:00
|
|
|
db/Makefile
|
|
|
|
lib/Makefile
|
2004-12-04 07:19:09 +00:00
|
|
|
Makefile
|
2004-12-04 00:29:22 +00:00
|
|
|
py/Boinc/boinc_path_config.py:py/Boinc/boinc_path_config.py.in
|
2004-12-04 07:19:09 +00:00
|
|
|
py/Boinc/Makefile
|
2004-12-04 00:29:22 +00:00
|
|
|
py/boinc_path_config.py:py/Boinc/boinc_path_config.py.in
|
2004-12-04 07:19:09 +00:00
|
|
|
py/Boinc/version.py
|
|
|
|
py/Makefile
|
2004-12-04 00:29:22 +00:00
|
|
|
sched/boinc_path_config.py:py/Boinc/boinc_path_config.py.in
|
2004-12-04 07:19:09 +00:00
|
|
|
sched/Makefile
|
2005-01-06 11:49:15 +00:00
|
|
|
sea/Makefile
|
2004-12-04 00:29:22 +00:00
|
|
|
test/boinc_path_config.py:py/Boinc/boinc_path_config.py.in
|
2004-12-04 07:19:09 +00:00
|
|
|
test/Makefile
|
|
|
|
test/version.inc
|
|
|
|
tools/boinc_path_config.py:py/Boinc/boinc_path_config.py.in
|
|
|
|
tools/Makefile
|
|
|
|
zip/Makefile
|
|
|
|
zip/zip/Makefile
|
|
|
|
zip/unzip/Makefile
|
|
|
|
m4/Makefile
|
2003-07-24 23:16:02 +00:00
|
|
|
])
|
|
|
|
|
2004-12-04 07:19:09 +00:00
|
|
|
dnl AC_CONFIG_HEADER([config.h])
|
2005-08-04 00:12:50 +00:00
|
|
|
AC_CONFIG_HEADERS([config.h])
|
2003-07-24 23:16:02 +00:00
|
|
|
|
|
|
|
AC_OUTPUT
|
2003-09-04 02:34:18 +00:00
|
|
|
|
2005-03-08 05:54:15 +00:00
|
|
|
echo "--- Configuring BOINC AC_PACKAGE_VERSION (${build_state}) ---"
|
2005-03-08 06:12:02 +00:00
|
|
|
echo "--- Build Components: (${configured_to_build}) ---"
|
2003-09-04 05:07:17 +00:00
|
|
|
|
2003-09-05 22:12:35 +00:00
|
|
|
[
|
2004-12-04 07:19:09 +00:00
|
|
|
true || $TOP_SOURCE_DIR/test/test_sanity.py || (
|
2003-09-05 22:12:34 +00:00
|
|
|
cat <<EOF
|
2003-09-04 05:07:17 +00:00
|
|
|
|
2003-09-05 22:13:25 +00:00
|
|
|
******************************************************************************
|
|
|
|
**
|
|
|
|
** The framework sanity check failed.
|
|
|
|
**
|
|
|
|
** If you only want to compile (and run) the client or compile (and run) the
|
|
|
|
** server, this may be okay.
|
|
|
|
**
|
|
|
|
** If you are developing BOINC and want to run the automated tests, you need a
|
|
|
|
** MySQL server installed and running, with permission to create databases.
|
2003-09-07 04:47:12 +00:00
|
|
|
**
|
|
|
|
** You can run this sanity check using test/test_sanity.py
|
|
|
|
**
|
2003-09-05 22:13:25 +00:00
|
|
|
******************************************************************************
|
2003-09-05 22:12:34 +00:00
|
|
|
|
|
|
|
EOF
|
|
|
|
|
|
|
|
)
|
2004-12-04 07:19:09 +00:00
|
|
|
|
|
|
|
if test "${enable_server}" = yes ; then
|
|
|
|
cat<<EOF
|
|
|
|
|
|
|
|
We recommend you run test/test_sanity.py to make sure your host is configured
|
|
|
|
properly for building the BOINC server.
|
|
|
|
|
|
|
|
EOF
|
|
|
|
fi
|
|
|
|
|
2003-09-05 22:12:34 +00:00
|
|
|
]
|