# File lib/phusion_passenger/platform_info/compiler.rb, line 216
        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