# Generated by Cargo, will have compiled files and executables.
/target/
# These are backup files generated by rustfmt.
**/*.rs.bk
# Local Cargo config file.
/.cargo/config.toml
# PHP composer vendor.
/tests/php/vendor/

/skywalking_agent-*.tgz
/skywalking_agent-*.tgz.asc
/skywalking_agent-*.tgz.sha512
/package.xml
/.vagrant

*.lo
*.la
.libs
acinclude.m4
aclocal.m4
autom4te.cache
build
config.guess
config.h
config.h.in
config.h.in~
config.log
config.nice
config.status
config.sub
configure
configure.ac
configure.in
include
install-sh
libtool
ltmain.sh
Makefile
Makefile.fragments
Makefile.global
Makefile.objects
missing
mkinstalldirs
modules
php_test_results_*.txt
phpt.*
run-test-info.php
run-tests.php
tests/**/*.diff
tests/**/*.out
tests/**/*.exp
tests/**/*.log
tests/**/*.db
tests/**/*.mem
tmp-php.ini
.fleet
.idea
