libxsl-ruby 0.3.6
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +14 -0
- data/LICENSE +21 -0
- data/README +50 -0
- data/Rakefile +245 -0
- data/TODO +32 -0
- data/ext/xml/extconf.rb +97 -0
- data/ext/xml/libxml-ruby/libxml.h +92 -0
- data/ext/xml/libxml-ruby/ruby_xml_attr.h +31 -0
- data/ext/xml/libxml-ruby/ruby_xml_attribute.h +31 -0
- data/ext/xml/libxml-ruby/ruby_xml_document.h +37 -0
- data/ext/xml/libxml-ruby/ruby_xml_dtd.h +27 -0
- data/ext/xml/libxml-ruby/ruby_xml_input_cbg.h +31 -0
- data/ext/xml/libxml-ruby/ruby_xml_node.h +38 -0
- data/ext/xml/libxml-ruby/ruby_xml_node_set.h +36 -0
- data/ext/xml/libxml-ruby/ruby_xml_ns.h +31 -0
- data/ext/xml/libxml-ruby/ruby_xml_parser.h +41 -0
- data/ext/xml/libxml-ruby/ruby_xml_parser_context.h +32 -0
- data/ext/xml/libxml-ruby/ruby_xml_sax_parser.h +31 -0
- data/ext/xml/libxml-ruby/ruby_xml_schema.h +26 -0
- data/ext/xml/libxml-ruby/ruby_xml_tree.h +22 -0
- data/ext/xml/libxml-ruby/ruby_xml_xinclude.h +23 -0
- data/ext/xml/libxml-ruby/ruby_xml_xpath.h +34 -0
- data/ext/xml/libxml-ruby/ruby_xml_xpath_context.h +34 -0
- data/ext/xml/libxml-ruby/ruby_xml_xpointer.h +37 -0
- data/ext/xml/libxml-ruby/ruby_xml_xpointer_context.h +28 -0
- data/ext/xml/libxslt.c +247 -0
- data/ext/xml/libxslt.h +52 -0
- data/ext/xml/ruby_xslt_stylesheet.c +298 -0
- data/ext/xml/ruby_xslt_stylesheet.h +21 -0
- data/ext/xml/ruby_xslt_transform_context.c +63 -0
- data/ext/xml/ruby_xslt_transform_context.h +22 -0
- data/tests/commentary.dtd +34 -0
- data/tests/fuzface.rb +15 -0
- data/tests/fuzface.xml +154 -0
- data/tests/fuzface.xsl +4 -0
- data/tests/ramblings.xsl +46 -0
- data/tests/tc_libxslt.rb +65 -0
- data/tests/tc_xslt_stylesheet.rb +41 -0
- data/tests/tc_xslt_stylesheet2.rb +41 -0
- metadata +101 -0
data/CHANGELOG
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
27.02.2006 Ross Bamford <rosco at roscopeco.co.uk>
|
2
|
+
* Source layout for Rubygem release
|
3
|
+
* Fixed unit tests (set_up to setup, directory handling)
|
4
|
+
* Updated extconf to remove shell-script dependency
|
5
|
+
* Fixed multiple symbol declarations for -fno-common
|
6
|
+
|
7
|
+
15.12.2003 Martin Povolny <martin@solnet.cz>
|
8
|
+
* libxslt.c: added call to exsltRegisterAll to enable exslt extensions
|
9
|
+
* extconf.rb: added -lexslt
|
10
|
+
|
11
|
+
2.1.2004 Martin Povolny <martin@solnet.cz>
|
12
|
+
* libxslt.c: added call to ruby_init_xslt_transform_context() to make it
|
13
|
+
work on ruby1.8
|
14
|
+
|
data/LICENSE
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
# $Id: LICENSE,v 1.1 2006/03/24 10:54:55 roscopeco Exp $
|
2
|
+
|
3
|
+
Copyright (c) 2002-2006 Sean Chittenden <sean@chittenden.org> and contributors
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
6
|
+
this software and associated documentation files (the "Software"), to deal in
|
7
|
+
the Software without restriction, including without limitation the rights to
|
8
|
+
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
9
|
+
of the Software, and to permit persons to whom the Software is furnished to do
|
10
|
+
so, subject to the following conditions:
|
11
|
+
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
13
|
+
copies or substantial portions of the Software.
|
14
|
+
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
21
|
+
SOFTWARE.
|
data/README
ADDED
@@ -0,0 +1,50 @@
|
|
1
|
+
== INSTALLATION
|
2
|
+
|
3
|
+
Installation is simple. Follow the following steps:
|
4
|
+
|
5
|
+
=== Rubygems
|
6
|
+
|
7
|
+
gem install libxsl-ruby
|
8
|
+
|
9
|
+
=== Tarball/zip
|
10
|
+
|
11
|
+
$ rake test
|
12
|
+
$ rake install
|
13
|
+
|
14
|
+
If extconf yacks up an error, follow the instructions it provides.
|
15
|
+
You will need to chdir to ext/xml and run 'ruby extconf.rb' to provide
|
16
|
+
options, after which you can either use Rake for everything or
|
17
|
+
do with make (make && make install).
|
18
|
+
|
19
|
+
Once installed, look at the test scripts (tests/*.rb), and run
|
20
|
+
'rake doc' to generate API documentation.
|
21
|
+
|
22
|
+
== DOCUMENTATION
|
23
|
+
|
24
|
+
RDoc comments are included - run 'rake doc' to generate documentation.
|
25
|
+
You can find the latest documentation at:
|
26
|
+
|
27
|
+
* http://libxsl.rubyforge.org/doc
|
28
|
+
|
29
|
+
== USAGE EXAMPLE
|
30
|
+
|
31
|
+
*Note*: To use libxsl-ruby, you have to require both 'xml/libxml' and
|
32
|
+
'xml/libxslt'.
|
33
|
+
|
34
|
+
$ cd tests
|
35
|
+
$ ruby fuzface.rb
|
36
|
+
|
37
|
+
== If you checked out from CVS
|
38
|
+
|
39
|
+
If you checked out the source from CVS, you must install a copy of
|
40
|
+
the current (or matching) libxml-ruby headers in:
|
41
|
+
|
42
|
+
ext/xml/libxml-ruby
|
43
|
+
|
44
|
+
prior to running the above. This can be done via rake, and will
|
45
|
+
happen automatically if ../libxml/ext/xml is found, or the
|
46
|
+
LIBXMLH=/path/to/headers commandline option is supplied.
|
47
|
+
|
48
|
+
# $Id: README,v 1.2 2006/03/24 11:19:58 roscopeco Exp $
|
49
|
+
|
50
|
+
# See the LICENSE file for copyright and distribution information
|
data/Rakefile
ADDED
@@ -0,0 +1,245 @@
|
|
1
|
+
require 'net/ftp'
|
2
|
+
require 'rake/clean'
|
3
|
+
require 'rake/testtask'
|
4
|
+
require 'rake/rdoctask'
|
5
|
+
require 'rake/gempackagetask'
|
6
|
+
|
7
|
+
CLEAN.include '**/*.o'
|
8
|
+
CLEAN.include '**/*.so'
|
9
|
+
CLEAN.include 'html'
|
10
|
+
CLEAN.include 'tests/fuzface.html'
|
11
|
+
CLOBBER.include '**/*.log'
|
12
|
+
CLOBBER.include '**/Makefile'
|
13
|
+
CLOBBER.include '**/extconf.h'
|
14
|
+
|
15
|
+
desc "Default Task (Build release)"
|
16
|
+
task :default => :test
|
17
|
+
|
18
|
+
# Determine the current version of the software
|
19
|
+
if File.read('ext/xml/libxslt.h') =~ /\s*RUBY_LIBXSLT_VERSION\s*['"](\d.+)['"]/
|
20
|
+
CURRENT_VERSION = $1
|
21
|
+
else
|
22
|
+
CURRENT_VERSION = "0.0.0"
|
23
|
+
end
|
24
|
+
|
25
|
+
PKG_VERSION = ENV['REL'] || CURRENT_VERSION
|
26
|
+
LIBXMLH = ENV['LIBXMLH'] || '../libxml/ext/xml'
|
27
|
+
|
28
|
+
task :test_ver do
|
29
|
+
puts PKG_VERSION
|
30
|
+
end
|
31
|
+
|
32
|
+
# Make tasks -----------------------------------------------------
|
33
|
+
MAKECMD = ENV['MAKE_CMD'] || 'make'
|
34
|
+
MAKEOPTS = ENV['MAKE_OPTS'] || ''
|
35
|
+
|
36
|
+
# Copy libxml headers in if needed or official release
|
37
|
+
task :copy_libxml_headers do
|
38
|
+
rm_rf 'ext/xml/libxml-ruby' if ENV['REL'] || ENV['ALLCLEAN']
|
39
|
+
|
40
|
+
unless File.exist?('ext/xml/libxml-ruby')
|
41
|
+
unless File.exist?(LIBXMLH)
|
42
|
+
fail <<-EOM
|
43
|
+
|
44
|
+
LibXML-Ruby headers are required to build a release.
|
45
|
+
|
46
|
+
Install libxml-ruby source at ../libxml, or supply
|
47
|
+
LIBXMLH option to rake (e.g. LIBXMLH=../myinc/path)
|
48
|
+
|
49
|
+
EOM
|
50
|
+
end
|
51
|
+
|
52
|
+
mkdir 'ext/xml/libxml-ruby'
|
53
|
+
|
54
|
+
Dir[File.join(LIBXMLH, '*.h')].each do |fn|
|
55
|
+
unless fn =~ /extconf.h$/
|
56
|
+
File.open(File.join('ext/xml/libxml-ruby', File.basename(fn)), 'w+') do |f|
|
57
|
+
f << "/* DO NOT EDIT THIS FILE - UPDATE FROM LIBXML-RUBY ONLY */\n"
|
58
|
+
f << "/* Generated: #{Time.now} */\n"
|
59
|
+
f << "/* Release : #{CURRENT_VERSION} */\n\n\n\n\n\n\n\n"
|
60
|
+
f << File.read(fn)
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
file 'ext/xml/extconf.rb' => :copy_libxml_headers
|
68
|
+
|
69
|
+
file 'ext/xml/Makefile' => 'ext/xml/extconf.rb' do
|
70
|
+
Dir.chdir('ext/xml') do
|
71
|
+
ruby 'extconf.rb'
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
def make(target = '')
|
76
|
+
Dir.chdir('ext/xml') do
|
77
|
+
pid = fork { exec "#{MAKECMD} #{MAKEOPTS} #{target}" }
|
78
|
+
Process.waitpid pid
|
79
|
+
end
|
80
|
+
$?.exitstatus
|
81
|
+
end
|
82
|
+
|
83
|
+
# Let make handle dependencies between c/o/so - we'll just run it.
|
84
|
+
file 'ext/xml/libxslt.so' => 'ext/xml/Makefile' do
|
85
|
+
m = make
|
86
|
+
fail "Make failed (status #{m})" unless m == 0
|
87
|
+
end
|
88
|
+
|
89
|
+
desc "Compile the shared object"
|
90
|
+
task :compile => 'ext/xml/libxslt.so'
|
91
|
+
|
92
|
+
desc "Install to your site_ruby directory"
|
93
|
+
task :install => :compile do
|
94
|
+
m = make 'install'
|
95
|
+
fail "Make install failed (status #{m})" unless m == 0
|
96
|
+
end
|
97
|
+
|
98
|
+
# Test Tasks ---------------------------------------------------------
|
99
|
+
task :ta => :alltests
|
100
|
+
task :tu => :unittests
|
101
|
+
task :test => :unittests
|
102
|
+
|
103
|
+
Rake::TestTask.new(:alltests) do |t|
|
104
|
+
t.test_files = FileList[
|
105
|
+
'tests/tc_*.rb',
|
106
|
+
'tests/contrib/*.rb',
|
107
|
+
]
|
108
|
+
t.verbose = true
|
109
|
+
end
|
110
|
+
|
111
|
+
Rake::TestTask.new(:unittests) do |t|
|
112
|
+
t.test_files = FileList['tests/tc_*.rb']
|
113
|
+
t.verbose = false
|
114
|
+
end
|
115
|
+
|
116
|
+
#Rake::TestTask.new(:funtests) do |t|
|
117
|
+
# t.test_files = FileList['test/fun*.rb']
|
118
|
+
#t.warning = true
|
119
|
+
#t.warning = true
|
120
|
+
#end
|
121
|
+
|
122
|
+
task :unittests => :compile
|
123
|
+
task :alltests => :compile
|
124
|
+
|
125
|
+
# RDoc Tasks ---------------------------------------------------------
|
126
|
+
desc "Create the RDOC documentation tree"
|
127
|
+
rd = Rake::RDocTask.new(:doc) do |rdoc|
|
128
|
+
rdoc.rdoc_dir = 'html'
|
129
|
+
rdoc.title = "Libxsl-Ruby API"
|
130
|
+
rdoc.options << '--main' << 'README'
|
131
|
+
rdoc.rdoc_files.include('README', 'LICENSE', 'TODO')
|
132
|
+
rdoc.rdoc_files.include('ext/xml/ruby_xslt*.c', 'ext/xml/libxslt.c', '*.rdoc')
|
133
|
+
end
|
134
|
+
|
135
|
+
desc "Publish the RDoc documentation to project web site"
|
136
|
+
task :pubdoc => [ :doc ] do
|
137
|
+
unless ENV['RUBYFORGE_ACCT']
|
138
|
+
raise "Need to set RUBYFORGE_ACCT to your rubyforge.org user name (e.g. 'fred')"
|
139
|
+
end
|
140
|
+
require 'rake/contrib/sshpublisher'
|
141
|
+
Rake::SshDirPublisher.new(
|
142
|
+
"#{ENV['RUBYFORGE_ACCT']}@rubyforge.org",
|
143
|
+
"/var/www/gforge-projects/libxsl",
|
144
|
+
"html"
|
145
|
+
).upload
|
146
|
+
end
|
147
|
+
|
148
|
+
# Packaging / Version number tasks -----------------------------------
|
149
|
+
#
|
150
|
+
# You can create a Rubygem with 'rake package'
|
151
|
+
#
|
152
|
+
# You can build a release package set with 'rake release'
|
153
|
+
#
|
154
|
+
# The project can build official release packages with
|
155
|
+
# 'rake release REL=x.y.z' in a working copy (with correct
|
156
|
+
# libxml-ruby headers in ../libxml/ext/xml or alternative dir
|
157
|
+
# specified with LIBXMLH=/path/to/headers/ )
|
158
|
+
|
159
|
+
# Used during release packaging if a REL is supplied
|
160
|
+
task :update_version do
|
161
|
+
unless PKG_VERSION == CURRENT_VERSION
|
162
|
+
maj, min, mic = /(\d+)\.(\d+)(?:\.(\d+))?/.match(PKG_VERSION).captures
|
163
|
+
File.open('ext/xml/libxslt.h.new','w+') do |f|
|
164
|
+
f << File.read('ext/xml/libxslt.h').
|
165
|
+
gsub(/RUBY_LIBXSLT_VERSION\s+"(\d.+)"/) { "RUBY_LIBXSLT_VERSION \"#{PKG_VERSION}\"" }.
|
166
|
+
gsub(/RUBY_LIBXSLT_VERNUM\s+\d+/) { "RUBY_LIBXSLT_VERNUM #{PKG_VERSION.tr('.','')}" }.
|
167
|
+
gsub(/RUBY_LIBXSLT_VER_MAJ\s+\d+/) { "RUBY_LIBXSLT_VER_MAJ #{maj}" }.
|
168
|
+
gsub(/RUBY_LIBXSLT_VER_MIN\s+\d+/) { "RUBY_LIBXSLT_VER_MIN #{min}" }.
|
169
|
+
gsub(/RUBY_LIBXSLT_VER_MIC\s+\d+/) { "RUBY_LIBXSLT_VER_MIC #{mic || 0}" }
|
170
|
+
end
|
171
|
+
mv('ext/xml/libxslt.h.new', 'ext/xml/libxslt.h')
|
172
|
+
end
|
173
|
+
end
|
174
|
+
|
175
|
+
PKG_FILES = FileList[
|
176
|
+
'ext/xml/extconf.rb',
|
177
|
+
'[A-Z]*',
|
178
|
+
'ext/xml/*.c',
|
179
|
+
'ext/xml/libxml-ruby/*.h',
|
180
|
+
'ext/xml/ruby_xslt*.h',
|
181
|
+
'ext/xml/libxslt.h',
|
182
|
+
'tests/**/*',
|
183
|
+
]
|
184
|
+
|
185
|
+
if ! defined?(Gem)
|
186
|
+
warn "Package Target requires RubyGEMs"
|
187
|
+
else
|
188
|
+
spec = Gem::Specification.new do |s|
|
189
|
+
|
190
|
+
#### Basic information.
|
191
|
+
|
192
|
+
s.name = 'libxsl-ruby'
|
193
|
+
s.version = PKG_VERSION
|
194
|
+
s.summary = "LibXSLT bindings for Ruby"
|
195
|
+
s.description = <<-EOF
|
196
|
+
C-language bindings for Gnome LibXSLT and Ruby.
|
197
|
+
Part of the LibXML-Ruby project.
|
198
|
+
EOF
|
199
|
+
s.extensions = 'ext/xml/extconf.rb'
|
200
|
+
|
201
|
+
#### Which files are to be included in this gem?
|
202
|
+
s.files = PKG_FILES.to_a
|
203
|
+
|
204
|
+
#### dependencies
|
205
|
+
s.add_dependency('libxml-ruby', '>= 0.3.6')
|
206
|
+
|
207
|
+
#### Load-time details
|
208
|
+
s.require_path = 'ext'
|
209
|
+
|
210
|
+
#### Documentation and testing.
|
211
|
+
s.has_rdoc = true
|
212
|
+
s.extra_rdoc_files = rd.rdoc_files.reject { |fn| fn =~ /\.rb$/ }.to_a
|
213
|
+
s.rdoc_options <<
|
214
|
+
'--title' << 'Libxsl-Ruby API' <<
|
215
|
+
'--main' << 'README' <<
|
216
|
+
'-o' << 'rdoc'
|
217
|
+
|
218
|
+
s.test_files = Dir.glob('tests/*runner.rb')
|
219
|
+
|
220
|
+
#### Author and project details.
|
221
|
+
|
222
|
+
s.author = "Sean Chittenden"
|
223
|
+
s.email = "libxsl-devel@rubyforge.org"
|
224
|
+
s.homepage = "http://libxsl.rubyforge.org"
|
225
|
+
s.rubyforge_project = "libxsl"
|
226
|
+
end
|
227
|
+
|
228
|
+
# Quick fix for Ruby 1.8.3 / YAML bug
|
229
|
+
if (RUBY_VERSION == '1.8.3')
|
230
|
+
def spec.to_yaml
|
231
|
+
out = super
|
232
|
+
out = '--- ' + out unless out =~ /^---/
|
233
|
+
out
|
234
|
+
end
|
235
|
+
end
|
236
|
+
|
237
|
+
package_task = Rake::GemPackageTask.new(spec) do |pkg|
|
238
|
+
pkg.need_zip = true
|
239
|
+
pkg.need_tar_gz = true
|
240
|
+
pkg.package_dir = 'pkg'
|
241
|
+
end
|
242
|
+
|
243
|
+
desc "Build a full release"
|
244
|
+
task :release => [:clobber, :update_version, :compile, :test, :package]
|
245
|
+
end
|
data/TODO
ADDED
@@ -0,0 +1,32 @@
|
|
1
|
+
$Id: TODO,v 1.1 2006/03/24 10:54:55 roscopeco Exp $
|
2
|
+
|
3
|
+
XML::XSLT needs a class method that'll let it use a stylesheet that's
|
4
|
+
already in memory. Something like: xsl = XML::XSLT.string(stylesheet)
|
5
|
+
|
6
|
+
Need version constants to be available for both LIBXML and LIBXSLT
|
7
|
+
|
8
|
+
Need a way of changing the IO stream used for printing the output
|
9
|
+
|
10
|
+
Should have some way of turning on more debugging that what's there
|
11
|
+
|
12
|
+
Need to add the ability to save to a file
|
13
|
+
|
14
|
+
Ability to dump the tree instead of the result to a given IO stream (partially completed, iirc)
|
15
|
+
|
16
|
+
Ability to dump the registered extension elements and functions to a given IO stream
|
17
|
+
|
18
|
+
Ability to turn on and off the DTD loading phase
|
19
|
+
|
20
|
+
Ability to increase the maximum depth of applying templates
|
21
|
+
|
22
|
+
Some way of specifying that the incoming document is xhtml and not xml
|
23
|
+
|
24
|
+
Some way of specifying that the incoming document is SGML docbook
|
25
|
+
|
26
|
+
A way of setting parameters (key/value pairs) before the stylesheet gets processed
|
27
|
+
|
28
|
+
A way of not telling the XSL engine to not fetch DTDs over a network
|
29
|
+
|
30
|
+
A way of specifying the SGML catalogs to use
|
31
|
+
|
32
|
+
A way of turning on XInclude processing of the document input
|
data/ext/xml/extconf.rb
ADDED
@@ -0,0 +1,97 @@
|
|
1
|
+
#!/usr/local/bin/ruby -w
|
2
|
+
|
3
|
+
# $Id: extconf.rb,v 1.1 2006/03/24 10:54:55 roscopeco Exp $
|
4
|
+
#
|
5
|
+
# See the LICENSE file for copyright and distribution information
|
6
|
+
|
7
|
+
require "mkmf"
|
8
|
+
|
9
|
+
$preload = nil
|
10
|
+
$LIBPATH.push(Config::CONFIG['libdir'])
|
11
|
+
|
12
|
+
def crash(str)
|
13
|
+
print(" extconf failure: %s\n", str)
|
14
|
+
exit 1
|
15
|
+
end
|
16
|
+
|
17
|
+
dir_config('xml2')
|
18
|
+
dir_config('xslt')
|
19
|
+
#dir_config('libxml-ruby', '../../../libxml', '../../../libxml/ext/xml')
|
20
|
+
|
21
|
+
unless have_library('m', 'atan')
|
22
|
+
# try again for gcc 4.0
|
23
|
+
saveflags = $CFLAGS
|
24
|
+
$CFLAGS += ' -fno-builtin'
|
25
|
+
unless have_library('m', 'atan')
|
26
|
+
crash('need libm')
|
27
|
+
end
|
28
|
+
$CFLAGS = saveflags
|
29
|
+
end
|
30
|
+
|
31
|
+
unless have_library("z", "inflate")
|
32
|
+
crash("need zlib")
|
33
|
+
else
|
34
|
+
$defs.push('-DHAVE_ZLIB_H')
|
35
|
+
end
|
36
|
+
|
37
|
+
unless (have_library('xml2', 'xmlXPtrNewRange') or
|
38
|
+
find_library('xml2', '/opt/lib', '/usr/local/lib', '/usr/lib')) and
|
39
|
+
(have_header('libxml/xmlversion.h') or
|
40
|
+
find_header('libxml/xmlversion.h',
|
41
|
+
'/opt/include/libxml2',
|
42
|
+
'/usr/local/include/libxml2',
|
43
|
+
'/usr/include/libxml2'))
|
44
|
+
crash(<<EOL)
|
45
|
+
need libxml2.
|
46
|
+
|
47
|
+
Install the library or try one of the following options to extconf.rb:
|
48
|
+
|
49
|
+
--with-xml2-dir=/path/to/libxml2
|
50
|
+
--with-xml2-lib=/path/to/libxml2/lib
|
51
|
+
--with-xml2-include=/path/to/libxml2/include
|
52
|
+
EOL
|
53
|
+
end
|
54
|
+
|
55
|
+
unless (have_library('xslt','xsltApplyStylesheet') or
|
56
|
+
find_library('xslt', '/opt/lib', '/usr/local/lib', '/usr/lib')) and
|
57
|
+
(have_header('xslt.h') or
|
58
|
+
find_header('xslt.h',
|
59
|
+
'/opt/include/libxslt',
|
60
|
+
'/usr/local/include/libxslt',
|
61
|
+
'/usr/include/libxslt'))
|
62
|
+
crash(<<EOL)
|
63
|
+
need libxslt.
|
64
|
+
|
65
|
+
Install the library or try one of the following options to extconf.rb:
|
66
|
+
|
67
|
+
--with-xslt-dir=/path/to/libxslt
|
68
|
+
--with-xslt-lib=/path/to/libxslt/lib
|
69
|
+
--with-xslt-include=/path/to/libxslt/include
|
70
|
+
EOL
|
71
|
+
end
|
72
|
+
|
73
|
+
unless have_header('libxml-ruby/libxml.h')
|
74
|
+
crash(<<EOL)
|
75
|
+
need headers for libxml-ruby.
|
76
|
+
|
77
|
+
If you downloaded a release, this is a bug - please inform
|
78
|
+
libxml-devel@rubyforge.org including the release version and
|
79
|
+
download URL you obtained it from.
|
80
|
+
|
81
|
+
If you checked libxslt-ruby out from CVS, you will need to
|
82
|
+
obtain the headers from CVS (using the same version tag if
|
83
|
+
applicable) and place them in directory 'ext/xml/libxml-ruby'.
|
84
|
+
EOL
|
85
|
+
end
|
86
|
+
|
87
|
+
$LDFLAGS << ' -lexslt'
|
88
|
+
#$LDFLAGS << ' -lxml'
|
89
|
+
#$LDFLAGS << ' ' + `xslt-config --libs`.chomp
|
90
|
+
#$LDFLAGS << ' ' + `xml2-config --libs`.chomp
|
91
|
+
#$CFLAGS << ' ' + `xslt-config --cflags`.chomp
|
92
|
+
#$CFLAGS << ' ' + `xml2-config --cflags`.chomp
|
93
|
+
$CFLAGS = '-g -Wall ' + $CFLAGS + ' ' + $INCFLAGS
|
94
|
+
|
95
|
+
|
96
|
+
create_header()
|
97
|
+
create_makefile("xml/libxslt")
|