1/* Copyright 2012 Google Inc. Some Rights Reserved. 2 * Author: yugui@google.com (Yugui Sonoda) 3 */ 4#include <stdio.h> 5 6#define init(func, name) { \ 7 extern void func(void); \ 8 ruby_init_ext(name, func); \ 9} 10 11#define init_enc(name) init(Init_##name, "enc/"#name".so") 12#define init_trans(name) init(Init_trans_##name, "enc/trans/"#name".so") 13#define provide(func, name) { \ 14 extern void Init_##func(void); \ 15 Init_##func(); \ 16 rb_provide(name".so"); \ 17} 18 19void ruby_init_ext(const char *name, void (*init)(void)); 20void rb_provide(const char *feature); 21 22void 23Init_enc(void) 24{ 25 provide(encdb, "encdb"); 26% ENCS.each do |enc| 27% next if enc == 'encdb' 28 init_enc(<%= enc %>); 29% end 30 31 provide(transdb, "trans/transdb"); 32% TRANS.each do |trans| 33% next if trans == 'trans/transdb' 34 init_trans(<%= File.basename trans %>); 35% end 36} 37<%# vim: set ft=eruby sw=2 : -%> 38