# Test suite logs
*.log

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

# CC / CXX Compiler
*.ii
*.i
*.o
*.s

# Libtool
*.la
*.lo

# Autotools
.deps
.dirstamp
.libs
/aclocal.m4
/autom4te.cache
/build-aux
/confdefs.h
/config.h
/config.h.in
/config.h.in~
/config.log
/config.status
/configure
/m4
/libtool
Makefile
Makefile.in
/stamp-h1

# Custom generated files
/src/sdeventplus.pc

# Output binaries
/example/follow
/example/heartbeat
/test/clock
/test/event
/test/exception
/test/internal_sdref
/test/internal_utils
/test/source_base
/test/source_time
