Mercurial > pub > dyncall > bindings
annotate ruby/rbdc/extconf.rb @ 35:75fe1dec0eb4
- added support for signature-based calling convention switch
author | Tassilo Philipp |
---|---|
date | Mon, 13 Apr 2020 16:07:56 +0200 |
parents | 02a455de2b40 |
children |
rev | line source |
---|---|
0 | 1 #////////////////////////////////////////////////////////////////////// |
2 # | |
3 # extconf.rb | |
25 | 4 # Copyright (c) 2007-2018 Daniel Adler <dadler@uni-goettingen.de>, |
0 | 5 # Tassilo Philipp <tphilipp@potion-studios.com> |
6 # | |
7 # Permission to use, copy, modify, and distribute this software for any | |
8 # purpose with or without fee is hereby granted, provided that the above | |
9 # copyright notice and this permission notice appear in all copies. | |
10 # | |
11 # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES | |
12 # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF | |
13 # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR | |
14 # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES | |
15 # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN | |
16 # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF | |
17 # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | |
18 # | |
19 # Configuration file for dyncall/ruby extension. This script creates | |
20 # a makefile that can be used to compile the C-extension. It is | |
21 # configured such that every .c file in this directory will be used | |
22 # for compilation. | |
23 # | |
24 #/////////////////////////////////////////////////////////////////////// | |
25 | |
26 require 'mkmf' | |
27 | |
28 dir_config 'rbdc' | |
6
80273969f043
- ruby binding path cleanup, previous version required bindings and dyncall be checked out in same parent directory
cslag
parents:
1
diff
changeset
|
29 base_dir = 'dyncall/' |
0 | 30 |
6
80273969f043
- ruby binding path cleanup, previous version required bindings and dyncall be checked out in same parent directory
cslag
parents:
1
diff
changeset
|
31 $CFLAGS << ' -Idyncall/dyncall ' |
0 | 32 |
33 # Build dyncall libs. | |
34 puts 'Building dyncall libraries:' | |
35 Dir.chdir(base_dir) do | |
36 cmd = case | |
37 when RUBY_PLATFORM =~ /mswin/ then 'configure.bat && nmake /f Nmakefile' | |
25 | 38 else './configure && make' |
0 | 39 end |
40 puts cmd | |
41 raise "'#{cmd}' failed" unless system(cmd) | |
42 end | |
43 | |
44 # Search for dyncall libs. | |
45 puts 'Using the following dyncall libraries to build native ruby extension:' | |
46 Dir[base_dir+'**/*'].each { |d| | |
47 if d =~ /(lib)?dyn(call(back)?|load)_s\./ | |
48 $LOCAL_LIBS << '"'+d+'" ' | |
49 puts d | |
50 end | |
51 } | |
52 | |
53 if($LOCAL_LIBS.size > 0) then | |
54 # Write out a makefile for our dyncall extension. | |
55 create_makefile 'rbdc' | |
56 else | |
57 puts "Couldn't find dyncall and dynload libraries - dyncall build seems to have failed!" | |
58 end | |
59 |