summaryrefslogtreecommitdiff
path: root/enc/encinit.c.erb
diff options
context:
space:
mode:
Diffstat (limited to 'enc/encinit.c.erb')
-rw-r--r--enc/encinit.c.erb26
1 files changed, 26 insertions, 0 deletions
diff --git a/enc/encinit.c.erb b/enc/encinit.c.erb
new file mode 100644
index 0000000000..17b94027d0
--- /dev/null
+++ b/enc/encinit.c.erb
@@ -0,0 +1,26 @@
+<%# -*- encoding: UTF-8 -*-%>
+/* Copyright 2012 Google Inc. Some Rights Reserved.
+ * Author: yugui@google.com (Yugui Sonoda)
+ */
+#include <stdio.h>
+
+#define init(func, name) { \
+ extern void func(void); \
+ ruby_init_ext(name, func); \
+}
+
+void ruby_init_ext(const char *name, void (*init)(void));
+
+void Init_enc()
+{
+ <% ENCS.each do |enc| -%>
+ init(Init_<%= enc %>, "enc/<%= enc %>.so");
+ <% end -%>
+
+ init(Init_transdb, "enc/trans/transdb.so");
+ <% TRANS.each do |trans| -%>
+ <% next if trans == 'trans/transdb' -%>
+ init(Init_trans_<%= File.basename trans %>, "enc/<%= trans %>.so");
+ <% end -%>
+}
+<%# vim: set fenc=utf-8 ft=eruby sw=2 : -%>