Алексей Махоткин

домашняя страница

Autoconf

Go to the first, previous, next, last section, table of contents.


Структуры

@anchor{Structures}

Следующие макросы проверяют наличие определенных структур или полей структур. Для проверки структур, не перечисленных в этом разделе, используйте макрос AC_EGREP_CPP (see section Исследование деклараций) или AC_TRY_COMPILE (see section Проверка синтаксиса).

Macro: AC_HEADER_STAT
Если макросы S_ISDIR, S_ISREG и т. п., определенные в `sys/stat.h’, работают неправильно (возвращая неверные положительные результаты), то определяется переменная STAT_MACROS_BROKEN. Это происходит на системах Tektronix UTekV, Amdahl UTS и Motorola System V/88.

Macro: AC_HEADER_TIME
Если программа может подключать как `time.h’, так и `sys/time.h’, то определяется переменная TIME_WITH_SYS_TIME. В некоторых старых системах `sys/time.h’ подключает `time.h’, но `time.h’ не защищен от многократного подключения, так что программы не должны явно подключать оба файла. Этот макрос полезен для программ, которые, например, используют структуры struct timeval или struct timezone, вместе с struct tm. Этот макрос лучше всего использовать вместе с HAVE_SYS_TIME_H, который может быть проверен с помощью AC_CHECK_HEADERS(sys/time.h).
#if TIME_WITH_SYS_TIME
# include <sys/time.h>
# include <time.h>
#else
# if HAVE_SYS_TIME_H
#  include <sys/time.h>
# else
#  include <time.h>
# endif
#endif

Macro: AC_STRUCT_ST_BLKSIZE
Если struct stat содержит поле st_blksize, то определяется переменная HAVE_ST_BLKSIZE.

Macro: AC_STRUCT_ST_BLOCKS
Если struct stat содержит поле st_blocks, то определяется переменная HAVE_ST_BLOCKS. В противном случае, `fileblocks.o’ добавляется к выходной переменной LIBOBJS.

Macro: AC_STRUCT_ST_RDEV
Если struct stat содержит поле st_rdev, то определяется переменная HAVE_ST_RDEV.

Macro: AC_STRUCT_TM
Если `time.h’ не определяет struct tm, то определяется символ TM_IN_SYS_TIME, что означает, что `sys/time.h’ следовало бы определить struct tm.

Macro: AC_STRUCT_TIMEZONE
Определяет, как получить текущую временную зону. Если struct tm имеет поле tm_zone, то определяется переменная HAVE_TM_ZONE. В противном случае, если найден внешний массив tzname, то определяется переменная HAVE_TZNAME.


Go to the first, previous, next, last section, table of contents.

Comments