Если вы используете autoconf, вы можете позаимствовать ruby.ac из риса:
http://github.com/jameskilton/rice/blob/master/ruby.ac
или поскольку вы используете другую систему сборки, вы можете продублировать ее поведение. Подводя итог, что он делает:
- Мы используем модуль rbconfig для получения переменных конфигурации ruby:
<pre>$RUBY -rrbconfig -e "puts(Config::CONFIG['$1'] || '')" <variable>
где $ RUBY - интерпретатор ruby (иногда интерпретаторы устанавливаются с другим именем, например ruby1.8 или ruby1.9), а - требуемая переменная конфигурации
- Затем мы устанавливаем наши переменные сборки:
if ${ruby_config_rubyhdrdir} is empty: (e.g. ruby 1.8)
CPPFLAGS="-I${ruby_config_archdir}
else:
CPPFLAGS="-I${ruby_config_rubyhdrdir} ${ruby_config_rubyhdrdir}/${arch}
CFLAGS="${ruby_config_CFLAGS} ${ruby_config_CCDLFLAGS}"
LDFLAGS="-L${ruby_config_archdir} -L${ruby_config_libdir} ${ruby_config_LDFLAGS}"
LIBS="${ruby_config_LIBS} ${ruby_config_DLDLIBS}"
где переменные $ {ruby_config_ *} определяются с помощью приведенной выше команды config, например:
ruby_config_foo=$RUBY -rrbconfig -e "puts(Config::CONFIG['$1'] || '')" foo
- Нам также нужно связаться с библиотекой ruby, поэтому мы добавляем $ {ruby_config_LIBRUBYARG}.
- Перечисленные выше переменные предназначены для компиляции и компоновки; Вам также может понадобиться установить. Файлы библиотеки Ruby должны быть установлены в $ {ruby_config_sitelibdir}. Расширения Ruby должны быть установлены в $ {ruby_config_sitearchdir}.
- В ruby.ac также есть какая-то магия для сборки с помощью mingw и связывания с установщиком одним щелчком мыши на окнах (который раньше собирался с vc6; я не уверен, так оно и есть).