mirror of
https://github.com/haiwen/seafile.git
synced 2025-01-08 11:57:44 +08:00
465 lines
13 KiB
Plaintext
465 lines
13 KiB
Plaintext
dnl Process this file with autoconf to produce a configure script.
|
|
|
|
|
|
AC_PREREQ(2.61)
|
|
AC_INIT([seafile], [1.4.5], [freeplant@gmail.com])
|
|
AC_CONFIG_HEADER([config.h])
|
|
|
|
AC_CONFIG_MACRO_DIR([m4])
|
|
|
|
AM_INIT_AUTOMAKE([1.9 foreign])
|
|
|
|
AC_MINGW32
|
|
|
|
dnl enable the build of share library by default
|
|
AC_ENABLE_SHARED
|
|
|
|
AC_SUBST(LIBTOOL_DEPS)
|
|
|
|
# Checks for programs.
|
|
AC_PROG_CC
|
|
#AM_C_PROTOTYPES
|
|
AC_C_CONST
|
|
AC_PROG_MAKE_SET
|
|
# AC_PROG_RANLIB
|
|
AC_PROG_LIBTOOL
|
|
|
|
# Checks for headers.
|
|
#AC_CHECK_HEADERS([arpa/inet.h fcntl.h inttypes.h libintl.h limits.h locale.h netdb.h netinet/in.h stdint.h stdlib.h string.h strings.h sys/ioctl.h sys/socket.h sys/time.h termios.h unistd.h utime.h utmp.h])
|
|
|
|
# Checks for typedefs, structures, and compiler characteristics.
|
|
AC_SYS_LARGEFILE
|
|
|
|
# Checks for library functions.
|
|
#AC_CHECK_FUNCS([alarm dup2 ftruncate getcwd gethostbyname gettimeofday memmove memset mkdir rmdir select setlocale socket strcasecmp strchr strdup strrchr strstr strtol uname utime strtok_r sendfile])
|
|
|
|
# check platform
|
|
AC_MSG_CHECKING(for WIN32)
|
|
if test "$MINGW32" = yes; then
|
|
bwin32=true
|
|
AC_MSG_RESULT(compile in mingw32)
|
|
else
|
|
AC_MSG_RESULT(no)
|
|
fi
|
|
|
|
AC_MSG_CHECKING(for Mac)
|
|
if test "$TERM_PROGRAM" = "Apple_Terminal"; then
|
|
bmac=true
|
|
AC_MSG_RESULT(compile in mac)
|
|
else
|
|
AC_MSG_RESULT(no)
|
|
fi
|
|
|
|
AC_MSG_CHECKING(for Linux)
|
|
if test "$bmac" != "true" -a "$bwin32" != "true"; then
|
|
blinux=true
|
|
AC_MSG_RESULT(compile in linux)
|
|
else
|
|
AC_MSG_RESULT(no)
|
|
fi
|
|
|
|
# test which sub-component to compile
|
|
|
|
if test "$bwin32" = true; then
|
|
compile_client=yes
|
|
compile_cli=no
|
|
compile_tools=no
|
|
compile_server=no
|
|
compile_httpserver=no
|
|
fi
|
|
|
|
if test "$bmac" = true; then
|
|
compile_client=yes
|
|
compile_cli=no
|
|
compile_tools=no
|
|
compile_server=no
|
|
compile_httpserver=no
|
|
|
|
AC_ARG_ENABLE(server, AC_HELP_STRING([--enable-server], [enable server]),
|
|
[compile_server=$enableval],[compile_server="no"])
|
|
|
|
AC_ARG_ENABLE(httpserver, AC_HELP_STRING([--enable-httpserver], [enable httpserver]),
|
|
[compile_httpserver=$enableval],[compile_httpserver="no"])
|
|
|
|
fi
|
|
|
|
if test "$blinux" = true; then
|
|
compile_cli=yes
|
|
compile_tools=yes
|
|
|
|
compile_server=no
|
|
compile_httpserver=no
|
|
|
|
|
|
AC_ARG_ENABLE(client, AC_HELP_STRING([--enable-client], [enable server]),
|
|
[compile_client=$enableval],[compile_client="yes"])
|
|
|
|
AC_ARG_ENABLE(server, AC_HELP_STRING([--enable-server], [enable server]),
|
|
[compile_server=$enableval],[compile_server="no"])
|
|
|
|
|
|
AC_ARG_ENABLE(httpserver, AC_HELP_STRING([--enable-httpserver], [enable httpserver]),
|
|
[compile_httpserver=$enableval],[compile_httpserver="no"])
|
|
|
|
# AC_ARG_ENABLE(seablock, AC_HELP_STRING([--enable-seablock],
|
|
# [enable seablock]), [compile_seablock=$enableval],
|
|
# [compile_seablock="no"])
|
|
|
|
AC_ARG_ENABLE(riak, AC_HELP_STRING([--enable-riak], [enable riak backend]),
|
|
[compile_riak=$enableval],[compile_riak="no"])
|
|
|
|
AC_ARG_ENABLE(ceph, AC_HELP_STRING([--enable-ceph], [enable ceph backend]),
|
|
[compile_ceph=$enableval],[compile_ceph="no"])
|
|
|
|
fi
|
|
|
|
AC_ARG_ENABLE(python,
|
|
AC_HELP_STRING([--enable-python],[build ccnet python binding]),
|
|
[compile_python=$enableval],
|
|
[compile_python=yes])
|
|
|
|
|
|
AC_ARG_ENABLE(server-pkg, AC_HELP_STRING([--enable-server-pkg], [enable static compile]),
|
|
[server_pkg=$enableval],[server_pkg="no"])
|
|
|
|
AM_CONDITIONAL([SERVER_ONLY], [test "${server_pkg}" = "yes"])
|
|
|
|
|
|
AC_ARG_ENABLE(static-build, AC_HELP_STRING([--enable-static-build], [enable static compile]),
|
|
[static_comp=$enableval],[static_comp="no"])
|
|
|
|
if test x${static_comp} = xyes; then
|
|
STATIC_COMPILE=-static
|
|
fi
|
|
AC_SUBST(STATIC_COMPILE)
|
|
|
|
|
|
# If we're building server release package, set the run-time path
|
|
# for the executables. So that the loader will lookup shared libs
|
|
# in 'lib' dir of the release package.
|
|
# Read "man ld.so" for description of $ORIGIN.
|
|
# Refer to http://blog.linuxgamepublishing.com/2009/02/08/our-new-way-to-meet-the-lgpl/
|
|
if test x${server_pkg} = xyes; then
|
|
compile_client=no
|
|
compile_cli=yes
|
|
compile_tools=yes
|
|
compile_server=yes
|
|
compile_httpserver=yes
|
|
SERVER_PKG_RPATH=-Wl,-R,\'\$\$ORIGIN/../lib\'
|
|
SERVER_PKG_PY_RPATH=-Wl,-R,\'\$\$ORIGIN/../../..\'
|
|
fi
|
|
AC_SUBST(SERVER_PKG_RPATH)
|
|
AC_SUBST(SERVER_PKG_PY_RPATH)
|
|
|
|
|
|
AM_CONDITIONAL([COMPILE_CLI], [test "${compile_cli}" = "yes"])
|
|
AM_CONDITIONAL([COMPILE_TOOLS], [test "${compile_tools}" = "yes"])
|
|
AM_CONDITIONAL([COMPILE_PYTHON], [test "${compile_python}" = "yes"])
|
|
AM_CONDITIONAL([COMPILE_CLIENT], [test "${compile_client}" = "yes"])
|
|
AM_CONDITIONAL([COMPILE_SERVER], [test "${compile_server}" = "yes"])
|
|
AM_CONDITIONAL([COMPILE_HTTPSERVER], [test "${compile_httpserver}" = "yes"])
|
|
#AM_CONDITIONAL([COMPILE_SEABLOCK], [test "${compile_seablock}" = "yes"])
|
|
AM_CONDITIONAL([COMPILE_RIAK], [test "${compile_riak}" = "yes"])
|
|
AM_CONDITIONAL([COMPILE_CEPH], [test "${compile_ceph}" = "yes"])
|
|
|
|
AM_CONDITIONAL([WIN32], [test "$bwin32" = "true"])
|
|
AM_CONDITIONAL([MACOS], [test "$bmac" = "true"])
|
|
AM_CONDITIONAL([LINUX], [test "$blinux" = "true"])
|
|
|
|
|
|
# check libraries
|
|
if test "$bwin32" != true; then
|
|
AC_CHECK_LIB(uuid, uuid_generate, [echo "found library uuid"],
|
|
dnl - if failed, try uuid_create
|
|
AC_CHECK_LIB(uuid, uuid_create,[echo "found library uuid"] ,
|
|
AC_MSG_ERROR([*** Unable to find uuid library]), )
|
|
, )
|
|
|
|
AC_CHECK_LIB(event, event_init,[echo "found library event"] ,
|
|
AC_MSG_ERROR([*** Unable to find libevent library]), )
|
|
else
|
|
AC_CHECK_LIB(event, event_init, [echo "found library event"],
|
|
AC_MSG_ERROR([*** Unable to find libevent library]), [-lwsock32])
|
|
fi
|
|
|
|
AC_CHECK_LIB(pthread, pthread_create, [echo "found library pthread"], AC_MSG_ERROR([*** Unable to find pthread library]), )
|
|
AC_CHECK_LIB(sqlite3, sqlite3_open,[echo "found library sqlite3"] , AC_MSG_ERROR([*** Unable to find sqlite3 library]), )
|
|
AC_CHECK_LIB(crypto, SHA1_Init, [echo "found library crypto"], AC_MSG_ERROR([*** Unable to find openssl crypto library]), )
|
|
|
|
dnl Do we need to use AX_LIB_SQLITE3 to check sqlite?
|
|
dnl AX_LIB_SQLITE3
|
|
|
|
CONSOLE=
|
|
if test "$bwin32" = "true"; then
|
|
AC_ARG_ENABLE(console, AC_HELP_STRING([--enable-console], [enable console]),
|
|
[console=$enableval],[console="yes"])
|
|
if test x${console} != xyes ; then
|
|
CONSOLE="-Wl,--subsystem,windows -Wl,--entry,_mainCRTStartup"
|
|
fi
|
|
fi
|
|
AC_SUBST(CONSOLE)
|
|
|
|
if test "$bwin32" = true; then
|
|
LIB_WS32=-lws2_32
|
|
LIB_GDI32=-lgdi32
|
|
LIB_RT=
|
|
LIB_INTL=-lintl
|
|
LIBS=
|
|
LIB_RESOLV=
|
|
LIB_UUID=-lRpcrt4
|
|
LIB_IPHLPAPI=-liphlpapi
|
|
LIB_SHELL32=-lshell32
|
|
LIB_PSAPI=-lpsapi
|
|
MSVC_CFLAGS=-D__MSVCRT_VERSION__=0x0601
|
|
elif test "$bmac" = true ; then
|
|
LIB_WS32=
|
|
LIB_GDI32=
|
|
LIB_RT=
|
|
LIB_INTL=
|
|
LIB_RESOLV=-lresolv
|
|
LIB_UUID=-luuid
|
|
LIB_IPHLPAPI=
|
|
LIB_SHELL32=
|
|
LIB_PSAPI=
|
|
MSVC_CFLAGS=
|
|
else
|
|
LIB_WS32=
|
|
LIB_GDI32=
|
|
LIB_RT=
|
|
LIB_INTL=
|
|
LIB_RESOLV=-lresolv
|
|
LIB_UUID=-luuid
|
|
LIB_IPHLPAPI=
|
|
LIB_SHELL32=
|
|
LIB_PSAPI=
|
|
MSVC_CFLAGS=
|
|
fi
|
|
|
|
AC_SUBST(LIB_WS32)
|
|
AC_SUBST(LIB_GDI32)
|
|
AC_SUBST(LIB_RT)
|
|
AC_SUBST(LIB_INTL)
|
|
AC_SUBST(LIB_RESOLV)
|
|
AC_SUBST(LIB_UUID)
|
|
AC_SUBST(LIB_IPHLPAPI)
|
|
AC_SUBST(LIB_SHELL32)
|
|
AC_SUBST(LIB_PSAPI)
|
|
AC_SUBST(MSVC_CFLAGS)
|
|
|
|
|
|
# gtk and glib
|
|
APPINDICATOR_REQUIRED=0.0.7
|
|
GLIB_REQUIRED=2.16.0
|
|
GTK_REQUIRED=2.16.0
|
|
CCNET_REQUIRED=0.9.3
|
|
SEARPC_REQUIRED=1.0
|
|
ZDB_REQUIRED=2.10
|
|
#LIBNAUTILUS_EXTENSION_REQUIRED=2.30.1
|
|
CURL_REQUIRED=7.17
|
|
|
|
PKG_CHECK_MODULES(GLIB2, [glib-2.0 >= $GLIB_REQUIRED])
|
|
AC_SUBST(GLIB2_CFLAGS)
|
|
AC_SUBST(GLIB2_LIBS)
|
|
|
|
PKG_CHECK_MODULES(GOBJECT, [gobject-2.0 >= $GLIB_REQUIRED])
|
|
AC_SUBST(GOBJECT_CFLAGS)
|
|
AC_SUBST(GOBJECT_LIBS)
|
|
|
|
PKG_CHECK_MODULES(CCNET, [libccnet >= $CCNET_REQUIRED])
|
|
AC_SUBST(CCNET_CFLAGS)
|
|
AC_SUBST(CCNET_LIBS)
|
|
|
|
PKG_CHECK_MODULES(SEARPC, [libsearpc >= $SEARPC_REQUIRED])
|
|
AC_SUBST(SEARPC_CFLAGS)
|
|
AC_SUBST(SEARPC_LIBS)
|
|
|
|
AC_ARG_ENABLE(appindicator,
|
|
AC_HELP_STRING([--enable-appindicator[=@<:@no/auto/yes@:>@]],[Build support for application indicators ]),
|
|
[enable_appindicator=$enableval],
|
|
[enable_appindicator="auto"])
|
|
|
|
if test x$enable_appindicator = xyes ; then
|
|
PKG_CHECK_EXISTS([appindicator-0.1 >= $APPINDICATOR_REQUIRED],,
|
|
AC_MSG_ERROR([appindicator-0.1 is not installed]))
|
|
PKG_CHECK_MODULES(APP_INDICATOR,
|
|
appindicator-0.1 >= $APPINDICATOR_REQUIRED)
|
|
AC_SUBST(APP_INDICATOR_CFLAGS)
|
|
AC_SUBST(APP_INDICATOR_LIBS)
|
|
AC_DEFINE(HAVE_APP_INDICATOR, 1, [Have AppIndicator])
|
|
fi
|
|
|
|
AM_CONDITIONAL(HAVE_APP_INDICATOR, [test x"$enable_appindicator" = xyes])
|
|
|
|
if test "$blinux" = true -a x${compile_client} = xyes; then
|
|
dnl on linux, check GTK if client is enabled
|
|
PKG_CHECK_MODULES(GTK, [gtk+-2.0 >= $GTK_REQUIRED])
|
|
AC_SUBST(GTK_CFLAGS)
|
|
AC_SUBST(GTK_LIBS)
|
|
|
|
#if test x$enable_appindicator = xauto ; then
|
|
# PKG_CHECK_EXISTS([appindicator-0.1 >= $APPINDICATOR_REQUIRED],
|
|
# enable_appindicator="yes",
|
|
# enable_appindicator="no")
|
|
#fi
|
|
|
|
# Is libnotify available?
|
|
LIBNOTIFY_REQUIRED=0.4.0
|
|
PKG_CHECK_MODULES(LIBNOTIFY, libnotify >= $LIBNOTIFY_REQUIRED)
|
|
AC_SUBST(LIBNOTIFY_CFLAGS)
|
|
AC_SUBST(LIBNOTIFY_LIBS)
|
|
|
|
# check whether the version of libnotify >= 0.7.0
|
|
PKG_CHECK_MODULES(LIBNOTIFY7, [libnotify >= 0.7.0],
|
|
[AC_DEFINE(LIBNOTIFY_GREAT_THAN_7, 1,[Libnotify > 0.7])],
|
|
[echo "libnotify version is less 0.7.0"]
|
|
)
|
|
|
|
# check libnautilus-extension
|
|
#PKG_CHECK_MODULES(LIBNAUTILUS_EXTENSION, [libnautilus-extension >= $LIBNAUTILUS_EXTENSION_REQUIRED])
|
|
#AC_SUBST(LIBNAUTILUS_EXTENSION_CFLAGS)
|
|
#AC_SUBST(LIBNAUTILUS_EXTENSION_LIBS)
|
|
fi
|
|
|
|
if test x${compile_client} = xyes; then
|
|
|
|
m4_ifdef([IT_PROG_INTLTOOL],
|
|
[IT_PROG_INTLTOOL([0.35.0],[no-xml])],
|
|
[AC_MSG_ERROR("--enable-nls requires intltool to be installed.")])
|
|
AC_CHECK_HEADERS([libintl.h])
|
|
GETTEXT_PACKAGE=seafile
|
|
AC_SUBST(GETTEXT_PACKAGE)
|
|
AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE],["$GETTEXT_PACKAGE"],[Gettext package])
|
|
AM_GLIB_GNU_GETTEXT
|
|
seafilelocaledir='${prefix}/${DATADIRNAME}/locale'
|
|
AC_SUBST(seafilelocaledir)
|
|
AC_SUBST(INTLLIBS)
|
|
fi
|
|
|
|
if test x${compile_python} = xyes; then
|
|
AM_PATH_PYTHON([2.6])
|
|
|
|
if test "$bwin32" = true; then
|
|
# set pyexecdir to somewhere like /c/Python26/Lib/site-packages
|
|
pyexecdir=${PYTHON_DIR}/Lib/site-packages
|
|
pythondir=${pyexecdir}
|
|
pkgpyexecdir=${pyexecdir}/${PACKAGE}
|
|
pkgpythondir=${pythondir}/${PACKAGE}
|
|
|
|
fi # end for bwin32
|
|
|
|
fi
|
|
|
|
|
|
# Check mysql client library and libzdb if compile seafile server
|
|
if test "${compile_server}" = "yes"; then
|
|
PKG_CHECK_MODULES(ZDB, [zdb >= $ZDB_REQUIRED])
|
|
AC_SUBST(ZDB_CFLAGS)
|
|
AC_SUBST(ZDB_LIBS)
|
|
|
|
MYSQL_CFLAGS=$(mysql_config --include)
|
|
MYSQL_LIBS=$(mysql_config --libs_r)
|
|
|
|
# On CentOS, libmysqlclient is in /usr/lib64/mysql/, not /usr/lib, so we
|
|
# need to adjust CPPFLAGS and LDFLAGS before check it
|
|
saved_CPPFLAGS=$CPPFLAGS
|
|
saved_LDFLAGS=$LDFLAGS
|
|
CPPFLAGS="$MYSQL_CFLAGS $CPPFLAGS"
|
|
LDFLAGS="$MYSQL_LIBS $LDFLAGS"
|
|
|
|
AC_CHECK_LIB(mysqlclient, mysql_init, [echo "found library mysqlclient"],
|
|
AC_MSG_ERROR([*** Unable to find mysql client library]), )
|
|
|
|
CPPFLAGS=$saved_CPPFLAGS
|
|
LDFLAGS=$saved_LDFLAGS
|
|
|
|
AC_SUBST(MYSQL_LIBS)
|
|
AC_SUBST(MYSQL_CFLAGS)
|
|
|
|
fi
|
|
|
|
if test x${compile_httpserver} = xyes; then
|
|
dnl check libarchive
|
|
LIBARCHIVE_REQUIRED=2.8.5
|
|
PKG_CHECK_MODULES(LIBARCHIVE, [libarchive >= $LIBARCHIVE_REQUIRED])
|
|
AC_SUBST(LIBARCHIVE_CFLAGS)
|
|
AC_SUBST(LIBARCHIVE_LIBS)
|
|
fi
|
|
|
|
# We use http to communicate with Riak, check for libcurl.
|
|
if test "${compile_riak}" = "yes"; then
|
|
PKG_CHECK_MODULES(CURL, [libcurl >= $CURL_REQUIRED])
|
|
AC_SUBST(CURL_CFLAGS)
|
|
AC_SUBST(CURL_LIBS)
|
|
AC_DEFINE([RIAK_BACKEND], [1], ["define if support Riak backend"])
|
|
fi
|
|
|
|
if test "${compile_ceph}" = "yes"; then
|
|
AC_CHECK_LIB(rados, rados_create, [with_rados=yes],
|
|
AC_MSG_ERROR([*** Unable to find librados]), )
|
|
echo "found rados"
|
|
RADOS_LIBS="-lrados"
|
|
AC_SUBST(RADOS_LIBS)
|
|
AC_DEFINE([HAVE_RADOS], [1], ["define if have rados"])
|
|
fi
|
|
|
|
ac_configure_args="$ac_configure_args -q"
|
|
|
|
AC_CONFIG_FILES(
|
|
seafile-web
|
|
Makefile
|
|
include/Makefile
|
|
data/Makefile
|
|
data/icons/Makefile
|
|
data/icons/16x16/Makefile
|
|
data/icons/22x22/Makefile
|
|
data/icons/24x24/Makefile
|
|
data/icons/32x32/Makefile
|
|
data/icons/48x48/Makefile
|
|
lib/Makefile
|
|
gui/Makefile
|
|
gui/gtk/Makefile
|
|
common/Makefile
|
|
common/cdc/Makefile
|
|
common/index/Makefile
|
|
daemon/Makefile
|
|
server/Makefile
|
|
server/gc/Makefile
|
|
app/Makefile
|
|
python/Makefile
|
|
python/seafile/Makefile
|
|
controller/Makefile
|
|
httpserver/Makefile
|
|
monitor/Makefile
|
|
tools/Makefile
|
|
tests/Makefile
|
|
tests/common-conf.sh
|
|
po/Makefile.in
|
|
doc/Makefile
|
|
)
|
|
|
|
AC_OUTPUT
|
|
|
|
|
|
echo
|
|
echo "The following modules will be built:"
|
|
echo
|
|
if test x${compile_client} = xyes; then
|
|
echo "seafile-applet"
|
|
echo "seaf-daemon"
|
|
fi
|
|
if test x${compile_server} = xyes; then
|
|
echo "seaf-server"
|
|
fi
|
|
|
|
if test x${compile_httpserver} = xyes; then
|
|
echo "httpserver"
|
|
fi
|
|
#if test x${compile_seablock} = xyes; then
|
|
# echo "seablock"
|
|
#fi
|
|
#if test x${compile_cluster} = xyes; then
|
|
# echo "cluster"
|
|
#fi
|
|
|
|
echo
|