Posted on by dmitrybond
Выбирал конфигурацию для новой build macnine (на Win 2012 R2). А то для многих компонентов до сих пор используем C++ компилятор 1998 года (MS VC++ 6.0).
Front-end-ом точно будет Jenkins. Он бесплатный и ранее уже был опробован. Даже с кастомной скриптовой build procedure он достаточно неплохо совмещается.
Но оставался вопрос – а что использовать как основной сборщик?
Итого, GNU Make = cтандартность, гибкость, универсальность, переносимость. Т.е. и для Windows и для Linux один сборочный инструмент.
По факту выходит – как Microsoft не старалось, но старенький GNU Make они пока не переплюнули.
Кстати, оказывается есть версия адаптированная именно для Win32 (http://gnuwin32.sourceforge.net/packages/make.htm).
Если копировать GNU make из MSYS2/MINGW, то нужно взять следующие файлы:
При этом make.exe можно переименовать в gmake.exe и еще скопировать в gmake421m.exe.
Версия утилиты
GNU Make 4.2.1 Built for i686-pc-msys Copyright (C) 1988-2016 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.
Для справки: в последнюю сборку CentOS 7 Linux входит GNU Make 3.82, т.е. номер версии чуть ниже чем версия для Windows.
Потом нужно в Makefile прописать путь к sh.exe (в моем случае “c:/tools”):
SHELL = c:/tools/sh
И после этого можно это использовать.
Там даже цветовая раскраска поддерживается с помощью ANSI-команд:
BUILD_COLORS ?= 1 ifeq ($(strip $(BUILD_COLORS)),) clDefault= clGccErrors= clProErrors= clHeadLine= clInfoLine= clHighlight= clSqlConv= else clDefault=<[0;37m clGccErrors=<[0;31m clProErrors=<[0;35m clHeadLine=<[0;33m clInfoLine=<[0;32m clHighlight=<[0;36m clSqlConv=<[0;32m endif
(прим. : ясное дело, что вместо “<” должен быть символ “\x1B”)
И потом можно делать так:
all: t1 t2 t3 t4 @echo "$(clGccErrors)Target[ALL]...$(clDefault)" t1: @echo "$(clHeadLine)Target[T1]->head line...$(clDefault)" t2: @echo "$(clHighlight)Target[T2]->head line...$(clDefault)"
А если копировать GNU Make из CygWin тогда нужно зацепить немного больше файлов:
И тоже стоит скопировать в gmake.exe и сделать еще копию с именем gmake521cyg.exe для экспериментов по сравнению версий.
Like Loading…
Posted in Computers and Internet, Development and Integration, SoftwareEnter your email address to follow this blog and receive notifications of new posts by email.
Email Address:
Join 38 other subscribers
Make: утилита GNU make для поддержки групп программ
3,81
Make — это инструмент, контролирующий генерацию исполняемых файлов и других неисходные файлы программы из исходных файлов программы. Make получает знания о том, как собрать вашу программу, из файла с именем make-файл, в котором перечислены все файлы, не являющиеся исходными кодами, и способы их вычисления. его из других файлов. Когда вы пишете программу, вы должны написать make-файл для него, чтобы можно было использовать Make для сборки и установки программы.
Возможности производителя
http://www.gnu.org/software/make
Если вы загрузите программу установки пакета, любые требования для запущенные приложения, такие как библиотеки динамической компоновки (DLL) из зависимостей, перечисленных ниже в разделе «Требования», являются уже включены. Если вы загружаете пакет в виде файлов Zip, вам необходимо скачайте и установите zip-файл зависимостей самостоятельно. Файлы разработчика (файлы заголовков и библиотеки) из других пакеты, однако, не включены; так что если вы хотите разработать свой собственный приложений необходимо отдельно установить необходимые пакеты.
Description | Download | Size | Last change | Md5sum | ||||
---|---|---|---|---|---|---|---|---|
• Complete package, except sources | Setup | 3384653 | 25 Ноябрь 2006 г. | 8ae51379d1f3eef8360df4e674f17d6d | ||||
• Источники | ||||||||
1252948 | 25 November 2006 | b896c02e3d581040ba1ad65024bbf2cd | ||||||
• Binaries | Zip | 495645 | 25 November 2006 | 3521948bc27a31d1ade0dcb23be16d49 | ||||
• Зависимости | Zip | 708206 | 25 November 2006 | d370415aa924fa023411c4099ef84563 | ||||
• Documentation | Zip | 2470575 | 25 November 2006 | 43a07e449d4bab3eb3f31821640ecab7 | ||||
• Источники | Почтовый индекс | 2094753 | 25 November 2006 | 8bed4cf17c5206f8094f9c96779be663 |
You can also download the files from the GnuWin32 страница с файлами.
Ты можешь монитор новые релизы порта этого пакета.
Общие инструкции по установке
Справка GnuWin32 (запросы функций, ошибки и т. д.)
Требования к работающим приложениям, кроме внешних такие как msvcrt.dll, perl и т. д., включены в Программа установки и ZIP-файл зависимостей.сделать, 3.81, gnu, win32, win32s, win64, gnuwin32, i386, ia64, x86-64, gnuwin64,gnuwin,mswindows,ms-windows,windows,95,98,me,nt,2000,2k,xp,2003,vista
GNU Make — это инструмент, контролирующий генерацию исполняемых файлов и других неисходные файлы программы из исходных файлов программы.
Make узнает, как собрать программу из файла называется makefile , в котором перечислены все неисходные файлы и как вычислить его из других файлов. Когда вы пишете программу, вы следует написать для него make-файл, чтобы можно было использовать Make для собрать и установить программу.
В результате, если вы измените несколько исходных файлов, а затем запустите Make, не нужно перекомпилировать всю вашу программу. Он обновляет только те неисходные файлы, которые прямо или косвенно зависят от источника файлы, которые вы изменили.
или
для обновления библиотеки или TeX или Makeinfo для форматирования
документация.Правило в make-файле сообщает Make, как выполнить ряд команды для создания файла target из исходных файлов. Он также указывает список зависимостей целевого файла. Этот список должен включать все файлы (будь то исходные файлы или другие целевые файлы). которые используются в качестве входных данных для команд в правиле.
Вот как выглядит простое правило:
цель: зависимости... команды ...
При запуске Make можно указать определенные цели для обновления; в противном случае Make обновляет первую цель, указанную в make-файле. Из конечно, любые другие целевые файлы, необходимые в качестве входных данных для создания этих цели должны быть обновлены в первую очередь.
Make использует make-файл, чтобы выяснить, какие целевые файлы должны быть актуализируется, а затем определяет, какие из них действительно нужны обновляться. Если целевой файл новее, чем все его зависимости, то он уже актуален и его не нужно регенерировать. Другие целевые файлы необходимо обновить, но в правильном порядке: каждый целевой файл должен быть сгенерирован повторно, прежде чем он будет использоваться в регенерировании другие цели.
GNU Make имеет множество мощных функций для использования в make-файлах, помимо есть другие версии Make. Он также может регенерировать, использовать, а затем удалять промежуточные файлы, которые не нужно сохранять.
GNU Make также имеет несколько простых и очень удобных функций. Для
например, -o file
опция, которая говорит «притвориться, что
исходный файл файл не изменился, хотя и изменился.»
Это чрезвычайно полезно, когда вы добавляете новый макрос в заголовочный файл.
В большинстве версий Make предполагается, что они должны перекомпилировать все
исходные файлы, использующие заголовочный файл; но GNU Make дает вам возможность
избежать перекомпиляции, в случае, если вы знаете свое изменение в
заголовочный файл не требует этого.
Однако самое важное различие между GNU Make и большинством версиях Make заключается в том, что GNU Make является бесплатным программным обеспечением.
Мы разработали соглашения о том, как писать Makefiles, которые все Пакеты GNU должны следовать. Это хорошая идея, чтобы следовать этим соглашения в вашей программе, даже если вы не хотите, чтобы она была GNU программное обеспечение, так что пользователи смогут собрать ваш пакет просто как и многие другие пакеты, и не нужно будет изучать что-то особенное прежде чем сделать это.
Эти условные обозначения находятся в главе «Соглашения Makefile» (147 тыс. символов) GNU Coding Стандарты (147 тыс. символов).
Сделать можно найти на главном ftp-сервере GNU (скачать Make через HTTPS, скачать Make через HTTP или скачать Make через FTP), и его зеркала; пожалуйста использовать зеркало если возможно.
Документация для
Делать
находится в сети, как и документация для большинства
Программное обеспечение GNU. Доступ к нему также можно получить, запустив информация сделать или man make , или взглянув на /usr/доля/doc/сделать/
,
или аналогичные каталоги в вашей системе. Краткий обзор доступен по
запуск make --help .
Марка имеет следующие списки рассылки:
Объявления о Делать и большинство других программ GNU сделаны на информация-гну список рассылки (архив).
Отчеты о безопасности, которые не следует публиковать немедленно, могут быть направляется непосредственно хранителю. Если нет ответа на срочный проблема, вы можете обратиться к общему безопасность список рассылки для консультации.
Разработка Делать, и GNU в целом, это добровольная работа, и вы можете внести свой вклад. Для информацию, пожалуйста, прочтите Как помочь GNU. Если бы ты хотел бы принять участие, это хорошая идея, чтобы присоединиться к рассылке обсуждения список (см. выше).