diff options
author | Nathan Scott <nathans@sgi.com> | 2004-09-30 14:50:54 +0000 |
---|---|---|
committer | Nathan Scott <nathans@sgi.com> | 2004-09-30 14:50:54 +0000 |
commit | 7b0a58cc3dcc0ce6d9d700c645331eb29bd9af08 (patch) | |
tree | cfa1b20248454be8652b3dd3b9a30ea6876eb818 | |
parent | 178508bd326667cf25faf471aaef9d788b8da9f3 (diff) | |
download | dmapi-dev-7b0a58cc3dcc0ce6d9d700c645331eb29bd9af08.tar.gz |
Keep userspace packaging in sync, portability changes and dmapi headers.
Merge of xfs-cmds-melb:slinx:19611a by kenmcd.
-rw-r--r-- | VERSION | 2 | ||||
-rw-r--r-- | aclocal.m4 | 70 | ||||
-rw-r--r-- | debian/changelog | 6 | ||||
-rw-r--r-- | doc/CHANGES | 4 | ||||
-rw-r--r-- | include/builddefs.in | 4 | ||||
-rw-r--r-- | include/buildmacros | 2 | ||||
-rw-r--r-- | include/dmapi.h | 48 | ||||
-rw-r--r-- | include/dmapi_kern.h | 128 | ||||
-rw-r--r-- | m4/package_utilies.m4 | 42 | ||||
-rw-r--r-- | m4/package_xfslibs.m4 | 26 |
10 files changed, 238 insertions, 94 deletions
@@ -3,5 +3,5 @@ # PKG_MAJOR=2 PKG_MINOR=2 -PKG_REVISION=0 +PKG_REVISION=1 PKG_BUILD=1 @@ -76,59 +76,69 @@ AC_DEFUN([AC_PACKAGE_NEED_UTILITY], # MSGFMT MSGMERGE RPM # AC_DEFUN([AC_PACKAGE_UTILITIES], - [ if test -z "$CC"; then - AC_PROG_CC - fi + [ AC_PROG_CC cc="$CC" AC_SUBST(cc) AC_PACKAGE_NEED_UTILITY($1, "$cc", cc, [C compiler]) if test -z "$MAKE"; then - AC_PATH_PROG(MAKE, make, /usr/bin/make) + AC_PATH_PROG(MAKE, gmake,, /usr/bin:/usr/freeware/bin) + fi + if test -z "$MAKE"; then + AC_PATH_PROG(MAKE, make,, /usr/bin) fi make=$MAKE AC_SUBST(make) AC_PACKAGE_NEED_UTILITY($1, "$make", make, [GNU make]) if test -z "$LIBTOOL"; then - AC_PATH_PROG(LIBTOOL, libtool,,/usr/bin:/usr/local/bin) + AC_PATH_PROG(LIBTOOL, glibtool,, /usr/bin) + fi + if test -z "$LIBTOOL"; then + AC_PATH_PROG(LIBTOOL, libtool,, /usr/bin:/usr/local/bin:/usr/freeware/bin) fi libtool=$LIBTOOL AC_SUBST(libtool) AC_PACKAGE_NEED_UTILITY($1, "$libtool", libtool, [GNU libtool]) if test -z "$TAR"; then - AC_PATH_PROG(TAR, tar) + AC_PATH_PROG(TAR, tar,, /usr/freeware/bin:/bin:/usr/local/bin:/usr/bin) fi tar=$TAR AC_SUBST(tar) if test -z "$ZIP"; then - AC_PATH_PROG(ZIP, gzip, /bin/gzip) + AC_PATH_PROG(ZIP, gzip,, /bin:/usr/local/bin:/usr/freeware/bin) fi + zip=$ZIP AC_SUBST(zip) + if test -z "$MAKEDEPEND"; then AC_PATH_PROG(MAKEDEPEND, makedepend, /bin/true) fi makedepend=$MAKEDEPEND AC_SUBST(makedepend) + if test -z "$AWK"; then - AC_PATH_PROG(AWK, awk, /bin/awk) + AC_PATH_PROG(AWK, awk,, /bin:/usr/bin) fi awk=$AWK AC_SUBST(awk) + if test -z "$SED"; then - AC_PATH_PROG(SED, sed, /bin/sed) + AC_PATH_PROG(SED, sed,, /bin:/usr/bin) fi sed=$SED AC_SUBST(sed) + if test -z "$ECHO"; then - AC_PATH_PROG(ECHO, echo, /bin/echo) + AC_PATH_PROG(ECHO, echo,, /bin:/usr/bin) fi echo=$ECHO AC_SUBST(echo) + if test -z "$SORT"; then - AC_PATH_PROG(SORT, sort, /bin/sort) + AC_PATH_PROG(SORT, sort,, /bin:/usr/bin) fi sort=$SORT AC_SUBST(sort) @@ -138,13 +148,14 @@ AC_DEFUN([AC_PACKAGE_UTILITIES], if test "$enable_gettext" = yes; then if test -z "$MSGFMT"; then - AC_CHECK_PROG(MSGFMT, msgfmt, /usr/bin/msgfmt) + AC_PATH_PROG(MSGFMT, msgfmt,, /usr/bin:/usr/freeware/bin) fi msgfmt=$MSGFMT AC_SUBST(msgfmt) AC_PACKAGE_NEED_UTILITY($1, "$msgfmt", msgfmt, gettext) + if test -z "$MSGMERGE"; then - AC_CHECK_PROG(MSGMERGE, msgmerge, /usr/bin/msgmerge) + AC_PATH_PROG(MSGMERGE, msgmerge,, /usr/bin:/usr/freeware/bin) fi msgmerge=$MSGMERGE AC_SUBST(msgmerge) @@ -152,13 +163,14 @@ AC_DEFUN([AC_PACKAGE_UTILITIES], fi if test -z "$RPM"; then - AC_PATH_PROG(RPM, rpm, /bin/rpm) + AC_PATH_PROG(RPM, rpm,, /bin:/usr/bin:/usr/freeware/bin) fi rpm=$RPM AC_SUBST(rpm) + dnl .. and what version is rpm rpm_version=0 - test -x $RPM && rpm_version=`$RPM --version \ + test -x "$RPM" && rpm_version=`$RPM --version \ | awk '{print $NF}' | awk -F. '{V=1; print $V}'` AC_SUBST(rpm_version) dnl At some point in rpm 4.0, rpm can no longer build rpms, and @@ -184,6 +196,17 @@ AC_DEFUN([AC_PACKAGE_NEED_XFS_LIBXFS_H], fi ]) +AC_DEFUN([AC_PACKAGE_NEED_XFS_XQM_H], + [ AC_CHECK_HEADERS([xfs/xqm.h]) + 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 @@ -210,12 +233,27 @@ AC_DEFUN([AC_PACKAGE_NEED_LIBXFSINIT_LIBXFS], 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 `pwd`/../xfsprogs/libhandle/libhandle.la && \ + libhdl="`pwd`/../xfsprogs/libhandle/libhandle.la" + test -f /usr/lib/libhandle.la && libhdl="/usr/lib/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-dev" from the xfsprogs source.' + echo 'Alternatively, run "make install-lib" from the xfsprogs source.' exit 1 ]) libhdl="-lhandle" diff --git a/debian/changelog b/debian/changelog index 1c7e0ac..2336c07 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +dmapi (2.2.1-1) unstable; urgency=low + + * New upstream release + + -- Nathan Scott <nathans@debian.org> Wed, 29 Sep 2004 11:28:20 +1000 + dmapi (2.2.0-1) unstable; urgency=low * New upstream release (works for both 2.6 and 2.4 now) diff --git a/doc/CHANGES b/doc/CHANGES index 8e6664e..5491ac4 100644 --- a/doc/CHANGES +++ b/doc/CHANGES @@ -1,3 +1,7 @@ +dmapi-2.2.1 (29 September 2004) + - Update m4 macros, incorporating some portability changes. + - Sync up with changes to the kernel DMAPI headers. + dmapi-2.2.0 (21 April 2004) - The linux 2.6 kernel puts the dmapi device at /dev/dmapi. diff --git a/include/builddefs.in b/include/builddefs.in index 314f177..3f075a0 100644 --- a/include/builddefs.in +++ b/include/builddefs.in @@ -81,9 +81,9 @@ ifeq ($(PKG_PLATFORM),linux) PCFLAGS = -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 endif -GCFLAGS = $(OPTIMIZER) $(DEBUG) -funsigned-char -Wall -I$(TOPDIR)/include \ +GCFLAGS = $(OPTIMIZER) $(DEBUG) -funsigned-char -fno-strict-aliasing -Wall \ -DVERSION=\"$(PKG_VERSION)\" -DLOCALEDIR=\"$(PKG_LOCALE_DIR)\" \ - -DPACKAGE=\"$(PKG_NAME)\" + -DPACKAGE=\"$(PKG_NAME)\" -I$(TOPDIR)/include # Global, Platform, Local CFLAGS CFLAGS += $(GCFLAGS) $(PCFLAGS) $(LCFLAGS) diff --git a/include/buildmacros b/include/buildmacros index bce094c..41a5e2e 100644 --- a/include/buildmacros +++ b/include/buildmacros @@ -72,7 +72,7 @@ LTVERSION = $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) LTLINK = $(LIBTOOL) --mode=link $(CC) LTEXEC = $(LIBTOOL) --mode=execute LTINSTALL = $(LIBTOOL) --mode=install $(INSTALL) -LTCOMPILE = $(LIBTOOL) --mode=compile $(CCF) -D_REENTRANT -fno-strict-aliasing +LTCOMPILE = $(LIBTOOL) --mode=compile $(CCF) ifeq ($(ENABLE_SHARED),yes) LTLDFLAGS += -rpath $(PKG_LIB_DIR) diff --git a/include/dmapi.h b/include/dmapi.h index 52d3d70..cbb0a04 100644 --- a/include/dmapi.h +++ b/include/dmapi.h @@ -456,13 +456,13 @@ typedef struct dm_stat dm_stat_t; /* Flags for the non-standard dt_xfs_xflags field. */ -#define DM_XFLAG_REALTIME 0x1 -#define DM_XFLAG_PREALLOC 0x2 -#define DM_XFLAG_IMMUTABLE 0x3 -#define DM_XFLAG_APPEND 0x4 -#define DM_XFLAG_SYNC 0x5 -#define DM_XFLAG_NOATIME 0x6 -#define DM_XFLAG_NODUMP 0x7 +#define DM_XFLAG_REALTIME 0x00000001 +#define DM_XFLAG_PREALLOC 0x00000002 +#define DM_XFLAG_IMMUTABLE 0x00000008 +#define DM_XFLAG_APPEND 0x00000010 +#define DM_XFLAG_SYNC 0x00000020 +#define DM_XFLAG_NOATIME 0x00000040 +#define DM_XFLAG_NODUMP 0x00000080 #define DM_XFLAG_HASATTR 0x80000000 @@ -480,6 +480,40 @@ struct dm_xstat { /* not supported */ typedef struct dm_xstat dm_xstat_t; +#define MAXDMFSFIDSZ 46 + +typedef struct dm_fsfid { + __u16 fid_len; /* length of data in bytes */ + unsigned char fid_data[MAXDMFSFIDSZ]; /* data (fid_len worth) */ +} dm_fsfid_t; + +struct dm_fid { + __u16 dm_fid_len; /* length of remainder */ + __u16 dm_fid_pad; + __u32 dm_fid_gen; /* generation number */ + __u64 dm_fid_ino; /* 64 bits inode number */ +}; +typedef struct dm_fid dm_fid_t; + + +struct dm_handle { + union { + __s64 align; /* force alignment of ha_fid */ + dm_fsid_t _ha_fsid; /* unique file system identifier */ + } ha_u; + dm_fid_t ha_fid; /* file system specific file ID */ +}; +typedef struct dm_handle dm_handle_t; +#define ha_fsid ha_u._ha_fsid + +#define DM_HSIZE(handle) (((char *) &(handle).ha_fid.dm_fid_pad \ + - (char *) &(handle)) \ + + (handle).ha_fid.dm_fid_len) + +#define DM_HANDLE_CMP(h1, h2) memcmp(h1, h2, sizeof(dm_handle_t)) + +#define DM_FSHSIZE sizeof(dm_fsid_t) + /* The following list provides the prototypes for all functions defined in the DMAPI interface. diff --git a/include/dmapi_kern.h b/include/dmapi_kern.h index 8813e83..0db824a 100644 --- a/include/dmapi_kern.h +++ b/include/dmapi_kern.h @@ -33,6 +33,7 @@ #ifndef __DMAPI_KERN_H__ #define __DMAPI_KERN_H__ +#include <linux/fs.h> union sys_dmapi_uarg { void *p; @@ -51,7 +52,7 @@ typedef struct sys_dmapi_args sys_dmapi_args_t; #ifdef __KERNEL__ -struct xfs_handle_t; +struct dm_handle_t; /* The first group of definitions and prototypes define the filesystem's interface into the DMAPI code. @@ -71,35 +72,50 @@ struct xfs_handle_t; #define DM_CLVL_XOPEN 1 /* X/Open compliant DMAPI */ +/* + * Filesystem operations accessed by the DMAPI core. + */ +struct filesystem_dmapi_operations { + int (*get_fsys_vector)(struct super_block *sb, void *addr); + int (*fh_to_inode)(struct super_block *sb, struct inode **ip, + struct dm_fsfid *fid); + struct file_operations * (*get_invis_ops)(struct inode *ip); + int (*inode_to_fh)(struct inode *ip, struct dm_fsfid *fid, + dm_fsid_t *fsid ); + void (*get_fsid)(struct super_block *sb, dm_fsid_t *fsid); +}; + + /* Prototypes used outside of the DMI module/directory. */ int dm_send_data_event( dm_eventtype_t event, - struct vnode *vp, + struct inode *ip, dm_right_t vp_right, - xfs_off_t off, + dm_off_t off, size_t len, int flags); int dm_send_destroy_event( - struct vnode *vp, + struct inode *ip, dm_right_t vp_right); int dm_send_mount_event( - struct vfs *vfsp, + struct super_block *sb, dm_right_t vfsp_right, - struct vnode *vp, + struct inode *ip, dm_right_t vp_right, - struct vnode *rootvp, + struct inode *rootip, dm_right_t rootvp_right, char *name1, char *name2); int dm_send_namesp_event( dm_eventtype_t event, - struct vnode *vp1, + struct super_block *sb, + struct inode *ip1, dm_right_t vp1_right, - struct vnode *vp2, + struct inode *ip2, dm_right_t vp2_right, char *name1, char *name2, @@ -108,18 +124,26 @@ int dm_send_namesp_event( int flags); void dm_send_unmount_event( - struct vfs *vfsp, - struct vnode *vp, - dm_right_t vfsp_right, + struct super_block *sbp, + struct inode *ip, + dm_right_t sbp_right, mode_t mode, int retcode, int flags); int dm_code_level(void); -int dm_vp_to_handle ( - struct vnode *vp, - xfs_handle_t *handlep); +int dm_ip_to_handle ( + struct inode *ip, + dm_handle_t *handlep); + +void dmapi_register( + struct file_system_type *fstype, + struct filesystem_dmapi_operations *dmapiops); + +void dmapi_unregister( + struct file_system_type *fstype); + /* The following prototypes and definitions are used by DMAPI as its interface into the filesystem code. Communication between DMAPI and the @@ -191,24 +215,24 @@ typedef enum { */ typedef int (*dm_fsys_clear_inherit_t)( - vnode_t *vp, + struct inode *ip, dm_right_t right, dm_attrname_t *attrnamep); typedef int (*dm_fsys_create_by_handle_t)( - vnode_t *vp, + struct inode *ip, dm_right_t right, void *hanp, size_t hlen, char *cname); typedef int (*dm_fsys_downgrade_right_t)( - vnode_t *vp, + struct inode *ip, dm_right_t right, u_int type); /* DM_FSYS_OBJ or zero */ typedef int (*dm_fsys_get_allocinfo_rvp_t)( - vnode_t *vp, + struct inode *ip, dm_right_t right, dm_off_t *offp, u_int nelem, @@ -217,7 +241,7 @@ typedef int (*dm_fsys_get_allocinfo_rvp_t)( int *rvalp); typedef int (*dm_fsys_get_bulkall_rvp_t)( - vnode_t *vp, /* root vnode */ + struct inode *ip, /* root inode */ dm_right_t right, u_int mask, dm_attrname_t *attrnamep, @@ -228,7 +252,7 @@ typedef int (*dm_fsys_get_bulkall_rvp_t)( int *rvalp); typedef int (*dm_fsys_get_bulkattr_rvp_t)( - vnode_t *vp, /* root vnode */ + struct inode *ip, /* root inode */ dm_right_t right, u_int mask, dm_attrloc_t *locp, @@ -238,32 +262,32 @@ typedef int (*dm_fsys_get_bulkattr_rvp_t)( int *rvalp); typedef int (*dm_fsys_get_config_t)( - vnode_t *vp, + struct inode *ip, dm_right_t right, dm_config_t flagname, dm_size_t *retvalp); typedef int (*dm_fsys_get_config_events_t)( - vnode_t *vp, + struct inode *ip, dm_right_t right, u_int nelem, dm_eventset_t *eventsetp, u_int *nelemp); typedef int (*dm_fsys_get_destroy_dmattr_t)( - vnode_t *vp, + struct inode *ip, dm_right_t right, dm_attrname_t *attrnamep, char **valuepp, int *vlenp); typedef int (*dm_fsys_get_dioinfo_t)( - vnode_t *vp, + struct inode *ip, dm_right_t right, dm_dioinfo_t *diop); typedef int (*dm_fsys_get_dirattrs_rvp_t)( - vnode_t *vp, + struct inode *ip, dm_right_t right, u_int mask, dm_attrloc_t *locp, @@ -273,7 +297,7 @@ typedef int (*dm_fsys_get_dirattrs_rvp_t)( int *rvalp); typedef int (*dm_fsys_get_dmattr_t)( - vnode_t *vp, + struct inode *ip, dm_right_t right, dm_attrname_t *attrnamep, size_t buflen, @@ -281,54 +305,54 @@ typedef int (*dm_fsys_get_dmattr_t)( size_t *rlenp); typedef int (*dm_fsys_get_eventlist_t)( - vnode_t *vp, + struct inode *ip, dm_right_t right, u_int type, u_int nelem, dm_eventset_t *eventsetp, /* in kernel space! */ - u_int *nelemp); /* in kernel space! */ + u_int *nelemp); /* in kernel space! */ typedef int (*dm_fsys_get_fileattr_t)( - vnode_t *vp, + struct inode *ip, dm_right_t right, u_int mask, dm_stat_t *statp); typedef int (*dm_fsys_get_region_t)( - vnode_t *vp, + struct inode *ip, dm_right_t right, u_int nelem, dm_region_t *regbufp, u_int *nelemp); typedef int (*dm_fsys_getall_dmattr_t)( - vnode_t *vp, + struct inode *ip, dm_right_t right, size_t buflen, void *bufp, size_t *rlenp); typedef int (*dm_fsys_getall_inherit_t)( - vnode_t *vp, + struct inode *ip, dm_right_t right, u_int nelem, dm_inherit_t *inheritbufp, u_int *nelemp); typedef int (*dm_fsys_init_attrloc_t)( - vnode_t *vp, /* sometimes root vnode */ + struct inode *ip, /* sometimes root inode */ dm_right_t right, dm_attrloc_t *locp); typedef int (*dm_fsys_mkdir_by_handle_t)( - vnode_t *vp, + struct inode *ip, dm_right_t right, void *hanp, size_t hlen, char *cname); typedef int (*dm_fsys_probe_hole_t)( - vnode_t *vp, + struct inode *ip, dm_right_t right, dm_off_t off, dm_size_t len, @@ -336,13 +360,13 @@ typedef int (*dm_fsys_probe_hole_t)( dm_size_t *rlenp); typedef int (*dm_fsys_punch_hole_t)( - vnode_t *vp, + struct inode *ip, dm_right_t right, dm_off_t off, dm_size_t len); typedef int (*dm_fsys_read_invis_rvp_t)( - vnode_t *vp, + struct inode *ip, dm_right_t right, dm_off_t off, dm_size_t len, @@ -350,25 +374,25 @@ typedef int (*dm_fsys_read_invis_rvp_t)( int *rvp); typedef int (*dm_fsys_release_right_t)( - vnode_t *vp, + struct inode *ip, dm_right_t right, u_int type); typedef int (*dm_fsys_remove_dmattr_t)( - vnode_t *vp, + struct inode *ip, dm_right_t right, int setdtime, dm_attrname_t *attrnamep); typedef int (*dm_fsys_request_right_t)( - vnode_t *vp, + struct inode *ip, dm_right_t right, u_int type, /* DM_FSYS_OBJ or zero */ u_int flags, dm_right_t newright); typedef int (*dm_fsys_set_dmattr_t)( - vnode_t *vp, + struct inode *ip, dm_right_t right, dm_attrname_t *attrnamep, int setdtime, @@ -376,33 +400,33 @@ typedef int (*dm_fsys_set_dmattr_t)( void *bufp); typedef int (*dm_fsys_set_eventlist_t)( - vnode_t *vp, + struct inode *ip, dm_right_t right, u_int type, dm_eventset_t *eventsetp, /* in kernel space! */ u_int maxevent); typedef int (*dm_fsys_set_fileattr_t)( - vnode_t *vp, + struct inode *ip, dm_right_t right, u_int mask, dm_fileattr_t *attrp); typedef int (*dm_fsys_set_inherit_t)( - vnode_t *vp, + struct inode *ip, dm_right_t right, dm_attrname_t *attrnamep, mode_t mode); typedef int (*dm_fsys_set_region_t)( - vnode_t *vp, + struct inode *ip, dm_right_t right, u_int nelem, dm_region_t *regbufp, dm_boolean_t *exactflagp); typedef int (*dm_fsys_symlink_by_handle_t)( - vnode_t *vp, + struct inode *ip, dm_right_t right, void *hanp, size_t hlen, @@ -410,16 +434,16 @@ typedef int (*dm_fsys_symlink_by_handle_t)( char *path); typedef int (*dm_fsys_sync_by_handle_t)( - vnode_t *vp, + struct inode *ip, dm_right_t right); typedef int (*dm_fsys_upgrade_right_t)( - vnode_t *vp, + struct inode *ip, dm_right_t right, - u_int type); /* DM_FSYS_OBJ or zero */ + u_int type); /* DM_FSYS_OBJ or zero */ typedef int (*dm_fsys_write_invis_rvp_t)( - vnode_t *vp, + struct inode *ip, dm_right_t right, int flags, dm_off_t off, @@ -428,7 +452,7 @@ typedef int (*dm_fsys_write_invis_rvp_t)( int *rvp); typedef void (*dm_fsys_obj_ref_hold_t)( - vnode_t *vp); + struct inode *ip); /* Structure definitions used by the VFS_DMAPI_FSYS_VECTOR call. */ diff --git a/m4/package_utilies.m4 b/m4/package_utilies.m4 index e0116ce..c29492d 100644 --- a/m4/package_utilies.m4 +++ b/m4/package_utilies.m4 @@ -17,59 +17,69 @@ AC_DEFUN([AC_PACKAGE_NEED_UTILITY], # MSGFMT MSGMERGE RPM # AC_DEFUN([AC_PACKAGE_UTILITIES], - [ if test -z "$CC"; then - AC_PROG_CC - fi + [ AC_PROG_CC cc="$CC" AC_SUBST(cc) AC_PACKAGE_NEED_UTILITY($1, "$cc", cc, [C compiler]) if test -z "$MAKE"; then - AC_PATH_PROG(MAKE, make, /usr/bin/make) + AC_PATH_PROG(MAKE, gmake,, /usr/bin:/usr/freeware/bin) + fi + if test -z "$MAKE"; then + AC_PATH_PROG(MAKE, make,, /usr/bin) fi make=$MAKE AC_SUBST(make) AC_PACKAGE_NEED_UTILITY($1, "$make", make, [GNU make]) if test -z "$LIBTOOL"; then - AC_PATH_PROG(LIBTOOL, libtool,,/usr/bin:/usr/local/bin) + AC_PATH_PROG(LIBTOOL, glibtool,, /usr/bin) + fi + if test -z "$LIBTOOL"; then + AC_PATH_PROG(LIBTOOL, libtool,, /usr/bin:/usr/local/bin:/usr/freeware/bin) fi libtool=$LIBTOOL AC_SUBST(libtool) AC_PACKAGE_NEED_UTILITY($1, "$libtool", libtool, [GNU libtool]) if test -z "$TAR"; then - AC_PATH_PROG(TAR, tar) + AC_PATH_PROG(TAR, tar,, /usr/freeware/bin:/bin:/usr/local/bin:/usr/bin) fi tar=$TAR AC_SUBST(tar) if test -z "$ZIP"; then - AC_PATH_PROG(ZIP, gzip, /bin/gzip) + AC_PATH_PROG(ZIP, gzip,, /bin:/usr/local/bin:/usr/freeware/bin) fi + zip=$ZIP AC_SUBST(zip) + if test -z "$MAKEDEPEND"; then AC_PATH_PROG(MAKEDEPEND, makedepend, /bin/true) fi makedepend=$MAKEDEPEND AC_SUBST(makedepend) + if test -z "$AWK"; then - AC_PATH_PROG(AWK, awk, /bin/awk) + AC_PATH_PROG(AWK, awk,, /bin:/usr/bin) fi awk=$AWK AC_SUBST(awk) + if test -z "$SED"; then - AC_PATH_PROG(SED, sed, /bin/sed) + AC_PATH_PROG(SED, sed,, /bin:/usr/bin) fi sed=$SED AC_SUBST(sed) + if test -z "$ECHO"; then - AC_PATH_PROG(ECHO, echo, /bin/echo) + AC_PATH_PROG(ECHO, echo,, /bin:/usr/bin) fi echo=$ECHO AC_SUBST(echo) + if test -z "$SORT"; then - AC_PATH_PROG(SORT, sort, /bin/sort) + AC_PATH_PROG(SORT, sort,, /bin:/usr/bin) fi sort=$SORT AC_SUBST(sort) @@ -79,13 +89,14 @@ AC_DEFUN([AC_PACKAGE_UTILITIES], if test "$enable_gettext" = yes; then if test -z "$MSGFMT"; then - AC_CHECK_PROG(MSGFMT, msgfmt, /usr/bin/msgfmt) + AC_PATH_PROG(MSGFMT, msgfmt,, /usr/bin:/usr/freeware/bin) fi msgfmt=$MSGFMT AC_SUBST(msgfmt) AC_PACKAGE_NEED_UTILITY($1, "$msgfmt", msgfmt, gettext) + if test -z "$MSGMERGE"; then - AC_CHECK_PROG(MSGMERGE, msgmerge, /usr/bin/msgmerge) + AC_PATH_PROG(MSGMERGE, msgmerge,, /usr/bin:/usr/freeware/bin) fi msgmerge=$MSGMERGE AC_SUBST(msgmerge) @@ -93,13 +104,14 @@ AC_DEFUN([AC_PACKAGE_UTILITIES], fi if test -z "$RPM"; then - AC_PATH_PROG(RPM, rpm, /bin/rpm) + AC_PATH_PROG(RPM, rpm,, /bin:/usr/bin:/usr/freeware/bin) fi rpm=$RPM AC_SUBST(rpm) + dnl .. and what version is rpm rpm_version=0 - test -x $RPM && rpm_version=`$RPM --version \ + test -x "$RPM" && rpm_version=`$RPM --version \ | awk '{print $NF}' | awk -F. '{V=1; print $V}'` AC_SUBST(rpm_version) dnl At some point in rpm 4.0, rpm can no longer build rpms, and diff --git a/m4/package_xfslibs.m4 b/m4/package_xfslibs.m4 index 27dc930..be9a74d 100644 --- a/m4/package_xfslibs.m4 +++ b/m4/package_xfslibs.m4 @@ -9,6 +9,17 @@ AC_DEFUN([AC_PACKAGE_NEED_XFS_LIBXFS_H], fi ]) +AC_DEFUN([AC_PACKAGE_NEED_XFS_XQM_H], + [ AC_CHECK_HEADERS([xfs/xqm.h]) + 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 @@ -50,6 +61,21 @@ AC_DEFUN([AC_PACKAGE_NEED_OPEN_BY_FSHANDLE], 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 `pwd`/../xfsprogs/libhandle/libhandle.la && \ + libhdl="`pwd`/../xfsprogs/libhandle/libhandle.la" + test -f /usr/lib/libhandle.la && libhdl="/usr/lib/libhandle.la" + AC_SUBST(libhdl) + ]) + AC_DEFUN([AC_PACKAGE_NEED_XFSCTL_MACRO], [ AC_MSG_CHECKING([xfsctl from xfs/libxfs.h]) AC_TRY_LINK([#include <xfs/libxfs.h>], [ int x = xfsctl(0, 0, 0, 0); ], |