АнглийскийФранцузскийИспанский

Ad


Значок OnWorks

makepp_build_algorithm - онлайн в облаке

Запустите makepp_build_algorithm в бесплатном хостинг-провайдере OnWorks через Ubuntu Online, Fedora Online, онлайн-эмулятор Windows или онлайн-эмулятор MAC OS.

Это команда makepp_build_algorithm, которую можно запустить в бесплатном хостинг-провайдере OnWorks, используя одну из наших многочисленных бесплатных онлайн-рабочих станций, таких как Ubuntu Online, Fedora Online, онлайн-эмулятор Windows или онлайн-эмулятор MAC OS.

ПРОГРАММА:

ИМЯ


makepp_build_algorithm - Как makepp выполняет make-файл

ОПИСАНИЕ


Внутреннее устройство Makepp фундаментально отличается от стандартной версии Unix. Эта страница
подробно описывает различную философию.

Обратный против вперед вывод
Makepp работает в противоположном направлении от стандартной программы make для Unix. Традиционная сборка Unix
дается цель для построения, а затем он находит правило, которое соответствует символам в
целевое имя файла. Если цель старше любой из зависимостей правила, то она
перестраивается.

Например, рассмотрим это шаблонное правило:

% .o:% .cxx
$ (CXX) $ (CXXFLAGS) -c $ (ввод) -o $ (вывод)

Когда make понимает, что ему нужно создать файл с именем "xyz.o", он просматривает его список
правила шаблона, пока он не увидит, что "xyz.o" соответствует шаблону "% .o", а затем применит
это правило.

Makepp работает в обратном направлении. Сначала он вычисляет все файлы, которые он может
построить, применяя правила, соответствующие символам в именах файлов зависимостей. Потом, когда
ему нужно создать файл, он просто проверяет, является ли он одним из известных ему файлов.
как построить. Список известных файлов сохраняется на основе абсолютного имени файла.

Когда makepp встречает указанное выше шаблонное правило, он ищет все файлы в каталоге
соответствует шаблону «% .cxx» (т. е. «* .cxx»). Затем для каждого из этих файлов он запоминает
что он может создать соответствующий файл ".o". Если впоследствии makepp обнаружит, что
может создать другой файл ".cxx", которого в настоящее время не существует, это правило также будет применяться
и соответствующий файл ".o" будет отмечен.

Это может показаться несколько неэффективным, но в большинстве случаев оказывается не так уж и медленно,
и часто бывает так, что фактически все файлы, которые могут быть построены, на самом деле построены.
А знание полного списка файлов, которые можно создать, дает несколько преимуществ:

· Подстановочные знаки могут соответствовать файлам, которые еще не существуют, но могут быть созданы.

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

· Репозитории намного проще реализовать, поскольку makepp заранее знает, какие файлы он
могу сделать. (Подробнее см. Makepp_repositories.)

· Можно легко определить, какие файлы можно собирать (см.
Функция "$ (only_targets)".

· Функция Makepp "$ (infer_objects)" значительно упрощается, зная, какие объекты
доступен.

Файлы против текстовый паттеранами
Makepp связывает команды сборки с целевым файлом, а не с текстовым шаблоном для
имя файла. Поэтому его не смущают разные имена одного и того же файла. Таким образом, для
Например, makepp будет знать, что "./xyz" и "xyz" - это один и тот же файл, тогда как другие make
коммунальные услуги не могут.

Это особенно важно, потому что (в отличие от стандартного make) makepp загружает make-файлы.
из разных каталогов. Чтобы make-файлы были относительно независимыми, с
никакая специальная позиция не дается make-файлу верхнего уровня, каждый make-файл относится ко всем файлам
относительно его собственного каталога. Таким образом, если вы загрузите make-файл из подкаталога
"other_stuff", а этот make-файл ссылается на "../xyz", makepp снова поймет, что это
тот же файл, упомянутый выше. (Его также не будет смущать каталог с мягкими ссылками
имена.)

Хранится строить информация
Makepp хранит гораздо больше информации о каждом файле, который он создает, помимо даты.
штамп (это все, о чем заботится стандартная марка). Эта информация включает:

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

· Имена каждого файла зависимостей, включая включаемые файлы и другие предполагаемые файлы
автоматически. Если этот список изменится, makepp предполагает, что ему нужно перестроить.

· Подпись каждой зависимости. Таким образом, makepp знает, что нужно перестраивать не только тогда, когда
зависимости новее, чем целевые, но когда они вообще меняются. Это также делает
можно использовать другие виды подписей, такие как криптографические контрольные суммы, а
чем дата файла.

· Вся команда сборки (и ее cwd). Таким образом, если вы измените команду сборки
(например, изменить параметры компилятора), makepp знает, что нужно перестроить, даже если файлы
сами не изменились.

· Архитектура. Если вы скомпилировали свою программу в Linux, а затем переключились на
Solaris, makepp автоматически знает, что нужно все перекомпилировать.

Makepp создает подкаталог в каждом каталоге, которого он касается, под названием «.makepp». В
информация о сборке для файла имя файла в каталоге хранится в .makepp / имя файла. Если
вы удалите этот подкаталог или измените файлы, makepp восстановит все затронутые файлы.

неявный погрузка
Если makepp пытается создать цель в каталоге и еще не имеет для этого правила,
или если он ищет файлы, соответствующие подстановочному знаку в каталоге, он будет искать в этом
каталог, чтобы увидеть, присутствует ли make-файл. Если это так, файл makefile будет загружен.
автоматически.

Это означает, что обычно вам не нужно явно указывать makepp, где найти
makefiles - все, что вам нужно сделать, это сослаться на файл в другом каталоге, и makepp будет
автоматически понять, как его построить.

Неявная загрузка произойдет только в том случае, если каталог доступен для записи. Таким образом, если вы хотите
предотвратить попытки makepp создать кучу вещей, которые никогда не меняются, просто сделайте
каталог только для чтения.

Неявная загрузка не произойдет, если вы находитесь в дереве под RootMakeppfile (.mk) и
другой make-файл находится вне этого дерева. Если вы действительно захотите это однажды, вы можете дать
Параметр "--do-build = /" для makepp, чтобы сделать все, что находится за пределами дерева, доступным для сборки. если ты
всегда хотите этого, вы можете поместить оператор load_makefile где-нибудь в дереве, чтобы
явно подключите его к дереву.

Если неявная загрузка мешает вам (например, makepp загружает слишком много make-файлов и тратит впустую)
времени, иначе вы действительно не хотите, чтобы он пытался перестроить все, что описано в
makefiles), вы можете отключить его для всех каталогов с помощью команды "--noimplicit_load"
параметр строки, или вы можете отключить его для выбранных каталогов с помощью "no_implicit_load"
заявление в вашем make-файле.

Используйте makepp_build_algorithm онлайн с помощью сервисов onworks.net


Бесплатные серверы и рабочие станции

Скачать приложения для Windows и Linux

  • 1
    Pharser
    Pharser
    Phaser - это быстрый, бесплатный и увлекательный
    исходный игровой фреймворк HTML5, который предлагает
    WebGL и рендеринг Canvas через
    настольные и мобильные веб-браузеры. Игры
    может быть со ...
    Скачать Фазер
  • 2
    VASSAL Двигатель
    VASSAL Двигатель
    VASSAL - игровой движок для создания
    электронные версии традиционной доски
    и карточные игры. Он обеспечивает поддержку
    рендеринг и взаимодействие игровых элементов,
    и ...
    Скачать движок VASSAL
  • 3
    OpenPDF - форк iText
    OpenPDF - форк iText
    OpenPDF — это библиотека Java для создания
    и редактирование PDF-файлов с помощью LGPL и
    Лицензия с открытым исходным кодом MPL. OpenPDF – это
    LGPL/MPL преемник iText с открытым исходным кодом,
    и ...
    Скачать OpenPDF — форк iText
  • 4
    SAGA GIS
    SAGA GIS
    САГА - Автоматизированная система
    Геонаучный анализ - это географический
    Программное обеспечение информационной системы (ГИС) с
    огромные возможности для геоданных
    обработка и анализ ...
    Скачать ГИС САГА
  • 5
    Панель инструментов для Java / JTOpen
    Панель инструментов для Java / JTOpen
    IBM Toolbox for Java / JTOpen — это
    библиотека классов Java, поддерживающая
    клиент/сервер и интернет-программирование
    моделей в систему под управлением OS/400,
    i5/ОС, о...
    Скачать набор инструментов для Java/JTOpen
  • 6
    D3.js
    D3.js
    D3.js (или D3 для документов, управляемых данными)
    это библиотека JavaScript, которая позволяет вам
    для создания динамических интерактивных данных
    визуализации в веб-браузерах. С D3
    вы...
    Скачать D3.js
  • Больше »

Команды Linux

Ad