From: nobu.nokada@... Date: 2002-07-08T08:42:32+09:00 Subject: Re: [PATCH] lib/mkfm.rb: have_bin()/find_bin() Hi, At Mon, 8 Jul 2002 07:45:21 +0900, Sean Chittenden wrote: > > 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"]. > 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/07 22:42:25 > @@ -351,6 +351,42 @@ > return true > end > > +def have_bin(bin) > + printf "checking for %s... ", bin > + STDOUT.flush > + + bin += CONFIG['EXEEXT'] + for dir in ENV['PATH'].split(CONFIG['PATH_SEPARATOR']) > + 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['EXEEXT'] + for dir in ENV['PATH'].split(CONFIG['PATH_SEPARATOR']) > + 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