summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYusuke Endoh <mame@ruby-lang.org>2022-03-25 17:33:30 +0900
committerYusuke Endoh <mame@ruby-lang.org>2022-03-27 19:34:07 +0900
commitca85f16a7dc50145a61998c5caed2d49ef48b73c (patch)
tree860f5148dbe55e2a86210aed2b68a95a2f630a53
parent1b0f05168d802c92b1b5f870954cf503dad6e3b1 (diff)
ext/psych/extconf.rb: Fail when libyaml is unavailable
WHen libyaml is not installed, make fails with the following cryptic message: ``` gmake[2]: Entering directory '/home/chkbuild/chkbuild-crossruby/tmp/build/20220325T045825Z/ruby/ext/psych' gmake[2]: *** No rule to make target 'yaml/yaml.h', needed by 'psych.o'. Stop. gmake[2]: Leaving directory '/home/chkbuild/chkbuild-crossruby/tmp/build/20220325T045825Z/ruby/ext/psych' ``` I think it should give up building psych with a clear message.
Notes
Notes: Merged: https://github.com/ruby/ruby/pull/5713
-rw-r--r--ext/psych/extconf.rb5
1 files changed, 5 insertions, 0 deletions
diff --git a/ext/psych/extconf.rb b/ext/psych/extconf.rb
index 7da73760e3..0e4fb86a0b 100644
--- a/ext/psych/extconf.rb
+++ b/ext/psych/extconf.rb
@@ -10,6 +10,11 @@ dir_config 'libyaml'
if enable_config("bundled-libyaml", false) || !pkg_config('yaml-0.1') && !(find_header('yaml.h') && find_library('yaml', 'yaml_get_version'))
# Embed libyaml since we could not find it.
+ unless File.exist?("#{$srcdir}/yaml")
+ puts "failed to build psych because no libyaml is available"
+ exit
+ end
+
$VPATH << "$(srcdir)/yaml"
$INCFLAGS << " -I$(srcdir)/yaml"