hitimes 1.0.1 → 1.0.2
Sign up to get free protection for your applications and to get access to all the features.
- data/HISTORY +13 -6
- data/Rakefile +3 -0
- data/ext/{extconf.rb → hitimes/extconf.rb} +7 -1
- data/ext/{hitimes_ext.c → hitimes/hitimes_ext.c} +0 -0
- data/ext/{hitimes_instant_clock_gettime.c → hitimes/hitimes_instant_clock_gettime.c} +7 -4
- data/ext/{hitimes_instant_osx.c → hitimes/hitimes_instant_osx.c} +0 -0
- data/ext/{hitimes_instant_windows.c → hitimes/hitimes_instant_windows.c} +1 -1
- data/ext/{hitimes_interval.c → hitimes/hitimes_interval.c} +13 -24
- data/ext/{hitimes_interval.h → hitimes/hitimes_interval.h} +5 -5
- data/ext/{hitimes_stats.c → hitimes/hitimes_stats.c} +5 -4
- data/ext/{hitimes_stats.h → hitimes/hitimes_stats.h} +5 -5
- data/gemspec.rb +2 -1
- data/lib/hitimes.rb +7 -1
- data/lib/hitimes/version.rb +1 -1
- data/spec/interval_spec.rb +11 -5
- data/spec/mutex_stats_spec.rb +1 -1
- data/spec/timed_metric_spec.rb +2 -2
- data/spec/timed_value_metric_spec.rb +1 -1
- data/tasks/config.rb +2 -1
- data/tasks/distribution.rake +15 -2
- data/tasks/extension.rake +27 -9
- data/tasks/rubyforge.rake +3 -0
- metadata +22 -20
- data/ext/rbconfig-mingw.rb +0 -178
- data/ext/rbconfig.rb +0 -178
data/HISTORY
CHANGED
@@ -1,16 +1,23 @@
|
|
1
1
|
= Changelog
|
2
|
+
== Version 1.0.2 2009-06-28
|
3
|
+
|
4
|
+
* Fix bug with time.h on linode (reported by Roger Pack)
|
5
|
+
* Fix potential garbage collection issue with Interval class
|
6
|
+
* Windows gem is now a fat binary to support installing in 1.8 or 1.9 from the
|
7
|
+
same gem
|
8
|
+
|
2
9
|
== Version 1.0.1 2009-06-12
|
3
10
|
|
4
11
|
* Fix examples
|
5
|
-
* performance tuning, new Metric classes are faster than old Timer class
|
12
|
+
* performance tuning, new Hitimes::Metric derived classes are faster than old Timer class
|
6
13
|
|
7
14
|
== Version 1.0.0 2009-06-12
|
8
15
|
|
9
16
|
* Major version bump with complete refactor of the metric collection API
|
10
17
|
* 3 types of metrics now instead of just 1 Timer
|
11
|
-
* ValueMetric
|
12
|
-
* TimedMetric
|
13
|
-
* TimedValueMetric
|
18
|
+
* Hitimes::ValueMetric
|
19
|
+
* Hitimes::TimedMetric
|
20
|
+
* Hitimes::TimedValueMetric
|
14
21
|
* The ability to convert all metrics #to_hash
|
15
22
|
* Updated documentation with examples using each metric type
|
16
23
|
|
@@ -23,7 +30,7 @@
|
|
23
30
|
|
24
31
|
* Added new stat 'rate'
|
25
32
|
* Added new stat method to_hash
|
26
|
-
* Added MutexedStats class for threadsafe stats collection
|
33
|
+
* Added Hitimes::MutexedStats class for threadsafe stats collection
|
27
34
|
- not needed when used in MRI 1.8.x
|
28
35
|
* remove stale dependency on mkrf
|
29
36
|
|
@@ -41,7 +48,7 @@
|
|
41
48
|
== Version 0.2.0
|
42
49
|
|
43
50
|
* Performance improvements
|
44
|
-
* Added Stats class
|
51
|
+
* Added Hitimes::Stats class
|
45
52
|
|
46
53
|
== Version 0.1.0
|
47
54
|
|
data/Rakefile
CHANGED
@@ -12,4 +12,10 @@ else
|
|
12
12
|
end
|
13
13
|
end
|
14
14
|
|
15
|
-
|
15
|
+
# put in a different location if on windows so we can have fat binaries
|
16
|
+
parent_dir = "hitimes"
|
17
|
+
if RUBY_PLATFORM =~ /(mswin|mingw)/i then
|
18
|
+
v = RUBY_VERSION.gsub(/\.\d$/,'')
|
19
|
+
parent_dir = File.join( parent_dir, v )
|
20
|
+
end
|
21
|
+
create_makefile("#{parent_dir}/hitimes_ext")
|
File without changes
|
@@ -2,11 +2,14 @@
|
|
2
2
|
|
3
3
|
#include "hitimes_interval.h"
|
4
4
|
|
5
|
-
#include <
|
5
|
+
#include <time.h>
|
6
6
|
#ifndef CLOCK_MONOTONIC
|
7
|
-
#
|
8
|
-
#
|
9
|
-
#
|
7
|
+
# include <sys/time.h>
|
8
|
+
# ifndef CLOCK_MONOTONIC
|
9
|
+
# ifdef __linux__
|
10
|
+
# include <linux/time.h>
|
11
|
+
# endif
|
12
|
+
# endif
|
10
13
|
#endif
|
11
14
|
|
12
15
|
hitimes_instant_t hitimes_get_current_instant( )
|
File without changes
|
@@ -7,7 +7,7 @@
|
|
7
7
|
* returns the conversion factor, this value is used to convert
|
8
8
|
* the value from hitimes_get_current_instant() into seconds
|
9
9
|
*/
|
10
|
-
double hitimes_instant_conversion_factor()
|
10
|
+
long double hitimes_instant_conversion_factor()
|
11
11
|
{
|
12
12
|
LARGE_INTEGER ticks_per_second;
|
13
13
|
QueryPerformanceFrequency( &ticks_per_second );
|
@@ -16,10 +16,6 @@ VALUE cH_Interval; /* class Hitimes::Interval */
|
|
16
16
|
|
17
17
|
VALUE hitimes_interval_free(hitimes_interval_t* i)
|
18
18
|
{
|
19
|
-
if ( Qnil != i->duration ) {
|
20
|
-
rb_gc_unregister_address( &(i->duration) );
|
21
|
-
i->duration = Qnil;
|
22
|
-
}
|
23
19
|
xfree( i );
|
24
20
|
return Qnil;
|
25
21
|
}
|
@@ -31,7 +27,7 @@ VALUE hitimes_interval_alloc(VALUE klass)
|
|
31
27
|
|
32
28
|
i->start_instant = 0L;
|
33
29
|
i->stop_instant = 0L;
|
34
|
-
i->duration =
|
30
|
+
i->duration = -1.0l;
|
35
31
|
|
36
32
|
obj = Data_Wrap_Struct(klass, NULL, hitimes_interval_free, i);
|
37
33
|
return obj;
|
@@ -50,7 +46,7 @@ VALUE hitimes_interval_now( VALUE self )
|
|
50
46
|
|
51
47
|
i->start_instant = hitimes_get_current_instant( );
|
52
48
|
i->stop_instant = 0L;
|
53
|
-
i->duration =
|
49
|
+
i->duration = -1.0l;
|
54
50
|
|
55
51
|
obj = Data_Wrap_Struct(cH_Interval, NULL, hitimes_interval_free, i);
|
56
52
|
|
@@ -67,7 +63,7 @@ VALUE hitimes_interval_measure( VALUE self )
|
|
67
63
|
{
|
68
64
|
hitimes_instant_t before;
|
69
65
|
hitimes_instant_t after;
|
70
|
-
double
|
66
|
+
long double duration;
|
71
67
|
|
72
68
|
if ( !rb_block_given_p() ) {
|
73
69
|
rb_raise(eH_Error, "No block given to Interval.measure" );
|
@@ -99,7 +95,7 @@ VALUE hitimes_interval_split( VALUE self )
|
|
99
95
|
|
100
96
|
second->start_instant = first->stop_instant;
|
101
97
|
second->stop_instant = 0L;
|
102
|
-
second->duration =
|
98
|
+
second->duration = -1.0l;
|
103
99
|
|
104
100
|
obj = Data_Wrap_Struct(cH_Interval, NULL, hitimes_interval_free, second);
|
105
101
|
|
@@ -124,7 +120,7 @@ VALUE hitimes_interval_start( VALUE self )
|
|
124
120
|
if ( 0L == i->start_instant ) {
|
125
121
|
i->start_instant = hitimes_get_current_instant( );
|
126
122
|
i->stop_instant = 0L;
|
127
|
-
i->duration =
|
123
|
+
i->duration = -1.0l;
|
128
124
|
|
129
125
|
rc = Qtrue;
|
130
126
|
}
|
@@ -152,13 +148,9 @@ VALUE hitimes_interval_stop( VALUE self )
|
|
152
148
|
}
|
153
149
|
|
154
150
|
if ( 0L == i->stop_instant ) {
|
155
|
-
double d;
|
156
|
-
|
157
151
|
i->stop_instant = hitimes_get_current_instant( );
|
158
|
-
|
159
|
-
|
160
|
-
rb_gc_register_address( &(i->duration) );
|
161
|
-
rc = i->duration;
|
152
|
+
i->duration = ( i->stop_instant - i->start_instant ) / HITIMES_INSTANT_CONVERSION_FACTOR;
|
153
|
+
rc = rb_float_new( i->duration );
|
162
154
|
}
|
163
155
|
|
164
156
|
return rc;
|
@@ -176,7 +168,6 @@ VALUE hitimes_interval_duration_so_far( VALUE self )
|
|
176
168
|
{
|
177
169
|
hitimes_interval_t *i;
|
178
170
|
VALUE rc = Qfalse;
|
179
|
-
double d;
|
180
171
|
|
181
172
|
Data_Get_Struct( self, hitimes_interval_t, i );
|
182
173
|
if ( 0L == i->start_instant ) {
|
@@ -184,6 +175,7 @@ VALUE hitimes_interval_duration_so_far( VALUE self )
|
|
184
175
|
}
|
185
176
|
|
186
177
|
if ( 0L == i->stop_instant ) {
|
178
|
+
long double d;
|
187
179
|
hitimes_instant_t now = hitimes_get_current_instant( );
|
188
180
|
d = ( now - i->start_instant ) / HITIMES_INSTANT_CONVERSION_FACTOR;
|
189
181
|
rc = rb_float_new( d );
|
@@ -293,7 +285,6 @@ VALUE hitimes_interval_stop_instant( VALUE self )
|
|
293
285
|
VALUE hitimes_interval_duration ( VALUE self )
|
294
286
|
{
|
295
287
|
hitimes_interval_t *i;
|
296
|
-
double d;
|
297
288
|
|
298
289
|
Data_Get_Struct( self, hitimes_interval_t, i );
|
299
290
|
|
@@ -301,22 +292,20 @@ VALUE hitimes_interval_duration ( VALUE self )
|
|
301
292
|
* if stop has not yet been called, then return the amount of time so far
|
302
293
|
*/
|
303
294
|
if ( 0L == i->stop_instant ) {
|
295
|
+
long double d;
|
304
296
|
hitimes_instant_t now = hitimes_get_current_instant( );
|
305
297
|
d = ( now - i->start_instant ) / HITIMES_INSTANT_CONVERSION_FACTOR;
|
306
298
|
return rb_float_new( d );
|
307
|
-
}
|
308
|
-
|
299
|
+
}
|
309
300
|
|
310
301
|
/*
|
311
302
|
* stop has been called, calculate the duration and save the result
|
312
303
|
*/
|
313
|
-
if (
|
314
|
-
|
315
|
-
i->duration = rb_float_new( d );
|
316
|
-
rb_gc_register_address( &(i->duration) );
|
304
|
+
if ( i->duration < 0.0 ) {
|
305
|
+
i->duration = ( i->stop_instant - i->start_instant ) / HITIMES_INSTANT_CONVERSION_FACTOR;
|
317
306
|
}
|
318
307
|
|
319
|
-
return i->duration;
|
308
|
+
return rb_float_new( i->duration );
|
320
309
|
}
|
321
310
|
|
322
311
|
|
@@ -10,14 +10,14 @@
|
|
10
10
|
|
11
11
|
#include <ruby.h>
|
12
12
|
|
13
|
-
#define NANOSECONDS_PER_SECOND
|
13
|
+
#define NANOSECONDS_PER_SECOND 1e9l
|
14
14
|
|
15
15
|
#ifdef USE_INSTANT_CLOCK_GETTIME
|
16
16
|
# define HITIMES_U64INT unsigned long long int
|
17
|
-
# define HITIMES_INSTANT_CONVERSION_FACTOR
|
17
|
+
# define HITIMES_INSTANT_CONVERSION_FACTOR 1e9l
|
18
18
|
#elif USE_INSTANT_OSX
|
19
19
|
# define HITIMES_U64INT unsigned long long int
|
20
|
-
# define HITIMES_INSTANT_CONVERSION_FACTOR
|
20
|
+
# define HITIMES_INSTANT_CONVERSION_FACTOR 1e9l
|
21
21
|
#elif USE_INSTANT_WINDOWS
|
22
22
|
# define HITIMES_U64INT unsigned __int64
|
23
23
|
# define HITIMES_INSTANT_CONVERSION_FACTOR hitimes_instant_conversion_factor()
|
@@ -34,12 +34,12 @@ typedef HITIMES_U64INT hitimes_instant_t;
|
|
34
34
|
typedef struct hitimes_interval {
|
35
35
|
hitimes_instant_t start_instant;
|
36
36
|
hitimes_instant_t stop_instant;
|
37
|
-
|
37
|
+
long double duration;
|
38
38
|
} hitimes_interval_t;
|
39
39
|
|
40
40
|
/* all the backends must define this method */
|
41
41
|
hitimes_instant_t hitimes_get_current_instant( );
|
42
|
-
double hitimes_instant_conversion_factor( );
|
42
|
+
long double hitimes_instant_conversion_factor( );
|
43
43
|
|
44
44
|
/* init methods */
|
45
45
|
void Init_hitimes_stats();
|
@@ -46,10 +46,11 @@ VALUE hitimes_stats_alloc(VALUE klass)
|
|
46
46
|
*/
|
47
47
|
VALUE hitimes_stats_update( VALUE self, VALUE v )
|
48
48
|
{
|
49
|
-
double
|
49
|
+
long double new_v;
|
50
50
|
hitimes_stats_t *stats;
|
51
51
|
|
52
52
|
Data_Get_Struct( self, hitimes_stats_t, stats );
|
53
|
+
new_v = NUM2DBL( v );
|
53
54
|
|
54
55
|
if ( 0 == stats->count ) {
|
55
56
|
stats->min = new_v;
|
@@ -76,7 +77,7 @@ VALUE hitimes_stats_update( VALUE self, VALUE v )
|
|
76
77
|
VALUE hitimes_stats_mean( VALUE self )
|
77
78
|
{
|
78
79
|
hitimes_stats_t *stats;
|
79
|
-
double
|
80
|
+
long double mean = 0.0;
|
80
81
|
|
81
82
|
Data_Get_Struct( self, hitimes_stats_t, stats );
|
82
83
|
|
@@ -106,7 +107,7 @@ VALUE hitimes_stats_mean( VALUE self )
|
|
106
107
|
VALUE hitimes_stats_rate( VALUE self )
|
107
108
|
{
|
108
109
|
hitimes_stats_t *stats;
|
109
|
-
double
|
110
|
+
long double rate = 0.0;
|
110
111
|
|
111
112
|
Data_Get_Struct( self, hitimes_stats_t, stats );
|
112
113
|
|
@@ -210,7 +211,7 @@ VALUE hitimes_stats_sumsq( VALUE self )
|
|
210
211
|
VALUE hitimes_stats_stddev ( VALUE self )
|
211
212
|
{
|
212
213
|
hitimes_stats_t *stats;
|
213
|
-
double
|
214
|
+
long double stddev = 0.0;
|
214
215
|
|
215
216
|
Data_Get_Struct( self, hitimes_stats_t, stats );
|
216
217
|
if ( stats->count > 1 ) {
|
@@ -18,11 +18,11 @@ extern VALUE cH_Stats; /* Hitimes::Stats */
|
|
18
18
|
|
19
19
|
|
20
20
|
typedef struct hitimes_stats {
|
21
|
-
double min;
|
22
|
-
double max;
|
23
|
-
double sum;
|
24
|
-
double sumsq;
|
25
|
-
long count;
|
21
|
+
long double min;
|
22
|
+
long double max;
|
23
|
+
long double sum;
|
24
|
+
long double sumsq;
|
25
|
+
long long count;
|
26
26
|
} hitimes_stats_t;
|
27
27
|
|
28
28
|
#endif
|
data/gemspec.rb
CHANGED
@@ -24,6 +24,7 @@ Hitimes::GEM_SPEC = Gem::Specification.new do |spec|
|
|
24
24
|
spec.add_dependency("configuration", " ~> 0.0.5")
|
25
25
|
|
26
26
|
spec.add_development_dependency( "json", "~> 1.1.3")
|
27
|
+
spec.add_development_dependency( "rake-compiler", "~> 0.5.0")
|
27
28
|
|
28
29
|
if ext_conf = Configuration.for_if_exist?("extension") then
|
29
30
|
spec.extensions << ext_conf.configs
|
@@ -51,6 +52,6 @@ end
|
|
51
52
|
Hitimes::GEM_SPEC_WIN = Hitimes::GEM_SPEC.clone
|
52
53
|
Hitimes::GEM_SPEC_WIN.platform = ::Gem::Platform.new( "i386-mswin32_60" )
|
53
54
|
Hitimes::GEM_SPEC_WIN.extensions = []
|
54
|
-
Hitimes::GEM_SPEC_WIN.files += ["lib/
|
55
|
+
Hitimes::GEM_SPEC_WIN.files += FileList["lib/hitimes/{1.8,1.9}/**.{dll,so}"].to_a
|
55
56
|
|
56
57
|
Hitimes::SPECS = [ Hitimes::GEM_SPEC, Hitimes::GEM_SPEC_WIN ]
|
data/lib/hitimes.rb
CHANGED
@@ -18,7 +18,13 @@ module Hitimes
|
|
18
18
|
end
|
19
19
|
require 'hitimes/paths'
|
20
20
|
require 'hitimes/version'
|
21
|
-
|
21
|
+
|
22
|
+
# support for fat binaries on windows
|
23
|
+
if RUBY_PLATFORM =~ /(mswin|mingw)/i
|
24
|
+
require "hitimes/#{RUBY_VERSION.sub(/\.\d$/,'')}/hitimes_ext"
|
25
|
+
else
|
26
|
+
require 'hitimes/hitimes_ext'
|
27
|
+
end
|
22
28
|
require 'hitimes/stats'
|
23
29
|
require 'hitimes/mutexed_stats'
|
24
30
|
require 'hitimes/metric'
|
data/lib/hitimes/version.rb
CHANGED
data/spec/interval_spec.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
require File.expand_path( File.join( File.dirname( __FILE__ ), "spec_helper.rb" ) )
|
2
2
|
|
3
|
-
require 'hitimes_ext'
|
3
|
+
require 'hitimes/hitimes_ext'
|
4
4
|
|
5
5
|
describe Hitimes::Interval do
|
6
6
|
it "has a 0 duration when newly created" do
|
@@ -85,13 +85,19 @@ describe Hitimes::Interval do
|
|
85
85
|
|
86
86
|
end
|
87
87
|
|
88
|
-
it "
|
88
|
+
it "duration does not change after stop is calledd" do
|
89
89
|
i = Hitimes::Interval.new
|
90
90
|
i.start
|
91
|
-
i.stop
|
92
|
-
x = i.duration
|
91
|
+
x = i.stop
|
93
92
|
y = i.duration
|
94
|
-
|
93
|
+
i.stop.should == false
|
94
|
+
|
95
|
+
z = i.duration
|
96
|
+
|
97
|
+
x.should == y
|
98
|
+
x.should == z
|
99
|
+
|
100
|
+
y.should == z
|
95
101
|
end
|
96
102
|
|
97
103
|
it "can return how much time has elapsed from the start without stopping the interval" do
|
data/spec/mutex_stats_spec.rb
CHANGED
data/spec/timed_metric_spec.rb
CHANGED
@@ -65,12 +65,12 @@ describe Hitimes::TimedMetric do
|
|
65
65
|
|
66
66
|
it "keeps track of the min value" do
|
67
67
|
2.times { @tm.start ; sleep 0.05 ; @tm.stop }
|
68
|
-
@tm.min.should be_close( 0.05, 0.
|
68
|
+
@tm.min.should be_close( 0.05, 0.002 )
|
69
69
|
end
|
70
70
|
|
71
71
|
it "keeps track of the max value" do
|
72
72
|
2.times { @tm.start ; sleep 0.05 ; @tm.stop }
|
73
|
-
@tm.max.should be_close( 0.05, 0.
|
73
|
+
@tm.max.should be_close( 0.05, 0.002 )
|
74
74
|
end
|
75
75
|
|
76
76
|
it "keeps track of the sum value" do
|
@@ -151,7 +151,7 @@ describe Hitimes::TimedValueMetric do
|
|
151
151
|
it "has a rate" do
|
152
152
|
5.times { |x| @tm.start ; sleep 0.05 ; @tm.stop( x ) }
|
153
153
|
h = @tm.to_hash
|
154
|
-
h['rate'].should be_close( 40.0, 0.
|
154
|
+
h['rate'].should be_close( 40.0, 0.3 )
|
155
155
|
end
|
156
156
|
|
157
157
|
it "has a unit_count" do
|
data/tasks/config.rb
CHANGED
@@ -27,7 +27,7 @@ Configuration.for('packaging') {
|
|
27
27
|
proj_conf = Configuration.for('project')
|
28
28
|
files {
|
29
29
|
bin FileList["bin/*"]
|
30
|
-
ext FileList["ext/*.{c,h,rb}"]
|
30
|
+
ext FileList["ext/hitimes/*.{c,h,rb}"]
|
31
31
|
examples FileList["examples/*.rb"]
|
32
32
|
lib FileList["lib/**/*.rb"]
|
33
33
|
test FileList["spec/**/*.rb", "test/**/*.rb"]
|
@@ -92,6 +92,7 @@ Configuration.for('rdoc') {
|
|
92
92
|
#-----------------------------------------------------------------------
|
93
93
|
Configuration.for('extension') {
|
94
94
|
configs Configuration.for('packaging').files.ext.find_all { |x| %w[ mkrf_conf.rb extconf.rb ].include?(File.basename(x)) }
|
95
|
+
cross_rbconfig YAML.load_file( File.expand_path("~/.rake-compiler/config.yml"))
|
95
96
|
}
|
96
97
|
|
97
98
|
#-----------------------------------------------------------------------
|
data/tasks/distribution.rake
CHANGED
@@ -35,12 +35,25 @@ if pkg_config = Configuration.for_if_exist?("packaging") then
|
|
35
35
|
task :reinstall => [:uninstall, :repackage, :install]
|
36
36
|
|
37
37
|
desc "package up a windows gem"
|
38
|
-
task :package_win =>
|
39
|
-
|
38
|
+
task :package_win => :clean do
|
39
|
+
Configuration.for("extension").cross_rbconfig.keys.each do |rbconfig|
|
40
|
+
v = rbconfig.split("-").last
|
41
|
+
s = v.sub(/\.\d$/,'')
|
42
|
+
sh "rake ext:build_win-#{v}"
|
43
|
+
mkdir_p "lib/hitimes/#{s}", :verbose => true
|
44
|
+
cp "ext/hitimes/hitimes_ext.so", "lib/hitimes/#{s}/", :verbose => true
|
45
|
+
end
|
46
|
+
|
40
47
|
Gem::Builder.new( Hitimes::GEM_SPEC_WIN ).build
|
48
|
+
mkdir "pkg" unless File.directory?( 'pkg' )
|
41
49
|
mv Dir["*.gem"].first, "pkg"
|
42
50
|
end
|
43
51
|
|
52
|
+
task :clobber do
|
53
|
+
rm_rf "lib/hitimes/1.8"
|
54
|
+
rm_rf "lib/hitimes/1.9"
|
55
|
+
end
|
56
|
+
|
44
57
|
desc "distribute copiously"
|
45
58
|
task :copious => [:package, :package_win ] do
|
46
59
|
gems = Hitimes::SPECS.collect { |s| "#{s.full_name}.gem" }
|
data/tasks/extension.rake
CHANGED
@@ -8,41 +8,59 @@ require 'pathname'
|
|
8
8
|
if ext_config = Configuration.for_if_exist?('extension') then
|
9
9
|
namespace :ext do
|
10
10
|
desc "Build the extension(s)"
|
11
|
-
task :build do
|
11
|
+
task :build => :clean do
|
12
12
|
Hitimes::GEM_SPEC.extensions.each do |extension|
|
13
13
|
path = Pathname.new(extension)
|
14
14
|
parts = path.split
|
15
15
|
conf = parts.last
|
16
16
|
Dir.chdir(path.dirname) do |d|
|
17
17
|
ruby conf.to_s
|
18
|
-
#sh "rake default"
|
19
18
|
sh "make"
|
20
19
|
end
|
21
20
|
end
|
22
21
|
end
|
23
22
|
|
24
|
-
|
25
|
-
|
23
|
+
def build_win( version = "1.8.6" )
|
24
|
+
ext_config = Configuration.for("extension")
|
25
|
+
rbconfig = ext_config.cross_rbconfig["rbconfig-#{version}"]
|
26
|
+
raise ArgumentError, "No cross compiler for version #{version}, we have #{ext_config.cross_rbconfig.keys.join(",")}" unless rbconfig
|
27
|
+
ruby_exe = if version =~ /1\.8/ then
|
28
|
+
"ruby"
|
29
|
+
else
|
30
|
+
"ruby1.9"
|
31
|
+
end
|
26
32
|
Hitimes::GEM_SPEC.extensions.each do |extension|
|
27
33
|
path = Pathname.new(extension)
|
28
34
|
parts = path.split
|
29
35
|
conf = parts.last
|
30
36
|
Dir.chdir(path.dirname) do |d|
|
31
|
-
cp "rbconfig
|
32
|
-
sh "
|
37
|
+
cp "#{rbconfig}", "rbconfig.rb"
|
38
|
+
sh "#{ruby_exe} -I. extconf.rb"
|
33
39
|
sh "make"
|
34
40
|
end
|
35
41
|
end
|
36
42
|
end
|
37
43
|
|
44
|
+
win_builds = []
|
45
|
+
ext_config.cross_rbconfig.keys.each do |v|
|
46
|
+
s = v.split("-").last
|
47
|
+
desc "Build the extension for windows version #{s}"
|
48
|
+
win_bname = "build_win-#{s}"
|
49
|
+
win_builds << win_bname
|
50
|
+
task win_bname => :clean do
|
51
|
+
build_win( s )
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
38
55
|
task :clean do
|
39
56
|
ext_config.configs.each do |extension|
|
40
57
|
path = Pathname.new(extension)
|
41
58
|
parts = path.split
|
42
59
|
conf = parts.last
|
43
60
|
Dir.chdir(path.dirname) do |d|
|
44
|
-
|
45
|
-
|
61
|
+
if File.exist?( "Makefile" ) then
|
62
|
+
sh "make clean"
|
63
|
+
end
|
46
64
|
end
|
47
65
|
end
|
48
66
|
end
|
@@ -53,10 +71,10 @@ if ext_config = Configuration.for_if_exist?('extension') then
|
|
53
71
|
parts = path.split
|
54
72
|
conf = parts.last
|
55
73
|
Dir.chdir(path.dirname) do |d|
|
56
|
-
#sh "rake clobber"
|
57
74
|
if File.exist?( "Makefile" ) then
|
58
75
|
sh "make distclean"
|
59
76
|
end
|
77
|
+
rm_f "rbconfig.rb"
|
60
78
|
end
|
61
79
|
end
|
62
80
|
end
|
data/tasks/rubyforge.rake
CHANGED
@@ -31,6 +31,9 @@ if rf_conf = Configuration.for_if_exist?("rubyforge") then
|
|
31
31
|
|
32
32
|
puts "Uploading to rubyforge..."
|
33
33
|
files = FileList[File.join("pkg","#{Hitimes::GEM_SPEC.name}-#{Hitimes::VERSION}*.*")].to_a
|
34
|
+
files.each do |f|
|
35
|
+
puts " * #{f}"
|
36
|
+
end
|
34
37
|
rubyforge.login
|
35
38
|
rubyforge.add_release(Hitimes::GEM_SPEC.rubyforge_project, Hitimes::GEM_SPEC.name, Hitimes::VERSION, *files)
|
36
39
|
puts "done."
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hitimes
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jeremy Hinegardner
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-06-
|
12
|
+
date: 2009-06-28 00:00:00 -06:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -42,12 +42,22 @@ dependencies:
|
|
42
42
|
- !ruby/object:Gem::Version
|
43
43
|
version: 1.1.3
|
44
44
|
version:
|
45
|
+
- !ruby/object:Gem::Dependency
|
46
|
+
name: rake-compiler
|
47
|
+
type: :development
|
48
|
+
version_requirement:
|
49
|
+
version_requirements: !ruby/object:Gem::Requirement
|
50
|
+
requirements:
|
51
|
+
- - ~>
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: 0.5.0
|
54
|
+
version:
|
45
55
|
description: "Hitimes is a fast, high resolution timer library for recording performance metrics. It uses the appropriate C method calls for each system to get the highest granularity time increments possible. It currently supports any of the following systems: * any system with the POSIX call <tt>clock_gettime()</tt>, * Mac OS X * Windows Using Hitimes can be faster than using a series of +Time.new+ calls, and it will have a much higher granularity. It is definitely faster than using +Process.times+."
|
46
56
|
email: jeremy@copiousfreetime.org
|
47
57
|
executables: []
|
48
58
|
|
49
59
|
extensions:
|
50
|
-
- ext/extconf.rb
|
60
|
+
- ext/hitimes/extconf.rb
|
51
61
|
extra_rdoc_files:
|
52
62
|
- README
|
53
63
|
- HISTORY
|
@@ -61,26 +71,18 @@ extra_rdoc_files:
|
|
61
71
|
- lib/hitimes/value_metric.rb
|
62
72
|
- lib/hitimes/version.rb
|
63
73
|
- lib/hitimes.rb
|
64
|
-
- ext/hitimes_ext.c
|
65
|
-
- ext/hitimes_instant_clock_gettime.c
|
66
|
-
- ext/hitimes_instant_osx.c
|
67
|
-
- ext/hitimes_instant_windows.c
|
68
|
-
- ext/hitimes_interval.c
|
69
|
-
- ext/hitimes_stats.c
|
70
74
|
files:
|
71
75
|
- examples/benchmarks.rb
|
72
76
|
- examples/stats.rb
|
73
|
-
- ext/hitimes_ext.c
|
74
|
-
- ext/hitimes_instant_clock_gettime.c
|
75
|
-
- ext/hitimes_instant_osx.c
|
76
|
-
- ext/hitimes_instant_windows.c
|
77
|
-
- ext/hitimes_interval.c
|
78
|
-
- ext/hitimes_stats.c
|
79
|
-
- ext/hitimes_interval.h
|
80
|
-
- ext/hitimes_stats.h
|
81
|
-
- ext/extconf.rb
|
82
|
-
- ext/rbconfig-mingw.rb
|
83
|
-
- ext/rbconfig.rb
|
77
|
+
- ext/hitimes/hitimes_ext.c
|
78
|
+
- ext/hitimes/hitimes_instant_clock_gettime.c
|
79
|
+
- ext/hitimes/hitimes_instant_osx.c
|
80
|
+
- ext/hitimes/hitimes_instant_windows.c
|
81
|
+
- ext/hitimes/hitimes_interval.c
|
82
|
+
- ext/hitimes/hitimes_stats.c
|
83
|
+
- ext/hitimes/hitimes_interval.h
|
84
|
+
- ext/hitimes/hitimes_stats.h
|
85
|
+
- ext/hitimes/extconf.rb
|
84
86
|
- lib/hitimes/metric.rb
|
85
87
|
- lib/hitimes/mutexed_stats.rb
|
86
88
|
- lib/hitimes/paths.rb
|
data/ext/rbconfig-mingw.rb
DELETED
@@ -1,178 +0,0 @@
|
|
1
|
-
|
2
|
-
# This file was created by mkconfig.rb when ruby was built. Any
|
3
|
-
# changes made to this file will be lost the next time ruby is built.
|
4
|
-
|
5
|
-
module Config
|
6
|
-
RUBY_VERSION == "1.8.6" or
|
7
|
-
raise "ruby lib version (1.8.6) doesn't match executable version (#{RUBY_VERSION})"
|
8
|
-
|
9
|
-
TOPDIR = File.dirname(__FILE__).chomp!("/lib/ruby/1.8/i386-mingw32")
|
10
|
-
DESTDIR = '' unless defined? DESTDIR
|
11
|
-
CONFIG = {}
|
12
|
-
CONFIG["DESTDIR"] = DESTDIR
|
13
|
-
CONFIG["INSTALL"] = '/opt/local/bin/ginstall -c'
|
14
|
-
CONFIG["prefix"] = (TOPDIR || DESTDIR + "#{ENV["HOME"]}/ruby-mingw32")
|
15
|
-
CONFIG["EXEEXT"] = ".exe"
|
16
|
-
CONFIG["ruby_install_name"] = "ruby"
|
17
|
-
CONFIG["RUBY_INSTALL_NAME"] = "ruby"
|
18
|
-
CONFIG["RUBY_SO_NAME"] = "msvcrt-ruby18"
|
19
|
-
CONFIG["SHELL"] = "/bin/sh"
|
20
|
-
CONFIG["PATH_SEPARATOR"] = ":"
|
21
|
-
CONFIG["PACKAGE_NAME"] = ""
|
22
|
-
CONFIG["PACKAGE_TARNAME"] = ""
|
23
|
-
CONFIG["PACKAGE_VERSION"] = ""
|
24
|
-
CONFIG["PACKAGE_STRING"] = ""
|
25
|
-
CONFIG["PACKAGE_BUGREPORT"] = ""
|
26
|
-
CONFIG["exec_prefix"] = "$(prefix)"
|
27
|
-
CONFIG["bindir"] = "$(exec_prefix)/bin"
|
28
|
-
CONFIG["sbindir"] = "$(exec_prefix)/sbin"
|
29
|
-
CONFIG["libexecdir"] = "$(exec_prefix)/libexec"
|
30
|
-
CONFIG["datarootdir"] = "$(prefix)/share"
|
31
|
-
CONFIG["datadir"] = "$(datarootdir)"
|
32
|
-
CONFIG["sysconfdir"] = "$(prefix)/etc"
|
33
|
-
CONFIG["sharedstatedir"] = "$(prefix)/com"
|
34
|
-
CONFIG["localstatedir"] = "$(prefix)/var"
|
35
|
-
CONFIG["includedir"] = "$(prefix)/include"
|
36
|
-
CONFIG["oldincludedir"] = "/usr/include"
|
37
|
-
CONFIG["docdir"] = "$(datarootdir)/doc/$(PACKAGE)"
|
38
|
-
CONFIG["infodir"] = "$(datarootdir)/info"
|
39
|
-
CONFIG["htmldir"] = "$(docdir)"
|
40
|
-
CONFIG["dvidir"] = "$(docdir)"
|
41
|
-
CONFIG["pdfdir"] = "$(docdir)"
|
42
|
-
CONFIG["psdir"] = "$(docdir)"
|
43
|
-
CONFIG["libdir"] = "$(exec_prefix)/lib"
|
44
|
-
CONFIG["localedir"] = "$(datarootdir)/locale"
|
45
|
-
CONFIG["mandir"] = "$(datarootdir)/man"
|
46
|
-
CONFIG["ECHO_C"] = ""
|
47
|
-
CONFIG["ECHO_N"] = "-n"
|
48
|
-
CONFIG["ECHO_T"] = ""
|
49
|
-
CONFIG["LIBS"] = "-lwsock32 "
|
50
|
-
CONFIG["build_alias"] = "i686-darwin9.2.2"
|
51
|
-
CONFIG["host_alias"] = "i386-mingw32"
|
52
|
-
CONFIG["target_alias"] = "i386-mingw32"
|
53
|
-
CONFIG["MAJOR"] = "1"
|
54
|
-
CONFIG["MINOR"] = "8"
|
55
|
-
CONFIG["TEENY"] = "6"
|
56
|
-
CONFIG["build"] = "i686-pc-darwin9.2.2"
|
57
|
-
CONFIG["build_cpu"] = "i686"
|
58
|
-
CONFIG["build_vendor"] = "pc"
|
59
|
-
CONFIG["build_os"] = "darwin9.2.2"
|
60
|
-
CONFIG["host"] = "i386-pc-mingw32"
|
61
|
-
CONFIG["host_cpu"] = "i386"
|
62
|
-
CONFIG["host_vendor"] = "pc"
|
63
|
-
CONFIG["host_os"] = "mingw32"
|
64
|
-
CONFIG["target"] = "i386-pc-mingw32"
|
65
|
-
CONFIG["target_cpu"] = "i386"
|
66
|
-
CONFIG["target_vendor"] = "pc"
|
67
|
-
CONFIG["target_os"] = "mingw32"
|
68
|
-
CONFIG["CC"] = "i386-mingw32-gcc"
|
69
|
-
CONFIG["CFLAGS"] = "-g -O2 "
|
70
|
-
CONFIG["LDFLAGS"] = "-L. "
|
71
|
-
CONFIG["CPPFLAGS"] = ""
|
72
|
-
CONFIG["OBJEXT"] = "o"
|
73
|
-
CONFIG["CPP"] = "i386-mingw32-gcc -E"
|
74
|
-
CONFIG["GREP"] = "/usr/bin/grep"
|
75
|
-
CONFIG["EGREP"] = "/usr/bin/grep -E"
|
76
|
-
CONFIG["GNU_LD"] = "yes"
|
77
|
-
CONFIG["CPPOUTFILE"] = "-o conftest.i"
|
78
|
-
CONFIG["OUTFLAG"] = "-o "
|
79
|
-
CONFIG["YACC"] = "bison -y"
|
80
|
-
CONFIG["YFLAGS"] = ""
|
81
|
-
CONFIG["RANLIB"] = "i386-mingw32-ranlib"
|
82
|
-
CONFIG["AR"] = "i386-mingw32-ar"
|
83
|
-
CONFIG["AS"] = "i386-mingw32-as"
|
84
|
-
CONFIG["ASFLAGS"] = ""
|
85
|
-
CONFIG["NM"] = "i386-mingw32-nm"
|
86
|
-
CONFIG["WINDRES"] = "i386-mingw32-windres"
|
87
|
-
CONFIG["DLLWRAP"] = "i386-mingw32-dllwrap"
|
88
|
-
CONFIG["OBJDUMP"] = "i386-mingw32-objdump"
|
89
|
-
CONFIG["LN_S"] = "ln -s"
|
90
|
-
CONFIG["SET_MAKE"] = ""
|
91
|
-
CONFIG["INSTALL_PROGRAM"] = "$(INSTALL)"
|
92
|
-
CONFIG["INSTALL_SCRIPT"] = "$(INSTALL)"
|
93
|
-
CONFIG["INSTALL_DATA"] = "$(INSTALL) -m 644"
|
94
|
-
CONFIG["RM"] = "rm -f"
|
95
|
-
CONFIG["CP"] = "cp"
|
96
|
-
CONFIG["MAKEDIRS"] = "mkdir -p"
|
97
|
-
CONFIG["ALLOCA"] = ""
|
98
|
-
CONFIG["DLDFLAGS"] = " -Wl,--enable-auto-image-base,--enable-auto-import,--export-all"
|
99
|
-
CONFIG["ARCH_FLAG"] = ""
|
100
|
-
CONFIG["STATIC"] = ""
|
101
|
-
CONFIG["CCDLFLAGS"] = ""
|
102
|
-
CONFIG["LDSHARED"] = "i386-mingw32-gcc -shared -s"
|
103
|
-
CONFIG["DLEXT"] = "so"
|
104
|
-
CONFIG["DLEXT2"] = "dll"
|
105
|
-
CONFIG["LIBEXT"] = "a"
|
106
|
-
CONFIG["LINK_SO"] = ""
|
107
|
-
CONFIG["LIBPATHFLAG"] = " -L\"%s\""
|
108
|
-
CONFIG["RPATHFLAG"] = ""
|
109
|
-
CONFIG["LIBPATHENV"] = ""
|
110
|
-
CONFIG["TRY_LINK"] = ""
|
111
|
-
CONFIG["STRIP"] = "strip"
|
112
|
-
CONFIG["EXTSTATIC"] = ""
|
113
|
-
CONFIG["setup"] = "Setup"
|
114
|
-
CONFIG["MINIRUBY"] = "ruby -I#{ENV['HOME']}/pkgs/ruby-1.8.6-p114 -rfake"
|
115
|
-
CONFIG["PREP"] = "fake.rb"
|
116
|
-
CONFIG["RUNRUBY"] = "$(MINIRUBY) -I`cd $(srcdir)/lib; pwd`"
|
117
|
-
CONFIG["EXTOUT"] = ".ext"
|
118
|
-
CONFIG["ARCHFILE"] = ""
|
119
|
-
CONFIG["RDOCTARGET"] = ""
|
120
|
-
CONFIG["XCFLAGS"] = " -DRUBY_EXPORT"
|
121
|
-
CONFIG["XLDFLAGS"] = " -Wl,--stack,0x02000000"
|
122
|
-
CONFIG["LIBRUBY_LDSHARED"] = "i386-mingw32-gcc -shared -s"
|
123
|
-
CONFIG["LIBRUBY_DLDFLAGS"] = " -Wl,--enable-auto-image-base,--enable-auto-import,--export-all -Wl,--out-implib=$(LIBRUBY)"
|
124
|
-
CONFIG["rubyw_install_name"] = "rubyw"
|
125
|
-
CONFIG["RUBYW_INSTALL_NAME"] = "rubyw"
|
126
|
-
CONFIG["LIBRUBY_A"] = "lib$(RUBY_SO_NAME)-static.a"
|
127
|
-
CONFIG["LIBRUBY_SO"] = "$(RUBY_SO_NAME).dll"
|
128
|
-
CONFIG["LIBRUBY_ALIASES"] = ""
|
129
|
-
CONFIG["LIBRUBY"] = "lib$(LIBRUBY_SO).a"
|
130
|
-
CONFIG["LIBRUBYARG"] = "$(LIBRUBYARG_SHARED)"
|
131
|
-
CONFIG["LIBRUBYARG_STATIC"] = "-l$(RUBY_SO_NAME)-static"
|
132
|
-
CONFIG["LIBRUBYARG_SHARED"] = "-l$(RUBY_SO_NAME)"
|
133
|
-
CONFIG["SOLIBS"] = "$(LIBS)"
|
134
|
-
CONFIG["DLDLIBS"] = ""
|
135
|
-
CONFIG["ENABLE_SHARED"] = "yes"
|
136
|
-
CONFIG["MAINLIBS"] = ""
|
137
|
-
CONFIG["COMMON_LIBS"] = "m"
|
138
|
-
CONFIG["COMMON_MACROS"] = ""
|
139
|
-
CONFIG["COMMON_HEADERS"] = "windows.h winsock.h"
|
140
|
-
CONFIG["EXPORT_PREFIX"] = ""
|
141
|
-
CONFIG["MAKEFILES"] = "Makefile GNUmakefile"
|
142
|
-
CONFIG["arch"] = "i386-mingw32"
|
143
|
-
CONFIG["sitearch"] = "i386-msvcrt"
|
144
|
-
CONFIG["sitedir"] = "$(prefix)/lib/ruby/site_ruby"
|
145
|
-
CONFIG["configure_args"] = " '--host=i386-mingw32' '--target=i386-mingw32' '--build=i686-darwin9.2.2' '--prefix=#{ENV['HOME']}/ruby-mingw32' 'build_alias=i686-darwin9.2.2' 'host_alias=i386-mingw32' 'target_alias=i386-mingw32'"
|
146
|
-
CONFIG["NROFF"] = "/usr/bin/nroff"
|
147
|
-
CONFIG["MANTYPE"] = "doc"
|
148
|
-
CONFIG["ruby_version"] = "$(MAJOR).$(MINOR)"
|
149
|
-
CONFIG["rubylibdir"] = "$(libdir)/ruby/$(ruby_version)"
|
150
|
-
CONFIG["archdir"] = "$(rubylibdir)/$(arch)"
|
151
|
-
CONFIG["sitelibdir"] = "$(sitedir)/$(ruby_version)"
|
152
|
-
CONFIG["sitearchdir"] = "$(sitelibdir)/$(sitearch)"
|
153
|
-
CONFIG["topdir"] = File.dirname(__FILE__)
|
154
|
-
MAKEFILE_CONFIG = {}
|
155
|
-
CONFIG.each{|k,v| MAKEFILE_CONFIG[k] = v.dup}
|
156
|
-
def Config::expand(val, config = CONFIG)
|
157
|
-
val.gsub!(/\$\$|\$\(([^()]+)\)|\$\{([^{}]+)\}/) do |var|
|
158
|
-
if !(v = $1 || $2)
|
159
|
-
'$'
|
160
|
-
elsif key = config[v = v[/\A[^:]+(?=(?::(.*?)=(.*))?\z)/]]
|
161
|
-
pat, sub = $1, $2
|
162
|
-
config[v] = false
|
163
|
-
Config::expand(key, config)
|
164
|
-
config[v] = key
|
165
|
-
key = key.gsub(/#{Regexp.quote(pat)}(?=\s|\z)/n) {sub} if pat
|
166
|
-
key
|
167
|
-
else
|
168
|
-
var
|
169
|
-
end
|
170
|
-
end
|
171
|
-
val
|
172
|
-
end
|
173
|
-
CONFIG.each_value do |val|
|
174
|
-
Config::expand(val)
|
175
|
-
end
|
176
|
-
end
|
177
|
-
RbConfig = Config # compatibility for ruby-1.9
|
178
|
-
CROSS_COMPILING = nil unless defined? CROSS_COMPILING
|
data/ext/rbconfig.rb
DELETED
@@ -1,178 +0,0 @@
|
|
1
|
-
|
2
|
-
# This file was created by mkconfig.rb when ruby was built. Any
|
3
|
-
# changes made to this file will be lost the next time ruby is built.
|
4
|
-
|
5
|
-
module Config
|
6
|
-
RUBY_VERSION == "1.8.6" or
|
7
|
-
raise "ruby lib version (1.8.6) doesn't match executable version (#{RUBY_VERSION})"
|
8
|
-
|
9
|
-
TOPDIR = File.dirname(__FILE__).chomp!("/lib/ruby/1.8/i386-mingw32")
|
10
|
-
DESTDIR = '' unless defined? DESTDIR
|
11
|
-
CONFIG = {}
|
12
|
-
CONFIG["DESTDIR"] = DESTDIR
|
13
|
-
CONFIG["INSTALL"] = '/opt/local/bin/ginstall -c'
|
14
|
-
CONFIG["prefix"] = (TOPDIR || DESTDIR + "#{ENV["HOME"]}/ruby-mingw32")
|
15
|
-
CONFIG["EXEEXT"] = ".exe"
|
16
|
-
CONFIG["ruby_install_name"] = "ruby"
|
17
|
-
CONFIG["RUBY_INSTALL_NAME"] = "ruby"
|
18
|
-
CONFIG["RUBY_SO_NAME"] = "msvcrt-ruby18"
|
19
|
-
CONFIG["SHELL"] = "/bin/sh"
|
20
|
-
CONFIG["PATH_SEPARATOR"] = ":"
|
21
|
-
CONFIG["PACKAGE_NAME"] = ""
|
22
|
-
CONFIG["PACKAGE_TARNAME"] = ""
|
23
|
-
CONFIG["PACKAGE_VERSION"] = ""
|
24
|
-
CONFIG["PACKAGE_STRING"] = ""
|
25
|
-
CONFIG["PACKAGE_BUGREPORT"] = ""
|
26
|
-
CONFIG["exec_prefix"] = "$(prefix)"
|
27
|
-
CONFIG["bindir"] = "$(exec_prefix)/bin"
|
28
|
-
CONFIG["sbindir"] = "$(exec_prefix)/sbin"
|
29
|
-
CONFIG["libexecdir"] = "$(exec_prefix)/libexec"
|
30
|
-
CONFIG["datarootdir"] = "$(prefix)/share"
|
31
|
-
CONFIG["datadir"] = "$(datarootdir)"
|
32
|
-
CONFIG["sysconfdir"] = "$(prefix)/etc"
|
33
|
-
CONFIG["sharedstatedir"] = "$(prefix)/com"
|
34
|
-
CONFIG["localstatedir"] = "$(prefix)/var"
|
35
|
-
CONFIG["includedir"] = "$(prefix)/include"
|
36
|
-
CONFIG["oldincludedir"] = "/usr/include"
|
37
|
-
CONFIG["docdir"] = "$(datarootdir)/doc/$(PACKAGE)"
|
38
|
-
CONFIG["infodir"] = "$(datarootdir)/info"
|
39
|
-
CONFIG["htmldir"] = "$(docdir)"
|
40
|
-
CONFIG["dvidir"] = "$(docdir)"
|
41
|
-
CONFIG["pdfdir"] = "$(docdir)"
|
42
|
-
CONFIG["psdir"] = "$(docdir)"
|
43
|
-
CONFIG["libdir"] = "$(exec_prefix)/lib"
|
44
|
-
CONFIG["localedir"] = "$(datarootdir)/locale"
|
45
|
-
CONFIG["mandir"] = "$(datarootdir)/man"
|
46
|
-
CONFIG["ECHO_C"] = ""
|
47
|
-
CONFIG["ECHO_N"] = "-n"
|
48
|
-
CONFIG["ECHO_T"] = ""
|
49
|
-
CONFIG["LIBS"] = "-lwsock32 "
|
50
|
-
CONFIG["build_alias"] = "i686-darwin9.2.2"
|
51
|
-
CONFIG["host_alias"] = "i386-mingw32"
|
52
|
-
CONFIG["target_alias"] = "i386-mingw32"
|
53
|
-
CONFIG["MAJOR"] = "1"
|
54
|
-
CONFIG["MINOR"] = "8"
|
55
|
-
CONFIG["TEENY"] = "6"
|
56
|
-
CONFIG["build"] = "i686-pc-darwin9.2.2"
|
57
|
-
CONFIG["build_cpu"] = "i686"
|
58
|
-
CONFIG["build_vendor"] = "pc"
|
59
|
-
CONFIG["build_os"] = "darwin9.2.2"
|
60
|
-
CONFIG["host"] = "i386-pc-mingw32"
|
61
|
-
CONFIG["host_cpu"] = "i386"
|
62
|
-
CONFIG["host_vendor"] = "pc"
|
63
|
-
CONFIG["host_os"] = "mingw32"
|
64
|
-
CONFIG["target"] = "i386-pc-mingw32"
|
65
|
-
CONFIG["target_cpu"] = "i386"
|
66
|
-
CONFIG["target_vendor"] = "pc"
|
67
|
-
CONFIG["target_os"] = "mingw32"
|
68
|
-
CONFIG["CC"] = "i386-mingw32-gcc"
|
69
|
-
CONFIG["CFLAGS"] = "-g -O2 "
|
70
|
-
CONFIG["LDFLAGS"] = "-L. "
|
71
|
-
CONFIG["CPPFLAGS"] = ""
|
72
|
-
CONFIG["OBJEXT"] = "o"
|
73
|
-
CONFIG["CPP"] = "i386-mingw32-gcc -E"
|
74
|
-
CONFIG["GREP"] = "/usr/bin/grep"
|
75
|
-
CONFIG["EGREP"] = "/usr/bin/grep -E"
|
76
|
-
CONFIG["GNU_LD"] = "yes"
|
77
|
-
CONFIG["CPPOUTFILE"] = "-o conftest.i"
|
78
|
-
CONFIG["OUTFLAG"] = "-o "
|
79
|
-
CONFIG["YACC"] = "bison -y"
|
80
|
-
CONFIG["YFLAGS"] = ""
|
81
|
-
CONFIG["RANLIB"] = "i386-mingw32-ranlib"
|
82
|
-
CONFIG["AR"] = "i386-mingw32-ar"
|
83
|
-
CONFIG["AS"] = "i386-mingw32-as"
|
84
|
-
CONFIG["ASFLAGS"] = ""
|
85
|
-
CONFIG["NM"] = "i386-mingw32-nm"
|
86
|
-
CONFIG["WINDRES"] = "i386-mingw32-windres"
|
87
|
-
CONFIG["DLLWRAP"] = "i386-mingw32-dllwrap"
|
88
|
-
CONFIG["OBJDUMP"] = "i386-mingw32-objdump"
|
89
|
-
CONFIG["LN_S"] = "ln -s"
|
90
|
-
CONFIG["SET_MAKE"] = ""
|
91
|
-
CONFIG["INSTALL_PROGRAM"] = "$(INSTALL)"
|
92
|
-
CONFIG["INSTALL_SCRIPT"] = "$(INSTALL)"
|
93
|
-
CONFIG["INSTALL_DATA"] = "$(INSTALL) -m 644"
|
94
|
-
CONFIG["RM"] = "rm -f"
|
95
|
-
CONFIG["CP"] = "cp"
|
96
|
-
CONFIG["MAKEDIRS"] = "mkdir -p"
|
97
|
-
CONFIG["ALLOCA"] = ""
|
98
|
-
CONFIG["DLDFLAGS"] = " -Wl,--enable-auto-image-base,--enable-auto-import,--export-all"
|
99
|
-
CONFIG["ARCH_FLAG"] = ""
|
100
|
-
CONFIG["STATIC"] = ""
|
101
|
-
CONFIG["CCDLFLAGS"] = ""
|
102
|
-
CONFIG["LDSHARED"] = "i386-mingw32-gcc -shared -s"
|
103
|
-
CONFIG["DLEXT"] = "so"
|
104
|
-
CONFIG["DLEXT2"] = "dll"
|
105
|
-
CONFIG["LIBEXT"] = "a"
|
106
|
-
CONFIG["LINK_SO"] = ""
|
107
|
-
CONFIG["LIBPATHFLAG"] = " -L\"%s\""
|
108
|
-
CONFIG["RPATHFLAG"] = ""
|
109
|
-
CONFIG["LIBPATHENV"] = ""
|
110
|
-
CONFIG["TRY_LINK"] = ""
|
111
|
-
CONFIG["STRIP"] = "strip"
|
112
|
-
CONFIG["EXTSTATIC"] = ""
|
113
|
-
CONFIG["setup"] = "Setup"
|
114
|
-
CONFIG["MINIRUBY"] = "ruby -I#{ENV['HOME']}/pkgs/ruby-1.8.6-p114 -rfake"
|
115
|
-
CONFIG["PREP"] = "fake.rb"
|
116
|
-
CONFIG["RUNRUBY"] = "$(MINIRUBY) -I`cd $(srcdir)/lib; pwd`"
|
117
|
-
CONFIG["EXTOUT"] = ".ext"
|
118
|
-
CONFIG["ARCHFILE"] = ""
|
119
|
-
CONFIG["RDOCTARGET"] = ""
|
120
|
-
CONFIG["XCFLAGS"] = " -DRUBY_EXPORT"
|
121
|
-
CONFIG["XLDFLAGS"] = " -Wl,--stack,0x02000000"
|
122
|
-
CONFIG["LIBRUBY_LDSHARED"] = "i386-mingw32-gcc -shared -s"
|
123
|
-
CONFIG["LIBRUBY_DLDFLAGS"] = " -Wl,--enable-auto-image-base,--enable-auto-import,--export-all -Wl,--out-implib=$(LIBRUBY)"
|
124
|
-
CONFIG["rubyw_install_name"] = "rubyw"
|
125
|
-
CONFIG["RUBYW_INSTALL_NAME"] = "rubyw"
|
126
|
-
CONFIG["LIBRUBY_A"] = "lib$(RUBY_SO_NAME)-static.a"
|
127
|
-
CONFIG["LIBRUBY_SO"] = "$(RUBY_SO_NAME).dll"
|
128
|
-
CONFIG["LIBRUBY_ALIASES"] = ""
|
129
|
-
CONFIG["LIBRUBY"] = "lib$(LIBRUBY_SO).a"
|
130
|
-
CONFIG["LIBRUBYARG"] = "$(LIBRUBYARG_SHARED)"
|
131
|
-
CONFIG["LIBRUBYARG_STATIC"] = "-l$(RUBY_SO_NAME)-static"
|
132
|
-
CONFIG["LIBRUBYARG_SHARED"] = "-l$(RUBY_SO_NAME)"
|
133
|
-
CONFIG["SOLIBS"] = "$(LIBS)"
|
134
|
-
CONFIG["DLDLIBS"] = ""
|
135
|
-
CONFIG["ENABLE_SHARED"] = "yes"
|
136
|
-
CONFIG["MAINLIBS"] = ""
|
137
|
-
CONFIG["COMMON_LIBS"] = "m"
|
138
|
-
CONFIG["COMMON_MACROS"] = ""
|
139
|
-
CONFIG["COMMON_HEADERS"] = "windows.h winsock.h"
|
140
|
-
CONFIG["EXPORT_PREFIX"] = ""
|
141
|
-
CONFIG["MAKEFILES"] = "Makefile GNUmakefile"
|
142
|
-
CONFIG["arch"] = "i386-mingw32"
|
143
|
-
CONFIG["sitearch"] = "i386-msvcrt"
|
144
|
-
CONFIG["sitedir"] = "$(prefix)/lib/ruby/site_ruby"
|
145
|
-
CONFIG["configure_args"] = " '--host=i386-mingw32' '--target=i386-mingw32' '--build=i686-darwin9.2.2' '--prefix=#{ENV['HOME']}/ruby-mingw32' 'build_alias=i686-darwin9.2.2' 'host_alias=i386-mingw32' 'target_alias=i386-mingw32'"
|
146
|
-
CONFIG["NROFF"] = "/usr/bin/nroff"
|
147
|
-
CONFIG["MANTYPE"] = "doc"
|
148
|
-
CONFIG["ruby_version"] = "$(MAJOR).$(MINOR)"
|
149
|
-
CONFIG["rubylibdir"] = "$(libdir)/ruby/$(ruby_version)"
|
150
|
-
CONFIG["archdir"] = "$(rubylibdir)/$(arch)"
|
151
|
-
CONFIG["sitelibdir"] = "$(sitedir)/$(ruby_version)"
|
152
|
-
CONFIG["sitearchdir"] = "$(sitelibdir)/$(sitearch)"
|
153
|
-
CONFIG["topdir"] = File.dirname(__FILE__)
|
154
|
-
MAKEFILE_CONFIG = {}
|
155
|
-
CONFIG.each{|k,v| MAKEFILE_CONFIG[k] = v.dup}
|
156
|
-
def Config::expand(val, config = CONFIG)
|
157
|
-
val.gsub!(/\$\$|\$\(([^()]+)\)|\$\{([^{}]+)\}/) do |var|
|
158
|
-
if !(v = $1 || $2)
|
159
|
-
'$'
|
160
|
-
elsif key = config[v = v[/\A[^:]+(?=(?::(.*?)=(.*))?\z)/]]
|
161
|
-
pat, sub = $1, $2
|
162
|
-
config[v] = false
|
163
|
-
Config::expand(key, config)
|
164
|
-
config[v] = key
|
165
|
-
key = key.gsub(/#{Regexp.quote(pat)}(?=\s|\z)/n) {sub} if pat
|
166
|
-
key
|
167
|
-
else
|
168
|
-
var
|
169
|
-
end
|
170
|
-
end
|
171
|
-
val
|
172
|
-
end
|
173
|
-
CONFIG.each_value do |val|
|
174
|
-
Config::expand(val)
|
175
|
-
end
|
176
|
-
end
|
177
|
-
RbConfig = Config # compatibility for ruby-1.9
|
178
|
-
CROSS_COMPILING = nil unless defined? CROSS_COMPILING
|