LINUX.ORG.RU

AC_INIT(./configure) ?

 ,


0

2

здравствуйте. подскажите, что означает/делает AC_INIT(./configure) в configure.in ?

по доке: configure.ac (configure.in) —–> autoconf* —–> configure



Последнее исправление: microbash (всего исправлений: 2)
Ответ на: комментарий от debugger

ман читал. то что мне не понятно, я написал в сообщении. что тебе в нем конкретно не понятно?

microbash
() автор топика

Нашел еще доку: http://www.botik.ru/~znamensk/ftp.vsu.ru/docs/gnu/autoconf-ru.pdf.gz

AC INIT (unique-file-in-source-dir) Macro Обрабатывает аргументы командной строки и ищет каталог с исходными текстами. unique-file-in-source-dir— это некоторый файл в каталоге с исходными текстами пакета; configure проверяет существование этого файла, чтобы убедиться, что это именно тот каталог с исходными текстами, какой нужно. Иногда люди указывают неверный каталог с исходными текстами, используя ключ командной строки ‘-srcdir’; эта проверка позволяет не допускать таких инцидентов. Для детальной информации См. Глава 10 [Запуск configure], с. 77

Т.е. здесь видимо такой смысл: внутри проекта ищется текущий файл configure (который по умолчанию в корне проекта), и далее эта директория считается базовой для всех остальных относительных путей в configure.in. Если так, то в принципе осмысленно.

microbash
() автор топика
Ответ на: комментарий от microbash

что и видим в configure:

$cat configure | grep -A5 -B5 «ac_unique_file»

PACKAGE_TARNAME=
PACKAGE_VERSION=
PACKAGE_STRING=
PACKAGE_BUGREPORT=

ac_unique_file="./configure"
# Factoring default headers for most tests.
ac_includes_default="\
#include <stdio.h>
#ifdef HAVE_SYS_TYPES_H
# include <sys/types.h>
--
            s//\1/
            q
          }
          s/.*/./; q'`
  srcdir=$ac_confdir
  if test ! -r "$srcdir/$ac_unique_file"; then
    srcdir=..
  fi
else
  ac_srcdir_defaulted=no
fi
if test ! -r "$srcdir/$ac_unique_file"; then
  test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
  { $as_echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2
   { (exit 1); exit 1; }; }
fi
ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
ac_abs_confdir=`(
        cd "$srcdir" && test -r "./$ac_unique_file" || { $as_echo "$as_me: error: $ac_msg" >&2
   { (exit 1); exit 1; }; }
        pwd)`
# When building in place, set srcdir=.
if test "$ac_abs_confdir" = "$ac_pwd"; then
  srcdir=.
microbash
() автор топика
Ответ на: комментарий от microbash

Нашел еще доку

маны лучше читать посвежее, чем 1998 года. с тех пор многое поменялось. впрочем, AC_INIT пока на месте. но параметры у него - название проекта, версия и адрес разработчика, для багрепортов. а сорцы указываются через AC_CONFIG_SRCDIR.

вообще, лучше читать маны к той версии, которая у тебя установлена. ну или маны на сайте разработчиков автотулзов. там они свежие и могут отличаться от менее актуальных версий, но не так радикально. в последней версии они много чего поменяли и она иногда плохо совместима со старыми проектами, поэтому её пока не втащили в мейнстримные дистры.

Iron_Bug ★★★★★
()
Ответ на: комментарий от Iron_Bug

единственный полезный комментарий по моей теме. спасибо.

в проекте как раз используется версия 2.13 (выставлен AC_PREREQ(2.13)). поэтому и документация оказалась полезной старая.

microbash
() автор топика
Ответ на: комментарий от microbash

какую посоветуете?

Любую. Вообще любую. Если проект несложный, напиши тупо Makefile. Если чуть сложнее, возьми Meson.

hateyoufeel ★★★★★
()
Ответ на: комментарий от microbash

так перепиши его под современный вариант автотулзов. если нет цели собирать его на каком-то допотопном железе, с оригинальным древним тулчейном. и то проще кросскомпилировать на другой машине, как правило.

Iron_Bug ★★★★★
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.