# *~
# .DS_Store

# for .dockerignore
.git

# MacOS
# .DS_Store

# tag files
# TAGS
GPATH
GRTAGS
GSYMS
GTAGS

# /
Makefile
Makefile.in
configure
liblouis.pc
config.log
depcomp
config.guess
ltmain.sh
config.sub
config.status
libtool
autom4te.cache
missing
aclocal.m4
install-sh
INSTALL

# valgrind
valgrind.log

# Eclipse
# .cproject
# .project

# /build-aux/
build-aux/ar-lib
build-aux/compile
build-aux/config.guess
build-aux/config.rpath
build-aux/config.sub
build-aux/depcomp
build-aux/install-sh
build-aux/ltmain.sh
build-aux/mdate-sh
build-aux/missing
build-aux/test-driver
build-aux/texinfo.tex

# /contrib/
contrib/liblouis.elc
contrib/braille-input.elc

# /doc/
doc/Makefile
doc/Makefile.in
doc/mdate-sh
doc/texinfo.tex
doc/version.texi
doc/stamp-vti
doc/liblouis.html
doc/liblouis.info
doc/liblouis.txt
doc/liblouis.pdf
doc/liblouis.fn
doc/liblouis.pg
doc/liblouis.opcode
doc/liblouis.log
doc/liblouis.ky
doc/liblouis.tp
doc/liblouis.toc
doc/liblouis.fns
doc/liblouis.vr
doc/liblouis.pgs
doc/liblouis.opcodes
doc/liblouis.aux
doc/liblouis.cp
doc/liblouis.t2p/

# /gnulib/
gnulib/.libs
gnulib/.deps
gnulib/*.o
gnulib/*.lo
gnulib/*.la
gnulib/Makefile
gnulib/Makefile.in
gnulib/alloca.h
gnulib/dirent.h
gnulib/errno.h
gnulib/getopt.h
gnulib/limits.h
gnulib/stddef.h
gnulib/stdint.h
gnulib/stdio.h
gnulib/stdlib.h
gnulib/string.h
gnulib/sys/
gnulib/unistd.h

# /liblouis/
liblouis/.libs
liblouis/.deps
liblouis/*.o
liblouis/*.lo
liblouis/*.la
liblouis/Makefile
liblouis/Makefile.in
liblouis/stamp-h1
liblouis/config.h.in
liblouis/config.h
liblouis/liblouis.h

# /m4/
m4/Makefile
m4/Makefile.in
m4/libtool.m4
m4/ltoptions.m4
m4/ltsugar.m4
m4/ltversion.m4
m4/lt~obsolete.m4

# /man/
man/Makefile
man/Makefile.in
man/lou_allround.1
man/lou_checkhyphens.1
man/lou_checktable.1
man/lou_debug.1
man/lou_trace.1
man/lou_translate.1
man/lou_checkyaml.1

# /python/
python/Makefile
python/Makefile.in
python/build
python/setup.py

# /python/louis/
python/louis/Makefile
python/louis/Makefile.in
python/louis/__init__.py
python/louis/*.pyc

# /tables
tables/Makefile
tables/Makefile.in

# /tests/
tests/.libs
tests/.deps
tests/*.o
tests/*.exe
tests/*.log
tests/*.trs
tests/Makefile
tests/Makefile.in
tests/backtranslate
tests/backtranslate_noUndefinedDots
tests/backtranslate_partialTrans
tests/backtranslate_with_letsign
tests/capitalization
tests/capitalized_with_sentance
tests/capitalized_word
tests/checkTable
tests/check_metadata
tests/compbrlAtCursor
tests/emphclass
tests/en_gb_g1_italics
tests/findTable
tests/getTable
tests/hash_collision
tests/hyphenate
tests/hyphenate_achena
tests/hyphenate_alderen
tests/hyphenate_straightforward
tests/hyphenate_xxx
tests/infiniteTranslationLoop
tests/inpos
tests/inpos_compbrl
tests/inpos_match_replace
tests/lastworditalafter
tests/letterDefTest
tests/logging
tests/outpos
tests/pass0_typebuf
tests/pass1Only
tests/pass2
tests/pass2_inpos
tests/present_progressive
tests/resolve_table
tests/resolve_table.h
tests/squash_space
tests/typeform
tests/typeform_for_emphclass
tests/uplow_with_unicode
tests/yaml/*.log
tests/yaml/*.trs

# /tests/yaml/
tests/yaml/Makefile
tests/yaml/Makefile.in
tests/yaml/*.log
tests/yaml/*.trs

# /tests/tables/
tests/tables/Makefile.in
tests/tables/Makefile
tests/tables/emphclass/Makefile
tests/tables/emphclass/Makefile.in
tests/tables/moreTables/Makefile.in
tests/tables/moreTables/Makefile
tests/tables/resolve_table/Makefile
tests/tables/resolve_table/Makefile.in
tests/tables/resolve_table/dir_1/Makefile
tests/tables/resolve_table/dir_1/Makefile.in
tests/tables/resolve_table/dir_2/Makefile
tests/tables/resolve_table/dir_2/Makefile.in
tests/tables/resolve_table/dir_1/dir_1.1/Makefile
tests/tables/resolve_table/dir_1/dir_1.1/Makefile.in
tests/tablesWithMetadata/Makefile
tests/tablesWithMetadata/Makefile.in

# /tests/ueb_test_data/
tests/ueb_test_data/Makefile
tests/ueb_test_data/Makefile.in

# /tools/
tools/.libs
tools/.deps
tools/*.o
tools/*.la
tools/*.lo
tools/Makefile
tools/Makefile.in
tools/lou_allround
tools/lou_checkhyphens
tools/lou_checktable
tools/lou_checkyaml
tools/lou_debug
tools/lou_trace
tools/lou_translate
tools/lou_compare
tools/*.exe

# /tools/gnulib
tools/gnulib/.libs
tools/gnulib/.deps
tools/gnulib/*.o
tools/gnulib/*.lo
tools/gnulib/*.la
tools/gnulib/Makefile
tools/gnulib/Makefile.in
tools/gnulib/errno.h
tools/gnulib/getopt-cdefs.h
tools/gnulib/getopt.h
tools/gnulib/limits.h
tools/gnulib/stddef.h
tools/gnulib/stdint.h
tools/gnulib/stdio.h
tools/gnulib/stdlib.h
tools/gnulib/string.h
tools/gnulib/sys/
tools/gnulib/unistd.h
tools/gnulib/unistr.h
tools/gnulib/unistr/.dirstamp
tools/gnulib/unitypes.h

# /tools/gnulib/unistr/
tools/gnulib/unistr/.libs
tools/gnulib/unistr/.deps
tools/gnulib/unistr/*.o
tools/gnulib/unistr/*.la
tools/gnulib/unistr/*.lo

# stuff used with /tools/lou_compare
# input.txt
# pass.txt
# fail.txt
# output.txt

# /windows/
windows/*.obj
windows/liblouis.dll
windows/liblouis.lib
windows/liblouis.exp
windows/Makefile
windows/Makefile.in

# /windows/include
windows/include/Makefile
windows/include/Makefile.in

# /windows/utils
windows/utils/Makefile
windows/utils/Makefile.in

# stuff for local development
# local/
# local
