OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Четверг, 28 Март, 2024 22:01

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 4 ] 
Автор Сообщение
 Заголовок сообщения: Управление сборкой
СообщениеДобавлено: Воскресенье, 28 Июнь, 2020 11:40 

Зарегистрирован: Вторник, 01 Март, 2011 09:34
Сообщения: 583
Откуда: Москва
Получение исполняемых файлов в МультиОберона осуществляется поэтапно:
1. Компиляция в файлы модулей:
.ocf - для Omb BlackBox бэкенда;
.c .h - для Omf OFront бэкенда;
.ll .bc - для Oml LLVM бэкенда.
2. Получение объектных файлов
с помощью cl/gcc/clang - для Omf OFront;
с помощью llc - для Oml LLVM.
3. Линковка в исполняемый файл.

Этапы 2 и 3 требуют явного перечисления списка всех импортируемых модулей. Для хранения данной информации, а также дополнительной информации по ограничениям используемых модулей добавлены, помимо файлов .osf, также файлы .ouf в каталоги Sym,Sfwe,Sfwr,...
Эти файлы генерятся автоматически компилятором.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Управление сборкой
СообщениеДобавлено: Воскресенье, 28 Июнь, 2020 11:44 

Зарегистрирован: Вторник, 01 Март, 2011 09:34
Сообщения: 583
Откуда: Москва
Для сборки OmtestHelloWorld.exe бэкендом BlackBox требуются 2 команды:
Код:
Bbwe\ombsh co -odc OmtestHelloWorld
Bbwe\ombsh link -r OmtestHelloWorld

Первая компилирует из файла .odc.
Вторая линкует с опцией рекурсии.

Информация об используемых модулях доступна через команду траверса trav:
Код:
c:\suok5\test\Mob>Bbwe\ombsh trav OmtestHelloWorld
OmtestHelloWorld
  Runner
    SYSTEM
    ?c:\suok5\test\Mob/System/Sbwe/SYSTEM.ouf
    Kernel
    ?c:\suok5\test\Mob/System/Sbwe/Kernel.ouf
    OStrings
      Strings
      ?c:\suok5\test\Mob/System/Sbwe/Strings.ouf
      Math
      ?c:\suok5\test\Mob/System/Sbwe/Math.ouf
    -OStrings
    OLog
      Log
      ?c:\suok5\test\Mob/System/Sbwe/Log.ouf
    -OLog
    Api
    -Api [KERNEL32.dll]
  -Runner
-OmtestHelloWorld


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Управление сборкой
СообщениеДобавлено: Воскресенье, 28 Июнь, 2020 11:48 

Зарегистрирован: Вторник, 01 Март, 2011 09:34
Сообщения: 583
Откуда: Москва
Для сборки OmtestHelloWorld.exe бэкендом Omf OFront требуются 3 команды:
Код:
Bfwe\omfsh co -odc :OmtestHelloWorld
Bfwe\omfsh build -r OmtestHelloWorld
Bfwe\omfsh link -r OmtestHelloWorld

Первая компилирует и создаем main опция : .
Вторая создает объектники.
Третья линкует с опцией рекурсии.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Управление сборкой
СообщениеДобавлено: Воскресенье, 28 Июнь, 2020 12:09 

Зарегистрирован: Вторник, 01 Март, 2011 09:34
Сообщения: 583
Откуда: Москва
Сборка с Oml LLVM аналогична.

Во всех сборках предусмотрен флаг -n new, который производит частичную перекомпиляцию объектников. Ибо полная тащит за собой список импорта:
Код:
c:\suok5\test\Mob>Blwr\omlsh build -r OmtestHelloWorld
===== obj-building OStrings ... done
===== obj-building OLog ... done
===== obj-building HostConLog ... done
===== obj-building Kernel ... done
===== obj-building Runner ... done
===== obj-building OmtestHelloWorld ... done


Это - экономия, т.к. сборка с оптимизацией gcc, llc занимает время.

Пример:
Код:
c:\suok5\test\Mob>Blwr\omlsh co -odc :OmtestHelloWorld
oml:compiling c:\suok5\test\Mob/Omtest/Mod/HelloWorld.odc  >c:\suok5\test\Mob/Omtest/Clwr/OmtestHelloWorld .ll=9744 .bc=3428

c:\suok5\test\Mob>Blwr\omlsh build -r -n OmtestHelloWorld
===== obj-building OmtestHelloWorld ... done


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 4 ] 

Часовой пояс: UTC + 3 часа


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

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


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2024, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB