ext/puma_http11/extconf.rb in piesync-puma-3.12.6.1 vs ext/puma_http11/extconf.rb in piesync-puma-5.4.0.1

- old
+ new

@@ -1,15 +1,59 @@ 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") - if %w'crypto libeay32'.find {|crypto| have_library(crypto, 'BIO_read')} and + 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")