# GNU make tools #
##################
/autom4te.cache
config/config.sub
config/config.guess
config/sp-config-h.in
config/compile
config/depcomp
config/install-sh
config/ltmain.sh
config/missing
config/test-driver
configure
makeflags
*.m4

# Bazel generated files #
#########################
/bazel-*
scripts/compile/env_exec.sh
config/heron-config.h
tools/cpp/osx_gcc_wrapper.sh
tools/cpp/CROSSTOOL
tools/cpp/osx
tools/cpp/gcc
tools/cpp/g++
tools/jdk/ijar
.DS_Store
.*.swp

# Compiled source #
###################
/release
*.com
*.class
*.dll
*.exe
*.o
*.so
*.jar
*.fyc
*.rbc
*.pyc
*.in
*.in~
*.swp

# Packages #
############
# it's better to unpack these files and commit the raw source
# git has its own built in compression methods
*.7z
*.dmg
*.iso
*.zip

# Logs and databases #
######################
*.log
*.sql
*.sqlite

# OS generated files #
######################
.DS_Store
.DS_Store?
._*
.Trashes

# Editor generated files #
##########################
.emacs-project
.ropeproject
*.swp

## Intellij ###
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm

## Directory-based project format
.idea/
# if you remove the above rule, at least ignore user-specific stuff:
.idea/workspace.xml
.idea/tasks.xml
#  and these sensitive or high-churn files:
.idea/dataSources.ids
.idea/dataSources.xml
.idea/sqlDataSources.xml
.idea/dynamic.xml

## Maven generated files
.classpath.txt

## File-based project format
*.ipr
*.iws
*.iml
*.project
*.cproject
*.pydevproject

## Additional for IntelliJ
out/

# generated by mpeltonen/sbt-idea plugin
.idea_modules/

# generated by JIRA plugin
atlassian-ide-plugin.xml

# generated by Crashlytics plugin (for Android Studio and Intellij)
com_crashlytics_export_strings.xml

# generated for the website
website/node_modules/
website/public/
website/static/
