AC_PROG_RANLIB
AC_PROG_MAKE_SET
-# swig
-AX_WITH_PERL
-CEPH_CHECK_SWIG
-SWIG_ENABLE_CXX
-
-
# Checks for libraries.
AC_CHECK_LIB([m], [pow])
AC_CHECK_LIB([pthread], [pthread_create])
+# debug crap?
+AC_ARG_WITH([debug],
+ [AS_HELP_STRING([--with-debug], [build extra debug binaries])],
+ [],
+ [want_debug=yes])
+AM_CONDITIONAL(WITH_DEBUG, [test "$want_debug" = "yes"])
+
# fuse?
AC_ARG_WITH([fuse],
[AS_HELP_STRING([--with-fuse], [use FUSE library for client])],
+++ /dev/null
-##### http://autoconf-archive.cryp.to/ac_pkg_swig.html
-#
-# SYNOPSIS
-#
-# AC_PROG_SWIG([major.minor.micro])
-#
-# DESCRIPTION
-#
-# This macro searches for a SWIG installation on your system. If
-# found you should call SWIG via $(SWIG). You can use the optional
-# first argument to check if the version of the available SWIG is
-# greater than or equal to the value of the argument. It should have
-# the format: N[.N[.N]] (N is a number between 0 and 999. Only the
-# first N is mandatory.)
-#
-# If the version argument is given (e.g. 1.3.17), AC_PROG_SWIG checks
-# that the swig package is this version number or higher.
-#
-# In configure.in, use as:
-#
-# AC_PROG_SWIG(1.3.17)
-# SWIG_ENABLE_CXX
-# SWIG_MULTI_MODULE_SUPPORT
-# SWIG_PYTHON
-#
-# LAST MODIFICATION
-#
-# 2006-10-22
-#
-# COPYLEFT
-#
-# Copyright (c) 2006 Sebastian Huber <sebastian-huber@web.de>
-# Copyright (c) 2006 Alan W. Irwin <irwin@beluga.phys.uvic.ca>
-# Copyright (c) 2006 Rafael Laboissiere <rafael@laboissiere.net>
-# Copyright (c) 2006 Andrew Collier <colliera@ukzn.ac.za>
-#
-# This program is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License as
-# published by the Free Software Foundation; either version 2 of the
-# License, or (at your option) any later version.
-#
-# This program 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
-# General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
-#
-# As a special exception, the respective Autoconf Macro's copyright
-# owner gives unlimited permission to copy, distribute and modify the
-# configure scripts that are the output of Autoconf when processing
-# the Macro. You need not follow the terms of the GNU General Public
-# License when using or distributing such scripts, even though
-# portions of the text of the Macro appear in them. The GNU General
-# Public License (GPL) does govern all other use of the material that
-# constitutes the Autoconf Macro.
-#
-# This special exception to the GPL applies to versions of the
-# Autoconf Macro released by the Autoconf Macro Archive. When you
-# make and distribute a modified version of the Autoconf Macro, you
-# may extend this special exception to the GPL to apply to your
-# modified version as well.
-
-AC_DEFUN([AC_PROG_SWIG],[
- AC_PATH_PROG([SWIG],[swig])
- if test -z "$SWIG" ; then
- AC_MSG_WARN([cannot find 'swig' program. You should look at http://www.swig.org])
- SWIG='echo "Error: SWIG is not installed. You should look at http://www.swig.org" ; false'
- elif test -n "$1" ; then
- AC_MSG_CHECKING([for SWIG version])
- [swig_version=`$SWIG -version 2>&1 | grep 'SWIG Version' | sed 's/.*\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\).*/\1/g'`]
- AC_MSG_RESULT([$swig_version])
- if test -n "$swig_version" ; then
- # Calculate the required version number components
- [required=$1]
- [required_major=`echo $required | sed 's/[^0-9].*//'`]
- if test -z "$required_major" ; then
- [required_major=0]
- fi
- [required=`echo $required | sed 's/[0-9]*[^0-9]//'`]
- [required_minor=`echo $required | sed 's/[^0-9].*//'`]
- if test -z "$required_minor" ; then
- [required_minor=0]
- fi
- [required=`echo $required | sed 's/[0-9]*[^0-9]//'`]
- [required_patch=`echo $required | sed 's/[^0-9].*//'`]
- if test -z "$required_patch" ; then
- [required_patch=0]
- fi
- # Calculate the available version number components
- [available=$swig_version]
- [available_major=`echo $available | sed 's/[^0-9].*//'`]
- if test -z "$available_major" ; then
- [available_major=0]
- fi
- [available=`echo $available | sed 's/[0-9]*[^0-9]//'`]
- [available_minor=`echo $available | sed 's/[^0-9].*//'`]
- if test -z "$available_minor" ; then
- [available_minor=0]
- fi
- [available=`echo $available | sed 's/[0-9]*[^0-9]//'`]
- [available_patch=`echo $available | sed 's/[^0-9].*//'`]
- if test -z "$available_patch" ; then
- [available_patch=0]
- fi
- if test $available_major -ne $required_major \
- -o $available_minor -ne $required_minor \
- -o $available_patch -lt $required_patch ; then
- AC_MSG_WARN([SWIG version >= $1 is required. You have $swig_version. You should look at http://www.swig.org])
- SWIG='echo "Error: SWIG version >= $1 is required. You have '"$swig_version"'. You should look at http://www.swig.org" ; false'
- else
- AC_MSG_NOTICE([SWIG executable is '$SWIG'])
- SWIG_LIB=`$SWIG -swiglib`
- AC_MSG_NOTICE([SWIG library directory is '$SWIG_LIB'])
- fi
- else
- AC_MSG_WARN([cannot determine SWIG version])
- SWIG='echo "Error: Cannot determine SWIG version. You should look at http://www.swig.org" ; false'
- fi
- fi
- AC_SUBST([SWIG_LIB])
-])
+++ /dev/null
-##### http://autoconf-archive.cryp.to/ax_with_perl.html
-#
-# SYNOPSIS
-#
-# AX_WITH_PERL([VALUE-IF-NOT-FOUND],[PATH])
-#
-# DESCRIPTION
-#
-# Locates an installed Perl binary, placing the result in the
-# precious variable $PERL. Accepts a present $PERL, then --with-perl,
-# and failing that searches for perl in the given path (which
-# defaults to the system path). If perl is found, $PERL is set to the
-# full path of the binary; if it is not found, $PERL is set to
-# VALUE-IF-NOT-FOUND, which defaults to 'perl'.
-#
-# LAST MODIFICATION
-#
-# 2008-01-29
-#
-# COPYLEFT
-#
-# Copyright (c) 2008 Francesco Salvestrini <salvestrini@users.sourceforge.net>
-#
-# Copying and distribution of this file, with or without
-# modification, are permitted in any medium without royalty provided
-# the copyright notice and this notice are preserved.
-
-AC_DEFUN([AX_WITH_PERL],[
- AX_WITH_PROG(PERL,perl)
-])
+++ /dev/null
-##### http://autoconf-archive.cryp.to/ax_with_prog.html
-#
-# SYNOPSIS
-#
-# AX_PROG_WITH([VARIABLE],[program],[PATH],[VALUE-IF-NOT-FOUND])
-#
-# DESCRIPTION
-#
-# Locates an installed program binary, placing the result in the
-# precious variable VARIABLE. Accepts a present VARIABLE, then
-# --with-program, and failing that searches for program in the given
-# path (which defaults to the system path). If program is found,
-# VARIABLE is set to the full path of the binary; if it is not found,
-# VARIABLE is set to VALUE-IF-NOT-FOUND, which defaults to 'program'.
-#
-# A typical example could be the following one:
-#
-# AX_WITH_PROG(PERL,perl)
-#
-# NOTE: This macro is based upon the original AX_WITH_PYTHON macro
-# from Dustin J. Mitchell <dustin@cs.uchicago.edu>.
-#
-# LAST MODIFICATION
-#
-# 2008-01-29
-#
-# COPYLEFT
-#
-# Copyright (c) 2008 Francesco Salvestrini <salvestrini@users.sourceforge.net>
-# Copyright (c) 2008 Dustin J. Mitchell <dustin@cs.uchicago.edu>
-#
-# Copying and distribution of this file, with or without
-# modification, are permitted in any medium without royalty provided
-# the copyright notice and this notice are preserved.
-
-AC_DEFUN([AX_WITH_PROG],[
- AC_PREREQ([2.59])
-
- pushdef([VARIABLE],$1)
- pushdef([EXECUTABLE],$2)
- pushdef([PATH_PROG],$3)
- pushdef([VALUE_IF_NOT_FOUND],$4)
-
- AC_ARG_VAR(VARIABLE,Absolute path to EXECUTABLE executable)
-
- AS_IF(test -z "$VARIABLE",[
- AC_MSG_CHECKING(whether EXECUTABLE executable path has been provided)
- AC_ARG_WITH(EXECUTABLE,AS_HELP_STRING([--with-EXECUTABLE=[[[[PATH]]]]],absolute path to EXECUTABLE executable), [
- AS_IF([test "$withval" != "yes"],[
- VARIABLE="$withval"
- AC_MSG_RESULT($VARIABLE)
- ],[
- VARIABLE=""
- AC_MSG_RESULT([no])
- ])
- ],[
- AC_MSG_RESULT([no])
- ])
-
- AS_IF(test -z "$VARIABLE",[
- AC_PATH_PROG([]VARIABLE[],[]EXECUTABLE[],[]VALUE_IF_NOT_FOUND[],[]PATH_PROG[])
- ])
- ])
-
- popdef([VALUE_IF_NOT_FOUND])
- popdef([PATH_PROG])
- popdef([EXECUTABLE])
- popdef([VARIABLE])
-])
+++ /dev/null
-dnl check to see if SWIG is current enough.
-dnl
-dnl if it is, then check to see if we have the correct version of python.
-dnl
-dnl if we do, then set up the appropriate SWIG_ variables to build the
-dnl python bindings.
-
-AC_DEFUN([CEPH_CHECK_SWIG],
-[
- AC_ARG_WITH(swig,
- AS_HELP_STRING([--with-swig=PATH],
- [Try to use 'PATH/bin/swig' to build the
- swig bindings. If PATH is not specified,
- look for a 'swig' binary in your PATH.]),
- [
- case "$withval" in
- "no")
- SWIG_SUITABLE=no
- CEPH_FIND_SWIG(no)
- ;;
- "yes")
- CEPH_FIND_SWIG(check)
- ;;
- *)
- CEPH_FIND_SWIG($withval)
- ;;
- esac
- ],
- [
- CEPH_FIND_SWIG(check)
- ])
-])
-
-AC_DEFUN([CEPH_FIND_SWIG],
-[
- where=$1
-
- if test $where = no; then
- AC_PATH_PROG(SWIG, none, none)
- elif test $where = check; then
- AC_PATH_PROG(SWIG, swig, none)
- else
- if test -f "$where"; then
- SWIG="$where"
- else
- SWIG="$where/bin/swig"
- fi
- if test ! -f "$SWIG" || test ! -x "$SWIG"; then
- AC_MSG_ERROR([Could not find swig binary at $SWIG])
- fi
- fi
-
- if test "$SWIG" != "none"; then
- AC_MSG_CHECKING([swig version])
- SWIG_VERSION_RAW="`$SWIG -version 2>&1 | \
- sed -ne 's/^.*Version \(.*\)$/\1/p'`"
- # We want the version as an integer so we can test against
- # which version we're using. SWIG doesn't provide this
- # to us so we have to come up with it on our own.
- # The major is passed straight through,
- # the minor is zero padded to two places,
- # and the patch level is zero padded to three places.
- # e.g. 1.3.24 becomes 103024
- SWIG_VERSION="`echo \"$SWIG_VERSION_RAW\" | \
- sed -e 's/[[^0-9\.]].*$//' \
- -e 's/\.\([[0-9]]\)$/.0\1/' \
- -e 's/\.\([[0-9]][[0-9]]\)$/.0\1/' \
- -e 's/\.\([[0-9]]\)\./0\1/; s/\.//g;'`"
- AC_MSG_RESULT([$SWIG_VERSION_RAW])
- # If you change the required swig version number, don't forget to update:
- # subversion/bindings/swig/INSTALL
- # packages/rpm/redhat-8+/subversion.spec
- # packages/rpm/redhat-7.x/subversion.spec
- # packages/rpm/rhel-3/subversion.spec
- # packages/rpm/rhel-4/subversion.spec
- SWIG_SUITABLE=yes
- fi
-
- if test "$PERL" != "none"; then
- AC_MSG_CHECKING([perl version])
- dnl Note that the q() bit is there to avoid unbalanced brackets
- dnl which m4 really doesn't like.
- PERL_VERSION="`$PERL -e 'q([[); print $]] * 1000000,$/;'`"
- AC_MSG_RESULT([$PERL_VERSION])
- if test "$PERL_VERSION" -ge "5008000"; then
- SWIG_PL_INCLUDES="\$(SWIG_INCLUDES) `$PERL -MExtUtils::Embed -e ccopts`"
- else
- AC_MSG_WARN([perl bindings require perl 5.8.0 or newer.])
- fi
- fi
-
-
- AC_SUBST(SWIG)
- AC_SUBST(SWIG_PL_INCLUDES)
-])
+++ /dev/null
-##### http://autoconf-archive.cryp.to/swig_enable_cxx.html
-#
-# SYNOPSIS
-#
-# SWIG_ENABLE_CXX
-#
-# DESCRIPTION
-#
-# Enable SWIG C++ support. This affects all invocations of $(SWIG).
-#
-# LAST MODIFICATION
-#
-# 2006-10-22
-#
-# COPYLEFT
-#
-# Copyright (c) 2006 Sebastian Huber <sebastian-huber@web.de>
-# Copyright (c) 2006 Alan W. Irwin <irwin@beluga.phys.uvic.ca>
-# Copyright (c) 2006 Rafael Laboissiere <rafael@laboissiere.net>
-# Copyright (c) 2006 Andrew Collier <colliera@ukzn.ac.za>
-#
-# This program is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License as
-# published by the Free Software Foundation; either version 2 of the
-# License, or (at your option) any later version.
-#
-# This program 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
-# General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
-#
-# As a special exception, the respective Autoconf Macro's copyright
-# owner gives unlimited permission to copy, distribute and modify the
-# configure scripts that are the output of Autoconf when processing
-# the Macro. You need not follow the terms of the GNU General Public
-# License when using or distributing such scripts, even though
-# portions of the text of the Macro appear in them. The GNU General
-# Public License (GPL) does govern all other use of the material that
-# constitutes the Autoconf Macro.
-#
-# This special exception to the GPL applies to versions of the
-# Autoconf Macro released by the Autoconf Macro Archive. When you
-# make and distribute a modified version of the Autoconf Macro, you
-# may extend this special exception to the GPL to apply to your
-# modified version as well.
-
-AC_DEFUN([SWIG_ENABLE_CXX],[
- AC_REQUIRE([AC_PROG_SWIG])
- AC_REQUIRE([AC_PROG_CXX])
- SWIG="$SWIG -c++"
-])
# monitor
cmon_SOURCES = cmon.cc msg/SimpleMessenger.cc
cmon_LDADD = libmon.a libcrush.a libcommon.a
+
+# admin tools
cmonctl_SOURCES = cmonctl.cc msg/SimpleMessenger.cc
cmonctl_LDADD = libcommon.a
-
-# tools
mkmonfs_SOURCES = mkmonfs.cc
mkmonfs_LDADD = libmon.a libcommon.a libcrush.a
monmaptool_SOURCES = monmaptool.cc
osdmaptool_SOURCES = osdmaptool.cc
osdmaptool_LDADD = libmon.a libcommon.a libcrush.a
-psim_SOURCES = psim.cc
-psim_LDADD = libcommon.a libcrush.a
-
-test_ebofs_SOURCES = ebofs/test.ebofs.cc
-test_ebofs_LDADD = libebofs.a libcommon.a libos.a
-mkfs_ebofs_SOURCES = ebofs/mkfs.ebofs.cc
-mkfs_ebofs_LDADD = libebofs.a libcommon.a libos.a
-
# mds
cmds_SOURCES = cmds.cc msg/SimpleMessenger.cc
cmds_LDADD = libmds.a libosdc.a libcrush.a libcommon.a
csyn_SOURCES = csyn.cc msg/SimpleMessenger.cc
csyn_LDADD = libclient.a libosdc.a libcrush.a libcommon.a
-# fuse client
-if WITH_FUSE
-FUSEBIN = cfuse fakefuse
-else
-FUSEBIN =
-endif
+bin_PROGRAMS = \
+ cmon cmds cosd csyn \
+ cmonctl \
+ mkmonfs monmaptool osdmaptool crushtool \
+ streamtest dupstore dumpjournal
+
+# fuse targets?
+if WITH_FUSE
cfuse_SOURCES = cfuse.cc msg/SimpleMessenger.cc client/fuse.cc client/fuse_ll.cc
cfuse_LDADD = -lfuse libclient.a libosdc.a libcrush.a libcommon.a
+bin_PROGRAMS += cfuse
+
+if WITH_DEBUG
fakefuse_SOURCES = fakefuse.cc msg/FakeMessenger.cc client/fuse.cc client/fuse_ll.cc
fakefuse_LDADD = -lfuse libmon.a libmds.a libosd.a libos.a libebofs.a \
libclient.a libosdc.a libcrush.a libcommon.a
+bin_PROGRAMS += fakefuse
+endif
+
+endif
+
+# debug targets?
+if WITH_DEBUG
+psim_SOURCES = psim.cc
+psim_LDADD = libcommon.a libcrush.a
+
+test_ebofs_SOURCES = ebofs/test.ebofs.cc
+test_ebofs_LDADD = libebofs.a libcommon.a libos.a
+mkfs_ebofs_SOURCES = ebofs/mkfs.ebofs.cc
+mkfs_ebofs_LDADD = libebofs.a libcommon.a libos.a
-# debug targets
fakesyn_SOURCES = fakesyn.cc msg/FakeMessenger.cc
fakesyn_LDADD = libmon.a libmds.a libosd.a libos.a libebofs.a \
libclient.a libosdc.a libcrush.a libcommon.a
-#newsyn_SOURCES = newsyn.cc msg/SimpleMessenger.cc
-#newsyn_LDADD = libmon.a libmds.a libosd.a libebofs.a \
-# libclient.a libosdc.a libcrush.a libcommon.a
+bin_PROGRAMS += psim test.ebofs mkfs.ebofs fakesyn
+endif
+
## libcrush.so
libcrush_so_a_SOURCES = \
#BUILT_SOURCES = libcrush.so
# crushwrapper
-SWIG_FILES = crush/CrushWrapper.i crush/CrushWrapper.h
-crush/CrushWrapper_wrap.cxx: ${SWIG_FILES}
- ${SWIG} -perl5 -c++ -shadow -outdir . $<
-
-libCrushWrapper.so: crush/CrushWrapper_wrap.cxx libcrush_so.a
- ${CXX} ${CXXFLAGS} ${SWIG_PL_INCLUDES} -I. -shared -fPIC $^ config.cc -o $@
-
+#SWIG_FILES = crush/CrushWrapper.i crush/CrushWrapper.h
+#crush/CrushWrapper_wrap.cxx: ${SWIG_FILES}
+# ${SWIG} -perl5 -c++ -shadow -outdir . $<
+#
+#libCrushWrapper.so: crush/CrushWrapper_wrap.cxx libcrush_so.a
+# ${CXX} ${CXXFLAGS} ${SWIG_PL_INCLUDES} -I. -shared -fPIC $^ config.cc -o $@
#BUILT_SOURCES = libCrushWrapper.so
## libcephclient.so
-libcephclient_so_a_SOURCES = \
- client/Client.cc \
- client/SyntheticClient.cc \
- client/Trace.cc \
- msg/Message.cc \
- common/Logger.cc \
- common/Clock.cc \
- common/Timer.cc \
- common/Finisher.cc \
- mon/MonMap.cc \
- mon/MonClient.cc \
- osd/OSDMap.cc \
- config.cc \
- osdc/Objecter.cc \
- osdc/ObjectCacher.cc \
- osdc/Filer.cc \
- osdc/Journaler.cc
-libcephclient_so_a_CXXFLAGS = ${AM_CXXFLAGS} -fPIC
-libcephclient_so_a_CFLAGS = ${AM_CFLAGS} -fPIC
+#libcephclient_so_a_SOURCES = \
+# client/Client.cc \
+# client/SyntheticClient.cc \
+# client/Trace.cc \
+# msg/Message.cc \
+# common/Logger.cc \
+# common/Clock.cc \
+# common/Timer.cc \
+# common/Finisher.cc \
+# mon/MonMap.cc \
+# mon/MonClient.cc \
+# osd/OSDMap.cc \
+# config.cc \
+# osdc/Objecter.cc \
+# osdc/ObjectCacher.cc \
+# osdc/Filer.cc \
+# osdc/Journaler.cc
+#libcephclient_so_a_CXXFLAGS = ${AM_CXXFLAGS} -fPIC
+#libcephclient_so_a_CFLAGS = ${AM_CFLAGS} -fPIC
#BUILT_SOURCES += libcephclient_so.a
AM_CFLAGS = -Wall -D_FILE_OFFSET_BITS=64 -D_REENTRANT -D_THREAD_SAFE
AM_LDFLAGS =
-bin_PROGRAMS = \
- cmon cmds cosd csyn \
- cmonctl \
- mkmonfs monmaptool osdmaptool crushtool \
- fakesyn \
- streamtest dupstore psim dumpjournal \
- test.ebofs mkfs.ebofs \
- $(FUSEBIN) $(NEWSYN)
noinst_LIBRARIES = \
libcommon.a libcrush.a \
libmon.a libmds.a libosdc.a libosd.a libclient.a \
# cleaning
clean-local:
- -rm crush/*.cxx
-rm *.so
- -rm CrushWrapper.pm
+# -rm crush/*.cxx
+# -rm CrushWrapper.pm
# libs
libcommon_a_SOURCES = \