# Test suite logs
*.log

# Code Coverage
*.gcda
*.gcno
*.trs
*-coverage*

# Compiler
*.o

# Libtool
*.la
*.lo

# Autotools
.deps
.dirstamp
.libs
/aclocal.m4
/build-aux
/config.h
/config.h.in
/config.h.in~
/config.log
/config.status
/configure
/m4
/libtool
Makefile
Makefile.in
/stamp-h1
ar-lib
compile
config.guess
config.sub
depcomp
install-sh
ltmain.sh
missing

# Output binaries
slpd
