# 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
/aminclude_static.am
/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/delayed_echo
/example/follow
/example/heartbeat
/example/heartbeat_timer
/test/clock
/test/event
/test/exception
/test/internal/sdref
/test/internal/utils
/test/source/base
/test/source/child
/test/source/event
/test/source/io
/test/source/signal
/test/source/time
/test/utility/timer
