summaryrefslogtreecommitdiff
path: root/m4/package_xfslibs.m4
blob: 1549360df60f0465c3896fbbf61b7a56f8bf3dac (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
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
AC_DEFUN([AC_PACKAGE_NEED_XFS_XFS_H],
  [ AC_CHECK_HEADERS([xfs/xfs.h],,,[
      #define _GNU_SOURCE
      #define _FILE_OFFSET_BITS 64
    ])
    if test "$ac_cv_header_xfs_xfs_h" != "yes"; then
        echo
        echo 'FATAL ERROR: cannot find a valid <xfs/xfs.h> header file.'
        echo 'Run "make install-dev" from the xfsprogs source.'
        exit 1
    fi
  ])

AC_DEFUN([AC_PACKAGE_WANT_LIBXFS_H],
  [ AC_CHECK_HEADERS([xfs/libxfs.h], [ have_libxfs=true ],
    [ have_libxfs=false ], [#define _GNU_SOURCE])
    AC_SUBST(have_libxfs)
  ])

AC_DEFUN([AC_PACKAGE_WANT_XLOG_ASSIGN_LSN],
  [ AC_CHECK_DECL(xlog_assign_lsn,
      [ have_xlog_assign_lsn=true ], [ have_xlog_assign_lsn=false ], [[
#define _GNU_SOURCE
#include <xfs/libxfs.h>]])
    AC_SUBST(have_xlog_assign_lsn)
  ])

AC_DEFUN([AC_PACKAGE_NEED_XFS_XQM_H],
  [ AC_CHECK_HEADERS([xfs/xqm.h],,,[
        #define _GNU_SOURCE
        #define _FILE_OFFSET_BITS 64
    ])
    if test "$ac_cv_header_xfs_xqm_h" != "yes"; then
        echo
        echo 'FATAL ERROR: cannot find a valid <xfs/xqm.h> header file.'
        echo 'Install or upgrade the XFS development package.'
        echo 'Alternatively, run "make install-dev" from the xfsprogs source.'
        exit 1
    fi
  ])

AC_DEFUN([AC_PACKAGE_NEED_XFS_HANDLE_H],
  [ AC_CHECK_HEADERS([xfs/handle.h])
    if test "$ac_cv_header_xfs_handle_h" != "yes"; then
        echo
        echo 'FATAL ERROR: cannot find a valid <xfs/handle.h> header file.'
        echo 'Install or upgrade the XFS development package.'
        echo 'Alternatively, run "make install-dev" from the xfsprogs source.'
        exit 1
    fi
  ])

AC_DEFUN([AC_PACKAGE_NEED_LIBXFSINIT_LIBXFS],
  [ AC_CHECK_LIB(xfs, libxfs_init,, [
        echo
        echo 'FATAL ERROR: could not find a valid XFS base library.'
        echo 'Install or upgrade the XFS library package.'
        echo 'Alternatively, run "make install-dev" from the xfsprogs source.'
        exit 1
    ])
    libxfs="-lxfs"
    test -f ${libexecdir}${libdirsuffix}/libxfs.la && \
	libxfs="${libexecdir}${libdirsuffix}/libxfs.la"
    AC_SUBST(libxfs)
  ])

AC_DEFUN([AC_PACKAGE_NEED_OPEN_BY_FSHANDLE],
  [ AC_CHECK_LIB(handle, open_by_fshandle,, [
        echo
        echo 'FATAL ERROR: could not find a current XFS handle library.'
        echo 'Install or upgrade the XFS library package.'
        echo 'Alternatively, run "make install-dev" from the xfsprogs source.'
        exit 1
    ])
    libhdl="-lhandle"
    test -f ${libexecdir}${libdirsuffix}/libhandle.la && \
	libhdl="${libexecdir}${libdirsuffix}/libhandle.la"
    AC_SUBST(libhdl)
  ])

AC_DEFUN([AC_PACKAGE_NEED_ATTRLIST_LIBHANDLE],
  [ AC_CHECK_LIB(handle, attr_list_by_handle,, [
        echo
        echo 'FATAL ERROR: could not find a current XFS handle library.'
        echo 'Install or upgrade the XFS library package.'
        echo 'Alternatively, run "make install-lib" from the xfsprogs source.'
        exit 1
    ])
    libhdl="-lhandle"
    test -f ${libexecdir}${libdirsuffix}/libhandle.la && \
	libhdl="${libexecdir}${libdirsuffix}/libhandle.la"
    AC_SUBST(libhdl)
  ])

AC_DEFUN([AC_PACKAGE_NEED_XFSCTL_MACRO],
  [ AC_MSG_CHECKING([xfsctl from xfs/xfs.h])
    AC_LINK_IFELSE([AC_LANG_PROGRAM([[
#define _GNU_SOURCE
#define _FILE_OFFSET_BITS 64
#include <xfs/xfs.h> ]], [[ int x = xfsctl(0, 0, 0, 0); ]])],[ echo ok ],[ echo
        echo 'FATAL ERROR: cannot find required macros in the XFS headers.'
        echo 'Upgrade your XFS programs (xfsprogs) development package.'
        echo 'Alternatively, run "make install-dev" from the xfsprogs source.'
        exit 1
      ])
  ])

# Check if we have BMV_OF_SHARED from the GETBMAPX ioctl
AC_DEFUN([AC_HAVE_BMV_OF_SHARED],
  [ AC_MSG_CHECKING([for BMV_OF_SHARED])
    AC_LINK_IFELSE([AC_LANG_PROGRAM([[
#define _GNU_SOURCE
#include <xfs/xfs.h>
    ]], [[
         struct getbmapx obj;
         ioctl(-1, XFS_IOC_GETBMAPX, &obj);
         obj.bmv_oflags |= BMV_OF_SHARED;
    ]])],[have_bmv_of_shared=yes
       AC_MSG_RESULT(yes)],[AC_MSG_RESULT(no)])
    AC_SUBST(have_bmv_of_shared)
  ])

# Check if we have XFS_IOC_EXCHANGE_RANGE
AC_DEFUN([AC_HAVE_XFS_IOC_EXCHANGE_RANGE],
  [ AC_MSG_CHECKING([for XFS_IOC_EXCHANGE_RANGE])
    AC_LINK_IFELSE([AC_LANG_PROGRAM([[
#define _GNU_SOURCE
#include <xfs/xfs.h>
    ]], [[
         struct xfs_exch_range obj;
         ioctl(-1, XFS_IOC_EXCHANGE_RANGE, &obj);
    ]])],[have_xfs_ioc_exchange_range=yes
       AC_MSG_RESULT(yes)],[AC_MSG_RESULT(no)])
    AC_SUBST(have_xfs_ioc_exchange_range)
  ])