Как собрать g ++ из параметров source * и * pass для `configure`

1292
Vokuhila-Oliba

Я хотел бы пересобрать g ++ с моими собственными настройками.

Вот что я сделал до сих пор:

sudo aptitude install build-dep g++-4.2 mkdir trial && cd trial apt-get source g++-4.2 

Теперь я хочу настроить мои конкретные настройки. Для g ++ это обычно делается, например,

sh configure --prefix=/home/voku/testing 

Но, к сожалению, configureвнутри каталога загрузки нет сценария (а также нет файла configure.ac).

Есть ли дополнительные шаги, которые мне нужны, чтобы получить configureскрипт?

То, что я на самом деле ищу, это способ сказать:

  • получить источник
  • примените все патчи, которые вам нравятся
  • сделать все это готово

РЕДАКТИРОВАТЬ : Я также спросил о переполнении стека - но никто, кажется, не знает там.

РЕДАКТИРОВАТЬ : Возможно, я мог бы запустить один из инструментов, которые на самом деле создать пакет .deb для g ++.

После этого - это то, что я предполагаю - будет необходимый скрипт настройки.

Но это звучит ужасно

  • собрать пакет g ++ .deb
  • очистить весь материал снова
  • затем используйте сгенерированный скрипт configure с моими собственными настройками
  • затем построить снова
4

3 ответа на вопрос

5
Peter Eisentraut

Если вы хотите пересобрать пакет Debian с другими опциями, это немного сложнее, потому что пакет Debian для GCC довольно сложен. В общем, вы бы искали configureвызов debian/rules, но в gcc-4.2пакете с исходным кодом на самом деле происходит интересное действие debian/rules2. Ищите переменную, вызванную CONFARGSтам. debian/README.maintainersЭто также хорошая статья, если вы хотите серьезно взломать пакет.

Я только что вернулся, чтобы упомянуть об этом, но вы победили меня, так что вместо этого +1 Justin Smith 14 лет назад 0
@Peter: спасибо большое. Это лучший ответ, который я видел до сих пор! Vokuhila-Oliba 14 лет назад 0
2
Justin Smith

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

РЕДАКТИРОВАТЬ:

Это был дикий гусьч, правильный ответ - отредактировать debian / rules2

Если это неясно: вы запускаете autoconf, перейдя в исходный каталог и просто запустив autoconf без аргументов - если у вас правильная версия и правильные входные файлы, она просто сделает все остальное автоматически. Justin Smith 14 лет назад 0
@Justin: autoconf говорит мне: `autoconf: configure.in: такого файла или каталога нет". Оглядываясь через `найти. -name configure.in` ничего не показывает. Vokuhila-Oliba 14 лет назад 0
любая программа, использующая configure, должна иметь файл configure.in? как выстрел в темноте вы можете попробовать, как описано на этой странице http://developers.sun.com/solaris/articles/gnu.html autoscan; mv configure.scan configure.in; ACLOCAL; Autoconf Justin Smith 14 лет назад 0
@Justin: файла с именем `configure.scan` тоже нет Vokuhila-Oliba 14 лет назад 0
autoscan должен автоматически выводить configure.scan Justin Smith 14 лет назад 0
@Justin: ах хорошо. Я просто убираюсь, получая свежий источник. И я не запускал `autoscan` снова. Vokuhila-Oliba 14 лет назад 0
Кроме того, какая версия Linux это? Моя стабильная версия Debian gcc-4.2-20080520 имела скрипт config etcetera внутри архива 7zip tar, который не был извлечен по умолчанию. Justin Smith 14 лет назад 0
@Justin: это Debian-Lenny-64bit. И да - у меня также есть что-то вроде `gcc-4.2-orig.tar.gz` (извините - я не могу быть более точным на данный момент, поскольку я только что вышел из системы с удаленного сервера в моей компании. VPN, кажется, застрял сейчас ...). Но `orig` звучит так, как будто к нему не применены патчи debian. Vokuhila-Oliba 14 лет назад 0
см. ответ Питера Айзентраута выше, это был дикий гусиная шея. Justin Smith 14 лет назад 0
0
Nicholaz

Обычно это

./configure 

не просто

configure 

то есть попробуйте

 ./configure --prefix=/home/voku/non-productive 
@Nicholaz: просто нет ни скрипта configure, ни configure.ac или чего-то подобного. Что касается `. / Configure`: это не имеет значения, если у вас есть скрипт configure. `sh configure` делает то же самое. Vokuhila-Oliba 14 лет назад 0
почему за это проголосовали? он никогда не запускает "configure", как он сказал, "sh configure" идентичен "./configure", этот ответ не имеет ничего общего с его ситуацией. Justin Smith 14 лет назад 0

Похожие вопросы