On Mon, Mar 03, 2008 at 06:22:48PM +0200, Kirill A. Shutemov wrote: > On [Mon, 03.03.2008 18:26], Alexey Tourbin wrote: > > Я также обнаружил, что 'сpp -M' и 'cpp -MM' плохо подохдят для задачи > > вычисления зависимостей хедеров. > > Почему? Обе разворачивают рекурсивно, при этом вторая исключает "системные хедеры". Ни одна ни даёт того, что нужно. $ cpp -M /usr/include/rpm/rpmlib.h rpmlib.o: /usr/include/rpm/rpmlib.h /usr/include/rpm/rpmio.h \ /usr/include/sys/types.h /usr/include/features.h \ /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h \ /usr/include/gnu/stubs.h /usr/include/gnu/stubs-32.h \ /usr/include/bits/types.h \ /usr/lib/gcc/i586-alt-linux/4.1.2/include/stddef.h \ /usr/include/bits/typesizes.h /usr/include/time.h /usr/include/endian.h \ /usr/include/bits/endian.h /usr/include/sys/select.h \ /usr/include/bits/select.h /usr/include/bits/sigset.h \ /usr/include/bits/time.h /usr/include/sys/sysmacros.h \ /usr/include/bits/pthreadtypes.h /usr/include/sys/stat.h \ /usr/include/bits/stat.h /usr/include/dirent.h \ /usr/include/bits/dirent.h /usr/include/bits/posix1_lim.h \ /usr/include/bits/local_lim.h /usr/include/linux/limits.h \ /usr/include/glob.h /usr/include/stdio.h /usr/include/libio.h \ /usr/include/_G_config.h /usr/include/wchar.h /usr/include/bits/wchar.h \ /usr/include/gconv.h /usr/lib/gcc/i586-alt-linux/4.1.2/include/stdarg.h \ /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \ /usr/include/stdlib.h /usr/include/alloca.h /usr/include/unistd.h \ /usr/include/bits/posix_opt.h /usr/include/bits/confname.h \ /usr/include/getopt.h /usr/include/rpm/rpmmessages.h \ /usr/include/rpm/rpmlog.h /usr/include/rpm/rpmerr.h \ /usr/include/rpm/header.h /usr/include/rpm/hdrinline.h \ /usr/include/popt.h $ cpp -MM /usr/include/rpm/rpmlib.h rpmlib.o: /usr/include/rpm/rpmlib.h /usr/include/rpm/rpmio.h \ /usr/include/rpm/rpmmessages.h /usr/include/rpm/rpmlog.h \ /usr/include/rpm/rpmerr.h /usr/include/rpm/header.h \ /usr/include/rpm/hdrinline.h $ grep -w include /usr/include/rpm/rpmlib.h #include "rpmio.h" #include "rpmmessages.h" #include "rpmerr.h" #include "header.h" #include "popt.h" $