mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
80 lines
1.7 KiB
Ruby
80 lines
1.7 KiB
Ruby
|
# extconf.rb for tcltklib
|
||
|
|
||
|
have_library("socket", "socket")
|
||
|
have_library("nsl", "gethostbyname")
|
||
|
|
||
|
def search_file(var, include, *path)
|
||
|
pwd = Dir.getwd
|
||
|
begin
|
||
|
for i in path.reverse!
|
||
|
dir = Dir[i]
|
||
|
for path in dir
|
||
|
Dir.chdir path
|
||
|
files = Dir[include]
|
||
|
if files.size > 0
|
||
|
var << path
|
||
|
return files.pop
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
ensure
|
||
|
Dir.chdir pwd
|
||
|
end
|
||
|
end
|
||
|
|
||
|
$includes = []
|
||
|
search_file($includes,
|
||
|
"tcl.h",
|
||
|
"/usr/include/tcl*",
|
||
|
"/usr/include",
|
||
|
"/usr/local/include/tcl*",
|
||
|
"/usr/local/include")
|
||
|
search_file($includes,
|
||
|
"tk.h",
|
||
|
"/usr/include/tk*",
|
||
|
"/usr/include",
|
||
|
"/usr/local/include/tk*",
|
||
|
"/usr/local/include")
|
||
|
search_file($includes,
|
||
|
"X11/Xlib.h",
|
||
|
"/usr/include",
|
||
|
"/usr/X11*/include",
|
||
|
"/usr/include",
|
||
|
"/usr/X11*/include")
|
||
|
|
||
|
$CFLAGS = "-Wall " + $includes.collect{|path| "-I" + path}.join(" ")
|
||
|
|
||
|
$libraries = []
|
||
|
tcllibfile = search_file($libraries,
|
||
|
"libtcl{,7*,8*}.{a,so}",
|
||
|
"/usr/lib",
|
||
|
"/usr/local/lib")
|
||
|
if tcllibfile
|
||
|
tcllibfile.sub!(/^lib/, '')
|
||
|
tcllibfile.sub!(/\.(a|so)$/, '')
|
||
|
end
|
||
|
tklibfile = search_file($libraries,
|
||
|
"libtk{,4*,8*}.{a,so}",
|
||
|
"/usr/lib",
|
||
|
"/usr/local/lib")
|
||
|
if tklibfile
|
||
|
tklibfile.sub!(/^lib/, '')
|
||
|
tklibfile.sub!(/\.(a|so)$/, '')
|
||
|
end
|
||
|
search_file($libraries,
|
||
|
"libX11.{a,so}",
|
||
|
"/usr/lib",
|
||
|
"/usr/X11*/lib")
|
||
|
|
||
|
$LDFLAGS = $libraries.collect{|path| "-L" + path}.join(" ")
|
||
|
|
||
|
have_library("dl", "dlopen")
|
||
|
if have_header("tcl.h") &&
|
||
|
have_header("tk.h") &&
|
||
|
have_library("X11", "XOpenDisplay") &&
|
||
|
have_library("m", "log") &&
|
||
|
have_library(tcllibfile, "Tcl_FindExecutable") &&
|
||
|
have_library(tklibfile, "Tk_Init")
|
||
|
create_makefile("tcltklib")
|
||
|
end
|