28 lines
638 B
Ruby
28 lines
638 B
Ruby
# Rakefile
|
|
|
|
# To build and run:
|
|
# $ rake
|
|
# $ ./callruby
|
|
|
|
# Must link with cc -Wl,-E so query.c exports QueryPointer.
|
|
CC = ENV.fetch('CC', 'cc')
|
|
LDFLAGS = '-Wl,-E'
|
|
CPPFLAGS = RbConfig.expand('-I$(rubyarchhdrdir) -I$(rubyhdrdir)')
|
|
LIBS = RbConfig.expand('$(LIBRUBYARG) $(LIBS)')
|
|
|
|
task 'default' => 'callruby'
|
|
|
|
desc 'compiles callruby'
|
|
file 'callruby' => %w[main.o query-rb.o] do |t|
|
|
sh "#{CC} #{LDFLAGS} -o #{t.name} #{t.sources.join(' ')} #{LIBS}"
|
|
end
|
|
|
|
rule '.o' => %w[.c] do |t|
|
|
sh "#{CC} #{CPPFLAGS} -o #{t.name} -c #{t.source}"
|
|
end
|
|
|
|
desc 'removes callruby and .o files'
|
|
task 'clean' do
|
|
rm_f %w[callruby main.o query-rb.o]
|
|
end
|