# Test suite logs
*.log

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

*.o
*.lo
*.la
*.sw*
Makefile
Makefile.in
configure
configure~
.deps
.libs
aclocal.m4
ar-lib
arm-openbmc-linux-gnueabi-libtool
autom4te.cache/
/aminclude_static.am
compile
config.guess
config.guess~
config.h
config.h.in
config.h.in~
config.log
config.status
config.sub
config.sub~
depcomp
install-sh
ltmain.sh
missing
stamp-h1
test-driver
.dirstamp
pidlist-gen.cpp
sensorlist-gen.cpp
zoneinfo-gen.cpp
setsensor
swampd
libtool
x86_64-libtool
*_unittest
*_unittest.log
*_unittest.trs
test-suite.log

# IDEs
.idea/

phosphor-pid-control.service
