@@ -24,14 +24,16 @@ PKG_TITLE = 'JSON Implementation for Ruby'
24
24
PKG_VERSION = File . read ( 'VERSION' ) . chomp
25
25
PKG_FILES = FileList [ "**/*" ] . exclude ( /CVS|pkg|tmp|coverage|Makefile|\. nfs\. / ) . exclude ( /\. (so|bundle|o|#{ CONFIG [ 'DLEXT' ] } )$/ )
26
26
EXT_ROOT_DIR = 'ext/json/ext'
27
- EXT_PARSER_DL = "#{ EXT_ROOT_DIR } /parser.#{ CONFIG [ 'DLEXT' ] } "
28
- EXT_PARSER_SRC = "#{ EXT_ROOT_DIR } /parser.c"
27
+ EXT_PARSER_DIR = "#{ EXT_ROOT_DIR } /parser"
28
+ EXT_PARSER_DL = "#{ EXT_PARSER_DIR } /parser.#{ CONFIG [ 'DLEXT' ] } "
29
+ EXT_PARSER_SRC = "#{ EXT_PARSER_DIR } /parser.c"
29
30
PKG_FILES << EXT_PARSER_SRC
30
- EXT_GENERATOR_DL = "#{ EXT_ROOT_DIR } /generator.#{ CONFIG [ 'DLEXT' ] } "
31
- EXT_GENERATOR_SRC = "#{ EXT_ROOT_DIR } /generator.c"
31
+ EXT_GENERATOR_DIR = "#{ EXT_ROOT_DIR } /generator"
32
+ EXT_GENERATOR_DL = "#{ EXT_GENERATOR_DIR } /generator.#{ CONFIG [ 'DLEXT' ] } "
33
+ EXT_GENERATOR_SRC = "#{ EXT_GENERATOR_DIR } /generator.c"
32
34
RAGEL_CODEGEN = %w[ rlcodegen rlgen-cd ragel ] . find { |c | system ( c , '-v' ) }
33
35
RAGEL_DOTGEN = %w[ rlgen-dot rlgen-cd ragel ] . find { |c | system ( c , '-v' ) }
34
- RAGEL_PATH = "#{ EXT_ROOT_DIR } /parser.rl"
36
+ RAGEL_PATH = "#{ EXT_PARSER_DIR } /parser.rl"
35
37
36
38
def myruby ( *args , &block )
37
39
@myruby ||= File . join ( CONFIG [ 'bindir' ] , CONFIG [ 'ruby_install_name' ] )
@@ -73,17 +75,19 @@ desc "Compiling extension"
73
75
task :compile_ext => [ EXT_PARSER_DL , EXT_GENERATOR_DL ]
74
76
75
77
file EXT_PARSER_DL => EXT_PARSER_SRC do
76
- cd EXT_ROOT_DIR do
77
- myruby 'extconf_parser .rb'
78
+ cd EXT_PARSER_DIR do
79
+ myruby 'extconf .rb'
78
80
sh MAKE
79
81
end
82
+ cp "#{ EXT_PARSER_DIR } /parser.#{ CONFIG [ 'DLEXT' ] } " , EXT_ROOT_DIR
80
83
end
81
84
82
85
file EXT_GENERATOR_DL => EXT_GENERATOR_SRC do
83
- cd EXT_ROOT_DIR do
84
- myruby 'extconf_generator .rb'
86
+ cd EXT_GENERATOR_DIR do
87
+ myruby 'extconf .rb'
85
88
sh MAKE
86
89
end
90
+ cp "#{ EXT_GENERATOR_DIR } /generator.#{ CONFIG [ 'DLEXT' ] } " , EXT_ROOT_DIR
87
91
end
88
92
89
93
desc "Generate parser with ragel"
@@ -94,7 +98,7 @@ task :ragel_clean do
94
98
end
95
99
96
100
file EXT_PARSER_SRC => RAGEL_PATH do
97
- cd EXT_ROOT_DIR do
101
+ cd EXT_PARSER_DIR do
98
102
if RAGEL_CODEGEN == 'ragel'
99
103
sh "ragel parser.rl -G2 -o parser.c"
100
104
else
@@ -215,7 +219,7 @@ if defined?(Gem) and defined?(Rake::GemPackageTask) and defined?(Rake::Extension
215
219
216
220
s . files = PKG_FILES
217
221
218
- s . extensions = FileList [ 'ext/**/extconf_* .rb' ]
222
+ s . extensions = FileList [ 'ext/**/extconf .rb' ]
219
223
220
224
s . require_path = EXT_ROOT_DIR
221
225
s . require_paths << 'ext'
@@ -244,21 +248,19 @@ if defined?(Gem) and defined?(Rake::GemPackageTask) and defined?(Rake::Extension
244
248
245
249
Rake ::ExtensionTask . new do |ext |
246
250
ext . name = 'parser'
247
- ext . config_script = 'extconf_parser.rb'
248
251
ext . gem_spec = spec_ext
249
252
ext . cross_compile = true
250
253
ext . cross_platform = %w[ i386-mswin32 i386-mingw32 ]
251
- ext . ext_dir = 'ext/json/ext'
254
+ ext . ext_dir = 'ext/json/ext/parser '
252
255
ext . lib_dir = 'lib/json/ext'
253
256
end
254
257
255
258
Rake ::ExtensionTask . new do |ext |
256
259
ext . name = 'generator'
257
- ext . config_script = 'extconf_generator.rb'
258
260
ext . gem_spec = spec_ext
259
261
ext . cross_compile = true
260
262
ext . cross_platform = %w[ i386-mswin32 i386-mingw32 ]
261
- ext . ext_dir = 'ext/json/ext'
263
+ ext . ext_dir = 'ext/json/ext/generator '
262
264
ext . lib_dir = 'lib/json/ext'
263
265
end
264
266
end
0 commit comments