Это команда rmkdepend, которую можно запустить в бесплатном хостинг-провайдере OnWorks, используя одну из наших многочисленных бесплатных онлайн-рабочих станций, таких как Ubuntu Online, Fedora Online, онлайн-эмулятор Windows или онлайн-эмулятор MAC OS.
ПРОГРАММА:
ИМЯ
rmkdepend - создать зависимости в make-файлах (ROOT-версия)
СИНТАКСИС
rmkdependent [ -Dимя=защиту ] [ -Dимя ] [ -Iвключенный ] [ -Yвключенный ] [ -a ] [ -fMakefile
] [ -oobjсуффикс ] [ -pпрефикс объекта ] [ -sstring ] [ -wширина ] [ -v ] [ -m ] [- другие варианты
-] исходный файл [ -tимя_целевого_файла ] ...
ОПИСАНИЕ
Команда rmkdependent программа читает каждый исходный файл последовательно и анализирует его как C-
препроцессор, обрабатывающий все #включают, #определять, #недеф, #ифдеф, #ифндеф, #эндиф, #если,
#элиф и #еще директивы, чтобы он мог правильно сказать, какие #включают, директивы
использоваться в компиляции. Любой #включают, директивы могут ссылаться на файлы, имеющие другие
#включают директивы, и синтаксический анализ также будет происходить в этих файлах.
Каждый файл, который исходный файл прямо или косвенно включает то, что rmkdependent вызывает
зависимость. Затем эти зависимости записываются в Makefile таким образом, что сделать(1)
будет знать, какие объектные файлы необходимо перекомпилировать при изменении зависимости.
По умолчанию rmkdependent помещает свой вывод в файл с именем Makefile если он существует, иначе
Makefile. Альтернативный make-файл может быть указан с -f вариант. Он сначала ищет
make-файл для строки
# НЕ УДАЛЯЙТЕ ЭТУ СТРОКУ - все зависит от нее.
или один с -s в качестве разделителя вывода зависимости. Если он найдет
он удалит все, что следует за этим, в конец make-файла и поместит вывод
после этой строки. Если не найдет, программа добавит строку в конец
make-файл и поместите результат после него. Для каждого исходный файл появляющийся на
командная строка, rmkdependent помещает строки в make-файл формы
исходный файл.o: dfile ...
где исходный файл.o это имя из командной строки с суффиксом, замененным на `` .o '',
и dfile это зависимость, обнаруженная в #включают директива при разборе исходный файл or
один из включенных в него файлов.
ЗАМЕТКА
Команда rmkdependent приложение основано на сделать зависимым(1) от X Consortium, но модифицированный
немного, чтобы соответствовать потребностям ROOT система. Эта человек(1) страница более или менее идентична
к странице руководства для сделать зависимым(1), за исключением этого уведомления, и СМ ТАКЖЕ и АВТОРЫ
раздел.
ПРИМЕР
Как правило, rmkdependent будет использоваться в целевом файле makefile, поэтому ввод
обновите зависимости для make-файла. Например,
SRCS = файл1.с файл2.с ...
CFLAGS = -O -DHACK -I ../ foobar -xyz
зависеть:
rmkdepend - $ (CFLAGS) - $ (SRCS)
ДОПОЛНИТЕЛЬНЫЕ УСЛУГИ, НЕ ВКЛЮЧЕННЫЕ В ПАКЕТ
Программа проигнорирует любой параметр, который ей не понятен, поэтому вы можете использовать
те же аргументы, что и вы для cc(1).
-Dимя=защиту or -Dимя
Определять. Это дает определение для имя in rmkdepend's таблица символов. Без = def
символ становится определенным как `` 1 ''.
-Iвключенный
Включить каталог. Эта опция сообщает rmkdependent добавить включенный к его списку
каталоги для поиска, когда он встречает #включают директива. По умолчанию, rmkdependent
выполняет поиск только в стандартных подключаемых каталогах (обычно / usr / include и, возможно,
каталог, зависящий от компилятора).
-Yвключенный
Замените все стандартные подключаемые каталоги одним указанным включаемым каталогом.
каталог; вы можете опустить включенный просто предотвратить поиск по стандарту
включить каталоги.
-a Добавьте зависимости в конец файла вместо их замены.
-fMakefile
Имя файла. Это позволяет вам указать альтернативный make-файл, в котором rmkdependent
разместить свой вывод. Указание `` - '' в качестве имени файла (т. Е. -ф-) отправляет вывод в
стандартный вывод вместо изменения существующего файла.
-oobjсуффикс
Суффикс объектного файла. В некоторых системах могут быть объектные файлы, суффикс которых
кроме `` .o ''. Этот параметр позволяет указать другой суффикс, например `` .b ''
-ob или ``: obj '' с -o: obj и так далее.
-pпрефикс объекта
Префикс объектного файла. Префикс добавляется к имени объектного файла. Это
обычно используется для обозначения другого каталога для объектного файла. По умолчанию
пустая строка.
-sstring
Начальный разделитель строки. Эта опция позволяет вам указать другую строку для
rmkdependent искать в make-файле.
-wширина
Ширина линии. Как обычно, rmkdependent гарантирует, что каждая строка вывода, которую он пишет
будет не шире 78 символов для удобства чтения. Эта опция включает
вы можете изменить эту ширину.
-v Подробная операция. Эта опция вызывает rmkdependent выдать список включенных файлов
каждым входным файлом на стандартный вывод.
-m Предупредить о множественном включении. Эта опция вызывает rmkdependent выдать предупреждение, если
любой входной файл включает другой файл более одного раза. В предыдущих версиях
rmkdependent это было поведение по умолчанию; значение по умолчанию было изменено на лучшее соответствие
поведение компилятора C, который не считает множественное включение
ошибка. Эта опция предусмотрена для обратной совместимости и для помощи в отладке.
проблемы, связанные с множественным включением.
-- кредита --
If rmkdependent встречает двойной дефис (-) в списке аргументов, затем любой
нераспознанный аргумент, следующий за ним, будет автоматически проигнорирован; второй двойной дефис
прекращает это специальное обращение. В этом случае, rmkdependent можно сделать безопасно
игнорировать эзотерические аргументы компилятора, которые обычно можно найти в CFLAGS сделать
макрос (см. ПРИМЕР раздел выше). Все варианты, которые rmkdependent признает и
появляются между парой двойных дефисов обрабатываются нормально.
-tимя_целевого_файла
Имя файла. Это позволяет вам указать альтернативное целевое имя файла, которое будет использоваться для
предыдущий файл. Например, если вы позвоните
rmkdepend -sobj -pbuild file.cxx -tlibrary.so
вместо того, чтобы вставлять строку
build / file.obj: ...
rmkdependent вставит:
библиотека.so: ...
ALGORITHM / АЛГОРИТМ
Подход, использованный в этой программе, позволяет ей работать на порядок быстрее, чем любой другой.
другой `` генератор зависимостей '', который я когда-либо видел. Центральное место в этом представлении занимают два
предположения: все файлы, скомпилированные одним make-файлом, будут скомпилированы примерно с
тоже самое -I и -D параметры; и что большинство файлов в одном каталоге будут включать в себя
те же файлы.
Учитывая эти предположения, rmkdependent ожидает, что будет вызываться один раз для каждого make-файла, со всеми
исходные файлы, которые поддерживаются make-файлом, появляющимся в командной строке. Он анализирует
каждый источник и включаемый файл ровно один раз, поддерживая внутреннюю таблицу символов для каждого.
Таким образом, первый файл в командной строке займет время, пропорциональное
количество времени, которое требуется обычному препроцессору C. Но в последующих файлах, если он
обнаруживает включаемый файл, который он уже проанализировал, и больше не анализирует его.
Например, представьте, что вы компилируете два файла, файл1.с и файл2.с, каждый из них включает
заголовочный файл заголовок.ч, и файл заголовок.h в свою очередь включает файлы def1.h и
деф2.ч. Когда вы выполняете команду
rmkdepend файл1.c файл2.c
rmkdependent проанализирую файл1.с и следовательно, заголовок.h , а затем def1.h и деф2.ч. It
затем решает, что зависимости для этого файла
файл1.o: заголовок.h def1.h def2.h
Но когда программа разбирает файл2.с и обнаруживает, что он тоже включает заголовок.ч, оно делает
не разбирает файл, а просто добавляет заголовок.ч, def1.h и def2.h в список
зависимости для файл2.о.
Используйте rmkdepend в Интернете с помощью сервисов onworks.net