diff --git a/.gitignore b/.gitignore
index 42d8057..841cb6f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,5 +1,6 @@
 /*
 !/**/
+/build-publish/
 !*.*
 !readme
-*.o
\ No newline at end of file
+*.o
diff --git a/publish.sh b/publish.sh
new file mode 100755
index 0000000..2ae94be
--- /dev/null
+++ b/publish.sh
@@ -0,0 +1,47 @@
+#!/bin/bash
+
+# you may set env var HELIROOT (helianthus repo)
+# or HELIBUILDER (path to build-program-win.sh script from Helianthus)
+
+set -e
+
+ROOT="$(cd `dirname "$0"`; pwd)"
+cd "$ROOT"
+
+if [ -z "$HELIROOT" ]; then
+	HELIROOT="$ROOT/../helianthus"
+fi
+
+if [ -z "$HELIBUILDER" ]; then
+	HELIBUILDER="$HELIROOT/win/build-program-win.sh"
+fi
+
+
+VER="$(git describe --tags)"
+rm -rf build-publish
+PUBDIR="$ROOT/build-publish/examples-$VER"
+mkdir -p "$PUBDIR"
+cd "$PUBDIR"
+
+
+echo "-- prepare sources --"
+mkdir -p src
+cd src
+git --work-tree=. checkout .
+cd ..
+
+
+echo "-- prepare binaries --"
+mkdir bin
+cd src
+for file in *.c; do
+	echo "-- -- $file"
+	TARGETPATH="$PUBDIR/bin" "$HELIBUILDER" ${file::-2} ${file}
+done
+cp -r data ../bin/
+cd ..
+
+
+cd ..
+echo "-- done --"
+