Можете ли вы использовать scons для создания расширений PHP? - PullRequest
1 голос
/ 20 января 2010

Стандартный способ написания расширений PHP - это использовать autoconf / automake вместе со скриптом phpize, который, похоже, генерирует вашу конфигурацию autoconf на основе шаблона, специфичного для вашей среды PHP. Давайте построим расширение PHP для правильной версии PHP и т. Д.

autoconf и язык m4, который используется для его настройки, тайны, и люди написали альтернативы, такие как scons. Я хочу использовать один из них при создании расширения PHP.

В принципе, вы должны иметь возможность использовать scons или аналогичные инструменты для создания расширений PHP. Тем не менее, я не вижу, как вы могли бы заменить шаг phpize.

Кто-нибудь имел успех в создании расширений PHP с помощью scons или другого более современного инструмента сборки?

Ответы [ 2 ]

0 голосов
/ 24 января 2010

Путь наименьшего сопротивления будет состоять в том, чтобы SCons запускала autoconf, phpize и все остальное, что необходимо для расширения PHP. Вы можете извлечь конфигурацию компилятора оттуда и позволить SCons выполнять фактическое построение, или вы можете просто запустить SCons "make".

Объявлять цели команд оболочки из SCons легко, но получить правильные зависимости всегда сложно.

По сути, вам придется сообщить SCons о любом промежуточном файле, созданном этими внешними инструментами. Таким образом, он может не только правильно очистить их, но и кэшировать всю серию шагов на основе сигнатуры содержимого каждого промежуточного результата (контрольная сумма MD5).

Правильное кэширование значительно сократит количество случаев, когда эти внешние инструменты действительно нужно будет вызывать при изменении базы кода.

Хотя я не думаю, что кто-то написал конкретное решение для PHP, в SCons wiki есть много пользовательских сборщиков, которые делают подобные вещи.

0 голосов
/ 20 января 2010

phpize(1) - это всего лишь сценарий оболочки, так что, я думаю, вы можете изменить его для работы с scons ...

...