diff --git a/custom_rules.xml b/custom_rules.xml
new file mode 100644
index 0000000..b5a2677
--- /dev/null
+++ b/custom_rules.xml
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="custom_rules" >
+
+    <target name="-set-build-type-value" >
+
+        <condition property="is.release" >
+
+            <contains
+                string="${ant.project.invoked-targets}"
+                substring="release" />
+        </condition>
+
+        <condition property="is.debug" >
+
+            <contains
+                string="${ant.project.invoked-targets}"
+                substring="debug" />
+        </condition>
+    </target>
+
+    <target name="-pre-build-makedict" >
+
+        <java
+            failonerror="true"
+            fork="true"
+            jar="../extlib/AnySoftKeyboardTools/makedict/makedict.jar" >
+        </java>
+    </target>
+
+    <target
+        name="-pre-build-verify-pack-release"
+        if="is.release" >
+
+        <java
+            failonerror="true"
+            fork="true"
+            jar="../extlib/AnySoftKeyboardTools/packverifier/packverifier.jar" >
+
+            <arg value="release" >
+            </arg>
+        </java>
+    </target>
+
+    <target
+        name="-pre-build-verify-pack-debug"
+        if="is.debug" >
+
+        <java
+            failonerror="true"
+            fork="true"
+            jar="../extlib/AnySoftKeyboardTools/packverifier/packverifier.jar" >
+
+            <arg value="debug" >
+            </arg>
+        </java>
+    </target>
+
+    <target
+        name="release"
+        depends="-set-build-type-value,-pre-build-makedict,-pre-build-verify-pack-release" >
+    </target>
+
+</project>
\ No newline at end of file
