Sha256: 25047f47c424d98eb9e17f73db85a5d51ff66ceff31b9ec0819dca94505efba8

Contents?: true

Size: 1.72 KB

Versions: 11

Compression:

Stored size: 1.72 KB

Contents

require 'mkmf'

dir_config("puma_http11")

if $mingw && RUBY_VERSION >= '2.4'
  append_cflags  '-fstack-protector-strong -D_FORTIFY_SOURCE=2'
  append_ldflags '-fstack-protector-strong -l:libssp.a'
  have_library 'ssp'
end

unless ENV["DISABLE_SSL"]
  dir_config("openssl")

  found_ssl = if pkg_config 'openssl'
    puts 'using OpenSSL pkgconfig (openssl.pc)'
    true
  elsif %w'crypto libeay32'.find {|crypto| have_library(crypto, 'BIO_read')} &&
      %w'ssl ssleay32'.find {|ssl| have_library(ssl, 'SSL_CTX_new')}
    true
  else
    puts '** Puma will be compiled without SSL support'
    false
  end

  if found_ssl
    have_header "openssl/bio.h"

    # below is  yes for 1.0.2 & later
    have_func  "DTLS_method"                           , "openssl/ssl.h"

    # below are yes for 1.1.0 & later
    have_func  "TLS_server_method"                     , "openssl/ssl.h"
    have_func  "SSL_CTX_set_min_proto_version(NULL, 0)", "openssl/ssl.h"

    have_func  "X509_STORE_up_ref"
    have_func("SSL_CTX_set_ecdh_auto(NULL, 0)", "openssl/ssl.h")

    # Random.bytes available in Ruby 2.5 and later, Random::DEFAULT deprecated in 3.0
    if Random.respond_to?(:bytes)
      $defs.push("-DHAVE_RANDOM_BYTES")
      puts "checking for Random.bytes... yes"
    else
      puts "checking for Random.bytes... no"
    end
  end
end

if ENV["MAKE_WARNINGS_INTO_ERRORS"]
  # Make all warnings into errors
  # Except `implicit-fallthrough` since most failures comes from ragel state machine generated code
  if respond_to? :append_cflags
    append_cflags config_string 'WERRORFLAG'
    append_cflags '-Wno-implicit-fallthrough'
  else
    $CFLAGS += ' ' << (config_string 'WERRORFLAG') << ' -Wno-implicit-fallthrough'
  end
end

create_makefile("puma/puma_http11")

Version data entries

11 entries across 11 versions & 3 rubygems

Version Path
date_n_time_picker_activeadmin-0.1.2 vendor/bundle/ruby/2.6.0/gems/puma-5.5.2/ext/puma_http11/extconf.rb
date_n_time_picker_activeadmin-0.1.1 vendor/bundle/ruby/2.6.0/gems/puma-5.5.2/ext/puma_http11/extconf.rb
puma-5.5.2-java ext/puma_http11/extconf.rb
puma-5.5.2 ext/puma_http11/extconf.rb
puma-5.5.1-java ext/puma_http11/extconf.rb
puma-5.5.1 ext/puma_http11/extconf.rb
puma-5.5.0-java ext/puma_http11/extconf.rb
puma-5.5.0 ext/puma_http11/extconf.rb
piesync-puma-5.4.0.1 ext/puma_http11/extconf.rb
puma-5.4.0-java ext/puma_http11/extconf.rb
puma-5.4.0 ext/puma_http11/extconf.rb