как собрать lazarus и fpc из svn

Модератор: Модераторы

Re: как собрать lazarus и fpc из svn

Сообщение v-t-l » 19.03.2011 18:28:45

leo_bsv писал(а):... был удивлён результатом ))))) поаккуратнее в след. раз с именами переменных :D

Гы... не знал. :lol: Хотя, на любую комбинацию букв в каком-нибудь из языков может найтись что-нибудь этакое.
v-t-l
энтузиаст
 
Сообщения: 704
Зарегистрирован: 13.05.2007 16:27:22
Откуда: Belarus

Re: как собрать lazarus и fpc из svn

Сообщение bork » 18.05.2011 15:10:13

Облазил весь инет и не могу найти нормальной инструкции, как установить последнюю FPC под Windows XP.

Установил Lazarus 0.9.30 в папку:
d:\lazarus

Скачал:
ftp://ftp.freepascal.org/pub/fpc/snapsh ... ce/fpc.zip
ftp://ftp.freepascal.org/pub/fpc/snapsh ... cbuild.zip

все что скачал, распаковал и положил в
d:\install\fpc
d:\install\fpcbuild

Расскажите пошагово, как установить скачанный в исходниках FPC в уже установленный Lazarus.

Старый FPC лежит по пути:
в:\lazarus\fpc\2.4.2\
Новый хотелось бы установить в:
в:\lazarus\fpc\2.5.1\

Команда make выдает:
'make' is not recognized as an internal or external command, operable program or batch file.

P.S.
Здесь Lazarus с FPC 2.5.1 нет:
http://www.hu.freepascal.org/lazarus/
bork
незнакомец
 
Сообщения: 3
Зарегистрирован: 18.05.2011 14:54:06

Re: как собрать lazarus и fpc из svn

Сообщение Maxizar » 18.05.2011 16:44:00

Вот тема Проблема с компилятором., в которой я задавал подобный вопрос, по идее все достаточно просто...
Просто особо стоит отметить случай, когда в системе есть несколько Make.exe (например от делфи или от АВР студии или ВижуалСтудии) и к этим файлам прописаны пути в системе. (Мой Компьютер -> сво-ва->Дополнительно->Переменные среды. нужно найти переменную Path и если скажем стоит делфи удалить путь к делфи (ничего страшного не произойдет делфя работать будет.)) При этом в эту же переменную нужно записать путь к вашему make.exe, которые идет только с лазарусом или с exe инсталятором FPC. я например прописал вот этот:
Код: Выделить всё
c:\lazarus\fpc\2.4.2\bin\i386-win32\


В теме так же описано как нужно собирать FPC.

Как подключить к Lazarus новую версию компилятора FPC
Maxizar
постоялец
 
Сообщения: 385
Зарегистрирован: 20.03.2010 19:48:14

Re: как собрать lazarus и fpc из svn

Сообщение PapaNT » 23.11.2012 01:20:37

leo_bsv писал(а):Если не ставить fpc из репов, а иметь свой дежурный на ubuntu 10.04 получается нужно устанавливать как-то так (текст скрипта):

Увы, что-то на 12.04 собрать не могу... :(

Код: Выделить всё
Compiling lazaruspackageintf.pas
Fatal: Can't find unit process used by RegisterFCL
Fatal: Compilation aborted
make[1]: *** [fcllaz.ppu] Ошибка 1
make[1]: Выход из каталога `/home/henadzi/pascal/lazarus/packager/registration'
make: *** [registration] Ошибка 2
PapaNT
постоялец
 
Сообщения: 162
Зарегистрирован: 11.09.2009 12:06:46
Откуда: Москва

Re: как собрать lazarus с новой fpc из svn (win 32)

Сообщение zoltanleo » 28.03.2014 19:49:36

Подниму некротопик. Поделюсь и я своим опытом, пока не забылось. Справедливости ради укажу первоисточник, откуда черпал вдохновение :D . Мои советы (в соавторстве со sniper) рассчитаны на тех, кто начал осваивать Лазаря совсем недавно и хочет иметь версию FPC, отличную от той, которая идет с инсталлятором. Ниже описанные действия помогут скомпилировать FPC и сразу же СОБРАТЬ его в папку X:\pp, где X - буква вашего жёсткого диска. Итак:

Для начала скачиваем и устанавливаем штатным инсталлятором последний релиз Лазаруса. Настоятельно советую отключить антивирусник на время манипуляций
(у меня Вэб просто удалил в карантин make.exe во время компиляции :shock: ) Затем:
  1. Скачиваем исходники FPC в папку <NewFPCDir>
    ----------------------------------------------------
  2. В корень исходников <NewFPCDir> (там, где папки compiler, ide и.т.д) надо положить файл make.exe (скопировать из <OldFPCDir> - каталог, где лежит ppc386.exe, как правило это X:\Lazarus\fpc\<old_FPC_version>\bin\i386-win32\ - версия FPC (<old_FPC_version>) и разрядность ОСи может быть любой)
    ----------------------------------------------------
  3. Вызываем командный интерпретатор cmd.exe (появится строка для ввода команд вида C:\users\MyNick>, где MyNick - ваш аккаунт в системе. В дальнейшем для простоты понимания вместо него будем писать $>, т.к. содержимое строки слева от ">" для нас не важно)
    ----------------------------------------------------
  4. Переходим в каталог, куда скопировали make.exe
    Код: Выделить всё
    $>cd /d <NewFPCDir>

    примечание: ключ /d меняет системный диск. Если исходники новой версии FPC лежат там же, где стоит Windows, то этот ключ можно не указывать
    ----------------------------------------------------
  5. Прописываем путь к имеющемуся FPC в Path (это избавляет от необходимости правки autoexec.bat и перезагрузки системы):
    Код: Выделить всё
    $>SET Path=<OldFPCDir>;%Path%

    где <OldFPCDir> - каталог, где лежит ppc386.exe (см.п.2)

    лирическое отступление: в одном из многочисленных топиков по данной тематике в процессе компиляции предлагается также сохранять опции
    Код: Выделить всё
    $>SET Opt=OPT="-gl"

    и целевую платформу FPC
    Код: Выделить всё
    $>SET Target=OS_TARGET=win32 CPU_TARGET=i386


    Наверное, так будет правильно по фен-шую, но мне не пригодилось, потому две предыдущие команды я просто проигнорировал.
    ----------------------------------------------------
  6. Компилируем FPC из исходников
    Код: Выделить всё
    $>make all PP=<OldFPCDir>\ppc386.exe

    где <OldFPCDir> - путь до файла ppc386.exe (см.п.2)
    ----------------------------------------------------
  7. Когда эта команда отработает, даем команду
    Код: Выделить всё
    $>make install

    и компилятор появится в корне вашего диска в папке X:\pp, где X - буква вашего жёсткого диска

    Важно: во вновь образованном каталоге X:\pp\bin\i386-win32 напрочь отсутствуют три файла - make.exe, pwd.exe и fpc.cfg. Просто скопируйте их туда из папки <old_FPC_version>\bin\i386-win32 предыдущей версии FPC
    ----------------------------------------------------
  8. Создаем в папке X:\Lazarus\fpc\ ( т.е. в папке с установленным Лазарусом) новую папку с текущей версией устанавливаемого FPC (например, X:\Lazarus\fpc\<new_FPC_version>\) и копируем туда из папки X:\pp три каталога bin, msg и units. Там же создаем папку source, куда копируем из папки <NewFPCDir> с исходниками папки packages и rtl.

    Но есть другой, изумительный по своей простоте способ, заменяющий все сомнительные телодвижения, описанные выше. :mrgreen:

    Заходим сюда и скачиваем готовый бинарник. Распаковываем куда-нибудь на диск и получаем уже готовые выше описанные три папки (bin, msg и units). Папку source делаем и наполняем сами, описанным выше способом. Да, fpc.cfg все-таки придется тянуть из старой версии fpc

=======================================================
КОМПИЛЯЦИЯ LAZARUS С НОВОЙ ВЕРСИЕЙ FPC

Прим: X - системный диск, куда установлен Лазарус:


  1. Запускаем Lazarus
    ----------------------------------------------------
  2. Через меню идем сюда - Сервис --> Параметры --> Файлы
    ----------------------------------------------------
  3. Указываем другие пути к новому компилятору
    - для компилятора X:\Lazarus\fpc\<new_FPC_version>\bin\i386-win32\fpc.exe
    - каталог исходного кода FPC D:\Lazarus\fpc\<new_FPC_version>\source (в интернетах пишут, что лучше указывать явный путь, без системных переменных типа $(LazarusDir)fpc\$(FPCVer)\source)
    - путь к Make X:\Lazarus\fpc\<new_FPC_version>\bin\i386-win32\make.exe
    ----------------------------------------------------
  4. Жмем OK для сохрания изменений
    ----------------------------------------------------
  5. Перекомпилируем Лазарус: меню Сервис --> Пересобрать Lazarus по профилю: обычная IDE

Т.о. удалось перебраться с версии fpc 2.6.2 на версию 2.7.1

Изображение

На очереди "простое" освоение сборки Лазаря из снапшотов :D
Последний раз редактировалось zoltanleo 04.04.2014 18:12:01, всего редактировалось 3 раз(а).
Аватара пользователя
zoltanleo
постоялец
 
Сообщения: 332
Зарегистрирован: 17.10.2013 10:55:01

Re: как собрать lazarus и fpc из svn

Сообщение hovadur » 30.03.2014 11:43:24

zoltanleo писал(а):Поделюсь и я своим опытом, пока не забылось.

я применяю fpcup https://bitbucket.org/reiniero/fpcup
hovadur
постоялец
 
Сообщения: 116
Зарегистрирован: 31.01.2013 15:50:41

Re: как собрать lazarus и fpc из svn

Сообщение zoltanleo » 30.03.2014 23:17:24

hovadur писал(а):я применяю fpcup https://bitbucket.org/reiniero/fpcup

Может, поделитесь своими впечатлениями/опытом? Можно в подобном же духе свою "инструкцию" выложить (особенно для тех, кому буржуйский - не родной) :D
Аватара пользователя
zoltanleo
постоялец
 
Сообщения: 332
Зарегистрирован: 17.10.2013 10:55:01

Re: как собрать lazarus и fpc из svn

Сообщение hovadur » 31.03.2014 08:41:32

zoltanleo писал(а):Может, поделитесь своими впечатлениями/опытом?

А чего делиться, просто запускаешь из командной строки fpcup, он тебе предлагает создать или обновить репозитории fpc и lazarus по умолчальным путям, ты нажимаешь Yes, и все. Оба репозитория обновляются, пересобираются и можно пользоваться lazarus.
Можно задать в файле settings.ini куча опций: пути к репозиториям, опции компиляции и т.д. Он по умолчанию создается и из комментариев в нем, можно все узнать.
hovadur
постоялец
 
Сообщения: 116
Зарегистрирован: 31.01.2013 15:50:41

Re: как собрать lazarus и fpc из svn

Сообщение zoltanleo » 31.03.2014 12:14:25

Мои впечатления

Сборка под Windows

По умолчанию, fpcup скачивает сначала сорцы с svn-репов в папку c:\development. Потом компилит fpc, сам lazarus, лишь потом собирает в готовый экзешник (я пользовался fpcupgui.exe). Собирает (вкупе с закачкой сорцов) долго - около 30-40 мин. Для сокращения времени сборки, можно в c:\development заранее положить папки с fpc и лазарусом, скачанные svn-клиентом (обе должны содержать папку .svn с соответствующим содержимым), иначе fpcup их просто проигнорирует.

Для начала сборки необходим файл settings.ini вида

Код: Выделить всё
...
[general]
; Full FPC+Lazarus download & compile
; Here use FPC trunk instead of the default fixes version:
fpcurl=http://svn.freepascal.org/svn/fpc/trunk
и т.д.

(в котором можно выбрать тип сборки: "Full FPC+Lazarus download & compile", "Update" и др.), который генерится самим fpcupgui.exe из fpcup.exe автоматом, если тот лежит рядом. Параллельно генерится и fpcup.ini вида

Код: Выделить всё
; Available macros:
; $(FPCDIR) Base directory for FPC installation
; $(LAZARUSDIR) Base directory for Lazarus installation
; $(LAZARUSPRIMARYCONFIGPATH) Path where configuration for Lazarus is stored
; ... and you can define your own, like below:
[ALIASfpcURL]
2.7.1=http://svn.freepascal.org/svn/fpc/trunk/
trunk=http://svn.freepascal.org/svn/fpc/trunk/
и т.д.


т.е. этот инишник содержит пути к сорцам, которые будут установлены в лазаре. Если все оставить по умолчанию (на момент написания поста), то получим на выходе последний релиз Лазаря и компилятора

Вся дока есть тут. Там же показаны полностью оба ini-файла, о которых я упомянул выше.


Изображение

Кстати, все настройки Лазаря хранятся в этой же папке c:\development\config_lazarus. Такая сборка "не мусорит" в реестре и позволяет удалить все следы Лазаря простым удалением папки.

Сборка под Linux

Ох уж этот линукс! :twisted: В качестве испытуемых поставил в виртуалку Debian 7.6, Fedora 20 и Ubuntu 14.04. Пусть маститые знатоки никсов меня заботливо поправят, если что из ниже написанного не соответствует действительности - я лишь описываю свой маленький опыт.

По умолчанию fpcup собирает все папки по этому пути ~/development (где ~/ - это /home/<user> - ваша домашняя директория). Если есть желание изменить пути, то см. примечание ниже.

Помятуя о танцах с бубном при установке приснопамятного CodeTyphon, решил сразу же поправить файлик sudoers, чтобы не муд;%:?ся в консоли с лишними командами типа sudo
Код: Выделить всё
<user>@debian:~$ su
<user>@debian:~$ gedit /etc/sudoers

после строки root ALL=(ALL) ALL добавил следующую <user> ALL=(ALL) NOPASSWD:ALL (естественно, <user> - имя учетки). После чего сохранил файл и перелогинился в системе (можно перезагрузиться).

Установка транковой (самой последней версии) fpc и lazarus

Находим и ставим через Synaptic следующие пакеты (олдфаги пользуются командной строкой, поэтому эту писанину не читают :D )
1. binutils (утилиты для сборки fpc)
2. make (утилиты для сборки fpc)
3. gdb (в Fedora уже стоит по умолчанию) - отладчик для fpc
4. gcc (компилятор С для линковки пакетов)
5. subversion (svn-клиент)
6. для сборки lazarus требуют дополнительные пакеты: libX11.so, libgdk_pixbuf-2.0.so, libpango-1.0.so и libgdk-x11-2.0.so. Первые три пакета нашлись и установились через менеджер пакетов Synaptic (в строке поиска задать libX11, libgdk и libpango соответственно и отметить еще не установленые пакеты), а вот четвертый пакет "нашелся" в составе libgtk2.0 (как правило, все пакеты имеют суффикс -dev).

Запускаем, как и было присоветовано
Код: Выделить всё
<user>@debian:~/development/fpcup$ chmod u+rx fpcup_linux_x86
<user>@debian:~/development/fpcup$ ./fpcup_linux_x86

Все, ждем, пока Лазарь будет установлен. Особо нетерпеливые или сомневающиеся могут наблюдать за процессом установки, мониторя файл fpcup.log, который у меня "нашелся" здесь /home/<user>

примечание: можно рассовать компилятор и Лазарь по своим папкам, задав параметры. Например, я запустил fpcup так:
Код: Выделить всё
./fpcup_linux_x86 --lazURL=http://svn.freepascal.org/svn/lazarus/trunk --fpcURL=http://svn.freepascal.org/svn/fpc/trunk --fpcdir=~/lazarus_1_3/fpctrunk --lazdir=~/lazarus_1_3 --primary-config-path=~/lazarus_1_3/laz_config_fpc_2_7_1 --lazlinkname=lazarus_1_3 --binutilsdir=~/lazarus_1_3/fpcbootstrap_271/bin --fpcbootstrapdir=~/lazarus_1_3/fpcbootstrap_271

в результате получил транковый fpc и Лазарь в папке Lazarus_1_3 (на скрине получилось то, что ставится при запуске fpcup_linux_x86 без параметров). То же справедливо и для Windows (с поправками на пути)

Изображение

У этого способа есть огромный недостаток: лазарь "не видит" некоторые пакеты fpc, поэтому code comletion использовать не удастся. Я поднимал эту тему, но проблема так и не была решена.

Т.о. образом, этот способ пока годится для компиляции уже готового проекта.

Установка последней стабильной версии fpc и lazarus

Вот тут никаких проблем.
1. Ставим пакет gdb (см. выше п.3)
2. Скачиваем три deb-пакета, например отсюда: fpc-src_2.6.4-140420_i386.deb, fpc_2.6.4-140420_i386.deb и lazarus_1.2.4-0_i386.deb.

Ставим эти пакеты именно в такой последовательности (правым мышом по пакету, выбираем меню "Установка с помощью Программа установки пакетов" - запустится gdebi - с нужными кнопками разберется любой. Про олдфагов опять промолчу :lol: ).

Все, Лазарь готов к употреблению (ставится сюда /usr/share/lazarus/1.2.4 - версия может быть другая).
Аватара пользователя
zoltanleo
постоялец
 
Сообщения: 332
Зарегистрирован: 17.10.2013 10:55:01

Re: как собрать lazarus и fpc из svn

Сообщение zoltanleo » 13.10.2014 23:44:47

Ура, удалось собрать транковый компилятор и Лазарус под Дебиан 7.6 под x32. Спасибо за помощь Алексею Лагунову ака alexs.

Подробности здесь

Освоил сборку транков компилятора и Лазаря из сорцов под Windows. Подробности здесь
Последний раз редактировалось zoltanleo 14.11.2014 01:08:48, всего редактировалось 1 раз.
Аватара пользователя
zoltanleo
постоялец
 
Сообщения: 332
Зарегистрирован: 17.10.2013 10:55:01

Re: как собрать lazarus и fpc из svn

Сообщение daesher » 15.10.2014 10:06:36

Проблемы возникают только при сборке свежего fpc (ну ещё с lazarus есть глюки с библиотеками). Лично я решаю это так: один раз качаю бинарники последней стабильной версии, вырезаю оттуда файл ppc386 или ppcx64 (всё остальное можно удалять), кладу куда-нибудь, после чего собираю исходники из svn через
make FPC=путь/к/бинарнику/ppc386 (для 32-битной версии) или make FPC=путь/к/бинарнику/ppcx64 (для amd64).
Раньше на сайте fpc делали минимальные "сборки" bootstrap, к сожалению, сейчас с этим проблема.
А в svn изменения идут достаточно быстро, так что если на месяц-другой забросить, то пересобрать со старым бинарником уже не получится. Если обновляться более регулярно, то сработает и ключ, отключающий проверку версии.
daesher
постоялец
 
Сообщения: 221
Зарегистрирован: 09.03.2010 22:17:14

Re: как собрать lazarus и fpc из svn

Сообщение Лекс Айрин » 15.10.2014 14:24:01

daesher, Кстати, совсем не обязательно удалять бинарник FPC. У меня совершенно спокойно FPC лежит в своем каталоге, а сорцы к нему в каталоге Lazarus.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: как собрать lazarus и fpc из svn

Сообщение stanilar » 21.11.2014 01:05:55

Подскажите мне пожалуйста, как в FPCUP сменить умолчательную директорию C:\development на, допустим, D:\development ?
stanilar
постоялец
 
Сообщения: 289
Зарегистрирован: 09.03.2010 19:09:02

Re: как собрать lazarus и fpc из svn

Сообщение Helltar » 21.11.2014 16:38:46

stanilar, так в параметрах запуска жы указываешь, binutilsdir=<dir>, fpcbootstrapdir=<dir>, и тд.
Аватара пользователя
Helltar
новенький
 
Сообщения: 22
Зарегистрирован: 11.07.2013 02:28:53

Re: как собрать lazarus и fpc из svn

Сообщение stanilar » 22.11.2014 00:00:40

ЭЭЭ... Ну я не совсем fpcup использую, я воюю с fpcupgui. Ладно, будем осваивать командную строку.
stanilar
постоялец
 
Сообщения: 289
Зарегистрирован: 09.03.2010 19:09:02

Пред.След.

Вернуться в IDE, компилятор, отладчик

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

Рейтинг@Mail.ru