# Ignore miscellaneous files
cscope.*
*.swp
*.patch
*~
.project
.cproject

# Ignore build directory
build/

# Ignore build products from tools
tools/**/*.o
tools/fip_create/
tools/fiptool/fiptool
tools/fiptool/fiptool.exe
tools/cert_create/src/*.o
tools/cert_create/src/**/*.o
tools/cert_create/cert_create
tools/cert_create/cert_create.exe

# Ignore header files copied.
tools/fiptool/firmware_image_package.h
tools/fiptool/uuid.h

# GNU GLOBAL files
GPATH
GRTAGS
GSYMS
GTAGS
