From: Sean Chittenden Date: 2002-07-08T09:26:58+09:00 Subject: Re: [PATCH] lib/mkfm.rb: have_bin()/find_bin() --jI8keyz6grp/JLjh Content-Type: text/plain; charset=us-ascii Content-Disposition: inline [resent] > > > This could be me over looking something, but in mkmf.rb, there is no > > > reliable way to test for an external binary, such as net-snmp-config, > > > which contains much of the linking/compiling information. Anyway, the > > > attached implements have_bin() and find_bin() methods. Comments? -sc > > I guess it's better to use CONFIG["EXEEXT"] and > CONFIG["PATH_SEPARATOR"]. I did not know about those two options: yes it is better, thank you. Corrected patch attached. -sc -- Sean Chittenden --jI8keyz6grp/JLjh Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename=patch Index: lib/mkmf.rb =================================================================== RCS file: /src/ruby/lib/mkmf.rb,v retrieving revision 1.87 diff -u -r1.87 mkmf.rb --- lib/mkmf.rb 2002/06/28 14:42:46 1.87 +++ lib/mkmf.rb 2002/07/08 00:10:40 @@ -351,6 +351,44 @@ return true end +def have_bin(bin) + printf "checking for %s... ", bin + STDOUT.flush + + bin += Config::CONFIG['EXEEXT'] + path = ENV['PATH'].split(Config::CONFIG['PATH_SEPARATOR') + for dir in path + file = File.join(dir, bin) + if FileTest.executable?(file) + print "yes\n" + return true + else + next + end + end + print "no\n" + return false +end + +def find_bin(bin) + printf "checking for %s... ", bin + STDOUT.flush + + bin += Config::CONFIG['EXEEXT'] + path = ENV['PATH'].split(Config::CONFIG['PATH_SEPARATOR') + for dir in path + file = File.join(dir, bin) + if FileTest.executable?(file) + print "yes\n" + return file + else + next + end + end + print "no\n" + return nil +end + def arg_config(config, default=nil) $configure_args.fetch(config, default) end --jI8keyz6grp/JLjh--