Страниц: [1]
  Печать  
Автор Тема: Эффективное использование make  (Прочитано 5007 раз)
illgo
Участник
*
Offline Offline

Сообщений: 1


Просмотр профиля
« : Мая 12, 2007, 01:40:30 pm »

У семейства компиляторов watcom 10.6 есть опция zld, отключающая помещение  информации о зависимостях исходного с или срр файла в объектный файл. Вот, что об этой опции пишут авторы:

zld
By default, the compiler places in the object file the names and time stamps of all the files referenced by the
source file. This file dependency information can then be used by a make utility program to determine that this
file needs to be recompiled if any of the referenced files have been modified since the object file was created.
This option causes the compiler not to emit this information into the object file.
---------------------------------------------------------
Если не указывать данную опцию, похоже, объектные файлы будут действительно содержать информацию о зависимостях исходного файла. Это можно проверить обычным пойском строки по объектному файлу.

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

--------------------------
См. также
http://www.linuxrsp.ru/docs/gm.html
Записан
illgo
Участник
*
Offline Offline

Сообщений: 1


Просмотр профиля
« Ответ #1 : Мая 13, 2007, 05:29:32 pm »

Информацию о зависимостях из obj-файлов, созданных Watcom C/C++ должна умееть извлекать wmake из нового open watcom. Может у кого-нибудь есть бинарники этой утилиты для qnx4?
Записан
qnx_user
Full Member
***
Offline Offline

Сообщений: 113


Просмотр профиля
« Ответ #2 : Февраля 20, 2014, 09:22:30 am »

Столкнулся с такой же проблемой.

В OpenWatcom 1.9, wcc386 компилятор имеет ряд опций позволяющих генерировать файл зависимостей для make (каждый такой файл выглядит как правило, где целью является имя исходника, а зависимостями – все исходники и заголовочные файлы, которые он включает директивой #include):
Код:
ad, adbs, add, adhp, adfs, adt

Который в дальнейшем с помощью директивы include можно включать в обрабатываемый make-файл.

В Watcom 10.6 (QNX4) у wcc386 таковые опции отсутствуют. Но есть опция zld, которая по описанию отключает помещение информации о зависимостях в объектный файл, как описано в первом посте. След. по умолчанию информация присуствует в объектных файлах.

В доке на OpenWatcom 1.9 по поводу опции zld наеписано следующее:
"By default, the compiler places in the object file the names and time stamps of all the files referenced by the
source file. This file dependency information can then be used by WMAKE to determine that this file
needs to be recompiled if any of the referenced files has been modified since the object file was created.
This option causes the compiler to not emit this information into the object file."


Собственно дублирую вопрос автора темы:
Вопрос в том, как эту информацию использовать из make утилиты. К сожалению, в имеющейся у меня документации я не нашел ничего по тому, как эту информацию извлечь из объектного файла и представить в форме, удобоваримой для make утилиты.

P.S. Пишу универсанльный makefile для своих проектов, хочу обеспечить его работоспособность как в Win так и в Qnx с минимальными изменениями.
Записан
himym
Участник
*
Offline Offline

Сообщений: 2


Просмотр профиля
« Ответ #3 : Апреля 13, 2015, 05:38:14 pm »

Тогда, в 2007-м вопрос разрешился. Удалось выяснить формат объектного файла - OMF. И по спецификации на этот формат написать утилиту, которая вошла в состав проекта Make-Effect. Её исходники есть на SF.NET http://make-effect.cvs.sourceforge.net/viewvc/make-effect/make-effect/src/me-autodep/
Записан
Страниц: [1]
  Печать  
 
Перейти в: