# object files
*.o

# build system
.census
Logs/
include/platform_defs.h
include/builddefs
install-sh

# magic diretory symlinks
include/disk
include/xfs

# Makepgs
build/src-manifest
build/xfsprogs-*.tar.gz
doc/CHANGES.gz
xfsprogs-*

# autoconf generated files
aclocal.m4
autom4te.cache/
config.guess
config.log
config.status
config.sub
configure

# libtool
libtool
ltmain.sh
*.lo
*.la
.libs

# gettext
po/pl.mo
po/xfsprogs.pot

# quilt stuff
.pc/
patches/

# binaries
copy/xfs_copy
db/xfs_db
estimate/xfs_estimate
fsr/xfs_fsr
growfs/xfs_growfs
io/xfs_io
logprint/xfs_logprint
mdrestore/xfs_mdrestore
mkfs/fstyp
mkfs/mkfs.xfs
quota/xfs_quota
repair/xfs_repair
rtcp/xfs_rtcp
