Компиляция расширений C в dep_selector Ruby gem с помощью Rake на FreeBSD - PullRequest
2 голосов
/ 13 сентября 2011

Я пытаюсь установить Ruby gem: dep_gecode. Он компилирует некоторые расширения C, но компиляция завершается неудачно, поскольку компилятор cpp не запускается с правильно установленными включаемыми папками.

Когда я запускаю rake install, он автоматически создает Makefile из extconf.rb для компиляции расширений. Когда я редактирую Makefile и вручную добавляю флаг -I/usr/local/include, компиляция расширений завершается успешно. Но когда я перезапускаю rake install, Makefile перезаписывается, и компиляция снова заканчивается неудачей. Очевидно, мне нужно исправить extconf.rb, но я не совсем знаю, как.

Теперь немного подробнее. Источник для dep_gecode gem находится здесь:

https://github.com/opscode/dep-selector

Файл extconf.rb, который необходимо изменить, находится здесь:

https://github.com/opscode/dep-selector/blob/master/ext/dep_gecode/extconf.rb

Что я хочу изменить в сгенерированном Makefile - это строка:

CPPFLAGS =  -I/usr/include   -I/usr/include -I/usr/local/include

вместо этого, которое генерируется в данный момент:

CPPFLAGS =  -I/usr/include   -I/usr/include

Как видите, путь включения /usr/local/include отсутствует. Это стандартный путь включения в системах FreeBSD, который предполагает, что проблема может быть в Rake, а не в этом конкретном файле extconf.rb. Любая помощь с благодарностью.

Редактировать: я только что нашел обходной путь. Достаточно добавить эту строку в extconf.rb, чтобы эта папка правильно отображалась в сгенерированном Makefile:

$CPPFLAGS << "-I/usr/local/include"

Не уверен, что это будет правильным способом решения этой проблемы ...

...