# 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/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

# Build Artifacts
.dirstamp
CCache/ccache-swig
CCache/ccache-swig.1
CCache/web/ccache-swig-man.html
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

# Lua
Examples/lua/dual/dual
Examples/lua/dual/swigluarun.h
Examples/lua/embed/embed
Examples/lua/embed2/embed2
Examples/lua/embed3/embed3
Examples/lua/embed3/swigluarun.h

# 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

