ruby-miyako 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (164) hide show
  1. data/README +1115 -0
  2. data/Rakefile +7 -0
  3. data/defines.h +144 -0
  4. data/extconf.rb +44 -0
  5. data/extern.h +29 -0
  6. data/img/cursor.png +0 -0
  7. data/img/cursors.png +0 -0
  8. data/img/dice.png +0 -0
  9. data/img/wait_cursor.png +0 -0
  10. data/img/win_base.png +0 -0
  11. data/img/window.png +0 -0
  12. data/install_miyako.rb +87 -0
  13. data/lib/Miyako/API/audio.rb +584 -0
  14. data/lib/Miyako/API/basic_data.rb +1026 -0
  15. data/lib/Miyako/API/bitmap.rb +534 -0
  16. data/lib/Miyako/API/choices.rb +481 -0
  17. data/lib/Miyako/API/collision.rb +638 -0
  18. data/lib/Miyako/API/diagram.rb +586 -0
  19. data/lib/Miyako/API/drawing.rb +151 -0
  20. data/lib/Miyako/API/exceptions.rb +105 -0
  21. data/lib/Miyako/API/fixedmap.rb +462 -0
  22. data/lib/Miyako/API/font.rb +430 -0
  23. data/lib/Miyako/API/input.rb +456 -0
  24. data/lib/Miyako/API/layout.rb +644 -0
  25. data/lib/Miyako/API/map.rb +583 -0
  26. data/lib/Miyako/API/map_event.rb +222 -0
  27. data/lib/Miyako/API/modules.rb +357 -0
  28. data/lib/Miyako/API/movie.rb +166 -0
  29. data/lib/Miyako/API/parts.rb +188 -0
  30. data/lib/Miyako/API/plane.rb +205 -0
  31. data/lib/Miyako/API/screen.rb +341 -0
  32. data/lib/Miyako/API/shape.rb +443 -0
  33. data/lib/Miyako/API/sprite.rb +773 -0
  34. data/lib/Miyako/API/sprite_animation.rb +494 -0
  35. data/lib/Miyako/API/sprite_list.rb +1135 -0
  36. data/lib/Miyako/API/spriteunit.rb +168 -0
  37. data/lib/Miyako/API/story.rb +350 -0
  38. data/lib/Miyako/API/textbox.rb +773 -0
  39. data/lib/Miyako/API/utility.rb +419 -0
  40. data/lib/Miyako/API/viewport.rb +190 -0
  41. data/lib/Miyako/API/yuki.rb +1180 -0
  42. data/lib/Miyako/EXT/miyako_cairo.rb +62 -0
  43. data/lib/Miyako/EXT/raster_scroll.rb +138 -0
  44. data/lib/Miyako/EXT/slides.rb +157 -0
  45. data/lib/Miyako/miyako.rb +201 -0
  46. data/lib/Miyako/miyako_require_only.rb +35 -0
  47. data/logo/EGSR_logo.png +0 -0
  48. data/logo/EGSR_logo_bg.png +0 -0
  49. data/logo/EGSR_logo_fg.png +0 -0
  50. data/logo/EGSR_title_banner.png +0 -0
  51. data/logo/EGSR_title_logo.png +0 -0
  52. data/logo/miyako.png +0 -0
  53. data/logo/miyako_banner.png +0 -0
  54. data/logo/space.png +0 -0
  55. data/miyako_basicdata.c +484 -0
  56. data/miyako_bitmap.c +1225 -0
  57. data/miyako_collision.c +403 -0
  58. data/miyako_drawing.c +187 -0
  59. data/miyako_font.c +334 -0
  60. data/miyako_hsv.c +830 -0
  61. data/miyako_input_audio.c +254 -0
  62. data/miyako_layout.c +191 -0
  63. data/miyako_no_katana.c +1086 -0
  64. data/miyako_sprite2.c +431 -0
  65. data/miyako_transform.c +438 -0
  66. data/miyako_utility.c +288 -0
  67. data/sample/Animation1/m1ku.rb +68 -0
  68. data/sample/Animation1/m1ku_arm_0.png +0 -0
  69. data/sample/Animation1/m1ku_arm_1.png +0 -0
  70. data/sample/Animation1/m1ku_arm_2.png +0 -0
  71. data/sample/Animation1/m1ku_arm_3.png +0 -0
  72. data/sample/Animation1/m1ku_back.jpg +0 -0
  73. data/sample/Animation1/m1ku_body.png +0 -0
  74. data/sample/Animation1/m1ku_eye_0.png +0 -0
  75. data/sample/Animation1/m1ku_eye_1.png +0 -0
  76. data/sample/Animation1/m1ku_eye_2.png +0 -0
  77. data/sample/Animation1/m1ku_eye_3.png +0 -0
  78. data/sample/Animation1/m1ku_hair_front.png +0 -0
  79. data/sample/Animation1/m1ku_hair_rear.png +0 -0
  80. data/sample/Animation1/readme.txt +72 -0
  81. data/sample/Animation2/lex.rb +96 -0
  82. data/sample/Animation2/lex_back.png +0 -0
  83. data/sample/Animation2/lex_body.png +0 -0
  84. data/sample/Animation2/lex_roadroller.png +0 -0
  85. data/sample/Animation2/lex_wheel_0.png +0 -0
  86. data/sample/Animation2/lex_wheel_1.png +0 -0
  87. data/sample/Animation2/lex_wheel_2.png +0 -0
  88. data/sample/Animation2/readme.txt +72 -0
  89. data/sample/Animation2/song_title.png +0 -0
  90. data/sample/Diagram_sample/back.png +0 -0
  91. data/sample/Diagram_sample/chr01.png +0 -0
  92. data/sample/Diagram_sample/chr02.png +0 -0
  93. data/sample/Diagram_sample/cursor.png +0 -0
  94. data/sample/Diagram_sample/diagram_sample_yuki2.rb +329 -0
  95. data/sample/Diagram_sample/readme.txt +90 -0
  96. data/sample/Diagram_sample/wait_cursor.png +0 -0
  97. data/sample/Room3/blue.rb +297 -0
  98. data/sample/Room3/ending.rb +180 -0
  99. data/sample/Room3/green.rb +220 -0
  100. data/sample/Room3/image/akamatsu.png +0 -0
  101. data/sample/Room3/image/aoyama.png +0 -0
  102. data/sample/Room3/image/congra.png +0 -0
  103. data/sample/Room3/image/congratulation.png +0 -0
  104. data/sample/Room3/image/congratulation_bg.png +0 -0
  105. data/sample/Room3/image/cursor.png +0 -0
  106. data/sample/Room3/image/midori.png +0 -0
  107. data/sample/Room3/image/mittsu_no_oheya.png +0 -0
  108. data/sample/Room3/image/mittsu_no_oheya_logo.png +0 -0
  109. data/sample/Room3/image/room_blue.png +0 -0
  110. data/sample/Room3/image/room_green.png +0 -0
  111. data/sample/Room3/image/room_red.png +0 -0
  112. data/sample/Room3/image/start.png +0 -0
  113. data/sample/Room3/image/three_doors.png +0 -0
  114. data/sample/Room3/image/wait_cursor.png +0 -0
  115. data/sample/Room3/main.rb +120 -0
  116. data/sample/Room3/main_component.rb +59 -0
  117. data/sample/Room3/readme.txt +76 -0
  118. data/sample/Room3/red.rb +227 -0
  119. data/sample/Room3/room3.rb +25 -0
  120. data/sample/Room3/title.rb +184 -0
  121. data/sample/ball_action_sample.rb +204 -0
  122. data/sample/blit_rop.rb +70 -0
  123. data/sample/cairo_sample.rb +25 -0
  124. data/sample/circle_collision_test.rb +66 -0
  125. data/sample/collision_test.rb +33 -0
  126. data/sample/collision_test2.rb +108 -0
  127. data/sample/fixed_map_test/cursor.png +0 -0
  128. data/sample/fixed_map_test/fixed_map_sample.rb +140 -0
  129. data/sample/fixed_map_test/map.csv +19 -0
  130. data/sample/fixed_map_test/map_01.png +0 -0
  131. data/sample/fixed_map_test/mapchip.csv +23 -0
  132. data/sample/fixed_map_test/monster.png +0 -0
  133. data/sample/fixed_map_test/readme.txt +72 -0
  134. data/sample/map_test/chara.rb +58 -0
  135. data/sample/map_test/chr1.png +0 -0
  136. data/sample/map_test/cursor.png +0 -0
  137. data/sample/map_test/main_parts.rb +69 -0
  138. data/sample/map_test/main_scene.rb +153 -0
  139. data/sample/map_test/map.png +0 -0
  140. data/sample/map_test/map2.png +0 -0
  141. data/sample/map_test/map_layer.csv +127 -0
  142. data/sample/map_test/map_manager.rb +75 -0
  143. data/sample/map_test/map_test.rb +23 -0
  144. data/sample/map_test/mapchip.csv +21 -0
  145. data/sample/map_test/oasis.rb +71 -0
  146. data/sample/map_test/readme.txt +89 -0
  147. data/sample/map_test/route.rb +157 -0
  148. data/sample/map_test/sea.png +0 -0
  149. data/sample/map_test/town.rb +74 -0
  150. data/sample/map_test/wait_cursor.png +0 -0
  151. data/sample/map_test/window.png +0 -0
  152. data/sample/polygon_test.rb +35 -0
  153. data/sample/rasterscroll.rb +25 -0
  154. data/sample/takahashi.rb +42 -0
  155. data/sample/text.png +0 -0
  156. data/sample/textbox_sample.rb +192 -0
  157. data/sample/transform.rb +54 -0
  158. data/sample/utility_test.rb +73 -0
  159. data/sample/utility_test2.rb +61 -0
  160. data/sample/utility_test3.rb +64 -0
  161. data/sample/utility_test4.rb +73 -0
  162. data/uninstall_miyako.rb +19 -0
  163. data/win/miyako_no_katana.so +0 -0
  164. metadata +216 -0
data/Rakefile ADDED
@@ -0,0 +1,7 @@
1
+ #! /usr/bin/env rake
2
+
3
+ task :default => :ruby_miyako
4
+
5
+ task :ruby_miyako do
6
+ system 'ruby install_miyako.rb'
7
+ end
data/defines.h ADDED
@@ -0,0 +1,144 @@
1
+ /*
2
+ --
3
+ Miyako v2.0 Extend Library "Miyako no Katana"
4
+ Copyright (C) 2008 Cyross Makoto
5
+
6
+ This library is free software; you can redistribute it and/or
7
+ modify it under the terms of the GNU Lesser General Public
8
+ License as published by the Free Software Foundation; either
9
+ version 2.1 of the License, or (at your option) any later version.
10
+
11
+ This library is distributed in the hope that it will be useful,
12
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
13
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14
+ Lesser General Public License for more details.
15
+
16
+ You should have received a copy of the GNU Lesser General Public
17
+ License along with this library; if not, write to the Free Software
18
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19
+ ++
20
+ */
21
+
22
+ #include <SDL.h>
23
+ #include <SDL_ttf.h>
24
+ #include <SDL_endian.h>
25
+ #include <stdlib.h>
26
+ #include <math.h>
27
+ #include "ruby.h"
28
+ #include "ruby/encoding.h"
29
+
30
+ typedef struct
31
+ {
32
+ SDL_Surface* surface;
33
+ } Surface;
34
+
35
+ typedef struct
36
+ {
37
+ Uint32 r;
38
+ Uint32 g;
39
+ Uint32 b;
40
+ Uint32 a;
41
+ } MiyakoColor;
42
+
43
+ typedef struct
44
+ {
45
+ int w;
46
+ int h;
47
+ } MiyakoSize;
48
+
49
+ typedef struct
50
+ {
51
+ VALUE unit;
52
+ SDL_Surface *surface;
53
+ SDL_PixelFormat *fmt;
54
+ SDL_Rect rect;
55
+ MiyakoColor color;
56
+ Uint32 a255;
57
+ Uint32 *ptr;
58
+ int x;
59
+ int y;
60
+ } MiyakoBitmap;
61
+
62
+ // from rubysdl.h
63
+ #define GLOBAL_DEFINE_GET_STRUCT(struct_name, fun, klass, klassstr) \
64
+ struct_name* fun(VALUE obj) \
65
+ { \
66
+ struct_name* st; \
67
+ \
68
+ if(!rb_obj_is_kind_of(obj, klass)){ \
69
+ rb_raise(rb_eTypeError, "wrong argument type %s (expected " klassstr ")", \
70
+ rb_obj_classname(obj)); \
71
+ } \
72
+ Data_Get_Struct(obj, struct_name, st); \
73
+ return st; \
74
+ }
75
+
76
+ #define MIYAKO_GETCOLOR(COLOR) \
77
+ COLOR.r = (Uint32)(((pixel & fmt->Rmask) >> fmt->Rshift) << fmt->Rloss); \
78
+ COLOR.g = (Uint32)(((pixel & fmt->Gmask) >> fmt->Gshift) << fmt->Gloss); \
79
+ COLOR.b = (Uint32)(((pixel & fmt->Bmask) >> fmt->Bshift) << fmt->Bloss); \
80
+ COLOR.a = (Uint32)(((pixel & fmt->Amask) >> fmt->Ashift) << fmt->Aloss);
81
+
82
+ #define MIYAKO_SETCOLOR(RESULT, COLOR) \
83
+ RESULT = (COLOR.r >> fmt->Rloss) << fmt->Rshift | \
84
+ (COLOR.g >> fmt->Gloss) << fmt->Gshift | \
85
+ (COLOR.b >> fmt->Bloss) << fmt->Bshift | \
86
+ (COLOR.a >> fmt->Aloss) << fmt->Ashift;
87
+
88
+ #define MIYAKO_SET_RECT(RECT, BASE) \
89
+ RECT.x = NUM2INT(*(RSTRUCT_PTR(BASE) + 1)); \
90
+ RECT.y = NUM2INT(*(RSTRUCT_PTR(BASE) + 2)); \
91
+ RECT.w = NUM2INT(*(RSTRUCT_PTR(BASE) + 3)); \
92
+ RECT.h = NUM2INT(*(RSTRUCT_PTR(BASE) + 4));
93
+
94
+ #define MIYAKO_INIT_RECT1 \
95
+ int dlx = drect.x + x; \
96
+ int dly = drect.y + y; \
97
+ int dmx = dlx + (srect.w < drect.w ? srect.w : drect.w); \
98
+ int dmy = dly + (srect.h < drect.h ? srect.h : drect.h);
99
+
100
+ #define MIYAKO_INIT_RECT2 \
101
+ int dlx = drect.x; \
102
+ int dly = drect.y; \
103
+ int dmx = dlx + drect.w; \
104
+ int dmy = dly + drect.h;
105
+
106
+ #define MIYAKO_INIT_RECT3 \
107
+ if(s2rect.w != drect.w){ return Qnil; } \
108
+ if(s2rect.h != drect.h){ return Qnil; } \
109
+ int x1 = NUM2INT(*(RSTRUCT_PTR(s1unit) + 5)); \
110
+ int y1 = NUM2INT(*(RSTRUCT_PTR(s1unit) + 6)); \
111
+ int x2 = NUM2INT(*(RSTRUCT_PTR(s2unit) + 5)); \
112
+ int y2 = NUM2INT(*(RSTRUCT_PTR(s2unit) + 6)); \
113
+ if(s1rect.x < 0 || s1rect.y < 0 || s2rect.x < 0 || s2rect.y < 0){ return Qnil; } \
114
+ if(s1rect.w < s2rect.w && (x1+s1rect.x+s1rect.w > s2rect.w)){ return Qnil; } \
115
+ if(s2rect.w < s1rect.w && (x2+s2rect.x+s2rect.w > s1rect.w)){ return Qnil; } \
116
+ if(s1rect.h < s2rect.h && (y1+s1rect.y+s1rect.h > s2rect.h)){ return Qnil; } \
117
+ if(s2rect.h < s1rect.h && (y2+s2rect.y+s2rect.h > s1rect.h)){ return Qnil; } \
118
+ int dlx = drect.x; \
119
+ int dly = drect.y; \
120
+ int dmx = dlx + (s1rect.w < s2rect.w ? s1rect.w : s2rect.w); \
121
+ int dmy = dly + (s1rect.h < s2rect.h ? s1rect.h : s2rect.h);
122
+
123
+ #define MIYAKO_PSET(XX,YY) \
124
+ pixel = 0; \
125
+ if(dcolor.a == 0) \
126
+ { \
127
+ *(pdst + YY * dst->w + XX) = (scolor.r >> fmt->Rloss) << fmt->Rshift | \
128
+ (scolor.g >> fmt->Gloss) << fmt->Gshift | \
129
+ (scolor.b >> fmt->Bloss) << fmt->Bshift | \
130
+ (scolor.a >> fmt->Aloss) << fmt->Ashift; \
131
+ continue; \
132
+ } \
133
+ if(scolor.a > 0) \
134
+ { \
135
+ int a1 = scolor.a + 1; \
136
+ int a2 = 256 - scolor.a; \
137
+ scolor.r = (scolor.r * a1 + dcolor.r * a2) >> 8; \
138
+ scolor.g = (scolor.g * a1 + dcolor.g * a2) >> 8; \
139
+ scolor.b = (scolor.b * a1 + dcolor.b * a2) >> 8; \
140
+ *(pdst + YY * dst->w + XX) = (scolor.r >> fmt->Rloss) << fmt->Rshift | \
141
+ (scolor.g >> fmt->Gloss) << fmt->Gshift | \
142
+ (scolor.b >> fmt->Bloss) << fmt->Bshift | \
143
+ (scolor.a >> fmt->Aloss) << fmt->Ashift; \
144
+ }
data/extconf.rb ADDED
@@ -0,0 +1,44 @@
1
+ require 'mkmf'
2
+
3
+ if /mswin32/ =~ CONFIG["arch"]
4
+ have_library("SDL")
5
+ else
6
+ sdl_config = with_config('sdl-config', 'sdl-config')
7
+
8
+ $CFLAGS += ' ' + `#{sdl_config} --cflags`.chomp
9
+ $LOCAL_LIBS += ' ' + `#{sdl_config} --libs`.chomp
10
+
11
+ if /-Dmain=SDL_main/ =~ $CFLAGS then
12
+ def try_func(func, libs, headers = nil, &b)
13
+ headers = cpp_include(headers)
14
+ try_link(<<"SRC", libs, &b) or try_link(<<"SRC", libs, &b)
15
+ #{headers}
16
+ /*top*/
17
+ int main(int argc,char** argv) { return 0; }
18
+ int t() { #{func}(); return 0; }
19
+ SRC
20
+ #{COMMON_HEADERS}
21
+ #{headers}
22
+ /*top*/
23
+ int main(int argc,char** argv) { return 0; }
24
+ int t() { void ((*volatile p)()); p = (void ((*)()))#{func}; return 0; }
25
+ SRC
26
+ end
27
+ end
28
+ end
29
+
30
+ if enable_config("static-libs",false) then
31
+ have_library("SDL")
32
+ have_library("freetype")
33
+ have_library("SGE")
34
+ end
35
+
36
+ if have_library("SDL_ttf","TTF_Init") then
37
+ $CFLAGS+= " -D HAVE_SDL_TTF "
38
+ end
39
+
40
+ if have_library("SGE","sge_Line") then
41
+ $CFLAGS+= " -D HAVE_SGE "
42
+ end
43
+
44
+ create_makefile('miyako_no_katana')
data/extern.h ADDED
@@ -0,0 +1,29 @@
1
+ /*
2
+ --
3
+ Miyako v2.0 Extend Library "Miyako no Katana"
4
+ Copyright (C) 2008 Cyross Makoto
5
+
6
+ This library is free software; you can redistribute it and/or
7
+ modify it under the terms of the GNU Lesser General Public
8
+ License as published by the Free Software Foundation; either
9
+ version 2.1 of the License, or (at your option) any later version.
10
+
11
+ This library is distributed in the hope that it will be useful,
12
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
13
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14
+ Lesser General Public License for more details.
15
+
16
+ You should have received a copy of the GNU Lesser General Public
17
+ License along with this library; if not, write to the Free Software
18
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19
+ ++
20
+ */
21
+
22
+ extern void _miyako_setup_unit(VALUE unit, SDL_Surface *screen, MiyakoBitmap *mb, VALUE x, VALUE y, int use_yield);
23
+ extern void _miyako_setup_unit_2(VALUE unit_s, VALUE unit_d,
24
+ SDL_Surface *screen,
25
+ MiyakoBitmap *mb_s, MiyakoBitmap *mb_d,
26
+ VALUE x, VALUE y, int use_yield);
27
+ extern int _miyako_init_rect(MiyakoBitmap *src, MiyakoBitmap *dst, MiyakoSize *size);
28
+ extern void _miyako_yield_unit_1(MiyakoBitmap *src);
29
+ extern void _miyako_yield_unit_2(MiyakoBitmap *src, MiyakoBitmap *dst);
data/img/cursor.png ADDED
Binary file
data/img/cursors.png ADDED
Binary file
data/img/dice.png ADDED
Binary file
Binary file
data/img/win_base.png ADDED
Binary file
data/img/window.png ADDED
Binary file
data/install_miyako.rb ADDED
@@ -0,0 +1,87 @@
1
+ # Miyako2.0 install script
2
+ # 2009 Cyross Makoto
3
+
4
+ if RUBY_VERSION < '1.9.1'
5
+ puts 'Sorry. Miyako needs Ruby 1.9.1 or above...'
6
+ exit
7
+ end
8
+
9
+ begin
10
+ require 'sdl'
11
+ rescue
12
+ puts 'Sorry. Miyako needs Ruby/SDL...'
13
+ exit
14
+ end
15
+
16
+ if SDL::VERSION < '2.1'
17
+ puts 'Sorry. Miyako needs Ruby/SDL 2.1.0 or above...'
18
+ exit
19
+ end
20
+
21
+ require 'rbconfig'
22
+ require 'fileutils'
23
+ require 'optparse'
24
+
25
+ option = { :noop => false, :verbose => true }
26
+ not_force = true
27
+
28
+ ARGV.options do |opt|
29
+ opt.on('--no-harm'){ option[:noop] = true }
30
+ opt.on('--force'){ not_force = false }
31
+ opt.on('--quiet'){ option[:verbose] = false }
32
+
33
+ opt.parse!
34
+ end
35
+
36
+ ext_dir = "./"
37
+ osn = Config::CONFIG["target_os"].downcase
38
+ if osn =~ /mswin|mingw|cygwin|bccwin/
39
+ ext_dir = "win/"
40
+ elsif osn =~ /darwin/ # Mac OS X
41
+ if ENV['SDL_CONFIG_PATH']
42
+ system(Config::CONFIG["ruby_install_name"] + " extconf.rb --with-sdl-config='#{ENV['SDL_CONFIG_PATH']}'; make")
43
+ else
44
+ system(Config::CONFIG["ruby_install_name"] + " extconf.rb --with-sdl-config='sdl-config'; make")
45
+ end
46
+ else # linux, U*IX...
47
+ if ENV['SDL_CONFIG_PATH']
48
+ system(Config::CONFIG["ruby_install_name"] + " extconf.rb --with-sdl-config='#{ENV['SDL_CONFIG_PATH']}'; make")
49
+ else
50
+ system(Config::CONFIG["ruby_install_name"] + " extconf.rb --with-sdl-config='sdl-config'; make")
51
+ end
52
+ end
53
+
54
+ sitelibdir = Config::CONFIG["sitelibdir"] + "/Miyako"
55
+ apidir = sitelibdir + "/API"
56
+ extdir = sitelibdir + "/EXT"
57
+
58
+ if FileTest.exist?(sitelibdir) && not_force
59
+ puts "#{sitelibdir} is arleady exists."
60
+ puts "Are you sure?(Y/else)"
61
+ exit unless $stdin.gets.split(//)[0].upcase == 'Y'
62
+ end
63
+
64
+ FileUtils.remove_dir(sitelibdir, true)
65
+ FileUtils.mkpath(sitelibdir, option)
66
+ FileUtils.mkpath(apidir, option)
67
+ FileUtils.mkpath(extdir, option)
68
+
69
+ if osn =~ /darwin/ # Mac OS X
70
+ Dir.glob(ext_dir + "*.bundle"){|fname| FileUtils.install(fname, sitelibdir, option)}
71
+ else # Windows, linux, U*IX...
72
+ Dir.glob(ext_dir + "*.so"){|fname| FileUtils.install(fname, sitelibdir, option)}
73
+ end
74
+ Dir.glob("lib/Miyako/*.rb"){|fname| FileUtils.install(fname, sitelibdir, option)}
75
+ Dir.glob("lib/Miyako/API/*.rb"){|fname| FileUtils.install(fname, apidir, option)}
76
+ Dir.glob("lib/Miyako/EXT/*.rb"){|fname| FileUtils.install(fname, extdir, option)}
77
+
78
+ unless osn =~ /mswin|mingw|cygwin|bccwin/
79
+ FileUtils.chmod(0755, sitelibdir)
80
+ FileUtils.chmod(0755, apidir)
81
+ FileUtils.chmod(0755, extdir)
82
+ FileUtils.chmod(0644, sitelibdir+'/miyako.rb')
83
+ Dir.glob(sitelibdir+"/*.so"){|fname| FileUtils.chmod(0644, fname)} # for linux,bsd
84
+ Dir.glob(sitelibdir+"/*.bundle"){|fname| FileUtils.chmod(0644, fname)} # for macosx
85
+ Dir.glob(apidir+"/*.rb"){|fname| FileUtils.chmod(0644, fname)}
86
+ Dir.glob(extdir+"/*.rb"){|fname| FileUtils.chmod(0644, fname)}
87
+ end