ruby-dtrace 0.0.6 → 0.2.8
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.
- data/History.txt +21 -0
- data/Manifest.txt +86 -19
- data/README.txt +48 -6
- data/Rakefile +61 -20
- data/examples/scsi.rb +1 -1
- data/ext/dof/Makefile +154 -0
- data/ext/dof/constants.c +57 -0
- data/ext/dof/dof.h +56 -0
- data/ext/dof/dof_api.c +58 -0
- data/ext/dof/dof_helper.c +82 -0
- data/ext/dof/extconf.rb +4 -0
- data/ext/dof/file.c +90 -0
- data/ext/dof/generator.c +9 -0
- data/ext/dof/header.c +79 -0
- data/ext/dof/mkmf.log +10 -0
- data/ext/dof/parser.c +415 -0
- data/ext/dof/parser.h +10 -0
- data/ext/dof/section.c +312 -0
- data/ext/dtrace_aggdata.c +2 -2
- data/ext/dtrace_api.c +46 -34
- data/ext/dtrace_api.h +31 -7
- data/ext/dtrace_bufdata.c +3 -3
- data/ext/dtrace_hdl.c +66 -3
- data/ext/dtrace_probedata.c +4 -4
- data/ext/{dtrace_probe.c → dtrace_probedesc.c} +7 -7
- data/ext/extconf.rb +25 -0
- data/ext/i386-darwin/dtrace_probe.c +278 -0
- data/ext/i386-solaris/dtrace_probe.c +225 -0
- data/ext/stubs.txt +78 -0
- data/lib/dtrace.rb +34 -13
- data/lib/dtrace/aggregate.rb +40 -0
- data/lib/dtrace/aggregateset.rb +19 -0
- data/lib/dtrace/consumer.rb +174 -0
- data/lib/dtrace/data.rb +82 -0
- data/lib/dtrace/dof.rb +8 -0
- data/lib/dtrace/dof/file.rb +64 -0
- data/lib/dtrace/dof/section.rb +75 -0
- data/lib/dtrace/dof/section/strtab.rb +28 -0
- data/lib/{dtraceprintfrecord.rb → dtrace/printfrecord.rb} +4 -2
- data/lib/dtrace/probe.rb +3 -6
- data/lib/dtrace/probedata.rb +23 -0
- data/lib/dtrace/probedesc.rb +15 -0
- data/lib/dtrace/provider.rb +190 -169
- data/lib/dtrace/provider/klass.rb +33 -0
- data/lib/dtrace/provider/probedef.rb +24 -0
- data/lib/{dtracerecord.rb → dtrace/record.rb} +4 -2
- data/lib/{dtracestackrecord.rb → dtrace/stackrecord.rb} +10 -8
- data/lib/dtrace/version.rb +9 -0
- data/lib/dtraceconsumer.rb +3 -167
- data/plugin/dtrace/lib/dtracer.rb +4 -4
- data/test/apple-dof +0 -0
- data/test/disabled_probe_effect.txt +19 -0
- data/test/dof +0 -0
- data/test/dof2 +0 -0
- data/test/test_disabled_probe_effect.rb +56 -0
- data/test/test_dof_generator.rb +142 -0
- data/test/test_dof_helper.rb +106 -0
- data/test/test_dof_parser.rb +27 -0
- data/test/test_dof_providers.rb +278 -0
- data/test/test_dof_strtabs.rb +98 -0
- data/test/test_dtrace.rb +67 -1
- data/test/test_dtrace_aggregates.rb +5 -5
- data/test/test_dtrace_drops_errors.rb +5 -5
- data/test/test_dtrace_probe.rb +385 -0
- data/test/test_dtrace_probes.rb +414 -0
- data/test/test_dtrace_processes.rb +2 -2
- data/test/test_dtrace_profile.rb +12 -12
- data/test/test_dtrace_provider.rb +138 -0
- data/test/test_dtrace_repeat.rb +1 -1
- data/test/test_dtrace_rubyprobe.rb +3 -1
- data/test/test_dtrace_typefilter.rb +9 -9
- data/test/test_legacy_consumer.rb +56 -0
- metadata +112 -71
- data/lib/dtrace/provider/osx.rb +0 -25
- data/lib/dtrace/provider/solaris.rb +0 -29
- data/lib/dtraceaggregate.rb +0 -37
- data/lib/dtraceaggregateset.rb +0 -17
- data/lib/dtracedata.rb +0 -80
- data/lib/dtraceprobe.rb +0 -13
- data/lib/dtraceprobedata.rb +0 -21
- data/test/test_dynusdt.rb +0 -135
data/History.txt
CHANGED
@@ -1,3 +1,24 @@
|
|
1
|
+
== 0.2.8 / 2009-07-23
|
2
|
+
|
3
|
+
* Replace string-eval provider class creation
|
4
|
+
* Fix GC bug with DOF data on Mac OSX (reported by ecin@copypastel.com)
|
5
|
+
* Add each_probe_prog method to list probes enabled by a program
|
6
|
+
* Fix conversion of 64 bit values in probe data (reported by ecin@copypastel.com)
|
7
|
+
* Add support for SPARC/Solaris and PowerPC/OSX architectures
|
8
|
+
|
9
|
+
== 0.2.7 / 2008-08-01
|
10
|
+
|
11
|
+
* Fix probes not firing when multiple providers are used.
|
12
|
+
|
13
|
+
== 0.2.6 / 2008-06-17
|
14
|
+
|
15
|
+
* Fix aggregate value conversion bug
|
16
|
+
|
17
|
+
== 0.2.5 / 2008-06-14
|
18
|
+
|
19
|
+
* Rework Dtrace::Provider to directly create USDT providers by
|
20
|
+
generating DOF and stub functions.
|
21
|
+
|
1
22
|
== 0.0.6 / 2008-02-17
|
2
23
|
|
3
24
|
* Add Dtrace::Provider, which allows creation of USDT providers from
|
data/Manifest.txt
CHANGED
@@ -1,8 +1,18 @@
|
|
1
|
-
History.txt
|
2
|
-
Manifest.txt
|
3
|
-
README.txt
|
4
|
-
Rakefile
|
5
1
|
examples/scsi.rb
|
2
|
+
ext/dof
|
3
|
+
ext/dof/constants.c
|
4
|
+
ext/dof/dof.h
|
5
|
+
ext/dof/dof_api.c
|
6
|
+
ext/dof/dof_helper.c
|
7
|
+
ext/dof/extconf.rb
|
8
|
+
ext/dof/file.c
|
9
|
+
ext/dof/generator.c
|
10
|
+
ext/dof/header.c
|
11
|
+
ext/dof/Makefile
|
12
|
+
ext/dof/mkmf.log
|
13
|
+
ext/dof/parser.c
|
14
|
+
ext/dof/parser.h
|
15
|
+
ext/dof/section.c
|
6
16
|
ext/dtrace_aggdata.c
|
7
17
|
ext/dtrace_api.c
|
8
18
|
ext/dtrace_api.h
|
@@ -10,49 +20,106 @@ ext/dtrace_bufdata.c
|
|
10
20
|
ext/dtrace_dropdata.c
|
11
21
|
ext/dtrace_errdata.c
|
12
22
|
ext/dtrace_hdl.c
|
13
|
-
ext/dtrace_probe.c
|
14
23
|
ext/dtrace_probedata.c
|
24
|
+
ext/dtrace_probedesc.c
|
15
25
|
ext/dtrace_process.c
|
16
26
|
ext/dtrace_program.c
|
17
27
|
ext/dtrace_programinfo.c
|
18
28
|
ext/dtrace_recdesc.c
|
19
29
|
ext/dtrace_util.c
|
20
30
|
ext/extconf.rb
|
21
|
-
|
31
|
+
ext/i386-solaris
|
32
|
+
ext/i386-solaris/dtrace_probe.c
|
33
|
+
ext/i386-darwin
|
34
|
+
ext/i386-darwin/dtrace_probe.c
|
35
|
+
ext/stubs.txt
|
36
|
+
lib/dtrace
|
37
|
+
lib/dtrace/aggregate.rb
|
38
|
+
lib/dtrace/aggregateset.rb
|
39
|
+
lib/dtrace/consumer.rb
|
40
|
+
lib/dtrace/data.rb
|
41
|
+
lib/dtrace/dof
|
42
|
+
lib/dtrace/dof/file.rb
|
43
|
+
lib/dtrace/dof/section
|
44
|
+
lib/dtrace/dof/section/strtab.rb
|
45
|
+
lib/dtrace/dof/section.rb
|
46
|
+
lib/dtrace/dof.rb
|
47
|
+
lib/dtrace/printfrecord.rb
|
22
48
|
lib/dtrace/probe.rb
|
49
|
+
lib/dtrace/probedata.rb
|
50
|
+
lib/dtrace/probedesc.rb
|
51
|
+
lib/dtrace/provider
|
52
|
+
lib/dtrace/provider/probedef.rb
|
23
53
|
lib/dtrace/provider.rb
|
24
|
-
lib/dtrace/
|
25
|
-
lib/dtrace/
|
54
|
+
lib/dtrace/record.rb
|
55
|
+
lib/dtrace/stackrecord.rb
|
26
56
|
lib/dtrace/tracer.rb
|
27
|
-
lib/
|
28
|
-
lib/
|
57
|
+
lib/dtrace/version.rb
|
58
|
+
lib/dtrace.rb
|
29
59
|
lib/dtraceconsumer.rb
|
30
|
-
|
31
|
-
|
32
|
-
lib/dtraceprobe.rb
|
33
|
-
lib/dtraceprobedata.rb
|
34
|
-
lib/dtracerecord.rb
|
35
|
-
lib/dtracestackrecord.rb
|
36
|
-
plugin/dtrace/README
|
37
|
-
plugin/dtrace/Rakefile
|
60
|
+
plugin/dtrace
|
61
|
+
plugin/dtrace/bin
|
38
62
|
plugin/dtrace/bin/dtracer.rb
|
39
63
|
plugin/dtrace/init.rb
|
64
|
+
plugin/dtrace/lib
|
40
65
|
plugin/dtrace/lib/dtrace_helper.rb
|
41
66
|
plugin/dtrace/lib/dtrace_report.rb
|
42
67
|
plugin/dtrace/lib/dtracer.rb
|
43
68
|
plugin/dtrace/lib/dtracer_client.rb
|
69
|
+
plugin/dtrace/public
|
70
|
+
plugin/dtrace/public/stylesheets
|
44
71
|
plugin/dtrace/public/stylesheets/dtrace.css
|
72
|
+
plugin/dtrace/Rakefile
|
73
|
+
plugin/dtrace/README
|
74
|
+
plugin/dtrace/scripts
|
45
75
|
plugin/dtrace/scripts/default.d
|
46
76
|
plugin/dtrace/scripts/rails_mysql.d
|
77
|
+
plugin/dtrace/tasks
|
47
78
|
plugin/dtrace/tasks/dtrace.rake
|
79
|
+
plugin/dtrace/test
|
48
80
|
plugin/dtrace/test/dtrace_test.rb
|
81
|
+
plugin/dtrace/views
|
82
|
+
plugin/dtrace/views/dtrace
|
49
83
|
plugin/dtrace/views/dtrace/_report.rhtml
|
84
|
+
plugin/dtrace_probes
|
85
|
+
plugin/dtrace_probes/init.rb
|
86
|
+
plugin/dtrace_probes/install.rb
|
87
|
+
plugin/dtrace_probes/lib
|
88
|
+
plugin/dtrace_probes/lib/probes
|
89
|
+
plugin/dtrace_probes/lib/probes/action_controller.rb
|
90
|
+
plugin/dtrace_probes/lib/probes/active_record.rb
|
91
|
+
plugin/dtrace_probes/lib/probes.rb
|
92
|
+
plugin/dtrace_probes/MIT-LICENSE
|
93
|
+
plugin/dtrace_probes/Rakefile
|
94
|
+
plugin/dtrace_probes/README
|
95
|
+
plugin/dtrace_probes/tasks
|
96
|
+
plugin/dtrace_probes/tasks/dtrace_probes_tasks.rake
|
97
|
+
plugin/dtrace_probes/test
|
98
|
+
plugin/dtrace_probes/test/dtrace_probes_test.rb
|
99
|
+
plugin/dtrace_probes/uninstall.rb
|
100
|
+
test/apple-dof
|
101
|
+
test/disabled_probe_effect.txt
|
102
|
+
test/dof
|
103
|
+
test/dof2
|
104
|
+
test/test_disabled_probe_effect.rb
|
105
|
+
test/test_dof_generator.rb
|
106
|
+
test/test_dof_helper.rb
|
107
|
+
test/test_dof_parser.rb
|
108
|
+
test/test_dof_providers.rb
|
109
|
+
test/test_dof_strtabs.rb
|
50
110
|
test/test_dtrace.rb
|
51
111
|
test/test_dtrace_aggregates.rb
|
52
112
|
test/test_dtrace_drops_errors.rb
|
113
|
+
test/test_dtrace_probe.rb
|
114
|
+
test/test_dtrace_probes.rb
|
53
115
|
test/test_dtrace_processes.rb
|
54
116
|
test/test_dtrace_profile.rb
|
117
|
+
test/test_dtrace_provider.rb
|
55
118
|
test/test_dtrace_repeat.rb
|
56
119
|
test/test_dtrace_rubyprobe.rb
|
57
120
|
test/test_dtrace_typefilter.rb
|
58
|
-
test/
|
121
|
+
test/test_legacy_consumer.rb
|
122
|
+
README.txt
|
123
|
+
History.txt
|
124
|
+
Manifest.txt
|
125
|
+
Rakefile
|
data/README.txt
CHANGED
@@ -1,17 +1,34 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
1
|
+
Ruby-DTrace is Ruby bindings for Dtrace, which allows you to add
|
2
|
+
DTrace probes to your Ruby programs, and to write D-based programs
|
3
|
+
with Ruby.
|
4
|
+
|
5
|
+
== FEEDBACK
|
6
|
+
|
7
|
+
Fork the repository on Github: http://github.com/chrisa/ruby-dtrace
|
8
|
+
|
9
|
+
Rubyforge mailing list: http://rubyforge.org/mailman/listinfo/ruby-dtrace-users
|
4
10
|
|
5
11
|
== FEATURES
|
6
12
|
|
13
|
+
Consumer:
|
14
|
+
|
7
15
|
* Access to the D API
|
8
16
|
* Probe metadata
|
9
17
|
* Run D programs
|
10
18
|
* Access aggregates
|
11
19
|
* Consume output from D programs
|
12
20
|
|
21
|
+
Probes:
|
22
|
+
|
23
|
+
* Create USDT providers from Ruby, at runtime.
|
24
|
+
* No code-generation or gcc/linker dependency
|
25
|
+
|
13
26
|
== SYNOPSIS
|
14
27
|
|
28
|
+
Consumer: see Dtrace
|
29
|
+
|
30
|
+
require 'Dtrace'
|
31
|
+
|
15
32
|
t = Dtrace.new
|
16
33
|
progtext = 'ruby$1:::function-entry{ @a[strjoin(strjoin(copyinstr(arg0),"."),copyinstr(arg1))] = count(); } END { printa(@a); }'
|
17
34
|
prog = t.compile progtext
|
@@ -26,10 +43,35 @@ use it with the probes found in the Joyent and Apple builds of Ruby.
|
|
26
43
|
# handle records
|
27
44
|
end
|
28
45
|
|
46
|
+
Probes: see Dtrace::Provider
|
47
|
+
|
48
|
+
require 'dtrace/provider'
|
49
|
+
|
50
|
+
Dtrace::Provider.create :rubyprog do |p|
|
51
|
+
p.probe :foo, :string, :string
|
52
|
+
p.probe :bar, :integer, :integer
|
53
|
+
end
|
54
|
+
|
55
|
+
Dtrace::Probe::Rubyprog.foo do |p|
|
56
|
+
p.fire('fired!', 'again')
|
57
|
+
end
|
58
|
+
|
59
|
+
Dtrace::Probe::Rubyprog.bar do |p|
|
60
|
+
p.fire(42, 27)
|
61
|
+
end
|
62
|
+
|
29
63
|
== REQUIREMENTS
|
30
64
|
|
31
|
-
*
|
32
|
-
|
65
|
+
* For the consumer API, platform with DTrace support (OpenSolaris, Mac
|
66
|
+
OS X 10.5 Leopard tested, possibly also FreeBSD).
|
67
|
+
|
68
|
+
* For the probe API, a platform with DTrace support (as for the
|
69
|
+
consumer API), with a 32 bit Ruby build - i386, PowerPC (for OS X)
|
70
|
+
and SPARC (for Solaris) are all supported. 64 bit builds are not,
|
71
|
+
yet.
|
72
|
+
|
73
|
+
* root, or some/all of the dtrace privileges on Solaris: dtrace_user,
|
74
|
+
dtrace_proc and dtrace_kernel.
|
33
75
|
|
34
76
|
== INSTALL
|
35
77
|
|
@@ -37,7 +79,7 @@ use it with the probes found in the Joyent and Apple builds of Ruby.
|
|
37
79
|
|
38
80
|
== LICENSE
|
39
81
|
|
40
|
-
Copyright (c)
|
82
|
+
Copyright (c) 2008, 2009 Chris Andrews <chris@nodnol.org>
|
41
83
|
|
42
84
|
Permission is hereby granted, free of charge, to any person obtaining
|
43
85
|
a copy of this software and associated documentation files (the
|
data/Rakefile
CHANGED
@@ -1,32 +1,73 @@
|
|
1
1
|
# -*- ruby -*-
|
2
2
|
|
3
|
-
require '
|
4
|
-
require '
|
3
|
+
require 'rake'
|
4
|
+
require 'rake/testtask'
|
5
|
+
require 'rake/rdoctask'
|
6
|
+
require 'rake/packagetask'
|
7
|
+
require 'rake/gempackagetask'
|
8
|
+
require 'rake/contrib/rubyforgepublisher'
|
5
9
|
|
6
10
|
$: << './lib'
|
7
|
-
require 'dtrace'
|
8
|
-
|
9
|
-
Hoe.new('ruby-dtrace', Dtrace::VERSION) do |p|
|
10
|
-
p.rubyforge_name = 'ruby-dtrace'
|
11
|
-
p.author = 'Chris Andrews'
|
12
|
-
p.email = 'chris@nodnol.org'
|
13
|
-
p.summary = 'Ruby bindings for libdtrace'
|
14
|
-
p.description = <<EOD
|
15
|
-
ruby-dtrace is Ruby bindings for Dtrace, which lets you write D-based
|
16
|
-
programs in Ruby. It doesn't provide D probes for Ruby, but you can
|
17
|
-
use it with the probes found in the Joyent and Apple builds of Ruby.
|
18
|
-
EOD
|
19
|
-
p.spec_extras = {:extensions => ['ext/extconf.rb']}
|
20
|
-
p.url = "http://ruby-dtrace.rubyforge.org/"
|
21
|
-
p.changes = p.paragraphs_of('History.txt', 0..1).join("\n\n")
|
22
|
-
end
|
11
|
+
require 'dtrace/version'
|
23
12
|
|
24
13
|
desc "Uses extconf.rb and make to build the extension"
|
25
14
|
task :extensions do
|
26
15
|
Dir.chdir('ext')
|
27
16
|
system("ruby extconf.rb")
|
28
17
|
system("make")
|
29
|
-
Dir.chdir('
|
18
|
+
Dir.chdir('dof')
|
19
|
+
system("ruby extconf.rb")
|
20
|
+
system("make")
|
21
|
+
Dir.chdir('../..')
|
30
22
|
end
|
31
23
|
|
32
|
-
|
24
|
+
desc "Clean all extensions"
|
25
|
+
task :clean_extensions do
|
26
|
+
Dir.chdir('ext')
|
27
|
+
system("make clean")
|
28
|
+
Dir.chdir('dof')
|
29
|
+
system("make clean")
|
30
|
+
Dir.chdir('../..')
|
31
|
+
end
|
32
|
+
|
33
|
+
PKG_NAME = "ruby-dtrace"
|
34
|
+
PKG_BUILD = ENV['PKG_BUILD'] ? '.' + ENV['PKG_BUILD'] : ''
|
35
|
+
PKG_VERSION = Dtrace::VERSION + PKG_BUILD
|
36
|
+
PKG_FILE_NAME = "#{PKG_NAME}-#{PKG_VERSION}"
|
37
|
+
|
38
|
+
desc "Default task"
|
39
|
+
task :default => [ :test ]
|
40
|
+
|
41
|
+
desc "Build documentation"
|
42
|
+
task :doc => [ :rdoc ]
|
43
|
+
|
44
|
+
Rake::TestTask.new do |t|
|
45
|
+
t.libs << "ext:lib"
|
46
|
+
t.test_files = Dir["test/*.rb"]
|
47
|
+
t.verbose = true
|
48
|
+
end
|
49
|
+
|
50
|
+
desc "Run code-coverage analysis using rcov"
|
51
|
+
task :coverage do
|
52
|
+
rm_rf "coverage"
|
53
|
+
files = Dir["test/*.rb"]
|
54
|
+
system "rcov --sort coverage -Iext:lib #{files.join(' ')}"
|
55
|
+
end
|
56
|
+
|
57
|
+
GEM_SPEC = eval(File.read("#{File.dirname(__FILE__)}/#{PKG_NAME}.gemspec"))
|
58
|
+
|
59
|
+
Rake::GemPackageTask.new(GEM_SPEC) do |p|
|
60
|
+
p.gem_spec = GEM_SPEC
|
61
|
+
p.need_tar = true
|
62
|
+
p.need_zip = true
|
63
|
+
end
|
64
|
+
|
65
|
+
desc "Build the RDoc API documentation"
|
66
|
+
Rake::RDocTask.new do |rdoc|
|
67
|
+
rdoc.rdoc_dir = "doc"
|
68
|
+
rdoc.title = "Ruby-DTrace"
|
69
|
+
rdoc.options += %w(--line-numbers --inline-source --main README.txt)
|
70
|
+
rdoc.rdoc_files.include 'README.txt'
|
71
|
+
rdoc.rdoc_files.include 'ext/**/*.c'
|
72
|
+
rdoc.rdoc_files.include 'lib/**/*.rb'
|
73
|
+
end
|
data/examples/scsi.rb
CHANGED
data/ext/dof/Makefile
ADDED
@@ -0,0 +1,154 @@
|
|
1
|
+
|
2
|
+
SHELL = /bin/sh
|
3
|
+
|
4
|
+
#### Start of system configuration section. ####
|
5
|
+
|
6
|
+
srcdir = .
|
7
|
+
topdir = /opt/local/lib/ruby/1.8/i686-darwin9.7.0
|
8
|
+
hdrdir = $(topdir)
|
9
|
+
VPATH = $(srcdir):$(topdir):$(hdrdir)
|
10
|
+
prefix = $(DESTDIR)/opt/local
|
11
|
+
exec_prefix = $(prefix)
|
12
|
+
sitedir = $(prefix)/lib/ruby/site_ruby
|
13
|
+
rubylibdir = $(libdir)/ruby/$(ruby_version)
|
14
|
+
docdir = $(datarootdir)/doc/$(PACKAGE)
|
15
|
+
dvidir = $(docdir)
|
16
|
+
datarootdir = $(prefix)/share
|
17
|
+
archdir = $(rubylibdir)/$(arch)
|
18
|
+
sbindir = $(exec_prefix)/sbin
|
19
|
+
psdir = $(docdir)
|
20
|
+
vendordir = $(prefix)/lib/ruby/vendor_ruby
|
21
|
+
localedir = $(datarootdir)/locale
|
22
|
+
htmldir = $(docdir)
|
23
|
+
datadir = $(datarootdir)
|
24
|
+
includedir = $(prefix)/include
|
25
|
+
infodir = $(datarootdir)/info
|
26
|
+
sysconfdir = $(prefix)/etc
|
27
|
+
libdir = $(exec_prefix)/lib
|
28
|
+
mandir = $(DESTDIR)/opt/local/share/man
|
29
|
+
sharedstatedir = $(prefix)/com
|
30
|
+
oldincludedir = $(DESTDIR)/usr/include
|
31
|
+
pdfdir = $(docdir)
|
32
|
+
sitearchdir = $(sitelibdir)/$(sitearch)
|
33
|
+
vendorarchdir = $(vendorlibdir)/$(vendorarch)
|
34
|
+
localstatedir = $(prefix)/var
|
35
|
+
bindir = $(exec_prefix)/bin
|
36
|
+
vendorlibdir = $(vendordir)/$(ruby_version)
|
37
|
+
sitelibdir = $(sitedir)/$(ruby_version)
|
38
|
+
libexecdir = $(exec_prefix)/libexec
|
39
|
+
|
40
|
+
CC = /usr/bin/gcc-4.0
|
41
|
+
LIBRUBY = $(LIBRUBY_SO)
|
42
|
+
LIBRUBY_A = lib$(RUBY_SO_NAME)-static.a
|
43
|
+
LIBRUBYARG_SHARED = -l$(RUBY_SO_NAME)
|
44
|
+
LIBRUBYARG_STATIC = -l$(RUBY_SO_NAME)-static
|
45
|
+
|
46
|
+
RUBY_EXTCONF_H =
|
47
|
+
CFLAGS = -fno-common -O2 -fno-common -pipe -fno-common -D_LONGLONG_TYPE -g
|
48
|
+
INCFLAGS = -I. -I$(topdir) -I$(hdrdir) -I$(srcdir)
|
49
|
+
DEFS =
|
50
|
+
CPPFLAGS = -DHAVE_SYS_DTRACE_H -I/opt/local/include $(DEFS)
|
51
|
+
CXXFLAGS = $(CFLAGS)
|
52
|
+
DLDFLAGS = -L. -L/opt/local/lib
|
53
|
+
LDSHARED = cc -dynamic -bundle -undefined suppress -flat_namespace
|
54
|
+
AR = ar
|
55
|
+
EXEEXT =
|
56
|
+
|
57
|
+
RUBY_INSTALL_NAME = ruby
|
58
|
+
RUBY_SO_NAME = ruby
|
59
|
+
arch = i686-darwin9.7.0
|
60
|
+
sitearch = i686-darwin9.7.0
|
61
|
+
vendorarch = i686-darwin9.7.0
|
62
|
+
ruby_version = 1.8
|
63
|
+
ruby = /opt/local/bin/ruby
|
64
|
+
RUBY = $(ruby)
|
65
|
+
RM = rm -f
|
66
|
+
MAKEDIRS = mkdir -p
|
67
|
+
INSTALL = /usr/bin/install -c
|
68
|
+
INSTALL_PROG = $(INSTALL) -m 0755
|
69
|
+
INSTALL_DATA = $(INSTALL) -m 644
|
70
|
+
COPY = cp
|
71
|
+
|
72
|
+
#### End of system configuration section. ####
|
73
|
+
|
74
|
+
preload =
|
75
|
+
|
76
|
+
libpath = . $(libdir)
|
77
|
+
LIBPATH = -L. -L$(libdir)
|
78
|
+
DEFFILE =
|
79
|
+
|
80
|
+
CLEANFILES = mkmf.log
|
81
|
+
DISTCLEANFILES =
|
82
|
+
|
83
|
+
extout =
|
84
|
+
extout_prefix =
|
85
|
+
target_prefix =
|
86
|
+
LOCAL_LIBS =
|
87
|
+
LIBS = $(LIBRUBYARG_SHARED) -lpthread -ldl -lobjc
|
88
|
+
SRCS = constants.c dof_api.c dof_helper.c file.c generator.c header.c parser.c section.c
|
89
|
+
OBJS = constants.o dof_api.o dof_helper.o file.o generator.o header.o parser.o section.o
|
90
|
+
TARGET = dof_api
|
91
|
+
DLLIB = $(TARGET).bundle
|
92
|
+
EXTSTATIC =
|
93
|
+
STATIC_LIB =
|
94
|
+
|
95
|
+
RUBYCOMMONDIR = $(sitedir)$(target_prefix)
|
96
|
+
RUBYLIBDIR = $(sitelibdir)$(target_prefix)
|
97
|
+
RUBYARCHDIR = $(sitearchdir)$(target_prefix)
|
98
|
+
|
99
|
+
TARGET_SO = $(DLLIB)
|
100
|
+
CLEANLIBS = $(TARGET).bundle $(TARGET).il? $(TARGET).tds $(TARGET).map
|
101
|
+
CLEANOBJS = *.o *.a *.s[ol] *.pdb *.exp *.bak
|
102
|
+
|
103
|
+
all: $(DLLIB)
|
104
|
+
static: $(STATIC_LIB)
|
105
|
+
|
106
|
+
clean:
|
107
|
+
@-$(RM) $(CLEANLIBS) $(CLEANOBJS) $(CLEANFILES)
|
108
|
+
|
109
|
+
distclean: clean
|
110
|
+
@-$(RM) Makefile $(RUBY_EXTCONF_H) conftest.* mkmf.log
|
111
|
+
@-$(RM) core ruby$(EXEEXT) *~ $(DISTCLEANFILES)
|
112
|
+
|
113
|
+
realclean: distclean
|
114
|
+
install: install-so install-rb
|
115
|
+
|
116
|
+
install-so: $(RUBYARCHDIR)
|
117
|
+
install-so: $(RUBYARCHDIR)/$(DLLIB)
|
118
|
+
$(RUBYARCHDIR)/$(DLLIB): $(DLLIB)
|
119
|
+
$(INSTALL_PROG) $(DLLIB) $(RUBYARCHDIR)
|
120
|
+
install-rb: pre-install-rb install-rb-default
|
121
|
+
install-rb-default: pre-install-rb-default
|
122
|
+
pre-install-rb: Makefile
|
123
|
+
pre-install-rb-default: Makefile
|
124
|
+
$(RUBYARCHDIR):
|
125
|
+
$(MAKEDIRS) $@
|
126
|
+
|
127
|
+
site-install: site-install-so site-install-rb
|
128
|
+
site-install-so: install-so
|
129
|
+
site-install-rb: install-rb
|
130
|
+
|
131
|
+
.SUFFIXES: .c .m .cc .cxx .cpp .C .o
|
132
|
+
|
133
|
+
.cc.o:
|
134
|
+
$(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) -c $<
|
135
|
+
|
136
|
+
.cxx.o:
|
137
|
+
$(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) -c $<
|
138
|
+
|
139
|
+
.cpp.o:
|
140
|
+
$(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) -c $<
|
141
|
+
|
142
|
+
.C.o:
|
143
|
+
$(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) -c $<
|
144
|
+
|
145
|
+
.c.o:
|
146
|
+
$(CC) $(INCFLAGS) $(CPPFLAGS) $(CFLAGS) -c $<
|
147
|
+
|
148
|
+
$(DLLIB): $(OBJS) Makefile
|
149
|
+
@-$(RM) $@
|
150
|
+
$(LDSHARED) -o $@ $(OBJS) $(LIBPATH) $(DLDFLAGS) $(LOCAL_LIBS) $(LIBS)
|
151
|
+
|
152
|
+
|
153
|
+
|
154
|
+
$(OBJS): ruby.h defines.h
|