# Compiled Source
*.o
*.class

# Editor files and various other junk
.*.sw?
*.bak
*.log
.DS_Store

# Local PCRE
pcre
*.gz

# C/C++ object files, based on:
#   https://github.com/github/gitignore/blob/master/C.gitignore
#   https://github.com/github/gitignore/blob/master/C%2B%2B.gitignore
*.slo
*.lo

# C/C++ dynamic libraries, based on:
#   https://github.com/github/gitignore/blob/master/C.gitignore
#   https://github.com/github/gitignore/blob/master/C%2B%2B.gitignore
*.dll
*.so
*.so.*
*.dylib
*.bundle

# C/C++ static libraries, based on:
#   https://github.com/github/gitignore/blob/master/C.gitignore
#   https://github.com/github/gitignore/blob/master/C%2B%2B.gitignore
*.lib
*.lai
*.la
*.a

# C/C++ executables, based on:
#   https://github.com/github/gitignore/blob/master/C.gitignore
#   https://github.com/github/gitignore/blob/master/C%2B%2B.gitignore
*.exe
*.out
*.app

# Generated by autogen.sh
CCache/autom4te.cache/
CCache/config.h.in
CCache/configure
Source/Include/swigconfig.h.in
Source/Include/swigconfig.h.in~
Source/Makefile.in
Tools/config/compile
Tools/config/config.guess
Tools/config/config.sub
Tools/config/depcomp
Tools/config/install-sh
Tools/config/missing
Tools/config/ylwrap
aclocal.m4
autom4te.cache/
configure

# Generated by ./configure
CCache/Makefile
CCache/ccache_swig_config.h
CCache/config.h
CCache/config.log
CCache/config.status
CCache/config_win32.h
Examples/Makefile
Examples/d/example.mk
Examples/guile/Makefile
Examples/test-suite/*/Makefile
Examples/xml/Makefile
/Makefile
Source/Include/stamp-h1
Source/Include/swigconfig.h
Source/Makefile
Tools/javascript/Makefile
.deps
config.log
config.status
preinst-swig
swig.spec

# Build Artifacts
.dirstamp
CCache/ccache-swig
CCache/ccache-swig.1
CCache/web/ccache-swig-man.html
Lib/swigwarn.swg
Source/CParse/parser.c
Source/CParse/parser.h
Source/eswig
Source/TAGS
swig
Tools/javascript/javascript

# Generated documentation
Doc/Manual/SWIGDocumentation.html
Doc/Manual/SWIGDocumentation.pdf
Doc/Manual/*.book

# SWIG common generated files
*_wrap.c
*_wrap.cpp
*_wrap.cxx
*_wrap.h
*-gypcopy.cxx

# Scratch directories
Examples/scratch

# Out of source tree build directories
*build*/

# errors test-suite
Examples/test-suite/errors/*.newerr
Examples/test-suite/errors/*.py

########## Language specific files ##########

# C#
Examples/test-suite/csharp/*/
*runme.exe.mdb
*runme.exe
Examples/csharp/*/*.cs
!Examples/csharp/*/runme.cs

# D
Examples/test-suite/d/*/
Examples/d/**/example.d
Examples/d/**/example_im.d
Examples/d/**/runme

# Go
*.[5689]
*_gc.c
Examples/test-suite/go/*.go
!Examples/test-suite/go/*runme.go
Examples/test-suite/go/*runme
Examples/test-suite/go/gopath
Examples/test-suite/go/testdir
Examples/go/*/gopath
Examples/go/*/example.go
Examples/go/*/runme

# Guile
Examples/guile/*/my-guile

# Java
Examples/test-suite/java/*/
Examples/test-suite/java/expected.txt
Examples/test-suite/java/got.txt
Examples/java/*/*.java
!Examples/java/*/runme.java
Examples/java/doxygen/javadocs

# Javascript
Examples/test-suite/javascript/*/
*.gyp

# OCaml
Examples/test-suite/ocaml/*.ml*
Examples/test-suite/ocaml/*.cm*
Examples/test-suite/ocaml/*_runme
!Examples/test-suite/ocaml/*runme.ml
Examples/ocaml/**/example.ml*
Examples/ocaml/**/runme
Examples/ocaml/**/runme_top
Examples/ocaml/**/*.cm*
Examples/ocaml/**/swig.ml*
Examples/ocaml/**/swigp4.ml

# Octave
swigexample*.oct
Examples/test-suite/octave/*.oct
Examples/test-suite/octave/octheaders.hpp
Examples/test-suite/octave/octheaders.hpp.gch

# Perl5
Examples/test-suite/perl5/*.pm
Examples/perl5/*/*.pm

# PHP
Examples/test-suite/php/php_*.h
Examples/php/*/php_*.h
Examples/php/pragmas/example.php

# Python
#   Based on https://github.com/github/gitignore/blob/master/Python.gitignore
*.py[cod]
*/__pycache__/
/__pycache__/
Examples/test-suite/python/*.py
!Examples/test-suite/python/*runme.py
Examples/python/**/bar.py
Examples/python/**/base.py
Examples/python/**/example.py
Examples/python/**/foo.py
Examples/python/**/robin.py
Examples/python/**/runme3.py
Examples/python/**/spam.py
Examples/python/import_packages/module_is_init/pkg1/__init__.py
Examples/python/import_packages/namespace_pkg/path4.zip
Examples/python/doxygen/example.html

# R
Examples/test-suite/r/*.R
Examples/test-suite/r/*.Rout
!Examples/test-suite/r/*runme.R
Examples/r/*/example.R
Examples/r/*/*.Rout
Examples/r/*/.RData

# Scilab
Examples/test-suite/scilab/*/
loader.sce

