[devel] cpp.req -- зависимости *.h файлов (телеграфом)

Alexey Tourbin =?iso-8859-1?q?at_=CE=C1_altlinux=2Eru?=
Пн Мар 3 18:26:17 MSK 2008


Я обнаружил, что пакет libmesa-devel требует (необоснованно)
libexpat-devel.  У пакета libmesa-devel прописано очень много
зависимостей вручную.

Такого быть не должно.  В иделе, все зависимости, прописанные
вручную, нужно удалить.  Чтобы это стало более возможным (и почти
возможным), нужно релизовать замыкание зависимостей по включаемым
хедерам.

Я также обнаружил, что 'сpp -M' и 'cpp -MM' плохо подохдят для задачи
вычисления зависимостей хедеров.  Но идея вычисления зависимостей
хедеров представляется не совсем уж утопической.

Можно использовать просто 'cpp'.
info cpp 'Preprocessor Output'

Вывод препроцессора позволяет построить стек включаемых файлов и,
следовательно, определить top-level includes.  Если первый флаг 1,
то это push на стек, а если первый флаг 2 -- то это pop.  Push на
начальной глубине даёт непосредственные зависимости исследуемого хедера.

$ cpp /usr/include/rpm/rpmlib.h |grep ^# |awk '$4==1{++I;if(I==1)print$3}$4==2{--I}'
"/usr/include/rpm/rpmio.h"
"/usr/include/rpm/rpmmessages.h"
"/usr/include/rpm/rpmerr.h"
"/usr/include/rpm/header.h"
"/usr/include/popt.h"
$ grep -w include /usr/include/rpm/rpmlib.h
#include "rpmio.h"
#include "rpmmessages.h"
#include "rpmerr.h"
#include "header.h"
#include "popt.h"
$ 
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип     : application/pgp-signature
Размер  : 197 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20080303/6b8c1035/attachment-0002.bin>


Подробная информация о списке рассылки Devel