diff --git a/.gitignore b/.gitignore
index b58d2dd..6548e23 100644
--- a/.gitignore
+++ b/.gitignore
@@ -71,6 +71,7 @@ macos/kc3-v*
/misc/http_request
/misc/http_response
/misc/limits
+/msys2/clang64/kc3-*
node_modules/
*.o
release/
diff --git a/msys2/clang64/Makefile b/msys2/clang64/Makefile
new file mode 100644
index 0000000..ea6327a
--- /dev/null
+++ b/msys2/clang64/Makefile
@@ -0,0 +1,64 @@
+
+DEST = kc3-${KC3_VERSION}.win64.tmp
+
+release: kc3-${KC3_VERSION}.win64.zip
+
+kc3-${KC3_VERSION}.win64.zip: kc3-${KC3_VERSION}.win64
+ rm -f kc3-${KC3_VERSION}.win64.zip
+ zip -r kc3-${KC3_VERSION}.win64.zip kc3-${KC3_VERSION}.win64
+
+kc3-${KC3_VERSION}.win64:
+ rm -rf ${DEST}
+ mkdir -p ${DEST}/test/ikc3
+ cp -a "${SRC_TOP}/README.md" ${DEST}
+ cp -a /clang64/bin/edit.dll ${DEST}
+# cp -a /usr/bin/msys-2.0.dll ${DEST}
+# cp -a /usr/bin/msys-2.0.dll ${DEST}/test
+# cp -a /usr/bin/msys-gcc_s-seh-1.dll ${DEST}
+# cp -a /usr/bin/msys-gcc_s-seh-1.dll ${DEST}/test
+ cp -a /clang64/bin/libbsd-0.dll ${DEST}
+ cp -a /clang64/bin/libbsd-0.dll ${DEST}/test
+ cp -a /clang64/bin/libdl.dll ${DEST}
+ cp -a /clang64/bin/libdl.dll ${DEST}/test
+ cp -a /clang64/bin/libmd-0.dll ${DEST}
+ cp -a /clang64/bin/libmd-0.dll ${DEST}/test
+ cp -a "${SRC_TOP}"/libkc3/.libs/msys-kc3*-0.dll ${DEST}
+ cp -a "${SRC_TOP}"/libkc3/.libs/msys-kc3*-0.dll ${DEST}/test
+ cp -a "${SRC_TOP}"/window/.libs/msys-kc3_window*-0.dll ${DEST}
+ cp -a "${SRC_TOP}"/window/cairo/.libs/msys-kc3_window_cairo*-0.dll ${DEST}
+# cp -a /clang64/bin/libgcc_s_seh-1.dll ${DEST}
+ cp -a /clang64/bin/libcairo-2.dll ${DEST}
+# cp -a "${SRC_TOP}/window/cairo/win32/.libs/libkc3_window_cairo_win32*-0.dll" ${DEST}
+ cp -a "${SRC_TOP}/window/cairo/win32/demo/.libs/kc3_window_cairo_win32_demo.exe" ${DEST}
+ cp -a /clang64/bin/libxkbcommon-0.dll ${DEST}
+ cp -a /clang64/bin/libwinpthread-1.dll ${DEST}
+# cp -a /clang64/bin/libstdc++-6.dll ${DEST}
+ cp -a /clang64/bin/libfontconfig-1.dll ${DEST}
+ cp -a /clang64/bin/libfreetype-6.dll ${DEST}
+ cp -a /clang64/bin/libpixman-1-0.dll ${DEST}
+ cp -a /clang64/bin/zlib1.dll ${DEST}
+ cp -a /clang64/bin/libpng16-16.dll ${DEST}
+ cp -a /clang64/bin/libexpat-1.dll ${DEST}
+ cp -a /clang64/bin/libiconv-2.dll ${DEST}
+ cp -a /clang64/bin/libintl-8.dll ${DEST}
+ cp -a /clang64/bin/libbz2-1.dll ${DEST}
+ cp -a /clang64/bin/libbrotlidec.dll ${DEST}
+ cp -a /clang64/bin/libharfbuzz-0.dll ${DEST}
+ cp -a /clang64/bin/libbrotlicommon.dll ${DEST}
+ cp -a /clang64/bin/libglib-2.0-0.dll ${DEST}
+ cp -a /clang64/bin/libgraphite2.dll ${DEST}
+ cp -a /clang64/bin/libpcre2-8-0.dll ${DEST}
+ cp -a "${SRC_TOP}"/lib ${DEST}/
+ cp -a "${SRC_TOP}"/kc3s/.libs/kc3s*.exe ${DEST}
+ cp -a "${SRC_TOP}"/ikc3/.libs/ikc3*.exe ${DEST}
+ cp -a "${SRC_TOP}"/test/.libs/libkc3*.exe ${DEST}/test
+ cp -a "${SRC_TOP}"/test/ikc3_test ${DEST}/test
+ cp -a "${SRC_TOP}"/test/*.facts ${DEST}/test
+ cp -a "${SRC_TOP}"/test/ikc3/*.kc3 "${SRC_TOP}"/test/ikc3/*.expected ${DEST}/test/ikc3
+ rm -rf kc3-${KC3_VERSION}.win64.old
+ -mv kc3-${KC3_VERSION}.win64 kc3-${KC3_VERSION}.win64.old
+ mv ${DEST} kc3-${KC3_VERSION}.win64
+
+.PHONY: kc3-${KC3_VERSION}.win64 release
+
+include config.mk
diff --git a/msys2/clang64/configure b/msys2/clang64/configure
new file mode 100644
index 0000000..870f11f
--- /dev/null
+++ b/msys2/clang64/configure
@@ -0,0 +1,23 @@
+#!/bin/sh
+## kc3
+## Copyright 2022,2023 kmx.io <contact@kmx.io>
+##
+## Permission is hereby granted to use this software granted the above
+## copyright notice and this permission paragraph are included in all
+## copies and substantial portions of this software.
+##
+## THIS SOFTWARE IS PROVIDED "AS-IS" WITHOUT ANY GUARANTEE OF
+## PURPOSE AND PERFORMANCE. IN NO EVENT WHATSOEVER SHALL THE
+## AUTHOR BE CONSIDERED LIABLE FOR THE USE AND PERFORMANCE OF
+## THIS SOFTWARE.
+
+set -e
+
+export SRC_TOP="$(dirname "$(dirname "$(pwd)")")"
+
+. ../../config.subr
+
+KC3_VERSION="$(cat ../../kc3.version)"
+echo "KC3_VERSION = $KC3_VERSION" >> ${CONFIG_MK}
+
+update_config_mk
diff --git a/win64/Makefile b/win64/Makefile
deleted file mode 100644
index 5e8966f..0000000
--- a/win64/Makefile
+++ /dev/null
@@ -1,63 +0,0 @@
-
-DEST = c3-${C3_VERSION}.win64.tmp
-
-release: c3-${C3_VERSION}.win64.zip
-
-c3-${C3_VERSION}.win64.zip: c3-${C3_VERSION}.win64
- rm -f c3-${C3_VERSION}.win64.zip
- zip -r c3-${C3_VERSION}.win64.zip c3-${C3_VERSION}.win64
-
-c3-${C3_VERSION}.win64:
- rm -rf ${DEST}
- mkdir -p ${DEST}/test/ic3
- cp -a ../README.md ${DEST}
- cp -a /usr/bin/msys-2.0.dll ${DEST}
- cp -a /usr/bin/msys-2.0.dll ${DEST}/test
- cp -a /usr/bin/msys-gcc_s-seh-1.dll ${DEST}
- cp -a /usr/bin/msys-gcc_s-seh-1.dll ${DEST}/test
- cp -a /usr/bin/msys-bsd-0.dll ${DEST}
- cp -a /usr/bin/msys-bsd-0.dll ${DEST}/test
- cp -a /usr/bin/msys-md-0.dll ${DEST}
- cp -a /usr/bin/msys-md-0.dll ${DEST}/test
- cp -a ../libffi/.libs/msys-ffi-8.dll ${DEST}
- cp -a ../libffi/.libs/msys-ffi-8.dll ${DEST}/test
- cp -a ../libkc3/.libs/msys-c3*-0.dll ${DEST}
- cp -a ../libkc3/.libs/msys-c3*-0.dll ${DEST}/test
- cp -a ../libkc3/window/.libs/msys-c3_window*-0.dll ${DEST}
- cp -a ../libkc3/window/cairo/.libs/msys-c3_window_cairo*-0.dll ${DEST}
- cp -a /mingw64/bin/libgcc_s_seh-1.dll ${DEST}
- cp -a /mingw64/bin/libcairo-2.dll ${DEST}
- cp -a ../libkc3/window/cairo/win32/.libs/msys-c3_window_cairo_win32*-0.dll ${DEST}
- cp -a ../libkc3/window/cairo/win32/demo/.libs/c3_window_cairo_win32_demo.exe ${DEST}
- cp -a /mingw64/bin/libxkbcommon-0.dll ${DEST}
- cp -a /mingw64/bin/libwinpthread-1.dll ${DEST}
- cp -a /mingw64/bin/libstdc++-6.dll ${DEST}
- cp -a /mingw64/bin/libfontconfig-1.dll ${DEST}
- cp -a /mingw64/bin/libfreetype-6.dll ${DEST}
- cp -a /mingw64/bin/libpixman-1-0.dll ${DEST}
- cp -a /mingw64/bin/zlib1.dll ${DEST}
- cp -a /mingw64/bin/libpng16-16.dll ${DEST}
- cp -a /mingw64/bin/libexpat-1.dll ${DEST}
- cp -a /mingw64/bin/libiconv-2.dll ${DEST}
- cp -a /mingw64/bin/libintl-8.dll ${DEST}
- cp -a /mingw64/bin/libbz2-1.dll ${DEST}
- cp -a /mingw64/bin/libbrotlidec.dll ${DEST}
- cp -a /mingw64/bin/libharfbuzz-0.dll ${DEST}
- cp -a /mingw64/bin/libbrotlicommon.dll ${DEST}
- cp -a /mingw64/bin/libglib-2.0-0.dll ${DEST}
- cp -a /mingw64/bin/libgraphite2.dll ${DEST}
- cp -a /mingw64/bin/libpcre2-8-0.dll ${DEST}
- cp -a ../lib ${DEST}/
- cp -a ../c3s/.libs/c3s*.exe ${DEST}
- cp -a ../ic3/.libs/ic3*.exe ${DEST}
- cp -a ../test/.libs/libkc3*.exe ${DEST}/test
- cp -a ../test/ic3_test ${DEST}/test
- cp -a ../test/*.facts ${DEST}/test
- cp -a ../test/ic3/*.in ../test/ic3/*.expected ${DEST}/test/ic3
- rm -rf c3-${C3_VERSION}.win64.old
- mv c3-${C3_VERSION}.win64 c3-${C3_VERSION}.win64.old
- mv ${DEST} c3-${C3_VERSION}.win64
-
-.PHONY: c3-${C3_VERSION}.win64 release
-
-include config.mk
diff --git a/win64/configure b/win64/configure
deleted file mode 100755
index 05c2502..0000000
--- a/win64/configure
+++ /dev/null
@@ -1,23 +0,0 @@
-#!/bin/sh
-## c3
-## Copyright 2022,2023 kmx.io <contact@kmx.io>
-##
-## Permission is hereby granted to use this software granted the above
-## copyright notice and this permission paragraph are included in all
-## copies and substantial portions of this software.
-##
-## THIS SOFTWARE IS PROVIDED "AS-IS" WITHOUT ANY GUARANTEE OF
-## PURPOSE AND PERFORMANCE. IN NO EVENT WHATSOEVER SHALL THE
-## AUTHOR BE CONSIDERED LIABLE FOR THE USE AND PERFORMANCE OF
-## THIS SOFTWARE.
-
-set -e
-
-export SRC_TOP="$(dirname "$(pwd)")"
-
-. ../config.subr
-
-C3_VERSION="$(cat ../c3.version)"
-echo "C3_VERSION = $C3_VERSION" >> ${CONFIG_MK}
-
-update_config_mk