# File src/ruby_supportlib/phusion_passenger/platform_info/compiler.rb, line 217
    def self.find_header(header_name, language, flags = nil)
      extension = detect_language_extension(language)
      create_temp_file("passenger-compile-check.#{extension}") do |filename, f|
        source = %Q{
          #include <#{header_name}>
        }
        f.puts(source)
        f.close
        begin
          command = create_compiler_command(language,
            "-v -c '#{filename}' -o '#{filename}.o'",
            flags)
          if result = run_compiler("Checking for #{header_name}", command, filename, source, true)
            result[:output] =~ /^#include <...> search starts here:$(.+?)^End of search list\.$/m
            search_paths = $1.to_s.strip.split("\n").map{ |line| line.strip }
            search_paths.each do |dir|
              if File.file?("#{dir}/#{header_name}")
                return "#{dir}/#{header_name}"
              end
            end
            return true
          else
            return nil
          end
        ensure
          File.unlink("#{filename}.o") rescue nil
        end
      end
    end