Вопросы с тегом «makefile»

209
Определить переменную make во время выполнения правила

В моем GNUmakefile я хотел бы иметь правило, которое использует временный каталог. Например: out.tar: TMP := $(shell mktemp -d) echo hi $(TMP)/hi.txt tar -C $(TMP) cf $@ . rm -rf $(TMP) Как написано выше, указанное выше правило создает временный каталог во время его анализа . Это означает, что,...

209
Как я могу использовать синтаксис Bash в целях Makefile?

Я часто нахожу синтаксис Bash очень полезным, например, подстановка процесса, как вdiff <(sort file1) <(sort file2) . Можно ли использовать такие команды Bash в Makefile? Я думаю о чем-то вроде этого: file-differences: diff <(sort file1) <(sort file2) > $@ В моем GNU Make 3.80 это...

202
Как получить текущий относительный каталог вашего Makefile?

У меня есть несколько файлов Makefile в определенных каталогах приложений, например: /project1/apps/app_typeA/Makefile /project1/apps/app_typeB/Makefile /project1/apps/app_typeC/Makefile Каждый Makefile включает в себя файл .inc по этому пути на один уровень выше: /project1/apps/app_rules.inc...

202
Как вы получаете список целей в make-файле?

Я немного использовал rake (программу Ruby make), и у нее есть возможность получить список всех доступных целей, например > rake --tasks rake db:charset # retrieve the charset for your data... rake db:collation # retrieve the collation for your da... rake db:create # Creates the databases...

188
Как «заставить» приложение знать цель по умолчанию для сборки, если цель не указана?

Большинство приложений Linux скомпилированы с: make make install clean Как я понял, make принимает имена целей сборки в качестве аргументов. Так installчто цель, которая копирует некоторые файлы, а после этого cleanцель, которая удаляет временные файлы. Но какую цель будет makeстроить, если не...

184
Как вы заставляете make-файл перестраивать цель

У меня есть make-файл, который создает, а затем вызывает другой make-файл. Так как этот make-файл вызывает больше make-файлов, которые действительно работают, он действительно не меняется. Таким образом, он продолжает думать, что проект построен и обновлен. dnetdev11 ~ # make make: `release' is up...

175
Как я могу настроить свой make-файл для отладочных и релизных сборок?

У меня есть следующий make-файл для моего проекта, и я хотел бы настроить его для выпуска и отладки. В моем коде у меня много #ifdef DEBUGмакросов, так что просто нужно установить этот макрос и добавить -g3 -gdwarf2флаги в компиляторы. Как я могу это сделать? $(CC) = g++ -g3 -gdwarf2 $(cc) = gcc...

174
Компиляция с g ++ с использованием нескольких ядер

Быстрый вопрос: что такое флаг компилятора, позволяющий g ++ порождать несколько экземпляров самого себя, чтобы быстрее компилировать большие проекты (например, 4 исходных файла за один раз для многоядерного...

172
Что делают @, - и + как префиксы для строк рецепта в Make?

В руководстве по сборке GNU Makefile упоминаются эти префиксы. Если указан .ONESHELL, то только первая строка рецепта будет проверяться на наличие специальных префиксных символов ('@', '-' и '+'). Что делают эти префиксы и где они...

172
Использование G ++ для компиляции нескольких файлов .cpp и .h

Я только что унаследовал некоторый код C ++, который был написан плохо с одним файлом cpp, который содержал основную и кучу других функций. Есть также .hфайлы, которые содержат классы и определения их функций. До сих пор программа компилировалась с помощью команды g++ main.cpp. Теперь, когда я...

168
Компиляция C ++ на удаленной машине с Linux - предупреждение «Обнаружено искажение часов»

Я подключен к небольшому кластеру Linux моего университета через PuTTY и WinSCP, передавая файлы с помощью последнего, компилируя и выполняя их с первым. Моя работа до сих пор выполнялась в университетских лабораториях, но сегодня я выполнял некоторую работу дома, которая вызвала интересное...

162
Почему никто не использует make для Java?

Почти каждый Java-проект, который я видел, использует Maven или Ant. Они прекрасные инструменты, и я думаю, что любой проект может использовать их. Но что же случилось с делать ? Он используется для различных не-Java проектов и может легко обрабатывать Java. Конечно, вам нужно скачать make.exe,...

151
Прервать make-файл, если переменная не установлена

Как я могу прервать выполнение make / makefile, основываясь на том, что переменная make-файла не была установлена ​​/ оценена? Я придумал это, но работает, только если вызывающая сторона явно не запускает цель (т.е. работает makeтолько). ifeq ($(MY_FLAG),) abort: ## This MUST be the first target :(...

148
Сделать установку, но не в каталоги по умолчанию?

Я хочу запустить 'make install', чтобы у меня было все необходимое, но я бы хотел, чтобы он устанавливал вещи в их собственную папку, а не в системный каталог / usr / bin и т. Д. Возможно ли это? даже если он ссылается на инструменты в / usr / bin и т....