summaryrefslogtreecommitdiffstats
path: root/configure.ac
blob: 90ffafb123a89e86124f5800d2a7870d88565b32 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
dnl  Copyright (c) 2016 Red Hat, Inc. <http://www.redhat.com>
dnl  This file is part of gluster-block.
dnl
dnl  This file is licensed to you under your choice of the GNU Lesser
dnl  General Public License, version 3 or any later version (LGPLv3 or
dnl  later), or the GNU General Public License, version 2 (GPLv2), in all
dnl  cases as published by the Free Software Foundation.


AC_PREREQ([2.69])
AC_INIT([gluster-block],
        m4_esyscmd(echo -n `git describe --always --tags`),
        [pkalever@redhat.com],,
        [https://github.com/pkalever/gluster-block.git])

AC_SUBST([PACKAGE_RELEASE], 1)

AC_ARG_WITH(systemddir,
            [--with-systemddir=DIR systemd service files in DIR @<:@PREFIX/lib/systemd/system@:>@],
            [systemddir=$withval],
            [systemddir='${prefix}/lib/systemd/system'])
AC_SUBST(systemddir)
AM_CONDITIONAL([USE_SYSTEMD], test [ -d '/usr/lib/systemd/system' ])

AM_INIT_AUTOMAKE([-Wall -Werror foreign nostdinc silent-rules])
AC_CONFIG_HEADERS([config.h])
AC_CONFIG_FILES([gluster-block.spec
                 Makefile
                 rpc/Makefile
                 cli/Makefile
                 daemon/Makefile
                 utils/Makefile
                 systemd/Makefile
                 systemd/gluster-blockd.service])
AC_CONFIG_MACRO_DIR([m4])
m4_ifdef([AM_PROG_AR], [AM_PROG_AR])

AM_MAINTAINER_MODE

# Configure libtool
LT_INIT

# Checks for programs.
AC_PROG_CC

# Checks for header files.
AC_CHECK_HEADERS([stdio.h stdlib.h string.h stdbool.h stddef.h \
                  unistd.h errno.h memory.h time.h             \
                  netdb.h netinet/in.h sys/socket.h            \
                  pthread.h uuid/uuid.h glusterfs/api/glfs.h   \
                  rpc/pmap_clnt.h ])

# Checks for libraries.
AC_CHECK_LIB([gfapi], [glfs_init], [GFAPI="-lgfapi"],
             AC_MSG_ERROR([gfapi library is required to build gluster-block]))
AC_SUBST(GFAPI)
AC_CHECK_LIB([uuid], [uuid_generate], [UUID="-luuid"],
             AC_MSG_ERROR([uuid library is required to build gluster-block]))
AC_SUBST(UUID)
AC_CHECK_LIB([pthread], [pthread_mutex_init],[PTHREAD="-lpthread"],
             AC_MSG_ERROR([Posix threads library is required to build gluster-block]))
AC_SUBST(PTHREAD)

AC_CHECK_PROG(TCMURUNNER, tcmu-runner, yes, no)
if test "x$TCMURUNNER" = "xno"; then
  AC_MSG_ERROR([tcmu-runner not found; try again after installing])
fi

# FIXME: version check, need atleast 'targetcli-2.1.fb43'
AC_CHECK_PROG(TARGETCLI, targetcli, yes, no)
if test "x$TARGETCLI" = "xno"; then
  AC_MSG_ERROR([targetcli not found; try again after installing])
fi

# Dirty hacky stuff to make STATEDIR work
if test "x$prefix" = xNONE; then
   test $localstatedir = '${prefix}/var' && localstatedir=$ac_default_prefix/var
   localstatedir=/var
fi

# Checks for typedefs, structures, and compiler characteristics.
AC_CHECK_HEADER_STDBOOL
AC_TYPE_SIZE_T
AC_TYPE_SSIZE_T

# Checks for library functions.
AC_FUNC_STRTOD
AC_CHECK_FUNCS([gethostbyname memset socket strchr strdup strerror])
AC_OUTPUT

cat <<EOF

------------------ Summary ------------------
 $PACKAGE_NAME version $PACKAGE_VERSION
  Prefix.........: $prefix
  C Compiler.....: $CC $CFLAGS $CPPFLAGS
  Linker.........: $LD $LDFLAGS $LIBS
---------------------------------------------

Check the above options and compile with:
 ${MAKE-make}

EOF