diff --git a/.gitignore b/.gitignore
index 10c4807deeb0bc0087cd866d3525ea972e641256..9cef935ca738a1b5ae5dcd387639c8afd8a91440 100644
--- a/.gitignore
+++ b/.gitignore
@@ -24,6 +24,7 @@ frama_c_journal.ml
 /frama-c-*.tar.gz
 /.merlin
 /headers/hdrck
+/headers/hdrck.exe
 
 #build
 
@@ -64,6 +65,10 @@ autom4te.cache
 /devel_tools/fc-time
 /devel_tools/fc-memuse
 /bin/ocamldep_transitive_closure
+/bin/check_newlines
+/bin/check_newlines.exe
+/bin/isutf8
+/bin/isutf8.exe
 
 #share
 /share/Makefile.config
diff --git a/Makefile b/Makefile
index 9f8f99e9b5e3a794996712a698fed3660a7053c8..78f43ee735682bb7ce238b88abd860759049e37c 100644
--- a/Makefile
+++ b/Makefile
@@ -243,7 +243,7 @@ DISTRIB_FILES:=\
       $(THEME_ICONS_FLAT)                                               \
       man/frama-c.1 doc/README						\
       doc/code/docgen.ml                                                \
-      doc/code/*.css doc/code/intro_plugin.txt				\
+      $(wildcard doc/code/*.css) doc/code/intro_plugin.txt              \
       doc/code/intro_plugin_D_and_S.txt                                 \
       doc/code/intro_plugin_default.txt                                 \
       doc/code/intro_kernel_plugin.txt					\
@@ -329,12 +329,17 @@ DISTRIB_FILES:=\
 
 # Test files to be included in the distribution (without header checking).
 # Plug-ins should use PLUGIN_DISTRIB_TESTS to export their test files.
-DISTRIB_TESTS=$(shell git ls-files \
+DISTRIB_TESTS=$(shell find \
                   tests \
                   src/plugins/aorai/tests \
                   src/plugins/report/tests \
-                  src/plugins/wp/tests | $(SED) 's/ /@/g')
-
+                  src/plugins/wp/tests \
+                  -type d -name result -prune -false \
+                  -o -type d -name 'result_*' -prune -false \
+                  -o -path 'tests/crowbar/*' -type d \! -name input -prune -false \
+                  -o -type f \! -name "*\.log" \! -name "*\.o" \
+                    \! -name '*~' \! -name "*\.cm*"  \! -name "*.sav" \
+                    -perm /u+w | sed -e 's/ /@/g')
 
 # files that are needed to compile API documentation of external plugins
 DOC_GEN_FILES:=$(addprefix doc/code/,\
@@ -2133,7 +2138,7 @@ else
 endif
 
 hdrck-clean:
-	$(RM) headers/hdrck headers/hdrck.o
+	$(RM) $(HDRCK) headers/hdrck.o
 	$(RM) headers/hdrck.cmx headers/hdrck.cmi headers/hdrck.cmp
 
 clean:: hdrck-clean
@@ -2141,6 +2146,55 @@ clean:: hdrck-clean
 CURRENT_HEADERS?=open-source
 CURRENT_HEADER_DIRS?=$(addsuffix /$(CURRENT_HEADERS),$(HEADER_DIRS))
 
+CHECK_NEWLINES:=./bin/check_newlines$(EXE)
+
+$(CHECK_NEWLINES): bin/check_newlines.ml
+	$(PRINT_MAKING)	$@
+ifeq ($(OCAMLBEST),opt)
+	$(OCAMLOPT) unix.cmxa $< -o $@
+else
+	$(OCAMLC) unix.cma $< -o $@
+endif
+
+check-newlines-clean:
+	$(RM) $(CHECK_NEWLINES) bin/check_newlines.cm* bin/check_newlines.o
+
+clean:: check-newlines-clean
+
+ISUTF8:=./bin/isutf8$(EXE)
+
+$(ISUTF8): bin/isutf8.ml
+	$(PRINT_MAKING)	$@
+ifeq ($(OCAMLBEST),opt)
+	$(OCAMLOPT) $< -o $@
+else
+	$(OCAMLC) $< -o $@
+endif
+
+isutf8-clean:
+	$(RM) $(ISUTF8) bin/isutf8.cm* bin/isutf8.o
+
+clean:: isutf8-clean
+
+FILES_WITHOUT_NEWLINE := \
+  VERSION \
+  VERSION_CODENAME
+
+BINARY_DISTRIB_FILES := \
+  $(sort $(wildcard ivette/src/dome/doc/template/static/fonts/*)) \
+  $(sort $(wildcard share/*.ico share/*.png share/theme/*/*.png))
+
+BINARY_DISTRIB_TESTS := \
+  tests/misc/oracle/interpreted_automata_dataflow_backward.dot \
+  tests/misc/oracle/interpreted_automata_dataflow_forward.dot \
+  tests/verisec/suite/programs/apps/SpamAssassin/BID-6679/message_write/test \
+  tests/verisec/suite/programs/apps/sendmail/CVE-1999-0047/mime7to8/array_vs_pointer.ods \
+  tests/verisec/suite/programs/apps/sendmail/CVE-1999-0047/mime7to8/data_testing.ods \
+
+TESTS_WITHOUT_NEWLINE := \
+  $(BINARY_DISTRIB_TESTS) \
+  tests/spec/unfinished-oneline-acsl-comment.i \
+
 # OPEN_SOURCE: set it to 'yes' if you want to check open source headers
 # STRICT_HEADERS: set it to 'yes' if you want to consider warnings as errors
 # The target check-headers does the following checks:
@@ -2153,34 +2207,22 @@ CURRENT_HEADER_DIRS?=$(addsuffix /$(CURRENT_HEADERS),$(HEADER_DIRS))
 # because identical headers but with different encodings are not exactly
 # easy to distinguish
 .PHONY: check-headers
-check-headers: $(HDRCK)
+check-headers: $(HDRCK) $(CHECK_NEWLINES) $(ISUTF8)
 	$(PRINT) "Checking $(DISTRIB_HEADERS) headers (OPEN_SOURCE=$(OPEN_SOURCE), CURRENT_HEADERS=$(CURRENT_HEADERS))..."
 	$(PRINT) "- HEADER_SPEC_FILE=$(HEADER_SPEC_FILE)"
 	$(PRINT) "- CURRENT_HEADER_DIRS=$(CURRENT_HEADER_DIRS)"
 	$(PRINT) "- FORBIDDEN_HEADERS=$(DISTRIB_PROPRIETARY_HEADERS)"
-	 # Workaround to avoid "argument list too long" in make 3.82+ without
-	 # using 'file' built-in, only available on make 4.0+
-	 # for make 4.0+, using the 'file' function could be a better solution,
-	 # although it seems to segfault in 4.0 (but not in 4.1)
-	$(RM) distrib_files.tmp distrib_tests.tmp header_exceptions.tmp
-	@$(foreach file,$(DISTRIB_FILES),\
-			echo $(file) >> distrib_files.tmp$(NEWLINE))
-	@$(foreach file,$(DISTRIB_TESTS),\
-			echo $(file) >> distrib_tests.tmp$(NEWLINE))
-	@$(foreach file,$(HEADER_EXCEPTIONS),\
-			echo $(file) >> header_exceptions.tmp$(NEWLINE))
-
+	# Workaround to avoid "argument list too long" in Cygwin
+	$(file >distrib_files.tmp) $(foreach O,$(DISTRIB_FILES),$(file >>distrib_files.tmp,$O))
+	$(file >distrib_tests.tmp) $(foreach O,$(DISTRIB_TESTS),$(file >>distrib_tests.tmp,$(subst @, ,$(O))))
+	$(file >header_exceptions.tmp) $(foreach O,$(HEADER_EXCEPTIONS),$(file >>header_exceptions.tmp,$O))
 	echo "Checking that distributed files terminate with a newline..."
-	bin/check_newline.sh distrib_files.tmp
-	bin/check_newline.sh distrib_tests.tmp
-	@if command -v file >/dev/null 2>/dev/null; then \
-		echo "Checking that distributed files do not use iso-8859..."; \
-		file --mime-encoding -f distrib_files.tmp -f distrib_tests.tmp | \
-			grep "iso-8859" \
-			| $(SED) "s/^/error: invalid encoding in /" \
-			| ( ! grep "error: invalid encoding" ); \
-	else echo "command 'file' not found, skipping encoding checks"; \
-	fi
+	$(CHECK_NEWLINES) distrib_files.tmp $(FILES_WITHOUT_NEWLINE) $(BINARY_DISTRIB_FILES)
+	$(CHECK_NEWLINES) distrib_tests.tmp $(TESTS_WITHOUT_NEWLINE) $(BINARY_DISTRIB_TESTS)
+	echo "Checking that distributed files do not use iso-8859..."
+	$(ISUTF8) distrib_files.tmp $(BINARY_DISTRIB_FILES)
+	$(ISUTF8) distrib_tests.tmp $(BINARY_DISTRIB_TESTS)
+	echo "Checking headers..."
 	$(HDRCK) \
 		$(HDRCK_EXTRA) \
 		$(addprefix -header-dirs ,$(CURRENT_HEADER_DIRS)) \
@@ -2481,13 +2523,10 @@ else
 endif
 	$(RM) -r $(CLIENT_DIR)
 	$(MKDIR) -p $(CLIENT_DIR)
-	@#Workaround to avoid "argument list too long" in make 3.82+ without
-	@#using 'file' built-in, only available on make 4.0+
-	@#for make 4.0+, using the 'file' function could be a better solution,
-	@#although it seems to segfault in 4.0 (but not in 4.1)
-	$(RM) file_list_to_archive.tmp
-	@$(foreach file,$(DISTRIB_FILES) $(DISTRIB_TESTS),\
-			echo $(file) | $(SED) 's/@/ /g' >> file_list_to_archive.tmp$(NEWLINE))
+	#Workaround to avoid "argument list too long" in Cygwin
+	$(file >file_list_to_archive.tmp)
+	$(foreach f,$(DISTRIB_FILES), \
+             $(file >>file_list_to_archive.tmp,$(subst @, ,$(f))))
 	$(TAR) -cf - --files-from file_list_to_archive.tmp | $(TAR) -C $(CLIENT_DIR) -xf -
 	$(RM) file_list_to_archive.tmp
 	$(PRINT_MAKING) files
diff --git a/bin/check_newline.sh b/bin/check_newline.sh
deleted file mode 100755
index d2ff0d0689244708c5965fd35619ef24f0cb9559..0000000000000000000000000000000000000000
--- a/bin/check_newline.sh
+++ /dev/null
@@ -1,36 +0,0 @@
-#!/bin/bash -e
-
-# $1: file containing the list of files to check
-# prints a warning for each file not finishing with a newline,
-# unless it is one of a few well-known exceptions (e.g. VERSION).
-# Note: requires the 'file' command-line tool to check which files are text.
-
-if [ $# -lt 1 ]; then
-    echo "usage: $0 file_list.txt"
-    exit 2
-fi
-
-is_likely_text_file() {
-    case $(file -b --mime-type - < "$1") in
-        (text/*) echo "1"
-    esac
-}
-
-errors=0
-
-IFS=''
-while read file
-do
-    if [ -n "$(is_likely_text_file "$file")" ]; then
-        x=$(tail -c 1 "$file")
-        if [ "$x" != "" ] && [ "$file" != "VERSION" ] && [ "$file" != "VERSION_CODENAME" ]; then
-            echo "error: no newline at end of file: $file"
-            errors=$((errors+1))
-        fi
-    fi
-done < <(file -f "$1" --mime | grep '\btext' | cut -d: -f1)
-
-if [ $errors -gt 0 ]; then
-    echo "Found $errors file(s) with errors."
-    exit 1
-fi
diff --git a/bin/check_newlines.ml b/bin/check_newlines.ml
new file mode 100644
index 0000000000000000000000000000000000000000..4524bdc80d9d1e14edd919acb4de2e4db746a7eb
--- /dev/null
+++ b/bin/check_newlines.ml
@@ -0,0 +1,55 @@
+module StringSet = Set.Make(String)
+
+(* returns true for empty files *)
+let is_last_byte_newline filename =
+  try
+    let ic = open_in filename in
+    try
+      let fd = Unix.descr_of_in_channel ic in
+      ignore (Unix.lseek fd (-1) Unix.SEEK_END);
+      let buf = Bytes.create 1 in
+      let n_bytes_read = Unix.read fd buf 0 1 in
+      close_in ic;
+      n_bytes_read <= 0 || Bytes.get buf 0 = '\n'
+    with
+    | Unix.Unix_error _ ->
+      (* probably an empty file; ignoring *)
+      close_in ic;
+      true
+  with
+  | Sys_error msg ->
+    (* possibly a non-existing file (e.g. with spaces); ignoring *)
+    Format.printf "check_newlines: cannot open, ignoring file: %s (%s)@."
+      filename msg;
+    true
+
+(* usage: first argument is a file name containing a list of files
+   (one per line) to be checked; the remaining arguments are a list of
+   files to be ignored during checking
+   (i.e. they do not terminate with newlines). *)
+let () =
+  if Array.length Sys.argv < 2 then begin
+    Format.printf "usage: %s file_list.txt [ignore1 ignore2 ...]@." Sys.argv.(0);
+    exit 0
+  end;
+  let errors = ref 0 in
+  let file_list_ic = open_in Sys.argv.(1) in
+  let to_ignore = StringSet.of_list (List.tl (Array.to_list Sys.argv)) in
+  begin
+    try
+      while true; do
+        let filename = input_line file_list_ic in
+        if not (StringSet.mem filename to_ignore) &&
+           not (is_last_byte_newline filename) then begin
+          incr errors;
+          Format.printf "error: no newline at end of file: %s@." filename
+        end
+      done
+    with End_of_file ->
+      close_in file_list_ic
+  end;
+  if !errors > 0 then begin
+    Format.printf "Found %d file(s) with errors.@." !errors;
+    exit 1
+  end else
+    exit 0
diff --git a/bin/isutf8.ml b/bin/isutf8.ml
new file mode 100644
index 0000000000000000000000000000000000000000..5950a0c6b826126676304be8212ae28b53c0cfdb
--- /dev/null
+++ b/bin/isutf8.ml
@@ -0,0 +1,75 @@
+module StringSet = Set.Make(String)
+
+exception False
+
+let is_valid_utf8 filename =
+  let buf = Bytes.create 1024 in
+  try
+    let ic = open_in_bin filename in
+    let extra = ref 0 in
+    try
+      while true do
+        let n_bytes_read = input ic buf 0 1024 in
+        if n_bytes_read = 0 then raise End_of_file;
+        for i = 0 to n_bytes_read - 1 do
+          let c = Bytes.get_uint8 buf i in
+          (*Format.printf "extra: %d, read byte: %d (0x%x, char %c)@."
+            !extra c c (Char.chr c);*)
+          if !extra > 0 then begin
+            decr extra;
+            if c lsr 6 <> 2 then raise False
+          end
+          else
+          if c > 127 then begin
+            if c lsr 5 = 6 then extra := 1
+            else if c lsr 4 = 14 then extra := 2
+            else if c lsr 3 = 30 then extra := 3
+            else raise False
+          end;
+        done;
+      done;
+      close_in ic;
+      !extra = 0
+    with
+    | End_of_file ->
+      close_in ic;
+      !extra = 0
+    | False ->
+      close_in ic;
+      false
+  with
+  | Sys_error msg ->
+    (* possibly a non-existing file (e.g. with spaces); ignoring *)
+    Format.printf "isutf8: cannot open, ignoring file: %s (%s)@."
+      filename msg;
+    true
+
+(* usage: first argument is a file name containing a list of files
+   (one per line) to be checked; the remaining arguments are filenames
+   to be ignored during checking. *)
+let () =
+  if Array.length Sys.argv < 2 then begin
+    Format.printf "usage: %s file_list.txt [ignore1 ignore2 ...]@." Sys.argv.(0);
+    exit 0
+  end;
+  let errors = ref 0 in
+  let file_list_ic = open_in Sys.argv.(1) in
+  let to_ignore = StringSet.of_list (List.tl (Array.to_list Sys.argv)) in
+  begin
+    try
+      while true; do
+        let filename = input_line file_list_ic in
+        if not (StringSet.mem filename to_ignore)
+        && not (is_valid_utf8 filename) then begin
+          incr errors;
+          Format.printf "error: invalid UTF-8 in file: %s@." filename
+        end
+      done
+    with End_of_file ->
+      close_in file_list_ic
+  end;
+  if !errors > 0 then begin
+    Format.printf "Found %d file(s) with errors.@." !errors;
+    exit 1
+  end else
+    exit 0
diff --git a/configure.in b/configure.in
index 450866b81f1652a307aebe1c4455e3b3f6268f51..bd80410d9aaabce56d487142e6068393de37b9c3 100644
--- a/configure.in
+++ b/configure.in
@@ -63,10 +63,9 @@ MAKE_DISTRIB=`sh -c "$MAKE -v | sed -n -e 's/\(.*\) Make.*$/\1/p'"`
 MAKE_MAJOR=`sh -c "$MAKE -v | sed -n  -f bin/sed_get_make_major"`
 MAKE_MINOR=`sh -c "$MAKE -v | sed -n -f bin/sed_get_make_minor"`
 AC_MSG_RESULT($MAKE_MAJOR.$MAKE_MINOR)
-if test "$MAKE_DISTRIB" != GNU -o "$MAKE_MAJOR" -lt 3 \
-   -o "$MAKE_MAJOR" = 3 -a "$MAKE_MINOR" -lt 81
+if test "$MAKE_DISTRIB" != GNU -o "$MAKE_MAJOR" -lt 4
 then
-   AC_MSG_ERROR([unsupported version; GNU Make version 3.81
+   AC_MSG_ERROR([unsupported version; GNU Make version 4.0
                  or higher is required.]);
 fi
 
diff --git a/ivette/Makefile b/ivette/Makefile
index ef435f71fcc3c84705dc22102e9aceb1dd585940..5eb6b875e790528e4fff0687bea2eded6f9f6ef4 100644
--- a/ivette/Makefile
+++ b/ivette/Makefile
@@ -81,7 +81,7 @@ update-distrib-files:
 	@rm -f $(SRC_HEADERS)
 	@for f in `git ls-files .` ;\
 	 do \
-		echo "DISTRIB_FILES += \"ivette/$$f\"" >> $(SRC_DISTRIB) ;\
+		echo "DISTRIB_FILES += ivette/$$f" >> $(SRC_DISTRIB) ;\
 		headers/register.sh "$$f" >> $(SRC_HEADERS) ; \
 	 done
 	@chmod a-w $(SRC_DISTRIB)
diff --git a/ivette/Makefile.distrib b/ivette/Makefile.distrib
index 75c2c3789150a11a9f559041240c67df95a6dbf8..ed4123a71fc5b3e767074da04caff2bdfe4c7faa 100644
--- a/ivette/Makefile.distrib
+++ b/ivette/Makefile.distrib
@@ -1,200 +1,200 @@
-DISTRIB_FILES += "ivette/.babelrc"
-DISTRIB_FILES += "ivette/.dome-pkg-app.lock"
-DISTRIB_FILES += "ivette/.dome-pkg-dev.lock"
-DISTRIB_FILES += "ivette/.eslintignore"
-DISTRIB_FILES += "ivette/.eslintrc.js"
-DISTRIB_FILES += "ivette/.gitignore"
-DISTRIB_FILES += "ivette/CONTRIBUTING.md"
-DISTRIB_FILES += "ivette/INSTALL.md"
-DISTRIB_FILES += "ivette/Makefile"
-DISTRIB_FILES += "ivette/Makefile.distrib"
-DISTRIB_FILES += "ivette/README.md"
-DISTRIB_FILES += "ivette/configure.js"
-DISTRIB_FILES += "ivette/doc/pandoc/href.lua"
-DISTRIB_FILES += "ivette/doc/pandoc/index.json"
-DISTRIB_FILES += "ivette/doc/pandoc/template.html"
-DISTRIB_FILES += "ivette/electron-webpack.json"
-DISTRIB_FILES += "ivette/headers/header_spec.txt"
-DISTRIB_FILES += "ivette/headers/register.sh"
-DISTRIB_FILES += "ivette/package.json"
-DISTRIB_FILES += "ivette/src/dome/.gitignore"
-DISTRIB_FILES += "ivette/src/dome/CONTRIBUTING.md"
-DISTRIB_FILES += "ivette/src/dome/CONTRIBUTORS.md"
-DISTRIB_FILES += "ivette/src/dome/LICENSE.md"
-DISTRIB_FILES += "ivette/src/dome/README.md"
-DISTRIB_FILES += "ivette/src/dome/doc/README.md"
-DISTRIB_FILES += "ivette/src/dome/doc/config.json"
-DISTRIB_FILES += "ivette/src/dome/doc/gallery.css"
-DISTRIB_FILES += "ivette/src/dome/doc/guides/application.md"
-DISTRIB_FILES += "ivette/src/dome/doc/guides/development.md"
-DISTRIB_FILES += "ivette/src/dome/doc/guides/dome.md"
-DISTRIB_FILES += "ivette/src/dome/doc/guides/glossary.md"
-DISTRIB_FILES += "ivette/src/dome/doc/guides/hooks.md"
-DISTRIB_FILES += "ivette/src/dome/doc/guides/hotreload.md"
-DISTRIB_FILES += "ivette/src/dome/doc/guides/quickstart.md"
-DISTRIB_FILES += "ivette/src/dome/doc/guides/styling.md"
-DISTRIB_FILES += "ivette/src/dome/doc/icons.js"
-DISTRIB_FILES += "ivette/src/dome/doc/iconsmd.js"
-DISTRIB_FILES += "ivette/src/dome/doc/template/gallery-head.html"
-DISTRIB_FILES += "ivette/src/dome/doc/template/gallery-tail.html"
-DISTRIB_FILES += "ivette/src/dome/doc/template/publish.js"
-DISTRIB_FILES += "ivette/src/dome/doc/template/static/fonts/OpenSans-Bold-webfont.eot"
-DISTRIB_FILES += "ivette/src/dome/doc/template/static/fonts/OpenSans-Bold-webfont.svg"
-DISTRIB_FILES += "ivette/src/dome/doc/template/static/fonts/OpenSans-Bold-webfont.woff"
-DISTRIB_FILES += "ivette/src/dome/doc/template/static/fonts/OpenSans-BoldItalic-webfont.eot"
-DISTRIB_FILES += "ivette/src/dome/doc/template/static/fonts/OpenSans-BoldItalic-webfont.svg"
-DISTRIB_FILES += "ivette/src/dome/doc/template/static/fonts/OpenSans-BoldItalic-webfont.woff"
-DISTRIB_FILES += "ivette/src/dome/doc/template/static/fonts/OpenSans-Italic-webfont.eot"
-DISTRIB_FILES += "ivette/src/dome/doc/template/static/fonts/OpenSans-Italic-webfont.svg"
-DISTRIB_FILES += "ivette/src/dome/doc/template/static/fonts/OpenSans-Italic-webfont.woff"
-DISTRIB_FILES += "ivette/src/dome/doc/template/static/fonts/OpenSans-Light-webfont.eot"
-DISTRIB_FILES += "ivette/src/dome/doc/template/static/fonts/OpenSans-Light-webfont.svg"
-DISTRIB_FILES += "ivette/src/dome/doc/template/static/fonts/OpenSans-Light-webfont.woff"
-DISTRIB_FILES += "ivette/src/dome/doc/template/static/fonts/OpenSans-LightItalic-webfont.eot"
-DISTRIB_FILES += "ivette/src/dome/doc/template/static/fonts/OpenSans-LightItalic-webfont.svg"
-DISTRIB_FILES += "ivette/src/dome/doc/template/static/fonts/OpenSans-LightItalic-webfont.woff"
-DISTRIB_FILES += "ivette/src/dome/doc/template/static/fonts/OpenSans-Regular-webfont.eot"
-DISTRIB_FILES += "ivette/src/dome/doc/template/static/fonts/OpenSans-Regular-webfont.svg"
-DISTRIB_FILES += "ivette/src/dome/doc/template/static/fonts/OpenSans-Regular-webfont.woff"
-DISTRIB_FILES += "ivette/src/dome/doc/template/static/scripts/linenumber.js"
-DISTRIB_FILES += "ivette/src/dome/doc/template/static/scripts/prettify/Apache-License-2.0.txt"
-DISTRIB_FILES += "ivette/src/dome/doc/template/static/scripts/prettify/lang-css.js"
-DISTRIB_FILES += "ivette/src/dome/doc/template/static/scripts/prettify/prettify.js"
-DISTRIB_FILES += "ivette/src/dome/doc/template/static/styles/jsdoc-default.css"
-DISTRIB_FILES += "ivette/src/dome/doc/template/static/styles/prettify-jsdoc.css"
-DISTRIB_FILES += "ivette/src/dome/doc/template/static/styles/prettify-tomorrow.css"
-DISTRIB_FILES += "ivette/src/dome/doc/template/tmpl/augments.tmpl"
-DISTRIB_FILES += "ivette/src/dome/doc/template/tmpl/container.tmpl"
-DISTRIB_FILES += "ivette/src/dome/doc/template/tmpl/details.tmpl"
-DISTRIB_FILES += "ivette/src/dome/doc/template/tmpl/example.tmpl"
-DISTRIB_FILES += "ivette/src/dome/doc/template/tmpl/examples.tmpl"
-DISTRIB_FILES += "ivette/src/dome/doc/template/tmpl/exceptions.tmpl"
-DISTRIB_FILES += "ivette/src/dome/doc/template/tmpl/layout.tmpl"
-DISTRIB_FILES += "ivette/src/dome/doc/template/tmpl/mainpage.tmpl"
-DISTRIB_FILES += "ivette/src/dome/doc/template/tmpl/members.tmpl"
-DISTRIB_FILES += "ivette/src/dome/doc/template/tmpl/method.tmpl"
-DISTRIB_FILES += "ivette/src/dome/doc/template/tmpl/params.tmpl"
-DISTRIB_FILES += "ivette/src/dome/doc/template/tmpl/properties.tmpl"
-DISTRIB_FILES += "ivette/src/dome/doc/template/tmpl/returns.tmpl"
-DISTRIB_FILES += "ivette/src/dome/doc/template/tmpl/source.tmpl"
-DISTRIB_FILES += "ivette/src/dome/doc/template/tmpl/tutorial.tmpl"
-DISTRIB_FILES += "ivette/src/dome/doc/template/tmpl/type.tmpl"
-DISTRIB_FILES += "ivette/src/dome/examples/Makefile"
-DISTRIB_FILES += "ivette/src/dome/examples/README.md"
-DISTRIB_FILES += "ivette/src/dome/main/dome.ts"
-DISTRIB_FILES += "ivette/src/dome/main/menubar.ts"
-DISTRIB_FILES += "ivette/src/dome/misc/devtools.js"
-DISTRIB_FILES += "ivette/src/dome/misc/register.js"
-DISTRIB_FILES += "ivette/src/dome/misc/system.ts"
-DISTRIB_FILES += "ivette/src/dome/misc/utils.ts"
-DISTRIB_FILES += "ivette/src/dome/renderer/controls/buttons.tsx"
-DISTRIB_FILES += "ivette/src/dome/renderer/controls/gallery.json"
-DISTRIB_FILES += "ivette/src/dome/renderer/controls/icons.tsx"
-DISTRIB_FILES += "ivette/src/dome/renderer/controls/labels.tsx"
-DISTRIB_FILES += "ivette/src/dome/renderer/controls/style.css"
-DISTRIB_FILES += "ivette/src/dome/renderer/data/compare.ts"
-DISTRIB_FILES += "ivette/src/dome/renderer/data/json.ts"
-DISTRIB_FILES += "ivette/src/dome/renderer/data/library.js"
-DISTRIB_FILES += "ivette/src/dome/renderer/data/settings.ts"
-DISTRIB_FILES += "ivette/src/dome/renderer/data/states.ts"
-DISTRIB_FILES += "ivette/src/dome/renderer/dialogs.tsx"
-DISTRIB_FILES += "ivette/src/dome/renderer/dnd.js"
-DISTRIB_FILES += "ivette/src/dome/renderer/dome.tsx"
-DISTRIB_FILES += "ivette/src/dome/renderer/errors.tsx"
-DISTRIB_FILES += "ivette/src/dome/renderer/frame/sidebars.tsx"
-DISTRIB_FILES += "ivette/src/dome/renderer/frame/style.css"
-DISTRIB_FILES += "ivette/src/dome/renderer/frame/tabs.tsx"
-DISTRIB_FILES += "ivette/src/dome/renderer/frame/toolbars.tsx"
-DISTRIB_FILES += "ivette/src/dome/renderer/layout/boxes.tsx"
-DISTRIB_FILES += "ivette/src/dome/renderer/layout/dispatch.tsx"
-DISTRIB_FILES += "ivette/src/dome/renderer/layout/forms.tsx"
-DISTRIB_FILES += "ivette/src/dome/renderer/layout/grids.js"
-DISTRIB_FILES += "ivette/src/dome/renderer/layout/splitters.tsx"
-DISTRIB_FILES += "ivette/src/dome/renderer/layout/style.css"
-DISTRIB_FILES += "ivette/src/dome/renderer/style.css"
-DISTRIB_FILES += "ivette/src/dome/renderer/table/arrays.ts"
-DISTRIB_FILES += "ivette/src/dome/renderer/table/models.ts"
-DISTRIB_FILES += "ivette/src/dome/renderer/table/style.css"
-DISTRIB_FILES += "ivette/src/dome/renderer/table/views.tsx"
-DISTRIB_FILES += "ivette/src/dome/renderer/text/buffers.ts"
-DISTRIB_FILES += "ivette/src/dome/renderer/text/editors.tsx"
-DISTRIB_FILES += "ivette/src/dome/renderer/text/pages.tsx"
-DISTRIB_FILES += "ivette/src/dome/renderer/text/style.css"
-DISTRIB_FILES += "ivette/src/dome/template/Application.js"
-DISTRIB_FILES += "ivette/src/dome/template/Preferences.js"
-DISTRIB_FILES += "ivette/src/dome/template/babelrc.json"
-DISTRIB_FILES += "ivette/src/dome/template/dome-pull.sh"
-DISTRIB_FILES += "ivette/src/dome/template/dome-push.sh"
-DISTRIB_FILES += "ivette/src/dome/template/electron-webpack.json"
-DISTRIB_FILES += "ivette/src/dome/template/export.sh"
-DISTRIB_FILES += "ivette/src/dome/template/git-ignore"
-DISTRIB_FILES += "ivette/src/dome/template/main.js"
-DISTRIB_FILES += "ivette/src/dome/template/makefile"
-DISTRIB_FILES += "ivette/src/dome/template/makefile.app.packages"
-DISTRIB_FILES += "ivette/src/dome/template/makefile.packages"
-DISTRIB_FILES += "ivette/src/dome/template/package.sh"
-DISTRIB_FILES += "ivette/src/dome/template/renderer.js"
-DISTRIB_FILES += "ivette/src/dome/template/typescript.el"
-DISTRIB_FILES += "ivette/src/dome/template/update.sh"
-DISTRIB_FILES += "ivette/src/dome/template/webpack.main.js"
-DISTRIB_FILES += "ivette/src/dome/template/webpack.renderer.js"
-DISTRIB_FILES += "ivette/src/frama-c/api/generated/kernel/ast/index.ts"
-DISTRIB_FILES += "ivette/src/frama-c/api/generated/kernel/data/index.ts"
-DISTRIB_FILES += "ivette/src/frama-c/api/generated/kernel/project/index.ts"
-DISTRIB_FILES += "ivette/src/frama-c/api/generated/kernel/properties/index.ts"
-DISTRIB_FILES += "ivette/src/frama-c/api/generated/kernel/services/index.ts"
-DISTRIB_FILES += "ivette/src/frama-c/api/generated/plugins/dive/index.ts"
-DISTRIB_FILES += "ivette/src/frama-c/api/generated/plugins/eva/general/index.ts"
-DISTRIB_FILES += "ivette/src/frama-c/api/generated/plugins/eva/values/index.ts"
-DISTRIB_FILES += "ivette/src/frama-c/api/generated/plugins/studia/studia/index.ts"
-DISTRIB_FILES += "ivette/src/frama-c/api/generator.ml"
-DISTRIB_FILES += "ivette/src/frama-c/index.tsx"
-DISTRIB_FILES += "ivette/src/frama-c/kernel/ASTinfo.tsx"
-DISTRIB_FILES += "ivette/src/frama-c/kernel/ASTview.tsx"
-DISTRIB_FILES += "ivette/src/frama-c/kernel/Globals.tsx"
-DISTRIB_FILES += "ivette/src/frama-c/kernel/History.tsx"
-DISTRIB_FILES += "ivette/src/frama-c/kernel/Locations.tsx"
-DISTRIB_FILES += "ivette/src/frama-c/kernel/Properties.tsx"
-DISTRIB_FILES += "ivette/src/frama-c/kernel/SourceCode.tsx"
-DISTRIB_FILES += "ivette/src/frama-c/kernel/style.css"
-DISTRIB_FILES += "ivette/src/frama-c/pkg.json"
-DISTRIB_FILES += "ivette/src/frama-c/plugins/dive/cytoscape_libs.js"
-DISTRIB_FILES += "ivette/src/frama-c/plugins/dive/index.tsx"
-DISTRIB_FILES += "ivette/src/frama-c/plugins/dive/layouts.json"
-DISTRIB_FILES += "ivette/src/frama-c/plugins/dive/pkg.json"
-DISTRIB_FILES += "ivette/src/frama-c/plugins/dive/react-cytoscapejs.d.ts"
-DISTRIB_FILES += "ivette/src/frama-c/plugins/dive/style.json"
-DISTRIB_FILES += "ivette/src/frama-c/plugins/dive/tippy.css"
-DISTRIB_FILES += "ivette/src/frama-c/plugins/eva/cells.ts"
-DISTRIB_FILES += "ivette/src/frama-c/plugins/eva/diffed.tsx"
-DISTRIB_FILES += "ivette/src/frama-c/plugins/eva/index.tsx"
-DISTRIB_FILES += "ivette/src/frama-c/plugins/eva/layout.ts"
-DISTRIB_FILES += "ivette/src/frama-c/plugins/eva/model.ts"
-DISTRIB_FILES += "ivette/src/frama-c/plugins/eva/pkg.json"
-DISTRIB_FILES += "ivette/src/frama-c/plugins/eva/probeinfos.tsx"
-DISTRIB_FILES += "ivette/src/frama-c/plugins/eva/probes.ts"
-DISTRIB_FILES += "ivette/src/frama-c/plugins/eva/sized.tsx"
-DISTRIB_FILES += "ivette/src/frama-c/plugins/eva/stacks.ts"
-DISTRIB_FILES += "ivette/src/frama-c/plugins/eva/style.css"
-DISTRIB_FILES += "ivette/src/frama-c/plugins/eva/valueinfos.tsx"
-DISTRIB_FILES += "ivette/src/frama-c/plugins/eva/valuetable.tsx"
-DISTRIB_FILES += "ivette/src/frama-c/server.ts"
-DISTRIB_FILES += "ivette/src/frama-c/states.ts"
-DISTRIB_FILES += "ivette/src/frama-c/utils.ts"
-DISTRIB_FILES += "ivette/src/ivette/index.tsx"
-DISTRIB_FILES += "ivette/src/ivette/prefs.tsx"
-DISTRIB_FILES += "ivette/src/main/index.js"
-DISTRIB_FILES += "ivette/src/renderer/Application.tsx"
-DISTRIB_FILES += "ivette/src/renderer/Controller.tsx"
-DISTRIB_FILES += "ivette/src/renderer/Extensions.tsx"
-DISTRIB_FILES += "ivette/src/renderer/Laboratory.tsx"
-DISTRIB_FILES += "ivette/src/renderer/Preferences.tsx"
-DISTRIB_FILES += "ivette/src/renderer/index.js"
-DISTRIB_FILES += "ivette/src/renderer/style.css"
-DISTRIB_FILES += "ivette/tests/eva-1.i"
-DISTRIB_FILES += "ivette/tests/eva-2.i"
-DISTRIB_FILES += "ivette/tsconfig.json"
-DISTRIB_FILES += "ivette/tsfmt.json"
-DISTRIB_FILES += "ivette/webpack.main.js"
-DISTRIB_FILES += "ivette/webpack.renderer.js"
-DISTRIB_FILES += "ivette/yarn.lock"
+DISTRIB_FILES += ivette/.babelrc
+DISTRIB_FILES += ivette/.dome-pkg-app.lock
+DISTRIB_FILES += ivette/.dome-pkg-dev.lock
+DISTRIB_FILES += ivette/.eslintignore
+DISTRIB_FILES += ivette/.eslintrc.js
+DISTRIB_FILES += ivette/.gitignore
+DISTRIB_FILES += ivette/CONTRIBUTING.md
+DISTRIB_FILES += ivette/INSTALL.md
+DISTRIB_FILES += ivette/Makefile
+DISTRIB_FILES += ivette/Makefile.distrib
+DISTRIB_FILES += ivette/README.md
+DISTRIB_FILES += ivette/configure.js
+DISTRIB_FILES += ivette/doc/pandoc/href.lua
+DISTRIB_FILES += ivette/doc/pandoc/index.json
+DISTRIB_FILES += ivette/doc/pandoc/template.html
+DISTRIB_FILES += ivette/electron-webpack.json
+DISTRIB_FILES += ivette/headers/header_spec.txt
+DISTRIB_FILES += ivette/headers/register.sh
+DISTRIB_FILES += ivette/package.json
+DISTRIB_FILES += ivette/src/dome/.gitignore
+DISTRIB_FILES += ivette/src/dome/CONTRIBUTING.md
+DISTRIB_FILES += ivette/src/dome/CONTRIBUTORS.md
+DISTRIB_FILES += ivette/src/dome/LICENSE.md
+DISTRIB_FILES += ivette/src/dome/README.md
+DISTRIB_FILES += ivette/src/dome/doc/README.md
+DISTRIB_FILES += ivette/src/dome/doc/config.json
+DISTRIB_FILES += ivette/src/dome/doc/gallery.css
+DISTRIB_FILES += ivette/src/dome/doc/guides/application.md
+DISTRIB_FILES += ivette/src/dome/doc/guides/development.md
+DISTRIB_FILES += ivette/src/dome/doc/guides/dome.md
+DISTRIB_FILES += ivette/src/dome/doc/guides/glossary.md
+DISTRIB_FILES += ivette/src/dome/doc/guides/hooks.md
+DISTRIB_FILES += ivette/src/dome/doc/guides/hotreload.md
+DISTRIB_FILES += ivette/src/dome/doc/guides/quickstart.md
+DISTRIB_FILES += ivette/src/dome/doc/guides/styling.md
+DISTRIB_FILES += ivette/src/dome/doc/icons.js
+DISTRIB_FILES += ivette/src/dome/doc/iconsmd.js
+DISTRIB_FILES += ivette/src/dome/doc/template/gallery-head.html
+DISTRIB_FILES += ivette/src/dome/doc/template/gallery-tail.html
+DISTRIB_FILES += ivette/src/dome/doc/template/publish.js
+DISTRIB_FILES += ivette/src/dome/doc/template/static/fonts/OpenSans-Bold-webfont.eot
+DISTRIB_FILES += ivette/src/dome/doc/template/static/fonts/OpenSans-Bold-webfont.svg
+DISTRIB_FILES += ivette/src/dome/doc/template/static/fonts/OpenSans-Bold-webfont.woff
+DISTRIB_FILES += ivette/src/dome/doc/template/static/fonts/OpenSans-BoldItalic-webfont.eot
+DISTRIB_FILES += ivette/src/dome/doc/template/static/fonts/OpenSans-BoldItalic-webfont.svg
+DISTRIB_FILES += ivette/src/dome/doc/template/static/fonts/OpenSans-BoldItalic-webfont.woff
+DISTRIB_FILES += ivette/src/dome/doc/template/static/fonts/OpenSans-Italic-webfont.eot
+DISTRIB_FILES += ivette/src/dome/doc/template/static/fonts/OpenSans-Italic-webfont.svg
+DISTRIB_FILES += ivette/src/dome/doc/template/static/fonts/OpenSans-Italic-webfont.woff
+DISTRIB_FILES += ivette/src/dome/doc/template/static/fonts/OpenSans-Light-webfont.eot
+DISTRIB_FILES += ivette/src/dome/doc/template/static/fonts/OpenSans-Light-webfont.svg
+DISTRIB_FILES += ivette/src/dome/doc/template/static/fonts/OpenSans-Light-webfont.woff
+DISTRIB_FILES += ivette/src/dome/doc/template/static/fonts/OpenSans-LightItalic-webfont.eot
+DISTRIB_FILES += ivette/src/dome/doc/template/static/fonts/OpenSans-LightItalic-webfont.svg
+DISTRIB_FILES += ivette/src/dome/doc/template/static/fonts/OpenSans-LightItalic-webfont.woff
+DISTRIB_FILES += ivette/src/dome/doc/template/static/fonts/OpenSans-Regular-webfont.eot
+DISTRIB_FILES += ivette/src/dome/doc/template/static/fonts/OpenSans-Regular-webfont.svg
+DISTRIB_FILES += ivette/src/dome/doc/template/static/fonts/OpenSans-Regular-webfont.woff
+DISTRIB_FILES += ivette/src/dome/doc/template/static/scripts/linenumber.js
+DISTRIB_FILES += ivette/src/dome/doc/template/static/scripts/prettify/Apache-License-2.0.txt
+DISTRIB_FILES += ivette/src/dome/doc/template/static/scripts/prettify/lang-css.js
+DISTRIB_FILES += ivette/src/dome/doc/template/static/scripts/prettify/prettify.js
+DISTRIB_FILES += ivette/src/dome/doc/template/static/styles/jsdoc-default.css
+DISTRIB_FILES += ivette/src/dome/doc/template/static/styles/prettify-jsdoc.css
+DISTRIB_FILES += ivette/src/dome/doc/template/static/styles/prettify-tomorrow.css
+DISTRIB_FILES += ivette/src/dome/doc/template/tmpl/augments.tmpl
+DISTRIB_FILES += ivette/src/dome/doc/template/tmpl/container.tmpl
+DISTRIB_FILES += ivette/src/dome/doc/template/tmpl/details.tmpl
+DISTRIB_FILES += ivette/src/dome/doc/template/tmpl/example.tmpl
+DISTRIB_FILES += ivette/src/dome/doc/template/tmpl/examples.tmpl
+DISTRIB_FILES += ivette/src/dome/doc/template/tmpl/exceptions.tmpl
+DISTRIB_FILES += ivette/src/dome/doc/template/tmpl/layout.tmpl
+DISTRIB_FILES += ivette/src/dome/doc/template/tmpl/mainpage.tmpl
+DISTRIB_FILES += ivette/src/dome/doc/template/tmpl/members.tmpl
+DISTRIB_FILES += ivette/src/dome/doc/template/tmpl/method.tmpl
+DISTRIB_FILES += ivette/src/dome/doc/template/tmpl/params.tmpl
+DISTRIB_FILES += ivette/src/dome/doc/template/tmpl/properties.tmpl
+DISTRIB_FILES += ivette/src/dome/doc/template/tmpl/returns.tmpl
+DISTRIB_FILES += ivette/src/dome/doc/template/tmpl/source.tmpl
+DISTRIB_FILES += ivette/src/dome/doc/template/tmpl/tutorial.tmpl
+DISTRIB_FILES += ivette/src/dome/doc/template/tmpl/type.tmpl
+DISTRIB_FILES += ivette/src/dome/examples/Makefile
+DISTRIB_FILES += ivette/src/dome/examples/README.md
+DISTRIB_FILES += ivette/src/dome/main/dome.ts
+DISTRIB_FILES += ivette/src/dome/main/menubar.ts
+DISTRIB_FILES += ivette/src/dome/misc/devtools.js
+DISTRIB_FILES += ivette/src/dome/misc/register.js
+DISTRIB_FILES += ivette/src/dome/misc/system.ts
+DISTRIB_FILES += ivette/src/dome/misc/utils.ts
+DISTRIB_FILES += ivette/src/dome/renderer/controls/buttons.tsx
+DISTRIB_FILES += ivette/src/dome/renderer/controls/gallery.json
+DISTRIB_FILES += ivette/src/dome/renderer/controls/icons.tsx
+DISTRIB_FILES += ivette/src/dome/renderer/controls/labels.tsx
+DISTRIB_FILES += ivette/src/dome/renderer/controls/style.css
+DISTRIB_FILES += ivette/src/dome/renderer/data/compare.ts
+DISTRIB_FILES += ivette/src/dome/renderer/data/json.ts
+DISTRIB_FILES += ivette/src/dome/renderer/data/library.js
+DISTRIB_FILES += ivette/src/dome/renderer/data/settings.ts
+DISTRIB_FILES += ivette/src/dome/renderer/data/states.ts
+DISTRIB_FILES += ivette/src/dome/renderer/dialogs.tsx
+DISTRIB_FILES += ivette/src/dome/renderer/dnd.js
+DISTRIB_FILES += ivette/src/dome/renderer/dome.tsx
+DISTRIB_FILES += ivette/src/dome/renderer/errors.tsx
+DISTRIB_FILES += ivette/src/dome/renderer/frame/sidebars.tsx
+DISTRIB_FILES += ivette/src/dome/renderer/frame/style.css
+DISTRIB_FILES += ivette/src/dome/renderer/frame/tabs.tsx
+DISTRIB_FILES += ivette/src/dome/renderer/frame/toolbars.tsx
+DISTRIB_FILES += ivette/src/dome/renderer/layout/boxes.tsx
+DISTRIB_FILES += ivette/src/dome/renderer/layout/dispatch.tsx
+DISTRIB_FILES += ivette/src/dome/renderer/layout/forms.tsx
+DISTRIB_FILES += ivette/src/dome/renderer/layout/grids.js
+DISTRIB_FILES += ivette/src/dome/renderer/layout/splitters.tsx
+DISTRIB_FILES += ivette/src/dome/renderer/layout/style.css
+DISTRIB_FILES += ivette/src/dome/renderer/style.css
+DISTRIB_FILES += ivette/src/dome/renderer/table/arrays.ts
+DISTRIB_FILES += ivette/src/dome/renderer/table/models.ts
+DISTRIB_FILES += ivette/src/dome/renderer/table/style.css
+DISTRIB_FILES += ivette/src/dome/renderer/table/views.tsx
+DISTRIB_FILES += ivette/src/dome/renderer/text/buffers.ts
+DISTRIB_FILES += ivette/src/dome/renderer/text/editors.tsx
+DISTRIB_FILES += ivette/src/dome/renderer/text/pages.tsx
+DISTRIB_FILES += ivette/src/dome/renderer/text/style.css
+DISTRIB_FILES += ivette/src/dome/template/Application.js
+DISTRIB_FILES += ivette/src/dome/template/Preferences.js
+DISTRIB_FILES += ivette/src/dome/template/babelrc.json
+DISTRIB_FILES += ivette/src/dome/template/dome-pull.sh
+DISTRIB_FILES += ivette/src/dome/template/dome-push.sh
+DISTRIB_FILES += ivette/src/dome/template/electron-webpack.json
+DISTRIB_FILES += ivette/src/dome/template/export.sh
+DISTRIB_FILES += ivette/src/dome/template/git-ignore
+DISTRIB_FILES += ivette/src/dome/template/main.js
+DISTRIB_FILES += ivette/src/dome/template/makefile
+DISTRIB_FILES += ivette/src/dome/template/makefile.app.packages
+DISTRIB_FILES += ivette/src/dome/template/makefile.packages
+DISTRIB_FILES += ivette/src/dome/template/package.sh
+DISTRIB_FILES += ivette/src/dome/template/renderer.js
+DISTRIB_FILES += ivette/src/dome/template/typescript.el
+DISTRIB_FILES += ivette/src/dome/template/update.sh
+DISTRIB_FILES += ivette/src/dome/template/webpack.main.js
+DISTRIB_FILES += ivette/src/dome/template/webpack.renderer.js
+DISTRIB_FILES += ivette/src/frama-c/api/generated/kernel/ast/index.ts
+DISTRIB_FILES += ivette/src/frama-c/api/generated/kernel/data/index.ts
+DISTRIB_FILES += ivette/src/frama-c/api/generated/kernel/project/index.ts
+DISTRIB_FILES += ivette/src/frama-c/api/generated/kernel/properties/index.ts
+DISTRIB_FILES += ivette/src/frama-c/api/generated/kernel/services/index.ts
+DISTRIB_FILES += ivette/src/frama-c/api/generated/plugins/dive/index.ts
+DISTRIB_FILES += ivette/src/frama-c/api/generated/plugins/eva/general/index.ts
+DISTRIB_FILES += ivette/src/frama-c/api/generated/plugins/eva/values/index.ts
+DISTRIB_FILES += ivette/src/frama-c/api/generated/plugins/studia/studia/index.ts
+DISTRIB_FILES += ivette/src/frama-c/api/generator.ml
+DISTRIB_FILES += ivette/src/frama-c/index.tsx
+DISTRIB_FILES += ivette/src/frama-c/kernel/ASTinfo.tsx
+DISTRIB_FILES += ivette/src/frama-c/kernel/ASTview.tsx
+DISTRIB_FILES += ivette/src/frama-c/kernel/Globals.tsx
+DISTRIB_FILES += ivette/src/frama-c/kernel/History.tsx
+DISTRIB_FILES += ivette/src/frama-c/kernel/Locations.tsx
+DISTRIB_FILES += ivette/src/frama-c/kernel/Properties.tsx
+DISTRIB_FILES += ivette/src/frama-c/kernel/SourceCode.tsx
+DISTRIB_FILES += ivette/src/frama-c/kernel/style.css
+DISTRIB_FILES += ivette/src/frama-c/pkg.json
+DISTRIB_FILES += ivette/src/frama-c/plugins/dive/cytoscape_libs.js
+DISTRIB_FILES += ivette/src/frama-c/plugins/dive/index.tsx
+DISTRIB_FILES += ivette/src/frama-c/plugins/dive/layouts.json
+DISTRIB_FILES += ivette/src/frama-c/plugins/dive/pkg.json
+DISTRIB_FILES += ivette/src/frama-c/plugins/dive/react-cytoscapejs.d.ts
+DISTRIB_FILES += ivette/src/frama-c/plugins/dive/style.json
+DISTRIB_FILES += ivette/src/frama-c/plugins/dive/tippy.css
+DISTRIB_FILES += ivette/src/frama-c/plugins/eva/cells.ts
+DISTRIB_FILES += ivette/src/frama-c/plugins/eva/diffed.tsx
+DISTRIB_FILES += ivette/src/frama-c/plugins/eva/index.tsx
+DISTRIB_FILES += ivette/src/frama-c/plugins/eva/layout.ts
+DISTRIB_FILES += ivette/src/frama-c/plugins/eva/model.ts
+DISTRIB_FILES += ivette/src/frama-c/plugins/eva/pkg.json
+DISTRIB_FILES += ivette/src/frama-c/plugins/eva/probeinfos.tsx
+DISTRIB_FILES += ivette/src/frama-c/plugins/eva/probes.ts
+DISTRIB_FILES += ivette/src/frama-c/plugins/eva/sized.tsx
+DISTRIB_FILES += ivette/src/frama-c/plugins/eva/stacks.ts
+DISTRIB_FILES += ivette/src/frama-c/plugins/eva/style.css
+DISTRIB_FILES += ivette/src/frama-c/plugins/eva/valueinfos.tsx
+DISTRIB_FILES += ivette/src/frama-c/plugins/eva/valuetable.tsx
+DISTRIB_FILES += ivette/src/frama-c/server.ts
+DISTRIB_FILES += ivette/src/frama-c/states.ts
+DISTRIB_FILES += ivette/src/frama-c/utils.ts
+DISTRIB_FILES += ivette/src/ivette/index.tsx
+DISTRIB_FILES += ivette/src/ivette/prefs.tsx
+DISTRIB_FILES += ivette/src/main/index.js
+DISTRIB_FILES += ivette/src/renderer/Application.tsx
+DISTRIB_FILES += ivette/src/renderer/Controller.tsx
+DISTRIB_FILES += ivette/src/renderer/Extensions.tsx
+DISTRIB_FILES += ivette/src/renderer/Laboratory.tsx
+DISTRIB_FILES += ivette/src/renderer/Preferences.tsx
+DISTRIB_FILES += ivette/src/renderer/index.js
+DISTRIB_FILES += ivette/src/renderer/style.css
+DISTRIB_FILES += ivette/tests/eva-1.i
+DISTRIB_FILES += ivette/tests/eva-2.i
+DISTRIB_FILES += ivette/tsconfig.json
+DISTRIB_FILES += ivette/tsfmt.json
+DISTRIB_FILES += ivette/webpack.main.js
+DISTRIB_FILES += ivette/webpack.renderer.js
+DISTRIB_FILES += ivette/yarn.lock
diff --git a/src/plugins/aorai/tests/ya/oracle/saveload.res.0.log b/src/plugins/aorai/tests/ya/oracle/saveload.res.0.log.txt
similarity index 100%
rename from src/plugins/aorai/tests/ya/oracle/saveload.res.0.log
rename to src/plugins/aorai/tests/ya/oracle/saveload.res.0.log.txt
diff --git a/src/plugins/aorai/tests/ya/oracle/saveload.res.1.log b/src/plugins/aorai/tests/ya/oracle/saveload.res.1.log.txt
similarity index 100%
rename from src/plugins/aorai/tests/ya/oracle/saveload.res.1.log
rename to src/plugins/aorai/tests/ya/oracle/saveload.res.1.log.txt
diff --git a/src/plugins/aorai/tests/ya/saveload.i b/src/plugins/aorai/tests/ya/saveload.i
index 24fb0c24fecadc7208148311d896180e2eb04a72..2ac81c70606919b6ed14b3588faf41d0cb926659 100644
--- a/src/plugins/aorai/tests/ya/saveload.i
+++ b/src/plugins/aorai/tests/ya/saveload.i
@@ -1,7 +1,7 @@
 /* run.config
 NOFRAMAC:
-EXECNOW: LOG @PTEST_NAME@.res.0.log BIN @PTEST_NAME@.sav @frama-c@ -aorai-automata @PTEST_DIR@/@PTEST_NAME@.ya @PTEST_FILE@ -save @PTEST_DIR@/result/@PTEST_NAME@.sav > @PTEST_DIR@/result/@PTEST_NAME@.res.0.log
-EXECNOW: LOG @PTEST_NAME@.res.1.log @frama-c@ -load @PTEST_DIR@/result/@PTEST_NAME@.sav -then-on aorai -eva > @PTEST_DIR@/result/@PTEST_NAME@.res.1.log
+EXECNOW: LOG @PTEST_NAME@.res.0.log.txt BIN @PTEST_NAME@.sav @frama-c@ -aorai-automata @PTEST_DIR@/@PTEST_NAME@.ya @PTEST_FILE@ -save @PTEST_DIR@/result/@PTEST_NAME@.sav > @PTEST_DIR@/result/@PTEST_NAME@.res.0.log.txt
+EXECNOW: LOG @PTEST_NAME@.res.1.log.txt @frama-c@ -load @PTEST_DIR@/result/@PTEST_NAME@.sav -then-on aorai -eva > @PTEST_DIR@/result/@PTEST_NAME@.res.1.log.txt
 */
 /* run.config_prove
 DONTRUN:
diff --git a/tests/pdg/call.c b/tests/pdg/call.c
index 1a48d0b295e9159cff8413003882272a43b10f99..b71d403e4ba62559c40c7a8455ac0dac1ee673b0 100644
--- a/tests/pdg/call.c
+++ b/tests/pdg/call.c
@@ -1,6 +1,6 @@
 /* run.config
    
-   STDOPT: +"-lib-entry -main g -pdg -pdg-dot tests/pdg/call "
+   STDOPT: +"-lib-entry -main g -pdg -pdg-dot tests/pdg/result/call "
 */
 
 /* Ne pas modifier : exemple utilisé dans le rapport. */
diff --git a/tests/pdg/doc_dot.c b/tests/pdg/doc_dot.c
index 74710f1cb5f0f675e75c98e8867bb32af584d438..862b8bf811874da0e718125e75017b876791d969 100644
--- a/tests/pdg/doc_dot.c
+++ b/tests/pdg/doc_dot.c
@@ -1,8 +1,8 @@
 /* run.config
- STDOPT: +"-lib-entry -main g -fct-pdg g -pdg-dot tests/pdg/doc"
+ STDOPT: +"-lib-entry -main g -fct-pdg g -pdg-dot tests/pdg/result/doc"
 */
 /* To build the svg file:
- * dot -Tsvg tests/pdg/doc.g.dot > tests/pdg/doc.g.svg
+ * dot -Tsvg tests/pdg/result/doc.g.dot > tests/pdg/result/doc.g.svg
  */
 int G1, G2, T[10];
 
diff --git a/tests/pdg/dyn_dpds.ml b/tests/pdg/dyn_dpds.ml
index 834d304c304ff50002977a9a94348d1279377178..caa5d09a5d892e1b58bb6259b31f83630610aa53 100644
--- a/tests/pdg/dyn_dpds.ml
+++ b/tests/pdg/dyn_dpds.ml
@@ -23,7 +23,7 @@ let main _ =
   let kf =  Globals.Functions.find_def_by_name "main" in
   let pdg = !Db.Pdg.get kf in
   Format.printf "%a@." (!Db.Pdg.pretty ~bw:false) pdg;
-  !Db.Pdg.extract pdg "tests/pdg/dyn_dpds_0.dot";
+  !Db.Pdg.extract pdg "tests/pdg/result/dyn_dpds_0.dot";
   let assert_sid = 5 in (* assert ( *p>G) *)
   let assert_stmt, kf = Kernel_function.find_from_sid assert_sid in
   let _assert_node =
@@ -44,6 +44,6 @@ let main _ =
   Format.printf "Warning : cannot select %a in this function...@\n"
     Locations.Zone.pretty undef;
   Format.printf "%a@." (!Db.Pdg.pretty ~bw:false) pdg;
-  !Db.Pdg.extract pdg "tests/pdg/dyn_dpds_1.dot"
+  !Db.Pdg.extract pdg "tests/pdg/result/dyn_dpds_1.dot"
 
 let () = Db.Main.extend main
diff --git a/tests/pdg/oracle/call.res.oracle b/tests/pdg/oracle/call.res.oracle
index 80cf9777950bf7e17b36cfe1fc9b9ccee7dcbd51..f78649a62d3b4db24db184ff73b4050aa603d218 100644
--- a/tests/pdg/oracle/call.res.oracle
+++ b/tests/pdg/oracle/call.res.oracle
@@ -22,12 +22,12 @@
 [eva] done for function g
 [pdg] computing for function f
 [pdg] done for function f
-[pdg] dot file generated in tests/pdg/call.f.dot
+[pdg] dot file generated in tests/pdg/result/call.f.dot
 [pdg] computing for function g
 [from] Computing for function f
 [from] Done for function f
 [pdg] done for function g
-[pdg] dot file generated in tests/pdg/call.g.dot
+[pdg] dot file generated in tests/pdg/result/call.g.dot
 [pdg] ====== PDG GRAPH COMPUTED ======
 [pdg] PDG for f
  {n1}: InCtrl
diff --git a/tests/pdg/oracle/doc_dot.res.oracle b/tests/pdg/oracle/doc_dot.res.oracle
index 84c3993bf5149470ec46e7447825000d6ad90f00..4542afc34288005b3598e26732ee3c96b4d72836 100644
--- a/tests/pdg/oracle/doc_dot.res.oracle
+++ b/tests/pdg/oracle/doc_dot.res.oracle
@@ -16,7 +16,7 @@
 [from] Computing for function f
 [from] Done for function f
 [pdg] done for function g
-[pdg] dot file generated in tests/pdg/doc.g.dot
+[pdg] dot file generated in tests/pdg/result/doc.g.dot
 [pdg] PDG for g
  {n1}: InCtrl
  {n2}: VarDecl : x
diff --git a/tests/pdg/oracle/dyn_dpds.res.oracle b/tests/pdg/oracle/dyn_dpds.res.oracle
index 232e2df8be3cdb07b42cd08942dac7d60167e1e0..658d717167d486e40fee9e8561a91e94832cd3ed 100644
--- a/tests/pdg/oracle/dyn_dpds.res.oracle
+++ b/tests/pdg/oracle/dyn_dpds.res.oracle
@@ -94,7 +94,7 @@ RESULT for main:
    -[--d]-> 13
  {n16}: OutRet
    -[--d]-> 15
-[pdg] dot file generated in tests/pdg/dyn_dpds_0.dot
+[pdg] dot file generated in tests/pdg/result/dyn_dpds_0.dot
 Warning : cannot select G in this function...
 RESULT for main:
  {n1}: InCtrl
@@ -142,4 +142,4 @@ RESULT for main:
    -[--d]-> 13
  {n16}: OutRet
    -[--d]-> 15
-[pdg] dot file generated in tests/pdg/dyn_dpds_1.dot
+[pdg] dot file generated in tests/pdg/result/dyn_dpds_1.dot