From 0a84bd6b0b5f947b4727b022c5768222b3e6d7d9 Mon Sep 17 00:00:00 2001 From: Jun Aruga Date: Wed, 31 May 2023 00:10:41 +0200 Subject: [PATCH] [ruby/openssl] Append flags from environment variables. According to the `mkmf.rb#init_mkmf`, there are command line options below. * `--with-cflags` to set the `cflags` * `--with-ldflags` to set the `ldflags` For example the following command compiles with the specified flags. Note that `MAKEFLAGS` is to print the compiler command lines. ``` $ MAKEFLAGS="V=1" \ bundle exec rake compile -- \ --with-cflags="-Wundef -Werror" \ --with-ldflags="-fstack-protector" ``` However, I couldn't find command line options to append the flags. And this commit is to append the `cflags` and `ldflags` by the environment variables. ``` $ MAKEFLAGS="V=1" \ RUBY_OPENSSL_EXTCFLAGS="-Wundef -Werror" \ RUBY_OPENSSL_EXTLDFLAGS="-fstack-protector" \ bundle exec rake compile ``` https://github.com/ruby/openssl/commit/b551eb86f6 --- ext/openssl/extconf.rb | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/ext/openssl/extconf.rb b/ext/openssl/extconf.rb index ef21bd5f43..737d93183f 100644 --- a/ext/openssl/extconf.rb +++ b/ext/openssl/extconf.rb @@ -18,6 +18,12 @@ dir_config("kerberos") Logging::message "=== OpenSSL for Ruby configurator ===\n" +# Append flags from environment variables. +extcflags = ENV["RUBY_OPENSSL_EXTCFLAGS"] +append_cflags(extcflags.split) if extcflags +extldflags = ENV["RUBY_OPENSSL_EXTLDFLAGS"] +append_ldflags(extldflags.split) if extldflags + ## # Adds -DOSSL_DEBUG for compilation and some more targets when GCC is used # To turn it on, use: --with-debug or --enable-debug